// SPDX-License-Identifier: GPL-3.0-or-later #ifndef ABBTERRARTUDISCOVERY_H #define ABBTERRARTUDISCOVERY_H #include #include 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 results() const; signals: void discoveryFinished(bool modbusRtuMasterAvailable); private: void scanNext(); private: ModbusRtuHardwareResource *m_modbusRtuResource = nullptr; QList m_candidateMasters; QList m_results; int m_masterIndex = 0; quint16 m_slaveId = 1; }; #endif // ABBTERRARTUDISCOVERY_H