| | |
| | | return CROSSING_NOT_HINT; |
| | | } |
| | | |
| | | static void ResetCrossingStatus(int roadIndex) |
| | | /***************************************************** |
| | | * 以正常通过路口或自由驾驶离开路段后 |
| | | * @param roadIndex |
| | | */ |
| | | static void ResetCrossingStatus(road_exam_map &RoadMap, int roadIndex) |
| | | { |
| | | while (true) { |
| | | bool w = false; |
| | | for (auto it = CrossingHint.begin(); it != CrossingHint.end(); ++it) { |
| | | if (it->first / 100 == roadIndex && it->second != CROSSING_NOT_HINT) { |
| | | ChangeCrossingStatus(it->first / 100, it->first % 100, CROSSING_NOT_HINT); |
| | | CrossingChange(RoadMap.roads[roadIndex].id, it->first % 100, 0); |
| | | w = true; |
| | | break; |
| | | } |
| | |
| | | DEBUG("道路ID切换 %d ======> %d", oldid, currExamMapIndex); |
| | | |
| | | if (oldid >= 0) { |
| | | ResetCrossingStatus(oldid); |
| | | ResetCrossingStatus(RoadMap, oldid); |
| | | ResetErrorLaneRpt(oldid); |
| | | |
| | | } |
| | | |
| | | if (RoadMap.calibrate) { |
| | |
| | | } |
| | | } |
| | | |
| | | /******************************************************************* |
| | | * 车辆越过停止线的方式通过路口 |
| | | * @param RoadMap |
| | | * @param road |
| | | * @param stop_line |
| | | * @param active |
| | | * @param car |
| | | */ |
| | | void CrossRoadCallback(road_exam_map &RoadMap, int road, int stop_line, int active, const car_model *car) |
| | | { |
| | | if (RoadMap.calibrate) { |