bonus-edge-proxy/src/protocol/modbus/modbus_protocol.h

37 lines
1.1 KiB
C
Raw Normal View History

// 文件名: src/protocol/modbus/modbus_protocol.h
#ifndef MODBUS_PROTOCOL_H
#define MODBUS_PROTOCOL_H
#include <vector>
#include <cstdint>
#include <string>
#include <stdexcept>
namespace modbus::protocol {
// 自定义异常类型,方便上层捕获
class exception : public std::runtime_error {
public:
explicit exception(const std::string& message) : std::runtime_error(message) {}
};
/**
* @brief "读保持寄存器" (0x03) PDU
* @param start_address
* @param quantity
* @return PDU字节流 (MBAP头)
*/
std::vector<uint8_t> create_read_holding_registers_pdu(uint16_t start_address, uint16_t quantity);
/**
* @brief "读保持寄存器"PDU
* @param response_pdu PDU字节流
* @return
* @throws modbus::protocol::exception ()
*/
std::vector<uint16_t> parse_read_holding_registers_response(const std::vector<uint8_t>& response_pdu);
} // namespace modbus::protocol
#endif // MODBUS_PROTOCOL_H