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