From 3d3a5aa436645e5af1a4877338319ff8274e0346 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期四, 19 三月 2020 18:04:46 +0800
Subject: [PATCH] 通相检查
---
lib/src/main/cpp/driver_test.cpp | 44 +++++++++++++++++++++++---------------------
1 files changed, 23 insertions(+), 21 deletions(-)
diff --git a/lib/src/main/cpp/driver_test.cpp b/lib/src/main/cpp/driver_test.cpp
index 58c440f..8a9c7cd 100644
--- a/lib/src/main/cpp/driver_test.cpp
+++ b/lib/src/main/cpp/driver_test.cpp
@@ -55,17 +55,6 @@
#define MAP_LIST_SIZE 32
enum {
- TEST_NONE,
- TEST_PARK_EDGE,
- TEST_PARK_BOTTOM,
- TEST_TUNE_90,
- TEST_S_CURVE,
- TEST_SLOPE,
- TEST_SIMPLE,
- TEST_END
-};
-
-enum {
TEST_TYPE_AREA = 2,
TEST_TYPE_ROAD_DUMMY_LIGHT,
TEST_TYPE_ROAD_TRUE_LIGHT
@@ -258,8 +247,8 @@
if (map.triggerLine != NULL) {
for (int j = 0; j < map.triggerLineNum; ++j) {
- if (map.triggerLine[j].point != NULL)
- free(map.triggerLine[j].point);
+ if (map.triggerLine[j].line.point != NULL)
+ free(map.triggerLine[j].line.point);
}
free(map.triggerLine);
}
@@ -305,6 +294,8 @@
newMap.redLine[i].point[j] = RoadMapPoints.point[redLines[i][j]];
}
}
+ } else {
+ newMap.redLine = NULL;
}
if ((newMap.redAreaNum = redAreas.size()) > 0) {
@@ -318,6 +309,8 @@
newMap.redArea[i].point[j] = RoadMapPoints.point[redAreas[i][j]];
}
}
+ } else {
+ newMap.redArea = NULL;
}
if ((newMap.greenLineNum = greenLines.size()) > 0) {
@@ -331,20 +324,25 @@
newMap.greenLine[i].point[j] = RoadMapPoints.point[greenLines[i][j]];
}
}
+ } else {
+ newMap.greenLine = NULL;
}
if ((newMap.triggerLineNum = triggerLines.size()) > 0) {
- newMap.triggerLine = (Polygon *) malloc(sizeof(Polygon) * newMap.triggerLineNum);
+ newMap.triggerLine = (struct trigger_line_t *) malloc(sizeof(struct trigger_line_t) * newMap.triggerLineNum);
for (int i = 0; i < newMap.triggerLineNum; ++i) {
- newMap.triggerLine[i].num = triggerLines[i].size();
- newMap.triggerLine[i].point = (PointF *) malloc(sizeof(PointF) * newMap.triggerLine[i].num);
+ newMap.triggerLine[i].line.num = triggerLines[i].size() - 1;
+ newMap.triggerLine[i].line.point = (PointF *) malloc(sizeof(PointF) * newMap.triggerLine[i].line.num);
- for (int j = 0; j < newMap.triggerLine[i].num; ++j) {
- newMap.triggerLine[i].point[j] = RoadMapPoints.point[triggerLines[i][j]];
+ newMap.triggerLine[i].triggerMapId = triggerLines[i][0];
+ for (int j = 0; j < newMap.triggerLine[i].line.num; ++j) {
+ newMap.triggerLine[i].line.point[j] = RoadMapPoints.point[triggerLines[i][j+1]];
}
}
- }
+ } else {
+ newMap.triggerLine = NULL;
+ };
RoadMapList.push_back(newMap);
}
@@ -480,7 +478,7 @@
return;
}
- if (MapNum == 0) {
+ if (MapNum == 0 && type == TEST_TYPE_AREA) {
err = true;
MA_SendExamStatus(0, -1);
}
@@ -491,6 +489,10 @@
if (DummyLightContent == NULL && type == TEST_TYPE_ROAD_DUMMY_LIGHT) {
err = true;
MA_SendExamStatus(0, -3);
+ }
+ if (type != TEST_TYPE_AREA && (RoadMapPoints.num == 0 || RoadMapPoints.point == NULL || RoadMapList.size() == 0)) {
+ err = true;
+ MA_SendExamStatus(0, -1);
}
if (!err) {
@@ -657,7 +659,7 @@
if (ReadCarStatus(ENGINE_START) == ENGINE_START_ACTIVE) {
if (!engineStart) {
engineStart = true;
- if (ReadCarStatus(SHIFT) != 'N') {
+ if (ReadCarStatus(GEAR) != 'N') {
// 涓嶆槸绌烘尅鐐圭伀锛屼笉鍚堟牸
if (ExamType == TEST_TYPE_AREA)
AddExamFault(3, rtkTime);
--
Gitblit v1.8.0