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