From 25777013517d1bd398a98504826a417236706af2 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期二, 24 三月 2020 19:01:29 +0800 Subject: [PATCH] 车辆信号完善,路边停车完善。 --- lib/src/main/cpp/test_items2/road_exam.cpp | 26 ++++++++++++++------------ 1 files changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/src/main/cpp/test_items2/road_exam.cpp b/lib/src/main/cpp/test_items2/road_exam.cpp index b158dd5..b280802 100644 --- a/lib/src/main/cpp/test_items2/road_exam.cpp +++ b/lib/src/main/cpp/test_items2/road_exam.cpp @@ -13,6 +13,7 @@ #include "through_something.h" #include "../master/comm_if.h" #include "drive_straight.h" +#include "stop_car.h" #include <vector> #include <list> @@ -55,13 +56,7 @@ static bool slideNormalDistance; static bool occurSlide; -static struct drive_timer { - int hour; - int min; - int sec; - int msec; -} crashGreenRunTime, crashGreenCmpTime, crashGreenStartTime, turnSignalChangeTime; - +static struct drive_timer crashGreenRunTime, crashGreenCmpTime, crashGreenStartTime, turnSignalChangeTime; static struct drive_timer gearErrorTimePoint; static struct drive_timer gearNSlideTimePoint; @@ -85,7 +80,7 @@ static const int SPEED_GEAR_TABLE[][2] = {{0, 20}, {5, 30}, {15, 40}, {25, 10000}, {35, 10000}}; static void TestRoadStartCar(const car_model *car, double speed, int moveDirect, const struct RtkTime *rtkTime); -static void Rtk2DriveTimer(struct drive_timer &tm, const struct RtkTime *rtkTime); + static char isTurn(int currYaw, int prevYaw, int &ang); static char CheckCarTurn(LIST_CAR_MODEL &CarModelList); static bool CrashRedLine(LIST_ROAD_MAP &RoadMapList, const car_model *car); @@ -494,22 +489,29 @@ StartThroughExam(currExamMapIndex, RoadMapList); } else if (RoadMapList[currExamMapIndex].type == DRIVE_STRAIGHT_MAP) { StartDriveStraightExam(currExamMapIndex, RoadMapList); + } else if (RoadMapList[currExamMapIndex].type == STOP_CAR_MAP) { + StartStopCarExam(currExamMapIndex, RoadMapList); } } } else if (startCar == START_CAR_DONE) { int prevIdx = currExamMapIndex; - if (currExamMapIndex >= THROUGH_INTERSECTION_MAP && currExamMapIndex <= TURN_AROUND_MAP) { + if (RoadMapList[currExamMapIndex].type >= THROUGH_INTERSECTION_MAP && currExamMapIndex <= TURN_AROUND_MAP) { currExamMapIndex = ExecuteThroughExam(currExamMapIndex, RoadMapList, car, CarModelList, speed, moveDirect, rtkTime); } - else if (currExamMapIndex == DRIVE_STRAIGHT_MAP) { + else if (RoadMapList[currExamMapIndex].type == DRIVE_STRAIGHT_MAP) { currExamMapIndex = ExecuteDriveStraightExam(currExamMapIndex, RoadMapList, car, CarModelList, speed, moveDirect, rtkTime); + } else if (RoadMapList[currExamMapIndex].type == STOP_CAR_MAP) { + currExamMapIndex = ExecuteStopCarExam(currExamMapIndex, RoadMapList, car, + CarModelList, speed, moveDirect, rtkTime); } if (currExamMapIndex == -1) { - MA_EnterMap(RoadMapList[prevIdx].id, RoadMapList[prevIdx].type, 1); + DEBUG("绂诲紑鍖哄煙 index %d id %d type %d", prevIdx, RoadMapList[prevIdx].id, RoadMapList[prevIdx].type); + + MA_EnterMap(RoadMapList[prevIdx].id, RoadMapList[prevIdx].type, 0); } } } @@ -596,7 +598,7 @@ return ret; } -static void Rtk2DriveTimer(struct drive_timer &tm, const struct RtkTime *rtkTime) +void Rtk2DriveTimer(struct drive_timer &tm, const struct RtkTime *rtkTime) { tm.hour = rtkTime->hh; tm.min = rtkTime->mm; -- Gitblit v1.8.0