|
- #ifndef MODBUSMANAGER_H
- #define MODBUSMANAGER_H
-
- #include <QObject>
- #include <qmodbusrtuserialclient.h>
- #include <QTimer>
- #include <QMap>
- #include <QSerialPort>
-
- class ModbusManager : public QObject
- {
- Q_OBJECT
- public:
- explicit ModbusManager(QObject *parent = nullptr);
- ~ModbusManager();
-
- bool startSimulation(const QString &serialPortName,
- int baudRate = 9600,
- int parity = QSerialPort::NoParity,
- int dataBits = QSerialPort::Data8,
- int stopBits = QSerialPort::OneStop);
- void stopSimulation();
-
- void writeCoil(int address, bool value);
- bool isRunning() const;
-
- signals:
- void coilUpdated(int address, bool value); // 从站数据更新
- void logMessage(const QString &msg); // 日志
-
- private slots:
- void pollModbusCoils();
-
- private:
- QModbusClient *m_modbusDevice = nullptr;
- QTimer *m_pollingTimer = nullptr;
- bool m_running = false;
- QMap<int, bool> m_coilValues;
- };
-
- #endif // MODBUSMANAGER_H
|