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