Newer
Older
casic_unitree_dog / src / message_handler.cpp
#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;
}