|
- #pragma once
-
- #include <QObject>
-
- /**
- * 实现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;
- };
|