// // Created by casic on 25-2-25. // #ifndef SERIAL_PORT_WRAPPER_HPP #define SERIAL_PORT_WRAPPER_HPP #include <boost/asio.hpp> #include <boost/asio/steady_timer.hpp> using boost::asio::serial_port_base; using boost::asio::steady_timer; class serial_port_wrapper { public: explicit serial_port_wrapper(boost::asio::io_service &io_service, const std::string &port_name, int baud_rate); boost::asio::serial_port &get() { return port_; } void read_from_port(boost::asio::streambuf &buffer); void write_to_port(std::vector<uint8_t> command); void start_periodic_send(); private: // 查询甲烷的指令 std::vector<uint8_t> query_methane_command = {0xAA, 0x01, 0x00, 0x95, 0x00, 0x00, 0x96}; boost::asio::io_service &io_service_; boost::asio::serial_port port_; steady_timer timer_; void handle_data(const std::vector<uint8_t> &buffer); }; #endif //SERIAL_PORT_WRAPPER_HPP