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