diff --git a/main.cpp b/main.cpp index eddd1bc..141e6e0 100644 --- a/main.cpp +++ b/main.cpp @@ -65,6 +65,7 @@ int main(int argc, char *argv[]) { delete video_armor; delete video_energy; cout << "Program fails. Restarting" << endl; + continue; } Mat energy_src, armor_src; diff --git a/others/src/uart/uart.cpp b/others/src/uart/uart.cpp index 06de6ef..e9ea4f7 100644 --- a/others/src/uart/uart.cpp +++ b/others/src/uart/uart.cpp @@ -7,33 +7,51 @@ #include #include -using std::cout; -using std::cerr; -using std::clog; -using std::dec; -using std::endl; -using std::hex; +using namespace std; GMAngle_t aim; +string get_uart_dev_name(){ + FILE* ls = popen("ls /dev/ttyUSB* --color=never", "r"); + char name[20] = {0}; + fscanf(ls, "%s", name); + return name; +} Uart::Uart(){ if(wait_uart){ - while((fd = open("/dev/ttyUSB0", O_RDWR)) < 0); + string name; + do{ + name = get_uart_dev_name(); + if(name == ""){ + continue; + } + }while((fd=open(name.data(), O_RDWR)) < 0); }else{ - fd = open("/dev/ttyUSB0", O_RDWR); + string name = get_uart_dev_name(); + if(name == ""){ + cerr<<"open port error"<