- 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
42 lines
942 B
C++
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
|