From 0a68be5c7b4f0cba6e6985a7ce7b2ed74a937a3b Mon Sep 17 00:00:00 2001
From: fctom1215 <fctom1215@outlook.com>
Date: 星期五, 20 三月 2020 23:06:00 +0800
Subject: [PATCH] 路图修正。

---
 lib/src/main/cpp/driver_test.cpp |   44 +++++++++++++++++++++++++++++++++++++++-----
 lib/src/main/cpp/native-lib.cpp  |    2 +-
 2 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/lib/src/main/cpp/driver_test.cpp b/lib/src/main/cpp/driver_test.cpp
index a144e68..8601f17 100644
--- a/lib/src/main/cpp/driver_test.cpp
+++ b/lib/src/main/cpp/driver_test.cpp
@@ -34,6 +34,7 @@
 #include "test_common/car_sensor.h"
 #include "mcu/mcu_if.h"
 #include "test_common/car_sensor.h"
+#include "test_items2/road_exam.h"
 
 #define DEBUG(fmt, args...)     LOGD("<driver_test> <%s>: " fmt, __func__, ##args)
 
@@ -295,9 +296,13 @@
     if ((newMap.redLineNum = redLines.size()) > 0) {
         newMap.redLine = (Polygon *) malloc(sizeof(Polygon) * newMap.redLineNum);
 
+        DEBUG("绾㈢嚎 %d 鏍�", newMap.redLineNum);
+
         for (int i = 0; i < newMap.redLineNum; ++i) {
             newMap.redLine[i].num = redLines[i].size();
             newMap.redLine[i].point = (PointF *) malloc(sizeof(PointF) * newMap.redLine[i].num);
+
+            DEBUG("    缁撶偣 %d 涓�", newMap.redLine[i].num);
 
             for (int j = 0; j < newMap.redLine[i].num; ++j) {
                 newMap.redLine[i].point[j] = RoadMapPoints.point[redLines[i][j]];
@@ -310,9 +315,13 @@
     if ((newMap.redAreaNum = redAreas.size()) > 0) {
         newMap.redArea = (Polygon *) malloc(sizeof(Polygon) * newMap.redAreaNum);
 
+        DEBUG("绾㈠尯 %d 涓�", newMap.redAreaNum);
+
         for (int i = 0; i < newMap.redAreaNum; ++i) {
             newMap.redArea[i].num = redAreas[i].size();
             newMap.redArea[i].point = (PointF *) malloc(sizeof(PointF) * newMap.redLine[i].num);
+
+            DEBUG("    缁撶偣 %d 涓�", newMap.redArea[i].num);
 
             for (int j = 0; j < newMap.redArea[i].num; ++j) {
                 newMap.redArea[i].point[j] = RoadMapPoints.point[redAreas[i][j]];
@@ -325,10 +334,12 @@
     if ((newMap.greenLineNum = greenLines.size()) > 0) {
         newMap.greenLine = (Polygon *) malloc(sizeof(Polygon) * newMap.greenLineNum);
 
+        DEBUG("缁跨嚎 %d 鏍�", newMap.greenLineNum);
         for (int i = 0; i < newMap.greenLineNum; ++i) {
             newMap.greenLine[i].num = greenLines[i].size();
             newMap.greenLine[i].point = (PointF *) malloc(sizeof(PointF) * newMap.greenLine[i].num);
 
+            DEBUG("    缁撶偣 %d 涓�", newMap.greenLine[i].num);
             for (int j = 0; j < newMap.greenLine[i].num; ++j) {
                 newMap.greenLine[i].point[j] = RoadMapPoints.point[greenLines[i][j]];
             }
@@ -340,9 +351,13 @@
     if ((newMap.triggerLineNum = triggerLines.size()) > 0) {
         newMap.triggerLine = (struct trigger_line_t *) malloc(sizeof(struct trigger_line_t) * newMap.triggerLineNum);
 
+        DEBUG("瑙﹀彂绾� %d 鏍�", newMap.triggerLineNum);
+
         for (int i = 0; i < newMap.triggerLineNum; ++i) {
             newMap.triggerLine[i].line.num = triggerLines[i].size() - 1;
             newMap.triggerLine[i].line.point = (PointF *) malloc(sizeof(PointF) * newMap.triggerLine[i].line.num);
+
+            DEBUG("    缁撶偣 %d 涓�", newMap.triggerLine[i].line.num);
 
             newMap.triggerLine[i].triggerMapId = triggerLines[i][0];
             for (int j = 0; j < newMap.triggerLine[i].line.num; ++j) {
@@ -357,6 +372,7 @@
         newMap.area.num = area.size();
         newMap.area.point = (PointF *) malloc(sizeof(PointF) * newMap.area.num);
 
+        DEBUG("瀛愰」鐩尯鍩熺偣 %d 涓�", newMap.area.num);
         for (int i = 0; i < newMap.area.num; ++i) {
             newMap.area.point[i] = RoadMapPoints.point[area[i]];
         }
@@ -365,11 +381,15 @@
         newMap.area.num = 0;
     }
 
-    if (stopLine.size() == 4) {
-        newMap.stopLine.X1 = stopLine[0];
-        newMap.stopLine.Y1 = stopLine[1];
-        newMap.stopLine.X2 = stopLine[2];
-        newMap.stopLine.Y2 = stopLine[3];
+    if (stopLine.size() == 2) {
+        newMap.stopLine.X1 = RoadMapPoints.point[stopLine[0]].X;
+        newMap.stopLine.Y1 = RoadMapPoints.point[stopLine[0]].Y;
+        newMap.stopLine.X2 = RoadMapPoints.point[stopLine[1]].X;
+        newMap.stopLine.Y2 = RoadMapPoints.point[stopLine[1]].Y;
+        DEBUG("寰楀埌鍋滄绾� (%f,% f) --- (%f, %f)", newMap.stopLine.X1,
+              newMap.stopLine.Y1,
+              newMap.stopLine.X2,
+              newMap.stopLine.Y2);
     }
 
     RoadMapList.push_back(newMap);
@@ -507,18 +527,22 @@
     }
 
     if (MapNum == 0 && type == TEST_TYPE_AREA) {
+        DEBUG("娌℃湁鍦鸿�冨湴鍥�");
         err = true;
         MA_SendExamStatus(0, -1);
     }
     if (CarModel == NULL) {
+        DEBUG("娌℃湁杞︽ā");
         err = true;
         MA_SendExamStatus(0, -2);
     }
     if (DummyLightContent == NULL && type == TEST_TYPE_ROAD_DUMMY_LIGHT) {
+        DEBUG("娌℃湁妯℃嫙鐏厜");
         err = true;
         MA_SendExamStatus(0, -3);
     }
     if (type != TEST_TYPE_AREA && (RoadMapPoints.num == 0 || RoadMapPoints.point == NULL || RoadMapList.size() == 0)) {
+        DEBUG("娌℃湁璺�冨湴鍥�");
         err = true;
         MA_SendExamStatus(0, -1);
     }
@@ -718,6 +742,9 @@
         } else if (exam_dummy_light == 1) {
             exam_dummy_light = ExecuteDummyLightExam(rtkTime);
             // 姹囨姤鐏厜鑰冭瘯缁撴潫
+            if (exam_dummy_light == 2) {
+                InitRoadExam();
+            }
         }
     }
 }
@@ -732,6 +759,13 @@
         }
     }
 
+    if (ExamType != TEST_TYPE_AREA) {
+        if (exam_dummy_light == 2) {
+            TestRoadGeneral(RoadMapList, CarModel, CarModelList, speed, move, rtkTime);
+        }
+        return;
+    }
+
     if (CurrExamMapIndex >= 0) {
         int mtype = GetMapType(CurrExamMapIndex, MapList, MapNum);
 
diff --git a/lib/src/main/cpp/native-lib.cpp b/lib/src/main/cpp/native-lib.cpp
index e19a097..9cc7f3c 100644
--- a/lib/src/main/cpp/native-lib.cpp
+++ b/lib/src/main/cpp/native-lib.cpp
@@ -26,7 +26,7 @@
 const int RTK_PLATFORM_PORT = 12125;
 const uint8_t phone[] = {0x20,0x19,0x10,0x15,0x00,0x00,0x00,0x01};
 
-const char *VIRTUAL_RTK_IP = "192.168.16.100";
+const char *VIRTUAL_RTK_IP = "192.168.3.52";
 const int VIRTUAL_RTK_PORT = 9001;
 
 static void SendBootIndicate(union sigval sig);

--
Gitblit v1.8.0