| | |
| | | static int parkStatus; |
| | | static bool occurMoveBack, parkSuccess; |
| | | static uint32_t moveBackTimePoint; |
| | | static bool testing = false; |
| | | |
| | | static bool CrashRedLine1(const Polygon *map, const car_model *car); |
| | | static bool CrashRedLine2(const Polygon *map, const car_model *car); |
| | |
| | | |
| | | void StartParkEdge(int moveStatus, const struct RtkTime *rtkTime) |
| | | { |
| | | DEBUG("进入侧方停车场地"); |
| | | |
| | | testing = true; |
| | | |
| | | occurCrashRedLine1 = occurCrashRedLine2 = false; // 这个科目规定特殊点,发生一次扣10分,而不直接淘汰 |
| | | reportExamTimeout = false; |
| | | |
| | |
| | | occurMoveBack = true; |
| | | moveBackTimePoint = TimeMakeComposite(rtkTime->hh, rtkTime->mm, rtkTime->ss, rtkTime->mss*10); |
| | | } |
| | | |
| | | DEBUG("进入侧方停车场地"); |
| | | } |
| | | |
| | | int TestParkEdge(const Polygon *map, const car_model *car, const car_model *carPrev, double speed, int moveStatus, const struct RtkTime *rtkTime) |
| | | { |
| | | int status = 0; |
| | | |
| | | if (CrashRedLine1(map, car)) { |
| | | if (!occurCrashRedLine1) { |
| | | // 车轮压边线,每次扣10分 |
| | |
| | | AddExamFault(21, rtkTime); |
| | | DEBUG("直接驶离测试区,移库不入"); |
| | | } |
| | | status = 1; |
| | | testing = false; |
| | | goto TEST_END; |
| | | } |
| | | |
| | | if (occurMoveBack) { |
| | |
| | | // 倒车切换到前进 |
| | | if (moveStatus == 1 && tp - stopTimepoint >= STOP_CAR_TIME) { |
| | | if (parkStatus == 0) { |
| | | |
| | | if (EnterParking(map, car)) { |
| | | parkStatus = 1; |
| | | parkSuccess = true; |
| | | } |
| | | } |
| | | |
| | | if (!parkSuccess) { |
| | |
| | | prevMoveStatus = moveStatus; |
| | | } else if (moveStatus == 0 && parkStatus == 0) { |
| | | uint32_t tp = TimeMakeComposite(rtkTime->hh, rtkTime->mm, rtkTime->ss, rtkTime->mss*10); |
| | | tp = tp * 1000 + rtkTime->mss * 10; |
| | | |
| | | if (tp - stopTimepoint >= STOP_CAR_TIME) { |
| | | if (EnterParking(map, car)) { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | return status; |
| | | TEST_END: |
| | | return testing ? 0 : 1; |
| | | } |
| | | |
| | | // 车轮是否压道路边线 |