| | |
| | | |
| | | DEBUG("得到新的路考地图 路数量 %d 特殊区域数量 %d 其他禁止线数量 %d 项目数量 %d", RoadMap.roads.size(), RoadMap.specialAreas.size(), RoadMap.forbidLines.size(), RoadMap.examScheme.size()); |
| | | |
| | | for (int i = 0; i < RoadMap.roads.size(); ++i) { |
| | | /*for (int i = 0; i < RoadMap.roads.size(); ++i) { |
| | | DEBUG("路 id = %d", RoadMap.roads[i].id); |
| | | DEBUG("左边线段数 %d", RoadMap.roads[i].leftEdge.size()); |
| | | for (int j = 0; j < RoadMap.roads[i].leftEdge.size(); ++j) { |
| | |
| | | DEBUG("\t\t点坐标 %d: %f, %f", k, RoadMap.roads[i].rightEdge[j].points[k].X, RoadMap.roads[i].rightEdge[j].points[k].Y); |
| | | } |
| | | } |
| | | } |
| | | }*/ |
| | | } |
| | | |
| | | void SetRoadExamScheme(vector<scheme_t> &scheme) |
| | |
| | | |
| | | void StartDummyLightExam(struct dummy_light_exam *ptr, int num, const struct RtkTime* rtkTime) |
| | | { |
| | | DEBUG("StartDummyLightExam"); |
| | | DEBUG("StartDummyLightExam 项目数量 %d", num); |
| | | content = ptr; |
| | | contentNum = num; |
| | | question = 0; |
| | |
| | | AppTimer_delete(CheckSolution); |
| | | ExamDummyLight(); |
| | | } else { |
| | | DEBUG("无灯光考试内容"); |
| | | testing = false; |
| | | } |
| | | } |
| | |
| | | if (roadIndex < 0 || roadIndex >= RoadMap.roads.size()) |
| | | return; |
| | | |
| | | if (distance > 5 && distance < 70) { |
| | | if (distance > 5 && distance < 60) { |
| | | // 提示路口怎么走 |
| | | if (GetCrossingStatus(roadIndex, stopIndex) == CROSSING_NOT_HINT) { |
| | | // 项目标定模式下,这里提示标定本路口动作 |
| | |
| | | } |
| | | ChangeCrossingStatus(roadIndex, stopIndex, CROSSING_HAS_HINT); |
| | | } |
| | | } else if (distance > 75 && GetCrossingStatus(roadIndex, stopIndex) != CROSSING_NOT_HINT) { |
| | | } else if (distance > 65 && GetCrossingStatus(roadIndex, stopIndex) != CROSSING_NOT_HINT) { |
| | | ChangeCrossingStatus(roadIndex, stopIndex, CROSSING_NOT_HINT); |
| | | |
| | | if (RoadMap.calibrate) { |
| | |
| | | DEBUG("导向类型切换 %d", Lane.guide); |
| | | } |
| | | } |
| | | DEBUG("currExamMapIndex = %d Lane.no = %d Lane.guide = %d (%f, %f)", currExamMapIndex, Lane.no, Lane.guide, car->carXY[car->axial[AXIAL_FRONT]].X, car->carXY[car->axial[AXIAL_FRONT]].Y); |
| | | // DEBUG("currExamMapIndex = %d Lane.no = %d Lane.guide = %d (%f, %f)", currExamMapIndex, Lane.no, Lane.guide, car->carXY[car->axial[AXIAL_FRONT]].X, car->carXY[car->axial[AXIAL_FRONT]].Y); |
| | | |
| | | if (currExamMapIndex >= 0 && Lane.guide == 0) { |
| | | BigStraightRoadFree = AnalysisRoad(RoadMap, currExamMapIndex, Lane, car); |
| | |
| | | if (RoadMap.calibrate == 0) { |
| | | if (!(it->second & REDUCE_SPEED)) { |
| | | // 不按规定减速,不合格 |
| | | DEBUG("不按规定减速"); |
| | | DEBUG("路口 不按规定减速"); |
| | | |
| | | if (ExamSchemeCrossing(RoadMap, road, x) == ROAD_ACTIVE_FORWARD) { |
| | | AddExamFault(40701, rtkTime); |
| | | } else if (ExamSchemeCrossing(RoadMap, road, x) == |
| | | ROAD_ACTIVE_TURN_LEFT) { |
| | | AddExamFault(40801, rtkTime); |
| | | } else if (ExamSchemeCrossing(RoadMap, road, x) == |
| | | ROAD_ACTIVE_TURN_RIGHT) { |
| | | AddExamFault(40901, rtkTime); |
| | | switch (ExamSchemeCrossing(RoadMap, road, x) ) { |
| | | case ROAD_ACTIVE_FORWARD: |
| | | DEBUG("路口直行未减速"); |
| | | AddExamFault(40701, rtkTime); |
| | | break; |
| | | case ROAD_ACTIVE_TURN_LEFT: |
| | | DEBUG("路口左转未减速"); |
| | | AddExamFault(40801, rtkTime); |
| | | break; |
| | | case ROAD_ACTIVE_TURN_RIGHT: |
| | | DEBUG("路口右转未减速"); |
| | | AddExamFault(40901, rtkTime); |
| | | break; |
| | | default: |
| | | DEBUG("路口 未配置 未减速"); |
| | | break; |
| | | } |
| | | |
| | | |
| | | // if (ExamSchemeCrossing(RoadMap, road, x) == ROAD_ACTIVE_FORWARD) { |
| | | // AddExamFault(40701, rtkTime); |
| | | // } else if (ExamSchemeCrossing(RoadMap, road, x) == |
| | | // ROAD_ACTIVE_TURN_LEFT) { |
| | | // AddExamFault(40801, rtkTime); |
| | | // } else if (ExamSchemeCrossing(RoadMap, road, x) == |
| | | // ROAD_ACTIVE_TURN_RIGHT) { |
| | | // AddExamFault(40901, rtkTime); |
| | | // } |
| | | } |
| | | if (!(it->second & STOP_CAR) && RoadMap.roads[road].stopLine[x].stopFlag) { |
| | | // 不停车瞭望,不合格 |