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