#ifndef MODBUSSIMULATOR_H #define MODBUSSIMULATOR_H #include #include #include #include #include // 新增:互斥锁头文件 class ModbusSimulator : public QObject { Q_OBJECT public: explicit ModbusSimulator(QObject *parent = nullptr); ~ModbusSimulator(); void startSimulation(); void stopSimulation(); bool isRunning() const; void setCoilAddresses(const QSet &addresses); void writeCoil(int address, bool state); signals: void coilStatusRead(int address, bool state); void errorOccurred(const QString &message); private slots: void readCoils(); private: QModbusRtuSerialMaster *m_modbusClient; QTimer *m_readTimer; QSet m_coilAddresses; bool m_running; QMutex m_mutex; // 新增:保护m_coilAddresses的互斥锁 }; #endif // MODBUSSIMULATOR_H