From 683b1595260e638d1d3c6cc0d6543a72f6d6f925 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期二, 12 一月 2021 14:36:42 +0800
Subject: [PATCH] 扣分码标准化

---
 lib/src/main/cpp/test_items2/road_exam.cpp |   56 +++++++++++++++++++++++++++++++-------------------------
 1 files changed, 31 insertions(+), 25 deletions(-)

diff --git a/lib/src/main/cpp/test_items2/road_exam.cpp b/lib/src/main/cpp/test_items2/road_exam.cpp
index 22102d0..166cbc3 100644
--- a/lib/src/main/cpp/test_items2/road_exam.cpp
+++ b/lib/src/main/cpp/test_items2/road_exam.cpp
@@ -859,17 +859,17 @@
     if (newLineType >= 100) {
         newLineType -= 100;
         DEBUG("闈炴硶璺ㄨ秺鍒嗛亾绾�");
-        AddExamFault(11, rtkTime);
+        AddExamFault(30119, rtkTime);
     }
     if (newLineType == LINE_SOLID && CrashLineType != LINE_SOLID) {
         // 杞﹁締琛岄┒涓獞杞ц溅閬撲腑蹇冨疄绾挎垨鑰呰溅閬撹竟缂樺疄绾匡紝涓嶅悎鏍�
         DEBUG("鎾為亾璺竟缂樼嚎");
-        AddExamFault(11, rtkTime);
+        AddExamFault(30119, rtkTime);
     }
     if (newLineType == LINE_BOUNDARY && CrashLineType != LINE_BOUNDARY) {
         // 杞﹁締瓒婄晫锛岄�冭窇浜嗭紝涓嶅悎鏍�
         DEBUG("杞﹁締瓒婄晫");
-        AddExamFault(3, rtkTime);
+        AddExamFault(30103, rtkTime);
     }
 
     if (newLineType == LINE_DOTTED || newLineType == LINE_HALF_SOLID_LEFT || newLineType == LINE_HALF_SOLID_RIGHT) {
@@ -896,7 +896,7 @@
                     DEBUG("闀挎椂闂村帇铏氱嚎");
                     checkCrashGreenTimeout = 2;
                     // 闀挎椂闂撮獞杞ц溅閬撳垎鐣岀嚎琛岄┒锛屼笉鍚堟牸
-                    AddExamFault(12, rtkTime);
+                    AddExamFault(30120, rtkTime);
                 }
             }
         } else {
@@ -935,7 +935,7 @@
                 if (turnSignalStatus.value != LEFT_TURN_LIGHT) {
                     DEBUG("鍙樿皟鏈墦鐏�!!");
                     // 娌℃墦鐏紝涓嶅悎鏍�
-                    AddExamFault(13, rtkTime);
+                    AddExamFault(30121, rtkTime);
                 } else if (TimeGetDiff(&crashGreenStartTime, &turnSignalStatus.time) <
                            examParam.turn_signal_min_advance) {
                     DEBUG("杞悜鐏椂闂翠笉瓒� %02d-%02d-%02d %02d:%02d:%02d.%03d  -> %02d-%02d-%02d %02d:%02d:%02d.%03d",
@@ -946,13 +946,13 @@
                           turnSignalStatus.time.mm, turnSignalStatus.time.ss, turnSignalStatus.time.mss * 10);
 
                     // 涓嶈冻3绉掞紝涓嶅悎鏍�
-                    AddExamFault(14, rtkTime);
+                    AddExamFault(30122, rtkTime);
                 }
             } else {
                 if (turnSignalStatus.value != RIGHT_TURN_LIGHT) {
                     DEBUG("鍙樿皟鏈墦鐏�!!");
                     // 娌℃墦鐏紝涓嶅悎鏍�
-                    AddExamFault(13, rtkTime);
+                    AddExamFault(30121, rtkTime);
                 } else if (TimeGetDiff(&crashGreenStartTime, &turnSignalStatus.time) <
                         examParam.turn_signal_min_advance) {
                     DEBUG("杞悜鐏椂闂翠笉瓒� %02d-%02d-%02d %02d:%02d:%02d.%03d  -> %02d-%02d-%02d %02d:%02d:%02d.%03d",
@@ -962,13 +962,13 @@
                           turnSignalStatus.time.YY, turnSignalStatus.time.MM, turnSignalStatus.time.DD, turnSignalStatus.time.hh,
                           turnSignalStatus.time.mm, turnSignalStatus.time.ss, turnSignalStatus.time.mss * 10);
                     // 涓嶈冻3绉掞紝涓嶅悎鏍�
-                    AddExamFault(14, rtkTime);
+                    AddExamFault(30122, rtkTime);
                 }
             }
 
             if (((ChangeLane.gain < 0 && gain < 0) || (ChangeLane.gain > 0 && gain > 0)) && TimeGetDiff(rtkTime, &ChangeLane.time) < examParam.continuous_change_lane_min_time) {
                 DEBUG("杩炵画鍙橀亾");
-                AddExamFault(15, rtkTime);
+                AddExamFault(30125, rtkTime);
             }
             ChangeLane.gain = gain;
             ChangeLane.time = *rtkTime;
