设计好device基类之后,即可在此基础上构建不同的设备类
已MODEBUS设备为例:
可以定义如下设备 类
class ModbusDevice : public core::Device {
public:
ModbusDevice();
void init(const ModbusMaster::Ptr &master, int32_t addr);
[[nodiscard]] const int32_t &addr() const;
protected:
int32_t _addr{1};
ModbusMaster::Ptr _modbus;
};
class ModbusMaster {
public:
using Ptr = std::shared_ptr<ModbusMaster>;
public:
ModbusMaster(const std::string &port, int32_t baud, char parity, int32_t dataBits, int32_t stopBits);
ModbusMaster(const std::string &ip, uint16_t port);
~ModbusMaster();
void reconnect();
void stop();
bool readBits(int32_t nodeId, int32_t addr, int32_t count, std::vector<uint8_t> &data);