From c484cbb09d445e2ab30ea011c6d2ffd87202bb26 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期五, 23 十月 2020 18:05:34 +0800
Subject: [PATCH] 添加可用户配置的评判参数。

---
 lib/src/main/cpp/test_items2/stop_car.cpp |   24 +++++++++---------------
 1 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/lib/src/main/cpp/test_items2/stop_car.cpp b/lib/src/main/cpp/test_items2/stop_car.cpp
index 32c6899..8071814 100644
--- a/lib/src/main/cpp/test_items2/stop_car.cpp
+++ b/lib/src/main/cpp/test_items2/stop_car.cpp
@@ -17,13 +17,7 @@
 
 static bool BreakHandbreakReleaseSametime, OpenDoor;
 
-static const int ENGINE_MIN_ROTATE = 200;
-static const double MAX_STOP_DISTANCE = 150;
-
-static const uint32_t STOP_CAR_TIME = D_SEC(2);
-static const uint32_t OPEN_DOOR_TIMEOUT = D_SEC(15);
-static const double DISTANCE_TO_ROAD_EDGE_1 = 0.5;
-static const double DISTANCE_TO_ROAD_EDGE_2 = 0.3;
+static const int ENGINE_MIN_ROTATE = 100;
 
 static double beginOdo;
 static int setup;
@@ -38,7 +32,7 @@
     BreakHandbreakReleaseSametime = false;
     setup = 0;
     OpenDoor = false;
-    PlayTTS("璇烽潬杈瑰仠杞�", TtsBack);
+    PlayTTS(examParam.stop_car_begin_tts, TtsBack);
 }
 
 bool TestStopCar(road_exam_map &RoadMap, int roadIndex, const car_model *car, int moveDirect, const struct RtkTime *rtkTime) {
@@ -71,14 +65,14 @@
             PointF p1 = CalcProjectionWithRoadEdge(RoadMap.roads[roadIndex].rightEdge, car->carXY[ car->right_front_tire[TIRE_OUTSIDE] ]);
             PointF p2 = CalcProjectionWithRoadEdge(RoadMap.roads[roadIndex].rightEdge, car->carXY[ car->right_rear_tire[TIRE_OUTSIDE] ]);
 
-            if (DistanceOf(p1, car->carXY[ car->right_front_tire[TIRE_OUTSIDE] ]) > DISTANCE_TO_ROAD_EDGE_1 ||
-                    DistanceOf(p2, car->carXY[ car->right_rear_tire[TIRE_OUTSIDE] ]) > DISTANCE_TO_ROAD_EDGE_1) {
+            if (DistanceOf(p1, car->carXY[ car->right_front_tire[TIRE_OUTSIDE] ]) > examParam.stop_car_edge_red_distance ||
+                    DistanceOf(p2, car->carXY[ car->right_rear_tire[TIRE_OUTSIDE] ]) > examParam.stop_car_edge_red_distance) {
                 DEBUG("鍋滆溅瓒呭嚭璺竟0.5绫�");
                 // 鍋滆溅璺濈瓒呰繃50鍘樼背锛屼笉鍚堟牸
                 AddExamFault(36, rtkTime);
                 return false;
-            } else if (DistanceOf(p1, car->carXY[ car->right_front_tire[TIRE_OUTSIDE] ]) > DISTANCE_TO_ROAD_EDGE_2 ||
-                       DistanceOf(p2, car->carXY[ car->right_rear_tire[TIRE_OUTSIDE] ]) > DISTANCE_TO_ROAD_EDGE_2) {
+            } else if (DistanceOf(p1, car->carXY[ car->right_front_tire[TIRE_OUTSIDE] ]) > examParam.stop_car_edge_yellow_distance ||
+                       DistanceOf(p2, car->carXY[ car->right_rear_tire[TIRE_OUTSIDE] ]) > examParam.stop_car_edge_yellow_distance) {
                 DEBUG("鍋滆溅瓒呭嚭璺竟0.3绫�");
                 // 鍋滆溅璺濈瓒呰繃30鍘樼背锛屾墸10鍒�
                 AddExamFault(37, rtkTime);
@@ -115,7 +109,7 @@
                 OpenDoor = true;
             }
 
-            if (TimeGetDiff(rtkTime, &time) > OPEN_DOOR_TIMEOUT) {
+            if (TimeGetDiff(rtkTime, &time) > examParam.stop_car_open_door_allow_time) {
                 // 寮�闂ㄦ椂闂磋秴杩�15绉掞紝涓嶅悎鏍�
                 DEBUG("寮�闂ㄦ椂闂磋秴杩�15绉�");
                 AddExamFault(35, rtkTime);
@@ -125,12 +119,12 @@
 
         if (OpenDoor && door.value == DOOR_CLOSE) {
             DEBUG("瀹屾垚鍋滆溅");
-            PlayTTS("闈犺竟鍋滆溅缁撴潫", NULL);
+            PlayTTS(examParam.stop_car_end_tts, NULL);
             return false;
         }
     }
 
-    if (ReadOdo() - beginOdo > MAX_STOP_DISTANCE) {
+    if (ReadOdo() - beginOdo > examParam.stop_car_limit_distance) {
         // 150绫冲唴鏈仠杞︼紝涓嶅悎鏍�
         DEBUG("鍋滆溅璺濈瓒呮爣锛岄潬杈瑰仠杞︾粨鏉�");
         AddExamFault(33, rtkTime);

--
Gitblit v1.8.0