| | |
| | | DEBUG("ParkBottom End"); |
| | | } |
| | | |
| | | int TestParkBottom(vector<int>&err, const Polygon *map, const car_model *car, const car_model *carPrev, double speed, int run_status) |
| | | int TestParkBottom(vector<int>&err, const Polygon *map, const car_model *car, const car_model *carPrev, double speed, int run_status, const struct RtkTime *rtkTime) |
| | | { |
| | | int status = 0; |
| | | |
| | |
| | | if (parkTimeout) { |
| | | // 不合格:动作超时 |
| | | err.push_back(10); |
| | | |
| | | |
| | | AddExamFault(10, rtkTime); |
| | | status = -1; |
| | | } |
| | | // 是否压线 |
| | | if (CrashRedLine(map, car)) { |
| | | // 不合格:车身出线 |
| | | err.push_back(7); |
| | | AddExamFault(7, rtkTime); |
| | | status = -1; |
| | | } |
| | | |
| | |
| | | if (stopCar2S && currTarget != FIRST_TOUCH_CTRL_LINE) { |
| | | // 扣5分:中途停车超过2秒 |
| | | err.push_back(11); |
| | | AddExamFault(11, rtkTime); |
| | | } |
| | | |
| | | if (!((leftTireCrossLeftLine && rightTireCrossLeftLine) || |
| | |
| | | } else { |
| | | // 不合格:未按规定线路行驶(直接跑出测试区了) |
| | | err.push_back(6); |
| | | AddExamFault(6, rtkTime); |
| | | status = -1; |
| | | DEBUG("直接跑出测试区了"); |
| | | } |
| | |
| | | } else if (the_ctrl_line_crossed != 0) { |
| | | // 不合格:未按规定线路行驶(未回到起始点) |
| | | err.push_back(6); |
| | | AddExamFault(6, rtkTime); |
| | | status = -1; |
| | | } |
| | | } |
| | |
| | | if (first_ctrl_line_id > 0 && first_ctrl_line_id == the_ctrl_line_crossed) { |
| | | // 不合格:未按规定线路行驶(试图做2次同方向的倒库) |
| | | err.push_back(6); |
| | | AddExamFault(6, rtkTime); |
| | | status = -1; |
| | | } else if (the_ctrl_line_crossed > 0 && first_ctrl_line_id == 0) { |
| | | first_ctrl_line_id = the_ctrl_line_crossed; |
| | |
| | | } else if (currTarget != THIRD_TOUCH_CTRL_LINE) { |
| | | // 不合格:倒车前,2前轮没驶过控制线 |
| | | err.push_back(9); |
| | | AddExamFault(9, rtkTime); |
| | | status = -1; |
| | | } |
| | | if (carStopEvent) |
| | |
| | | if (stopCar2S) { |
| | | // 扣5分:中途停车 |
| | | err.push_back(11); |
| | | AddExamFault(11, rtkTime); |
| | | } |
| | | |
| | | carStopEvent = false; |
| | |
| | | if (!carParkSuccess) { |
| | | // 不合格:倒库不入 |
| | | err.push_back(8); |
| | | AddExamFault(8, rtkTime); |
| | | status = -1; |
| | | } else if (currTarget == FIRST_PARK) { |
| | | currTarget = SECOND_TOUCH_CTRL_LINE; |