#ifndef MODBUSMANAGER_H #define MODBUSMANAGER_H #include #include "modbusworker.h" class RegisterManager; class QThread; class ModbusManager : public QObject { Q_OBJECT public: explicit ModbusManager(RegisterManager* regManager, QObject *parent = nullptr); ~ModbusManager(); // 串口连接管理 void connectToDevice(const QString& portName, QSerialPort::BaudRate baudRate = QSerialPort::Baud9600, QSerialPort::DataBits dataBits = QSerialPort::Data8, QSerialPort::Parity parity = QSerialPort::NoParity, QSerialPort::StopBits stopBits = QSerialPort::OneStop); void disconnectDevice(); // 仿真控制 void startSimulation(int interval = 500); // 毫秒 void stopSimulation(); // 寄存器读写 void writeRegister(const QString& registerId, quint16 value); // 设置从站地址 // void setSlaveAddress(int address) { worker->setSlaveAddress(address); } signals: void connectionStatusChanged(bool connected); void errorOccurred(const QString& error); void registerValueUpdated(const QString& registerId, quint16 value); public slots: void readRegisters(); private: ModbusWorker* worker; QTimer* pollTimer; QThread* modbusThread; }; #endif // MODBUSMANAGER_H