| | |
| | | enum { |
| | | TEST_TYPE_AREA = 2, |
| | | TEST_TYPE_ROAD_DUMMY_LIGHT, |
| | | TEST_TYPE_ROAD_TRUE_LIGHT |
| | | TEST_TYPE_ROAD_TRUE_LIGHT, |
| | | TEST_TYPE_ROAD_CALIBRATE |
| | | }; |
| | | |
| | | static bool ExamStart = false; |
| | |
| | | |
| | | RoadMap.roads.clear(); |
| | | RoadMap.specialAreas.clear(); |
| | | RoadMap.triggerLines.clear(); |
| | | RoadMap.forbidLines.clear(); |
| | | RoadMap.examScheme.clear(); |
| | | |
| | | CarSensorInit(); |
| | | |
| | |
| | | |
| | | vector<road_t>().swap(RoadMap.roads); |
| | | vector<special_area_t>().swap(RoadMap.specialAreas); |
| | | vector<trigger_line_t>().swap(RoadMap.triggerLines); |
| | | vector<forbid_line_t>().swap(RoadMap.forbidLines); |
| | | vector<scheme_t>().swap(RoadMap.examScheme); |
| | | } |
| | | |
| | | void SetRoadMap(road_exam_map &map) |
| | | void SetRoadMap(road_exam_map &map, vector<scheme_t> &scheme) |
| | | { |
| | | if (ExamStart) return; |
| | | |
| | | RoadMap.roads.assign(map.roads.begin(), map.roads.end()); |
| | | RoadMap.specialAreas.assign(map.specialAreas.begin(), map.specialAreas.end()); |
| | | RoadMap.triggerLines.assign(map.triggerLines.begin(), map.triggerLines.end()); |
| | | // RoadMap.triggerLines.assign(map.triggerLines.begin(), map.triggerLines.end()); |
| | | RoadMap.forbidLines.assign(map.forbidLines.begin(), map.forbidLines.end()); |
| | | DEBUG("得到新的路考地图 路数量 %d 特殊区域数量 %d 触发线数量 %d 其他禁止线数量 %d", RoadMap.roads.size(), RoadMap.specialAreas.size(), RoadMap.triggerLines.size(), RoadMap.forbidLines.size()); |
| | | |
| | | RoadMap.examScheme.assign(scheme.begin(), scheme.end()); |
| | | |
| | | DEBUG("得到新的路考地图 路数量 %d 特殊区域数量 %d 其他禁止线数量 %d 项目数量 %d", RoadMap.roads.size(), RoadMap.specialAreas.size(), RoadMap.forbidLines.size(), RoadMap.examScheme.size()); |
| | | } |
| | | |
| | | void SetCarMeasurePoint(double *basePoint, int *axial, int *left_front_tire, |
| | |
| | | |
| | | if (type == TEST_TYPE_ROAD_DUMMY_LIGHT) { |
| | | exam_dummy_light = 0; //0 |
| | | RoadMap.calibrate = 0; |
| | | } |
| | | if (type == TEST_TYPE_ROAD_TRUE_LIGHT) { |
| | | RoadMap.calibrate = 0; |
| | | InitRoadExam(RoadMap); |
| | | } |
| | | if (type == TEST_TYPE_AREA) { |
| | | InitAreaExam(); |
| | | } |
| | | if (type == TEST_TYPE_ROAD_CALIBRATE) { |
| | | RoadMap.calibrate = 1; |
| | | InitRoadExam(RoadMap); |
| | | } |
| | | } |
| | | MA_SendExamStatus(1, 0); |
| | |
| | | return true; |
| | | } |
| | | |
| | | void RoadChange(int road, int status) |
| | | { |
| | | struct roadStatusBrief brief; |
| | | |
| | | brief.road_id = road; |
| | | brief.status = status; |
| | | |
| | | MA_SendRoadStatus(&brief); |
| | | } |
| | | |
| | | void CrossingChange(int road, int crossing, int status) |
| | | { |
| | | struct crossingStatusBrief brief; |
| | | |
| | | brief.road_id = road; |
| | | brief.crossing_index = crossing; |
| | | brief.status = status; |
| | | |
| | | MA_SendCrossingStatus(&brief); |
| | | } |
| | | |
| | | void AddExamFault(int wrong, const struct RtkTime *rtkTime) |
| | | { |
| | | struct ExamFault fault; |