From 37f6da5dd6f99104b9c09e10b1e253f4c3540010 Mon Sep 17 00:00:00 2001 From: xinyang Date: Fri, 3 May 2019 20:22:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4main=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E4=B8=8D=E5=90=8C=E6=A8=A1=E5=BC=8F=E7=9A=84=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BB=A5=E7=95=A5=E5=BE=AE=E6=8F=90?= =?UTF-8?q?=E5=8D=87=E8=BF=90=E8=A1=8C=E6=95=88=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 89 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 46 insertions(+), 43 deletions(-) diff --git a/main.cpp b/main.cpp index 378370e..c4d7026 100644 --- a/main.cpp +++ b/main.cpp @@ -27,66 +27,69 @@ using namespace std; int state = ARMOR_STATE; -float curr_yaw=0, curr_pitch=0; -float mark_yaw=0, mark_pitch=0; +float curr_yaw = 0, curr_pitch = 0; +float mark_yaw = 0, mark_pitch = 0; int mark = 0; -void uartReceive(Uart* uart); +void uartReceive(Uart *uart); -int main(int argc, char *argv[]){ +int main(int argc, char *argv[]) { process_options(argc, argv); Uart uart; thread receive(uartReceive, &uart); - bool flag = true; + bool flag = true; - while (flag){ + while (flag) { int ally_color = ALLY_RED; int energy_part_rotation = CLOCKWISE; - int from_camera = 1; - if(!run_with_camera) { + int from_camera = 1; + if (!run_with_camera) { cout << "Input 1 for camera, 0 for video files" << endl; cin >> from_camera; } - WrapperHead *video_armor; + WrapperHead *video_armor; WrapperHead *video_energy; - if(from_camera) { + if (from_camera) { video_armor = new CameraWrapper(0); -// video_energy = new CameraWrapper(1); - }else { + video_energy = new CameraWrapper(1); + } else { video_armor = new VideoWrapper("/home/xinyang/Desktop/Video.mp4"); video_energy = new VideoWrapper("/home/xinyang/Desktop/Video.mp4"); } - if (video_armor->init()) { - cout << "Video source initialization successfully." << endl; - } + if (video_armor->init()) { + cout << "Video source initialization successfully." << endl; + } - Mat energy_src, armor_src; + Mat energy_src, armor_src; - ArmorFinder armorFinder(ENEMY_BLUE, uart, PROJECT_DIR"/tools/para/"); + ArmorFinder armorFinder(ENEMY_BLUE, uart, PROJECT_DIR"/tools/para/"); Energy energy(uart); energy.setAllyColor(ally_color); energy.setRotation(energy_part_rotation); - bool ok=true; + bool ok = true; - while (ok){ - CNT_TIME(WORD_LIGHT_CYAN, "Total", { - ok = video_armor->read(energy_src) && video_armor->read(armor_src); - if (show_origin) { - imshow("enery src", energy_src); - imshow("armor src", armor_src); - } + while (ok) { + CNT_TIME(WORD_LIGHT_CYAN, "Total", { if (state == ENERGY_STATE) { + ok = video_energy->read(energy_src); + if (show_origin) { + imshow("energy src", energy_src); + } if (from_camera == 0) { energy.extract(energy_src); } energy.run(energy_src); } else { + ok = video_armor->read(armor_src); + if (show_origin) { + imshow("armor src", armor_src); + } CNT_TIME(WORD_LIGHT_BLUE, "Armor Time", { - armorFinder.run(armor_src); + armorFinder.run(armor_src); }); } if (waitKey(1) == 'q') { @@ -94,41 +97,41 @@ int main(int argc, char *argv[]){ break; } }); - } - delete video_armor; - cout << "Program fails. Restarting" << endl; - } + } + delete video_armor; + cout << "Program fails. Restarting" << endl; + } - return 0; + return 0; } #define RECEIVE_LOG_LEVEL LOG_NOTHING -void uartReceive(Uart* uart){ +void uartReceive(Uart *uart) { char buffer[100]; - int cnt=0; - while(true){ + int cnt = 0; + while (true) { char data; - while((data=uart->receive()) != '\n'){ + while ((data = uart->receive()) != '\n') { buffer[cnt++] = data; - if(cnt >= 100){ + if (cnt >= 100) { LOG(RECEIVE_LOG_LEVEL, "data receive over flow!"); - cnt = 0; + cnt = 0; } } - if(cnt == 10){ - if(buffer[8] == 'e'){ + if (cnt == 10) { + if (buffer[8] == 'e') { state = ENERGY_STATE; LOG(RECEIVE_LOG_LEVEL, "Energy state"); - }else if(buffer[8] == 'a'){ + } else if (buffer[8] == 'a') { state = ARMOR_STATE; LOG(RECEIVE_LOG_LEVEL, "Armor state"); } memcpy(&curr_yaw, buffer, 4); - memcpy(&curr_pitch, buffer+4, 4); + memcpy(&curr_pitch, buffer + 4, 4); LOG(RECEIVE_LOG_LEVEL, "Get yaw:%f pitch:%f", curr_yaw, curr_pitch); - if(buffer[9] == 1){ - if(mark == 0){ + if (buffer[9] == 1) { + if (mark == 0) { mark = 1; mark_yaw = curr_yaw; mark_pitch = curr_pitch;