| | |
| | | parkSuccess = false; |
| | | parkStatus = 0; |
| | | occurMoveBack = false; |
| | | |
| | | // 仅当发生倒车,才意味着项目开始 |
| | | if (moveStatus == -1) { |
| | | occurMoveBack = true; |
| | | moveBackTimePoint = TimeMakeComposite(rtkTime->hh, rtkTime->mm, rtkTime->ss, rtkTime->mss*10); |
| | |
| | | int TestParkEdge(const Polygon *map, const car_model *car, const car_model *carPrev, double speed, int moveStatus, const struct RtkTime *rtkTime) |
| | | { |
| | | if (CrashRedLine1(map, car)) { |
| | | if (!occurCrashRedLine1) { |
| | | if (!occurCrashRedLine1 && occurMoveBack) { |
| | | // 车轮压边线,每次扣10分 |
| | | AddExamFault(23, rtkTime); |
| | | DEBUG("车轮压边线"); |
| | | occurCrashRedLine1 = true; |
| | | } |
| | | occurCrashRedLine1 = true; |
| | | } else { |
| | | occurCrashRedLine1 = false; |
| | | } |
| | | |
| | | if (CrashRedLine2(map, car)) { |
| | | if (!occurCrashRedLine2) { |
| | | if (!occurCrashRedLine2 && occurMoveBack) { |
| | | // 车身压库位线,每次扣10分 |
| | | AddExamFault(24, rtkTime); |
| | | DEBUG("车身压库位线"); |
| | | occurCrashRedLine2 = true; |
| | | } |
| | | occurCrashRedLine2 = true; |
| | | } else { |
| | | occurCrashRedLine2 = false; |
| | | } |
| | |
| | | |
| | | if (moveStatus == storeMoveStatusBeforeStop) { |
| | | // 同方向再启动,继续判断是否停车超时 |
| | | if (tp - stopTimepoint >= STOP_CAR_TIME) { |
| | | if (tp - stopTimepoint >= STOP_CAR_TIME && occurMoveBack) { |
| | | // 停车超2秒,每次扣5分 |
| | | AddExamFault(26, rtkTime); |
| | | DEBUG("停车超时"); |