#include <iostream> #include <thread> #include <boost/asio.hpp> #include "tcp_client.hpp" #include "tcp_service.hpp" #include "serial_port_wrapper.hpp" int main() { // 启动TCP客户端,接收来自Web端的命令,控制机器狗运动 std::thread client_thread([] { TcpClient client("eth0"); client.connect("192.168.123.18", 9001); }); client_thread.join(); // 启动TCP服务,接收AI结果并通过串口控制机械臂 std::thread service_thread([] { boost::asio::io_context _context; TcpService service(_context, "/dev/ttyACM0", 115200); //机械臂串口 service.start(8888); }); service_thread.join(); // 启动甲烷数据查询串口线程,定时发送查询指令 std::thread gas_serial_port_thread([] { try { boost::asio::io_service io; //打开串口 SerialPortWrapper wrapper(io, "/dev/ttyUSB0", 115200); //甲烷串口 // 从串口读取数据 boost::asio::streambuf buffer; wrapper.read_from_port(buffer); io.run(); } catch (std::exception &e) { std::cerr << e.what() << std::endl; } }); gas_serial_port_thread.join(); return 0; }