From 683b1595260e638d1d3c6cc0d6543a72f6d6f925 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期二, 12 一月 2021 14:36:42 +0800
Subject: [PATCH] 扣分码标准化

---
 lib/src/main/cpp/mcu/mcu_if.cpp |   62 ++++++++++++++++++++----------
 1 files changed, 41 insertions(+), 21 deletions(-)

diff --git a/lib/src/main/cpp/mcu/mcu_if.cpp b/lib/src/main/cpp/mcu/mcu_if.cpp
index 080f233..b5924d6 100644
--- a/lib/src/main/cpp/mcu/mcu_if.cpp
+++ b/lib/src/main/cpp/mcu/mcu_if.cpp
@@ -14,6 +14,7 @@
 #include "../rtk_platform/platform.h"
 #include "../rtk_module/parse_gps.h"
 #include "../native-lib.h"
+#include "../rtk_module/virtual_rtk.h"
 
 #define DEBUG(fmt, args...)     LOGD("<mcu_if> <%s>: " fmt, __func__, ##args)
 
@@ -277,25 +278,29 @@
     WriteMcu(MCU_UART, buffer, x);
 }
 
-void ConfigMCU(void)
+void ConfigMCU(bool ayDevice)
 {
-    McuCommModeSel(1);
+    if (ayDevice) {
+        McuCommModeSel(0);
 
-    // TODO
-  /*  static struct serial_config serialConfig;
+        // TODO
+        static struct serial_config serialConfig;
 
-    strcpy(serialConfig.name, "/dev/ttyHSL1");
-    serialConfig.baud = 115200;
-    serialConfig.data_bit = 8;
-    serialConfig.verify_bit = 'N';
-    serialConfig.stop_bit = 1;
-    serialConfig.flow_ctrl = 0;
+        strcpy(serialConfig.name, "/dev/ttyHSL1");
+        serialConfig.baud = 115200;
+        serialConfig.data_bit = 8;
+        serialConfig.verify_bit = 'N';
+        serialConfig.stop_bit = 1;
+        serialConfig.flow_ctrl = 0;
 
-    pthread_t pid;
-    pthread_attr_t attr;
-    pthread_attr_init(&attr);
-    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);//detached
-    pthread_create(&pid, &attr, UartThread1, &serialConfig);*/
+        pthread_t pid;
+        pthread_attr_t attr;
+        pthread_attr_init(&attr);
+        pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);//detached
+        pthread_create(&pid, &attr, UartThread1, &serialConfig);
+    } else {
+        McuCommModeSel(1);
+    }
 }
 
 void SendRtkToMcu(const uint8_t *data, int length)
@@ -417,14 +422,29 @@
 
             memcpy(GnssBuf + GnssBufLen, data, length);
             GnssBufLen += length;
+
             if (GnssBufLen > 0) {
-                const uint8_t *ptr = parseGPS(GnssBuf, GnssBuf + GnssBufLen);
-                if (ptr != GnssBuf) {
-                    memcpy(GnssBuf, ptr, GnssBufLen - (ptr - GnssBuf));
-                    GnssBufLen -= ptr - GnssBuf;
-                } else if (GnssBufLen == PARSE_BUFF_SIZE) {        //濉弧浜嗭紝涓旀病鏈変竴涓猏r锛岄兘鎶涘純
-                    DEBUG("Parse GPS error");
+                if (VirtualIsConnected()) {     //PC妯℃嫙鐢ㄦ椂
+                    static bool first = false;
+
+                    if (!first) {
+                        first = true;
+
+                        uint8_t buff[33] = "emulator";
+                        buff[32] = 1;
+                        PlatformStatusChanged(RTK_STATUS_EVT, buff, 33);
+                    }
+
                     GnssBufLen = 0;
+                } else {
+                    const uint8_t *ptr = parseGPS(GnssBuf, GnssBuf + GnssBufLen);
+                    if (ptr != GnssBuf) {
+                        memcpy(GnssBuf, ptr, GnssBufLen - (ptr - GnssBuf));
+                        GnssBufLen -= ptr - GnssBuf;
+                    } else if (GnssBufLen == PARSE_BUFF_SIZE) {        //濉弧浜嗭紝涓旀病鏈変竴涓猏r锛岄兘鎶涘純
+                        DEBUG("Parse GPS error");
+                        GnssBufLen = 0;
+                    }
                 }
             }
             break;

--
Gitblit v1.8.0