| | |
| | | |
| | | if (roadIndex < 0) { |
| | | DEBUG("停车距离超标,靠边停车结束"); |
| | | AddExamFault(33, rtkTime); |
| | | AddExamFault(40602, rtkTime); |
| | | return false; |
| | | } |
| | | |
| | |
| | | DistanceOf(p2, car->carXY[ car->right_rear_tire[TIRE_OUTSIDE] ]) > examParam.stop_car_edge_red_distance) { |
| | | DEBUG("停车超出路边0.5米"); |
| | | // 停车距离超过50厘米,不合格 |
| | | AddExamFault(36, rtkTime); |
| | | AddExamFault(40606, rtkTime); |
| | | return false; |
| | | } else if (DistanceOf(p1, car->carXY[ car->right_front_tire[TIRE_OUTSIDE] ]) > examParam.stop_car_edge_yellow_distance || |
| | | DistanceOf(p2, car->carXY[ car->right_rear_tire[TIRE_OUTSIDE] ]) > examParam.stop_car_edge_yellow_distance) { |
| | | DEBUG("停车超出路边0.3米"); |
| | | // 停车距离超过30厘米,扣10分 |
| | | AddExamFault(37, rtkTime); |
| | | AddExamFault(40607, rtkTime); |
| | | } |
| | | |
| | | time = *rtkTime; |
| | | setup = 4; |
| | | } |
| | | } else if (setup == 4) { |
| | |
| | | if (!BreakHandbreakReleaseSametime && brk.value == BREAK_INACTIVE && hbrk.value == BREAK_INACTIVE) { |
| | | // 拉手刹前,松脚刹,扣10分 |
| | | DEBUG("拉手刹前,松脚刹"); |
| | | AddExamFault(39, rtkTime); |
| | | AddExamFault(40609, rtkTime); |
| | | BreakHandbreakReleaseSametime = true; |
| | | } |
| | | |
| | |
| | | if (rpm.value > ENGINE_MIN_ROTATE) { |
| | | // 下车前,不熄火,扣5分 |
| | | DEBUG("下车前,不熄火"); |
| | | AddExamFault(40, rtkTime); |
| | | AddExamFault(40610, rtkTime); |
| | | } |
| | | if (hbrk.value == BREAK_INACTIVE) { |
| | | // 开门前,未拉手刹, 扣10分 |
| | | DEBUG("开门前,未拉手刹"); |
| | | AddExamFault(38, rtkTime); |
| | | AddExamFault(40608, rtkTime); |
| | | } |
| | | time = *rtkTime; |
| | | OpenDoor = true; |
| | |
| | | if (TimeGetDiff(rtkTime, &time) > examParam.stop_car_open_door_allow_time) { |
| | | // 开门时间超过15秒,不合格 |
| | | DEBUG("开门时间超过15秒"); |
| | | AddExamFault(35, rtkTime); |
| | | AddExamFault(40605, rtkTime); |
| | | return false; |
| | | } |
| | | } else { |
| | | if (TimeGetDiff(rtkTime, &time) > D_SEC(30)) { |
| | | DEBUG("完成停车超时"); |
| | | PlayTTS(examParam.stop_car_end_tts, NULL); |
| | | return false; |
| | | } |
| | | } |
| | |
| | | if (ReadOdo() - beginOdo > examParam.stop_car_limit_distance) { |
| | | // 150米内未停车,不合格 |
| | | DEBUG("停车距离超标,靠边停车结束"); |
| | | AddExamFault(33, rtkTime); |
| | | AddExamFault(40602, rtkTime); |
| | | return false; |
| | | } |
| | | |