From 2dd405a64e0a6e468a205e7348520e87576e5358 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期一, 09 三月 2020 17:13:12 +0800
Subject: [PATCH] 更新地图

---
 lib/src/main/cpp/driver_test.cpp |   34 +++++++++++++++++++++++++++++++---
 1 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/lib/src/main/cpp/driver_test.cpp b/lib/src/main/cpp/driver_test.cpp
index c961a25..699c23c 100644
--- a/lib/src/main/cpp/driver_test.cpp
+++ b/lib/src/main/cpp/driver_test.cpp
@@ -93,6 +93,9 @@
 
 static int SensorValidLevel;
 
+static struct dummy_light_exam *DummyLightContent;
+static int DummyLightContentSize;
+
 #define MOV_AVG_SIZE                1
 #define RTK_BUFFER_SIZE            100
 #define CAR_MODEL_CACHE_SIZE      10
@@ -129,6 +132,9 @@
     memset(SensorConfig, 0, sizeof(SensorConfig));
 
     SensorValidLevel = 0;
+
+    DummyLightContentSize = 0;
+    DummyLightContent = NULL;
 
     RtkBuffer = (rtk_info *) malloc(RTK_BUFFER_SIZE * sizeof(rtk_info));
     RtkBufferNum = RtkBufferIn = 0;
@@ -359,7 +365,24 @@
     }
 }
 
-void StartDriverExam(int start)
+void SetDummyLightExam(int n, struct dummy_light_exam *cfg)
+{
+    if (TestStart) return;
+
+    if (DummyLightContent != NULL) {
+        free(DummyLightContent);
+        DummyLightContent = NULL;
+    }
+
+    DummyLightContent = (struct dummy_light_exam *)malloc(n * sizeof(struct dummy_light_exam));
+    DummyLightContentSize = n;
+
+    for (int i = 0; i < n; i++) {
+        DummyLightContent[i] = cfg[i];
+    }
+}
+
+void StartDriverExam(int start, int type)
 {
     bool err = false;
 
@@ -383,6 +406,11 @@
         err = true;
         MA_SendExamStatus(0, -2);
     }
+    if (DummyLightContent == NULL && type == 3) {
+        err = true;
+        MA_SendExamStatus(0, -3);
+    }
+
     if (!err) {
         if (!TestStart) {
             ExamFaultList.clear();
@@ -498,7 +526,7 @@
                     CurrEnterMapIndex = EnterMap(CarModel, MapList, MapNum);
                     if (CurrEnterMapIndex >= 0) {
                         DEBUG("鍙戦�佽繘鍏ュ満鍦版姤鍛� %d", GetMapId(CurrEnterMapIndex, MapList, MapNum));
-                        MA_EnterMap(GetMapId(CurrEnterMapIndex, MapList, MapNum), 1);
+                        MA_EnterMap(GetMapId(CurrEnterMapIndex, MapList, MapNum), GetMapType(CurrEnterMapIndex, MapList, MapNum), 1);
 
                         CurrExamMapIndex = CurrEnterMapIndex;
                         CurrExamStatus = EXAM_AREA_START;
@@ -506,7 +534,7 @@
                 } else {
                     if (ExitMap(CarModel, CurrEnterMapIndex, MapList, MapNum)) {
                         DEBUG("鍙戦�佺寮�鍦哄湴鎶ュ憡 %d", GetMapId(CurrEnterMapIndex, MapList, MapNum));
-                        MA_EnterMap(GetMapId(CurrEnterMapIndex, MapList, MapNum), 0);
+                        MA_EnterMap(GetMapId(CurrEnterMapIndex, MapList, MapNum), GetMapType(CurrEnterMapIndex, MapList, MapNum), 0);
                         CurrEnterMapIndex = -1;
                     }
                 }

--
Gitblit v1.8.0