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