#include <iostream> #include <thread> #include <boost/asio.hpp> #include "tcp_service.hpp" #include "tcp_client.hpp" #include "methane_serial_port.hpp" #include "constant_config.hpp" int main() { //启动TCP服务端 std::thread service_thread([] { boost::asio::io_service io; TcpService::getInstance().start(ConstantConfig::TCP_LOCALE_PORT); io.run(); }); // 启动TCP客户端 std::thread client_thread([] { boost::asio::io_service io; TcpClient client; client.connect(ConstantConfig::SERVICE_ADDRESS, ConstantConfig::TCP_REMOTE_PORT); io.run(); }); //启动甲烷数据查询串口线程 std::thread gas_serial_port_thread([] { try { boost::asio::io_service io; //打开串口 MethaneSerialPort sp(io, ConstantConfig::GAS_PORT, ConstantConfig::BAUD_RATE); //甲烷串口 sp.read_from_port(); io.run(); } catch (std::exception &e) { std::cerr << e.what() << std::endl; } }); // 等待所有线程完成 service_thread.join(); client_thread.join(); gas_serial_port_thread.join(); return 0; }