From 611f51ed073de48e83f46d47c82cd5ebe61258d7 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期三, 16 九月 2020 18:14:27 +0800 Subject: [PATCH] 加入地图标定模式 --- lib/src/main/cpp/driver_test.cpp | 45 +++++++++++++++++++++++++++++++++++++++------ 1 files changed, 39 insertions(+), 6 deletions(-) diff --git a/lib/src/main/cpp/driver_test.cpp b/lib/src/main/cpp/driver_test.cpp index e15aaa6..e596990 100644 --- a/lib/src/main/cpp/driver_test.cpp +++ b/lib/src/main/cpp/driver_test.cpp @@ -54,7 +54,8 @@ 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; @@ -109,7 +110,8 @@ RoadMap.roads.clear(); RoadMap.specialAreas.clear(); - RoadMap.triggerLines.clear(); + RoadMap.forbidLines.clear(); + RoadMap.examScheme.clear(); CarSensorInit(); @@ -192,18 +194,22 @@ 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, @@ -402,12 +408,18 @@ 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); @@ -865,6 +877,27 @@ 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; -- Gitblit v1.8.0