From 148254bb1dc170db320bcb208ca79b0e252751d8 Mon Sep 17 00:00:00 2001
From: fctom1215 <fctom1215@outlook.com>
Date: 星期三, 28 四月 2021 19:26:00 +0800
Subject: [PATCH] 修改科目三道路识别问题
---
lib/src/main/cpp/test_items2/road_exam.cpp | 25 +++++++++++++++++++++----
1 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/lib/src/main/cpp/test_items2/road_exam.cpp b/lib/src/main/cpp/test_items2/road_exam.cpp
index c946ecc..003f787 100644
--- a/lib/src/main/cpp/test_items2/road_exam.cpp
+++ b/lib/src/main/cpp/test_items2/road_exam.cpp
@@ -412,24 +412,31 @@
vector<PointF> roadOutLine;
Polygon area;
+// DEBUG("CalcRoadIndex %d 鍋氱偣 %d 鏈夌偣 %d", index, RoadMap.roads[index].leftEdge.size(), RoadMap.roads[index].rightEdge.size());
+
for (int i = 0; i < RoadMap.roads[index].leftEdge.size(); ++i) {
for (int j = 0; j < RoadMap.roads[index].leftEdge[i].points.size(); ++j) {
if (changeSegment && roadOutLine.size() > 0 && IsSamePoint(roadOutLine.back(), RoadMap.roads[index].leftEdge[i].points[j])) {
+// DEBUG("閲嶅鐐�");
continue;
}
changeSegment = false;
roadOutLine.push_back(RoadMap.roads[index].leftEdge[i].points[j]);
+// DEBUG("鍋氱偣鍔犲叆 point (%f, %f)", RoadMap.roads[index].leftEdge[i].points[j].X, RoadMap.roads[index].leftEdge[i].points[j].Y);
}
changeSegment = true;
}
for (int i = 0; i < RoadMap.roads[index].rightEdge.size(); ++i) {
for (int j = RoadMap.roads[index].rightEdge[i].points.size() - 1; j >= 0; --j) {
- if (changeSegment && roadOutLine.size() > 0 && IsSamePoint(roadOutLine.back(), RoadMap.roads[index].leftEdge[i].points[j])) {
+ if (changeSegment && roadOutLine.size() > 0 && IsSamePoint(roadOutLine.back(), RoadMap.roads[index].rightEdge[i].points[j])) {
+// DEBUG("閲嶅鐐�");
continue;
}
changeSegment = false;
roadOutLine.push_back(RoadMap.roads[index].rightEdge[i].points[j]);
+
+// DEBUG("鏈夌偣鍔犲叆 point (%f, %f)", RoadMap.roads[index].rightEdge[i].points[j].X, RoadMap.roads[index].rightEdge[i].points[j].Y);
}
changeSegment = true;
}
@@ -440,6 +447,12 @@
for (int i = 0; i < area.num; ++i) {
area.point[i] = roadOutLine[i];
}
+
+// {
+// for (int x = 0; x < area.num; ++x) {
+// DEBUG("road %d point %d (%f, %f)", index, x, area.point[x].X, area.point[x].Y);
+// }
+// }
if (IntersectionOf(car->carXY[car->axial[AXIAL_FRONT]], &area) == GM_Containment) {
free(area.point);
@@ -1401,8 +1414,8 @@
// 鎸′綅涓嶅尮閰嶈秴鏃�
if (currGearError && prevGearError) {
- DEBUG("鎸′綅閿欒澧炲姞 %ld姣 褰撳墠鎸′綅 %d 鏃堕�� %f", TimeGetDiff(rtkTime, &gearErrorTimePoint),
- ReadCarStatus(GEAR), ConvertMs2KMh(speed));
+// DEBUG("鎸′綅閿欒澧炲姞 %ld姣 褰撳墠鎸′綅 %d 鏃堕�� %f", TimeGetDiff(rtkTime, &gearErrorTimePoint),
+// ReadCarStatus(GEAR), ConvertMs2KMh(speed));
gearErrorTime += TimeGetDiff(rtkTime, &gearErrorTimePoint);
}
if (gearErrorTime > examParam.gear_speed_error_cumulative_time) {
@@ -1562,6 +1575,7 @@
DEBUG("瀵煎悜绫诲瀷鍒囨崲 %d", Lane.guide);
}
}
+ DEBUG("currExamMapIndex = %d Lane.no = %d Lane.guide = %d (%f, %f)", currExamMapIndex, Lane.no, Lane.guide, car->carXY[car->axial[AXIAL_FRONT]].X, car->carXY[car->axial[AXIAL_FRONT]].Y);
if (currExamMapIndex >= 0 && Lane.guide == 0) {
BigStraightRoadFree = AnalysisRoad(RoadMap, currExamMapIndex, Lane, car);
@@ -1714,7 +1728,10 @@
item = EntryItem(roadIndex, RoadMap, car, CarModelList, forward, moveDirect);
}
- if (RoadExamStatus == ROAD_EXAM_READY_NEXT && item == 3) {
+ if (RoadExamStatus == RoadExamStatus && item == 6) {
+ PlayTTS("鍓嶆柟浼氳溅", NULL);
+ }
+ else if (RoadExamStatus == ROAD_EXAM_READY_NEXT && item == 3) {
StartDriveStraightExam();
RoadExamStatus = ROAD_EXAM_ITEM_STRAIGHT;
} else if (RoadExamStatus == ROAD_EXAM_READY_NEXT && item == 4) {
--
Gitblit v1.8.0