From ce568d65d1738e0dfe64e0f903c9aa8d05cd365b Mon Sep 17 00:00:00 2001
From: fctom1215 <fctom1215@outlook.com>
Date: 星期四, 27 二月 2020 22:14:50 +0800
Subject: [PATCH] 角度修正。

---
 lib/src/main/cpp/driver_test.cpp |   40 ++++++++++++++++++++++++----------------
 1 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/lib/src/main/cpp/driver_test.cpp b/lib/src/main/cpp/driver_test.cpp
index 9a183b8..d9adce2 100644
--- a/lib/src/main/cpp/driver_test.cpp
+++ b/lib/src/main/cpp/driver_test.cpp
@@ -79,7 +79,7 @@
 static int CurrExamMapIndex = -1;
 static int CurrEnterMapIndex = -1;
 
-static int CurrExamStatus = 0;      // 1 娴嬭瘯瀹屾垚 0 娴嬭瘯涓� -1 娴嬭瘯閿欒閫�鍑�
+static int CurrExamStatus = EXAM_AREA_NONE;      // 1 娴嬭瘯瀹屾垚 0 娴嬭瘯涓� -1 娴嬭瘯閿欒閫�鍑�
 
 static car_model *CarModel = NULL;
 static car_model *CarModelPrev = NULL;
@@ -132,6 +132,8 @@
 
     RtkBuffer = (rtk_info *) malloc(RTK_BUFFER_SIZE * sizeof(rtk_info));
     RtkBufferNum = RtkBufferIn = 0;
+
+    CurrExamStatus = EXAM_AREA_NONE;
 }
 
 static void ReadDriverExamPrimerTimeout(union sigval sig)
@@ -397,7 +399,7 @@
 
     if (map_id >= 0 && exam == 0) {
         CurrExamMapIndex = map_id;
-        CurrExamStatus = 2;
+        CurrExamStatus = EXAM_AREA_START;
     }
 }
 
@@ -497,7 +499,7 @@
                         MA_EnterMap(GetMapId(CurrEnterMapIndex, MapList, MapNum), 1);
 
                         CurrExamMapIndex = CurrEnterMapIndex;
-                        CurrExamStatus = 2;
+                        CurrExamStatus = EXAM_AREA_START;
                     }
                 } else {
                     if (ExitMap(CarModel, CurrEnterMapIndex, MapList, MapNum)) {
@@ -513,7 +515,7 @@
         if (CurrExamMapIndex >= 0) {
             int mtype = GetMapType(CurrExamMapIndex, MapList, MapNum);
 
-            if (CurrExamStatus == 2) {
+            if (CurrExamStatus == EXAM_AREA_START) {
                 DEBUG("CurrExamMapIndex %d mtype %d", GetMapId(CurrExamMapIndex, MapList, MapNum), mtype);
 
                 switch (mtype) {
@@ -522,20 +524,20 @@
                         MA_SendDebugInfo("杩涘叆鍊掕溅鍏ュ簱鍦哄湴 %d", GetMapId(CurrExamMapIndex, MapList, MapNum));
 
                         StartParkBottom(move, &rtkTime);
-                        CurrExamStatus = 0;
+                        CurrExamStatus = EXAM_AREA_RUN;
                         break;
                     case MAP_TYPE_STOP_START:
                         DEBUG("杩涘叆涓婂潯璧锋鍦哄湴");
                         MA_SendDebugInfo("杩涘叆涓婂潯璧锋鍦哄湴 %d", GetMapId(CurrExamMapIndex, MapList, MapNum));
                         StartSAS(move, &rtkTime);
-                        CurrExamStatus = 0;
+                        CurrExamStatus = EXAM_AREA_RUN;
                         break;
                     case MAP_TYPE_PART_EDGE:
                         DEBUG("杩涘叆渚ф柟浣嶅仠杞﹀満鍦�");
                         MA_SendDebugInfo("杩涘叆渚ф柟浣嶅仠杞﹀満鍦� %d", GetMapId(CurrExamMapIndex, MapList, MapNum));
                         StartParkEdge(move, &rtkTime);
 
-                        CurrExamStatus = 0;
+                        CurrExamStatus = EXAM_AREA_RUN;
                         break;
                     case MAP_TYPE_CURVE:
                         break;
@@ -543,38 +545,44 @@
                         DEBUG("杩涘叆鐩磋杞集鍦哄湴");
                         MA_SendDebugInfo("杩涘叆鐩磋杞集鍦哄湴 %d", GetMapId(CurrExamMapIndex, MapList, MapNum));
                         StartTurnA90(move, azimuth, &rtkTime);
-                        CurrExamStatus = 0;
+                        CurrExamStatus = EXAM_AREA_RUN;
                         break;
                     default:break;
                 }
-            } else if (CurrExamStatus == 0) {
+            } else if (CurrExamStatus == EXAM_AREA_RUN) {
+                int testing = 0;
                 switch (mtype) {
                     case MAP_TYPE_PARK_BUTTOM:
-                        CurrExamStatus = TestParkBottom(&MapList[CurrExamMapIndex].map,
+                        testing = TestParkBottom(&MapList[CurrExamMapIndex].map,
                                                         CarModel, CarModelPrev, speed, move, &rtkTime);
                         break;
                     case MAP_TYPE_STOP_START:
-                        CurrExamStatus = TestSAS(&MapList[CurrExamMapIndex].map, CarModel, CarModelPrev, speed, move, &rtkTime);
+                        testing = TestSAS(&MapList[CurrExamMapIndex].map, CarModel, CarModelPrev, speed, move, &rtkTime);
                         break;
                     case MAP_TYPE_PART_EDGE:
-                        CurrExamStatus = TestParkEdge(&MapList[CurrExamMapIndex].map, CarModel, CarModelPrev, speed, move, &rtkTime);
+                        testing = TestParkEdge(&MapList[CurrExamMapIndex].map, CarModel, CarModelPrev, speed, move, &rtkTime);
                         break;
                     case MAP_TYPE_CURVE:
                         break;
                     case MAP_TYPE_TURN_90:
-                        CurrExamStatus = TestTurnA90(&MapList[CurrExamMapIndex].map, CarModel, CarModelPrev, azimuth, speed, move, &rtkTime);
+                        testing = TestTurnA90(&MapList[CurrExamMapIndex].map, CarModel, CarModelPrev, azimuth, speed, move, &rtkTime);
                         break;
                     default:
-                        CurrExamStatus = 1;
                         break;
+                }
+
+                if (testing > 0) {
+                    CurrExamStatus = EXAM_AREA_RUN;
+                } else {
+                    CurrExamStatus = EXAM_AREA_END;
                 }
             }
 
-            if (CurrExamStatus == 1) {
+            if (CurrExamStatus != EXAM_AREA_RUN) {
                 // 鏌愰」缁撴潫
                 //DEBUG("閫�鍑哄満鍦� %d", GetMapId(CurrExamMapIndex, MapList, MapNum));
                 //MA_SendDebugInfo("閫�鍑哄満鍦� %d", GetMapId(CurrExamMapIndex, MapList, MapNum));
-
+                CurrExamStatus = EXAM_AREA_NONE;
                 CurrExamMapIndex = -1;
             }
         }

--
Gitblit v1.8.0