物联网网关程序设计-3

设计好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;

    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 &data);

你可能感兴趣的:(嵌入式开发,物联网,p2p,网络协议,网络)