From 03a05501800d2c02bca1c05ca6f7080d715aba23 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期五, 18 九月 2020 15:41:50 +0800
Subject: [PATCH] 坐标

---
 lib/src/main/cpp/driver_test.cpp |   33 ++++++++++++++++++++++++++++-----
 1 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/lib/src/main/cpp/driver_test.cpp b/lib/src/main/cpp/driver_test.cpp
index e596990..600be36 100644
--- a/lib/src/main/cpp/driver_test.cpp
+++ b/lib/src/main/cpp/driver_test.cpp
@@ -148,7 +148,7 @@
             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)
@@ -195,7 +195,7 @@
     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)
@@ -207,9 +207,20 @@
 //    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,
@@ -375,6 +386,8 @@
         return;
     }
 
+    type = TEST_TYPE_ROAD_CALIBRATE;
+
     if (AreaMapList.size() == 0 && type == TEST_TYPE_AREA) {
         DEBUG("娌℃湁鍦鸿�冨湴鍥�");
         err = true;
@@ -394,6 +407,12 @@
         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) {
@@ -514,7 +533,7 @@
             ExecuteExam(speed, move, azimuth, &rtkTime);
         }
 
-        PrintObdInfo(&rtkTime, speed);
+//        PrintObdInfo(&rtkTime, speed);
     }
 }
 
@@ -684,7 +703,7 @@
     }
 
     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 {
@@ -885,6 +904,8 @@
     brief.status = status;
 
     MA_SendRoadStatus(&brief);
+
+    DEBUG("鎶ュ憡闀垮畼 杩涘嚭璺 road %d status %d", road, status);
 }
 
 void CrossingChange(int road, int crossing, int status)
@@ -896,6 +917,8 @@
     brief.status = status;
 
     MA_SendCrossingStatus(&brief);
+
+    DEBUG("鎶ュ憡闀垮畼 杩涘嚭璺彛 road %d crossing %d status %d", road, crossing, status);
 }
 
 void AddExamFault(int wrong, const struct RtkTime *rtkTime)

--
Gitblit v1.8.0