#include #include #include #include #include #include "ComHS.h" using namespace std; /* 全局运行标志 */ static volatile int keep_running = 1; /* 信号处理函数 */ void signal_handler(int signum) { keep_running = 0; cout << "\n[INFO] Received signal " << signum << ", stopping..." << endl; } /* * 主函数 * * 命令行参数: * argv[1]: 遥控串口设备路径 (默认: /dev/ttyUSB0) * argv[2]: 遥测串口设备路径 (默认: /dev/ttyUSB1) * argv[3]: 波特率 (默认: 115200) */ int main(int argc, char *argv[]) { const char *dev_telec = "/dev/ttyUSB0"; /* 遥控串口 */ const char *dev_telem = "/dev/ttyUSB1"; /* 遥测串口 */ int baudrate = 115200; /* 从命令行参数获取配置 */ if (argc >= 3) { dev_telec = argv[1]; dev_telem = argv[2]; } if (argc >= 4) { baudrate = atoi(argv[3]); } /* 设置信号处理 */ signal(SIGINT, signal_handler); signal(SIGTERM, signal_handler); /* 启动服务 */ start_scomm_service(dev_telec, dev_telem, baudrate); while (keep_running) { static int counter = 0; if (counter++ >= 10) { counter = 0; } sleep(1); } cout << "[INFO] Stopping service..." << endl; stop_scomm_service(); cout << "[INFO] Service stopped successfully" << endl; return 0; }