#ifndef MODBUSMANAGER_H #define MODBUSMANAGER_H #include #include #include #include #include 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 m_coilValues; }; #endif // MODBUSMANAGER_H