// // Created by pengx on 2025/3/18. // #ifndef METHANE_SERIAL_PORT_HPP #define METHANE_SERIAL_PORT_HPP #include <boost/asio.hpp> #include <boost/asio/steady_timer.hpp> using boost::asio::serial_port_base; using boost::asio::steady_timer; class MethaneSerialPort { public: explicit MethaneSerialPort(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(); private: boost::asio::io_service &io_service_; boost::asio::serial_port port_; boost::asio::deadline_timer timer_; boost::asio::streambuf buffer_; void start_timer(); void handle_response(const std::vector<uint8_t> &buffer); void upload_to_server_async(int value); }; #endif //METHANE_SERIAL_PORT_HPP