From cea2a94fc97e79897cdfd217be8250c075974a1a Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期日, 07 二月 2021 17:55:42 +0800 Subject: [PATCH] 坡起限制条件和手刹起步全阶段生效. --- lib/src/main/cpp/test_items/stop_and_start.cpp | 17 ++++++++++++++++- 1 files changed, 16 insertions(+), 1 deletions(-) diff --git a/lib/src/main/cpp/test_items/stop_and_start.cpp b/lib/src/main/cpp/test_items/stop_and_start.cpp index 47690a2..12e8000 100644 --- a/lib/src/main/cpp/test_items/stop_and_start.cpp +++ b/lib/src/main/cpp/test_items/stop_and_start.cpp @@ -44,9 +44,17 @@ static double DistanceOfTire2Edge(const Polygon *map, const car_model *car); static bool ExitTestArea(const Polygon *map, const car_model *car); -void StartSAS(int index, int moveDirect, const struct RtkTime *rtkTime) +void StartSAS(int index, const Polygon *map, const car_model *car, int moveDirect, const struct RtkTime *rtkTime) { + double yawEdge = YawOf(map->point[8], map->point[0]); + + if (moveDirect < 0 || DeltaYaw(car->yaw, yawEdge) >= 90.0) { + testing = false; + return; + } + DEBUG("杩涘叆鍧¤捣椤圭洰"); + testing = true; mapIndex = index; prevMoveDirect = moveDirect; @@ -68,6 +76,9 @@ int TestSAS(const Polygon *map, const car_model *car, const car_model *carPrev, double speed, int moveDirect, const struct RtkTime *rtkTime) { + if (!testing) + return 0; + if (CrashRedLine(map, car)) { // 杞﹁疆鍘嬬嚎锛屼笉鍚堟牸 if (!occurCrashRedLine) { @@ -81,6 +92,10 @@ if (ExitTestArea(map, car)) { // 椹剁娴嬭瘯鍖� + if (!stopCar) { + // 涓嶅仠杞︾洿鎺ョ寮� + AddExamFault(10103, rtkTime); + } testing = false; } -- Gitblit v1.8.0