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