| | |
| | | free(AreaMapList[i].map2.point); |
| | | } |
| | | |
| | | AreaMapList.clear(); |
| | | LIST_AREA_MAP().swap(AreaMapList); |
| | | } |
| | | |
| | | void AddAreaMap(int id, int type, const double (*map)[2], int pointNum, const double (*map2)[2], int pointNum2) |
| | |
| | | vector<road_t>().swap(RoadMap.roads); |
| | | vector<special_area_t>().swap(RoadMap.specialAreas); |
| | | vector<forbid_line_t>().swap(RoadMap.forbidLines); |
| | | vector<scheme_t>().swap(RoadMap.examScheme); |
| | | // vector<scheme_t>().swap(RoadMap.examScheme); |
| | | } |
| | | |
| | | void SetRoadMap(road_exam_map &map, vector<scheme_t> &scheme) |
| | |
| | | // RoadMap.triggerLines.assign(map.triggerLines.begin(), map.triggerLines.end()); |
| | | RoadMap.forbidLines.assign(map.forbidLines.begin(), map.forbidLines.end()); |
| | | |
| | | RoadMap.examScheme.assign(scheme.begin(), scheme.end()); |
| | | // 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 SetRoadExamScheme(vector<scheme_t> &scheme) |
| | | { |
| | | if (ExamStart) return; |
| | | |
| | | vector<scheme_t>().swap(RoadMap.examScheme); |
| | | |
| | | RoadMap.examScheme.assign(scheme.begin(), scheme.end()); |
| | | |
| | | DEBUG("得到新的路考地图 项目数量 %d", RoadMap.examScheme.size()); |
| | | } |
| | | |
| | | void SetCarMeasurePoint(double *basePoint, int *axial, int *left_front_tire, |
| | |
| | | return; |
| | | } |
| | | |
| | | type = TEST_TYPE_ROAD_CALIBRATE; |
| | | |
| | | if (AreaMapList.size() == 0 && type == TEST_TYPE_AREA) { |
| | | DEBUG("没有场考地图"); |
| | | err = true; |
| | |
| | | DEBUG("没有路考地图"); |
| | | err = true; |
| | | MA_SendExamStatus(0, -1); |
| | | } |
| | | |
| | | if ((type == TEST_TYPE_ROAD_DUMMY_LIGHT || type == TEST_TYPE_ROAD_TRUE_LIGHT) && RoadMap.examScheme.size() == 0) { |
| | | DEBUG("没有路考线路方案"); |
| | | err = true; |
| | | MA_SendExamStatus(0, -3); |
| | | } |
| | | |
| | | if (!err) { |
| | |
| | | ExecuteExam(speed, move, azimuth, &rtkTime); |
| | | } |
| | | |
| | | PrintObdInfo(&rtkTime, speed); |
| | | // PrintObdInfo(&rtkTime, speed); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | if (ExamType != TEST_TYPE_AREA) { |
| | | if (exam_dummy_light == 2 || ExamType == TEST_TYPE_ROAD_TRUE_LIGHT) { |
| | | if (exam_dummy_light == 2 || ExamType == TEST_TYPE_ROAD_TRUE_LIGHT || ExamType == TEST_TYPE_ROAD_CALIBRATE) { |
| | | TestRoadGeneral(RoadMap, CarModel, CarModelList, speed, move, rtkTime); |
| | | } |
| | | } else { |
| | |
| | | brief.status = status; |
| | | |
| | | MA_SendRoadStatus(&brief); |
| | | |
| | | DEBUG("报告长官 进出路段 road %d status %d", road, status); |
| | | } |
| | | |
| | | void CrossingChange(int road, int crossing, int status) |
| | |
| | | brief.status = status; |
| | | |
| | | MA_SendCrossingStatus(&brief); |
| | | |
| | | DEBUG("报告长官 进出路口 road %d crossing %d status %d", road, crossing, status); |
| | | } |
| | | |
| | | void AddExamFault(int wrong, const struct RtkTime *rtkTime) |