#pragma once #include /** * 实现Modbus主站的所有方法 */ class Modbus_Master : public QObject { Q_OBJECT public: Modbus_Master(QObject *parent); ~Modbus_Master(); // 构建Modbus RTU数据包 QByteArray build_modbus_pkg( quint8 slave_addr, quint8 func_code, const QByteArray& work_data ); // 解析Modbus RTU数据包 bool parse_modbus_pkg( const QByteArray& pkg, quint8& slave_addr, quint8& func_code, QByteArray& work_data ); private: // 私有方法 // 计算Modbus CRC16 quint16 calc_crc(const QByteArray& frame_data) const; // 私有变量 const QByteArray frame; quint8 slave_addr; quint8 func_code; QByteArray work_data; };