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/test_items2/through_something.cpp | 113 ++++++++++++++++++++++++++++++--------------------------
1 files changed, 61 insertions(+), 52 deletions(-)
diff --git a/lib/src/main/cpp/test_items2/through_something.cpp b/lib/src/main/cpp/test_items2/through_something.cpp
index 09f6318..1000b06 100644
--- a/lib/src/main/cpp/test_items2/through_something.cpp
+++ b/lib/src/main/cpp/test_items2/through_something.cpp
@@ -104,6 +104,10 @@
RemoveTargetReduceRec(TargetReduceRec, key);
}
}
+
+ if (RoadMap.calibrate == 1)
+ goto GET_DISTANCE_OF_NEARBY_TARGET;
+
// 浜鸿閬撱�佸叕浜ょ珯銆佸鏍�
for (int i = 0; i < RoadMap.specialAreas.size(); i++) {
if (RoadMap.specialAreas[i].type == GRID_AREA || RoadMap.specialAreas[i].road != RoadMap.roads[roadIndex].id)
@@ -165,6 +169,7 @@
}
}
+ GET_DISTANCE_OF_NEARBY_TARGET:
if (nearbyTarget.size() > 0) {
sort(nearbyTarget.begin(), nearbyTarget.end());
return nearbyTarget[0];
@@ -182,69 +187,73 @@
if (CrashTheLine(RoadMap.roads[road].stopLine[x].line, car, CarModelList)) {
DEBUG("瓒婅繃璺彛 road %d 璺彛 %d", road, x);
- CrossRoadCallback(road, x, RoadMap.roads[road].stopLine[x].active, car);
+ CrossRoadCallback(RoadMap, road, x, ExamSchemeCrossing(RoadMap, road, x), car);
- if (!(it->second & REDUCE_SPEED)) {
- // 涓嶆寜瑙勫畾鍑忛�燂紝涓嶅悎鏍�
- DEBUG("涓嶆寜瑙勫畾鍑忛��");
+ if (RoadMap.calibrate == 0) {
+ if (!(it->second & REDUCE_SPEED)) {
+ // 涓嶆寜瑙勫畾鍑忛�燂紝涓嶅悎鏍�
+ DEBUG("涓嶆寜瑙勫畾鍑忛��");
- if (RoadMap.roads[road].stopLine[x].active == ROAD_ACTIVE_FORWARD) {
- AddExamFault(41, rtkTime);
- } else if (RoadMap.roads[road].stopLine[x].active ==
- ROAD_ACTIVE_TURN_LEFT) {
- AddExamFault(43, rtkTime);
- } else if (RoadMap.roads[road].stopLine[x].active ==
- ROAD_ACTIVE_TURN_RIGHT) {
- AddExamFault(46, rtkTime);
+ if (ExamSchemeCrossing(RoadMap, road, x) == ROAD_ACTIVE_FORWARD) {
+ AddExamFault(41, rtkTime);
+ } else if (ExamSchemeCrossing(RoadMap, road, x) ==
+ ROAD_ACTIVE_TURN_LEFT) {
+ AddExamFault(43, rtkTime);
+ } else if (ExamSchemeCrossing(RoadMap, road, x) ==
+ ROAD_ACTIVE_TURN_RIGHT) {
+ AddExamFault(46, rtkTime);
+ }
+ }
+ if (!(it->second & STOP_CAR) && RoadMap.roads[road].stopLine[x].stopFlag) {
+ // 涓嶅仠杞︾灜鏈涳紝涓嶅悎鏍�
+ DEBUG("涓嶅仠杞︾灜鏈�");
+ if (ExamSchemeCrossing(RoadMap, road, x) == ROAD_ACTIVE_FORWARD) {
+ AddExamFault(42, rtkTime);
+ } else if (ExamSchemeCrossing(RoadMap, road, x) ==
+ ROAD_ACTIVE_TURN_LEFT) {
+ AddExamFault(44, rtkTime);
+ } else if (ExamSchemeCrossing(RoadMap, road, x) ==
+ ROAD_ACTIVE_TURN_RIGHT) {
+ AddExamFault(47, rtkTime);
+ }
}
}
- if (!(it->second & STOP_CAR) && RoadMap.roads[road].stopLine[x].stopFlag) {
- // 涓嶅仠杞︾灜鏈涳紝涓嶅悎鏍�
- DEBUG("涓嶅仠杞︾灜鏈�");
- if (RoadMap.roads[road].stopLine[x].active == ROAD_ACTIVE_FORWARD) {
- AddExamFault(42, rtkTime);
- } else if (RoadMap.roads[road].stopLine[x].active ==
- ROAD_ACTIVE_TURN_LEFT) {
- AddExamFault(44, rtkTime);
- } else if (RoadMap.roads[road].stopLine[x].active ==
- ROAD_ACTIVE_TURN_RIGHT) {
- AddExamFault(47, rtkTime);
- }
- }
-
RemoveTargetReduceRec(TargetReduceRec, it->first);
goto RECHECK;
}
}
+ if (RoadMap.calibrate == 1)
+ return;
+
RECHECK2:
for (auto it = TargetReduceRec2.begin(); it != TargetReduceRec2.end(); ++it) {
- int x = it->first;
- Line line;
- int roadIndex = 0;
+ int x = it->first;
+ Line line;
+ int roadIndex = 0;
- for (; roadIndex < RoadMap.roads.size(); ++roadIndex) {
- if (RoadMap.roads[roadIndex].id == RoadMap.specialAreas[x].road)
- break;
- }
-
- PointF point2 = CalcProjectionWithRoadEdge(RoadMap.roads[roadIndex].leftEdge,
- RoadMap.specialAreas[x].area[0]);
- MakeLine(&line, &RoadMap.specialAreas[x].area[0], &point2);
-
- if (CrashTheLine(line, car, CarModelList)) {
- if (RoadMap.specialAreas[x].type == ZEBRA_CROSSING &&
- !(it->second & REDUCE_SPEED)) {
- DEBUG("浜鸿閬� 涓嶆寜瑙勫畾鍑忛��");
- AddExamFault(48, rtkTime);
- }
- if (RoadMap.specialAreas[x].type == BUS_STATION_AREA &&
- !(it->second & REDUCE_SPEED)) {
- DEBUG("鍏氦绔� 涓嶆寜瑙勫畾鍑忛��");
- AddExamFault(50, rtkTime);
- }
- RemoveTargetReduceRec(TargetReduceRec2, it->first);
- goto RECHECK2;
- }
+ for (; roadIndex < RoadMap.roads.size(); ++roadIndex) {
+ if (RoadMap.roads[roadIndex].id == RoadMap.specialAreas[x].road)
+ break;
}
+
+ PointF point2 = CalcProjectionWithRoadEdge(RoadMap.roads[roadIndex].leftEdge,
+ RoadMap.specialAreas[x].area[0]);
+ MakeLine(&line, &RoadMap.specialAreas[x].area[0], &point2);
+
+ if (CrashTheLine(line, car, CarModelList)) {
+ if (RoadMap.specialAreas[x].type == ZEBRA_CROSSING &&
+ !(it->second & REDUCE_SPEED)) {
+ DEBUG("浜鸿閬� 涓嶆寜瑙勫畾鍑忛��");
+ AddExamFault(48, rtkTime);
+ }
+ if (RoadMap.specialAreas[x].type == BUS_STATION_AREA &&
+ !(it->second & REDUCE_SPEED)) {
+ DEBUG("鍏氦绔� 涓嶆寜瑙勫畾鍑忛��");
+ AddExamFault(50, rtkTime);
+ }
+ RemoveTargetReduceRec(TargetReduceRec2, it->first);
+ goto RECHECK2;
+ }
+ }
}
--
Gitblit v1.8.0