From f1ff7e339eca91b114497d3e847fa1fc33baccc4 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期一, 21 九月 2020 10:58:58 +0800
Subject: [PATCH] 坐标

---
 lib/src/main/cpp/driver_test.cpp |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/lib/src/main/cpp/driver_test.cpp b/lib/src/main/cpp/driver_test.cpp
index 600be36..a9208fb 100644
--- a/lib/src/main/cpp/driver_test.cpp
+++ b/lib/src/main/cpp/driver_test.cpp
@@ -896,6 +896,8 @@
     return true;
 }
 
+static int currRoad = -1, currCrossing = -1;
+
 void RoadChange(int road, int status)
 {
     struct roadStatusBrief brief;
@@ -904,6 +906,8 @@
     brief.status = status;
 
     MA_SendRoadStatus(&brief);
+
+    currRoad = (status == 1? road : -1);
 
     DEBUG("鎶ュ憡闀垮畼 杩涘嚭璺 road %d status %d", road, status);
 }
@@ -917,6 +921,8 @@
     brief.status = status;
 
     MA_SendCrossingStatus(&brief);
+
+    currCrossing = (status == 1? crossing : -1);
 
     DEBUG("鎶ュ憡闀垮畼 杩涘嚭璺彛 road %d crossing %d status %d", road, crossing, status);
 }
@@ -947,6 +953,35 @@
     ExamFaultList.clear();
 }
 
+void MasterInqRoadStatus(void)
+{
+    struct roadStatusBrief brief;
+    struct crossingStatusBrief brief2;
+
+    brief2.road_id = brief.road_id = currRoad;
+
+    if (currRoad >= 0) {
+        brief.status = 1;
+
+        if (currCrossing >= 0) {
+            brief2.crossing_index = currCrossing;
+            brief2.status = 1;
+        } else {
+            brief2.crossing_index = -1;
+            brief2.status = 0;
+        }
+    }
+    else {
+        brief.status = 0;
+        brief2.crossing_index = -1;
+        brief2.status = 0;
+    }
+
+    MA_SendRoadStatus(&brief);
+
+    MA_SendCrossingStatus(&brief2);
+}
+
 /*******************************************************************
  * @brief 鐢变富澶╃嚎鍧愭爣璁$畻杞﹁韩鐐瑰潗鏍�
  * @param azimuth

--
Gitblit v1.8.0