@@ -1304,7 +1304,7 @@
                 occurOverSpeed = true;
                 // 瓒呴�燂紝涓嶅悎鏍�
                 DEBUG("瓒呴�� %f", ConvertMs2KMh(speed));
-                AddExamFault(10, rtkTime);
+                AddExamFault(30118, rtkTime);
             }
         } else if (ConvertMs2KMh(speed) < examParam.road_max_speed - 5) {
             occurOverSpeed = false;
@@ -1316,7 +1316,7 @@
             if (!occurSecondBreak) {
                 DEBUG("鍓埞杞﹀姩浣滀簡");
                 occurSecondBreak = true;
-                AddExamFault(17, rtkTime);
+                AddExamFault(30132, rtkTime);
             }
         } else {
             occurSecondBreak = false;
@@ -1329,7 +1329,7 @@
         if (currGear != GEAR_N && prevGear == GEAR_N) {
             // 涓�娆℃崲鎸�
             if (gearChange == currGear && TimeGetDiff(rtkTime, &gearChangeTimePoint) < D_SEC(5)) {
-                AddExamFault(7, rtkTime);
+                AddExamFault(30113, rtkTime);
             }
 
             gearChange = currGear;
@@ -1392,7 +1392,7 @@
                 TimeGetDiff(rtkTime, &gearNSlideTimePoint) > examParam.gear_n_allow_time) {
                 // 绌烘。婊戣瓒�5绉掞紝涓嶅悎鏍�
                 DEBUG("鎸′綅婊戣锛岃秴杩�5绉�");
-                AddExamFault(8, rtkTime);
+                AddExamFault(30114, rtkTime);
                 GearNSlideStatus = 2;
             }
         } else if (GearNSlideStatus != 0) {
@@ -1409,7 +1409,7 @@
         if (gearErrorTime > examParam.gear_speed_error_cumulative_time) {
             // 绱15绉掞紝鎸′綅-杞﹂�熶笉鍖归厤锛屼笉鍚堟牸
             DEBUG("鎸′綅閿欒瓒呰繃15绉�");
-            AddExamFault(6, rtkTime);
+            AddExamFault(30112, rtkTime);
             gearErrorTime = 0;
         }
 
@@ -1429,7 +1429,7 @@
 
                 if (slideNormalDistance) {
                     // 鍚庢粦锛屾墸10鍒�
-                    AddExamFault(18, rtkTime);
+                    AddExamFault(30202, rtkTime);
                     DEBUG("鍚庢粦瓒呰繃10鍘樼背, 浣嗕笉瓒呰繃30鍘樼背");
                 }
 
@@ -1447,7 +1447,7 @@
             if (TimeGetDiff(rtkTime, &stopTimepoint) >= CorrectPauseCriteria(examParam.road_pause_criteria) && !StopCarOnRedArea &&
                 StopOnRedArea(RoadMap, car)) {
                 // 鍋滆溅瓒�2绉掞紝鍋滃湪绾㈠尯锛屼笉鍚堟牸
-                AddExamFault(16, rtkTime);
+                AddExamFault(30128, rtkTime);
                 DEBUG("绂佸仠鍖哄仠杞�");
                 StopCarOnRedArea = true;
             }
@@ -1462,7 +1462,7 @@
 
                 if (slideDistance > examParam.road_slide_red_distance && !slideLongDistance) {
                     // 鍚庢粦瓒呰繃30鍘樼背, 涓嶅悎鏍�
-                    AddExamFault(5, rtkTime);
+                    AddExamFault(30107, rtkTime);
                     DEBUG("鍚庢粦瓒呰繃30鍘樼背");
                     slideLongDistance = true;
                     slideNormalDistance = false;
@@ -1528,6 +1528,7 @@
             }
         }
     }
