etm-powersync-plugins-modbus/abbterra/abbterrartudiscovery.h
Patrick Schurig c26b0336bd Ajout plugin ABB Terra AC (vendoring upstream experimental-silo)
- abbterra/ copié depuis nymea-plugins-modbus experimental-silo (a652793)
- paquet nymea-plugin-abbterra (nom upstream, vendoring tracé dans VENDORED.md)
- 3 paquets binaires => .install par paquet
- abbterra ajouté à FORKED_PLUGINS du mirror (exclusion upstream)
- changelog 1.15.0+etm3
2026-06-01 07:38:51 +02:00

42 lines
942 B
C++

// SPDX-License-Identifier: GPL-3.0-or-later
#ifndef ABBTERRARTUDISCOVERY_H
#define ABBTERRARTUDISCOVERY_H
#include <QObject>
#include <hardware/modbus/modbusrtuhardwareresource.h>
class AbbTerraRtuDiscovery : public QObject
{
Q_OBJECT
public:
struct Result {
QUuid modbusRtuMasterId;
quint16 slaveId;
QString serialNumber;
QString productName;
QString firmwareVersion;
};
explicit AbbTerraRtuDiscovery(ModbusRtuHardwareResource *modbusRtuResource, QObject *parent = nullptr);
void startDiscovery();
QList<Result> results() const;
signals:
void discoveryFinished(bool modbusRtuMasterAvailable);
private:
void scanNext();
private:
ModbusRtuHardwareResource *m_modbusRtuResource = nullptr;
QList<ModbusRtuMaster *> m_candidateMasters;
QList<Result> m_results;
int m_masterIndex = 0;
quint16 m_slaveId = 1;
};
#endif // ABBTERRARTUDISCOVERY_H