Modbus.h
class Modbus
{
private:
std::shared_ptr<WSJ::ModbusRtu> pModbusRtu;
public:
Modbus(const std::string& com, const SERIALBUS_CONST::BaudRate& baudrate);
virtual ~Modbus();
void SetDataSize(const SERIALBUS_CONST::DataSize& dataSize); // 设置数据位长度
void SetParity(const SERIALBUS_CONST::Parity& parity); // 设置校验位
void SetStopBits(const SERIALBUS_CONST::StopBits& stopBits); // 设置停止位
std::vector<unsigned char> ReadRegister(uint8_t serverAddr, uint16_t registerAddr, uint16_t registerNum);
void WriteRegister(uint8_t serverAddr, uint16_t registerAddr, uint16_t registerNum, const std::vector<unsigned char> &vec);
};
使用方法
#include <iostream>
#include "Modbus.h"
int main()
{
try {
Modbus modbus("COM6", SERIALBUS_CONST::BaudRate::BR_115200);
modbus.ReadRegister(1, 1, 2);
}
catch (std::string errMsg) {
std::cout << errMsg << std::endl;
}
}