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