+
     ExitTarget(RoadMap, car, CarModelList, rtkTime);
 
     if (RoadMap.calibrate == 0) {
@@ -1552,7 +1553,7 @@
                 if (!GetErrorLaneRpt(currExamMapIndex, stop_line_index)) {
                     DEBUG("涓嶆寜瑙勫畾杞﹂亾鏍囧悜琛岄┒ %d: %d  鏈熸湜 = %d guide = %d", currExamMapIndex,
                           stop_line_index, act, Lane.guide);
-                    AddExamFault(9, rtkTime);
+                    AddExamFault(30117, rtkTime);
                     SetErrorLaneRpt(currExamMapIndex, stop_line_index, true);
                 }
             }
@@ -1568,7 +1569,9 @@
 
         road_end_point_t ep = NearbyRoadEndPoint(currExamMapIndex, RoadMap, car);
         // 鎻愮ず璺彛鎬庝箞璧�
-        HintCrossing(RoadMap, ep.road_index, ep.stop_line_index, ep.distance);
+        if (forward == 1) {
+            HintCrossing(RoadMap, ep.road_index, ep.stop_line_index, ep.distance);
+        }
 
         double freeSepDis = SeparateLength(RoadMap, Lane, car);
 
@@ -1692,7 +1695,8 @@
                 freeRunExceptDistance = 60.0;
             } else if (RoadExamStatus == ROAD_EXAM_ITEM_CAR_STOP) {
                 // 鑰冭瘯缁撴潫
-                MA_SendExamStatus(1, 1);
+                MA_SendExamStatus(0, 0);
+                PlayTTS("鑰冭瘯缁撴潫", NULL);
             } else {
                 freeRunExceptDistance = 2;//250.0;
             }
@@ -1841,23 +1845,23 @@
                     if (turnSignalStatus.value != LEFT_TURN_LIGHT) {
                         DEBUG("鍙樿皟鏈墦鐏�!!");
                         // 娌℃墦鐏紝涓嶅悎鏍�
-                        AddExamFault(13, rtkTime);
+                        AddExamFault(30121, rtkTime);
                     } else if (TimeGetDiff(&beginTurnTime, &turnSignalStatus.time) <
                             examParam.turn_signal_min_advance) {
                         DEBUG("杞悜鐏椂闂翠笉瓒�");
                         // 涓嶈冻3绉掞紝涓嶅悎鏍�
-                        AddExamFault(14, rtkTime);
+                        AddExamFault(30122, rtkTime);
                     }
                 } else {
                     if (turnSignalStatus.value != RIGHT_TURN_LIGHT) {
                         DEBUG("鍙樿皟鏈墦鐏�!!");
                         // 娌℃墦鐏紝涓嶅悎鏍�
-                        AddExamFault(13, rtkTime);
+                        AddExamFault(30121, rtkTime);
                     } else if (TimeGetDiff(&beginTurnTime, &turnSignalStatus.time) <
                             examParam.turn_signal_min_advance) {
                         DEBUG("杞悜鐏椂闂翠笉瓒�");
                         // 涓嶈冻3绉掞紝涓嶅悎鏍�
-                        AddExamFault(14, rtkTime);
+                        AddExamFault(30122, rtkTime);
                     }
                 }
             } else if (turnTimeCnt > D_SEC(10)) {
@@ -1986,6 +1990,8 @@
         }
     }
 
+//    DEBUG("妫�鏌ヨЕ鍙戠偣 閬� %d 璺� %d", RoadMap.examScheme[0].triggerLines[0].road, RoadMap.roads[index].id);
+
     for (int j = 0; j < RoadMap.examScheme[0].triggerLines.size(); ++j) {
         if (RoadMap.examScheme[0].triggerLines[j].road == RoadMap.roads[index].id) {
 
@@ -2098,7 +2104,7 @@
 
                 TriggerDetect.insert(pair<int, trigger_detect_t>(j, up));
 
-                DEBUG("瑙傚療瀛�<%d> 鍔犲叆 %f", j, MAX(dist1, dist2));
+                DEBUG("瑙傚療瀛�<%d> road_id %d 鍔犲叆 (%f,%f)", j, RoadMap.roads[index].id, RoadMap.examScheme[0].triggerLines[j].points[0].X, RoadMap.examScheme[0].triggerLines[j].points[0].Y);
             }
         }
     }

--
Gitblit v1.8.0