From 03a05501800d2c02bca1c05ca6f7080d715aba23 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期五, 18 九月 2020 15:41:50 +0800 Subject: [PATCH] 坐标 --- lib/src/main/cpp/test_items2/road_exam.cpp | 34 +++++++++++++++++++++++++++++++--- 1 files changed, 31 insertions(+), 3 deletions(-) diff --git a/lib/src/main/cpp/test_items2/road_exam.cpp b/lib/src/main/cpp/test_items2/road_exam.cpp index 0ade5a9..8a1c97f 100644 --- a/lib/src/main/cpp/test_items2/road_exam.cpp +++ b/lib/src/main/cpp/test_items2/road_exam.cpp @@ -90,9 +90,11 @@ static bool occurSlide; static struct RtkTime crashGreenRunTime, crashGreenStartTime, stopTimepoint; - +static struct RtkTime gearChangeTimePoint; static struct RtkTime gearErrorTimePoint; static struct RtkTime gearNSlideTimePoint; + +static int gearChange; static car_sensor_value_t turnSignalStatus; @@ -1324,6 +1326,21 @@ occurSecondBreak = false; } + // 涓ゆ鎹㈡尅涓嶈繘 + static int prevGear = -1; + + int currGear = ReadCarStatus(GEAR); + if (currGear != GEAR_N && prevGear == GEAR_N) { + // 涓�娆℃崲鎸� + if (gearChange == currGear && TimeGetDiff(rtkTime, &gearChangeTimePoint) < D_SEC(5)) { + AddExamFault(7, rtkTime); + } + + gearChange = currGear; + gearChangeTimePoint = *rtkTime; + } + prevGear = currGear; + // 鎸′綅鍖归厤妫�娴� bool currGearError = false; bool currGearNSlide = false; @@ -1475,9 +1492,9 @@ if (RoadMap.calibrate) { if (currExamMapIndex < 0 && oldid >= 0) { - RoadChange(oldid, 0); + RoadChange(RoadMap.roads[oldid].id, 0); } else if (currExamMapIndex >= 0) { - RoadChange(currExamMapIndex, 1); + RoadChange(RoadMap.roads[currExamMapIndex].id, 1); } } Lane.guide = 0; @@ -1648,6 +1665,9 @@ RoadExamItem[RoadExamStatus] = ROAD_EXAM_ITEM_EXECED; if (RoadExamStatus == ROAD_EXAM_ITEM_CAR_START) { freeRunExceptDistance = 60.0; + } else if (RoadExamStatus == ROAD_EXAM_ITEM_CAR_STOP) { + // 鑰冭瘯缁撴潫 + MA_SendExamStatus(1, 1); } else { freeRunExceptDistance = 2;//250.0; } @@ -1674,6 +1694,14 @@ } else if (RoadExamStatus == ROAD_EXAM_READY_NEXT && item == 2) { StartOvertakeExam(Lane.no); RoadExamStatus = ROAD_EXAM_ITEM_OVER_TAKE; + } else if (RoadExamStatus == ROAD_EXAM_READY_NEXT && item == 5) { + if (RoadExamItem[ROAD_EXAM_ITEM_STRAIGHT] == ROAD_EXAM_ITEM_EXECED && + RoadExamItem[ROAD_EXAM_ITEM_OP_GEAR] == ROAD_EXAM_ITEM_EXECED && + RoadExamItem[ROAD_EXAM_ITEM_CHANGE_LANE] == ROAD_EXAM_ITEM_EXECED && + RoadExamItem[ROAD_EXAM_ITEM_OVER_TAKE] == ROAD_EXAM_ITEM_EXECED) { + StartStopCarExam(); + RoadExamStatus = ROAD_EXAM_ITEM_CAR_STOP; + } } } -- Gitblit v1.8.0