From edc694498e7ca9a0475bbf5576729aedfc88d3f0 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期一, 13 一月 2020 14:04:50 +0800
Subject: [PATCH] s

---
 lib/src/main/cpp/rtk_module/rtk.cpp |   39 ++++++++++++++++++++++++---------------
 1 files changed, 24 insertions(+), 15 deletions(-)

diff --git a/lib/src/main/cpp/rtk_module/rtk.cpp b/lib/src/main/cpp/rtk_module/rtk.cpp
index 8515bb4..08adcc0 100644
--- a/lib/src/main/cpp/rtk_module/rtk.cpp
+++ b/lib/src/main/cpp/rtk_module/rtk.cpp
@@ -37,8 +37,6 @@
 
 static gpsStatus_t gpsStatus;
 
-static int tra_hh, tra_mm, tra_ss, tra_dss;
-
 static rtk_info CurrRTKInfo;
 
 static void CheckPjkParam(void);
@@ -52,7 +50,8 @@
     DEBUG("ConfigRTKModule");
 
     memset(&CurrRTKInfo, 0, sizeof(CurrRTKInfo));
-    tra_hh = tra_mm = tra_ss = tra_dss = 0;
+    CurrRTKInfo.hh = -1;
+
     memset(&gpsStatus, 0, sizeof(gpsStatus));
     gpsStatus.hh = -1;
 
@@ -338,10 +337,10 @@
 void handlePJK(const struct nmea *s) {
     DEBUG("handlePJK num = %d", s->nmea_num);
 
-    CurrRTKInfo.hh = str2int(s->nmea_value[0].data, 2);
-    CurrRTKInfo.mm = str2int(s->nmea_value[0].data + 2, 2);
-    CurrRTKInfo.ss = str2int(s->nmea_value[0].data + 4, 2);
-    CurrRTKInfo.dss = str2int(s->nmea_value[0].data + 7, 2);
+    int hh = str2int(s->nmea_value[0].data, 2);
+    int mm = str2int(s->nmea_value[0].data + 2, 2);
+    int ss = str2int(s->nmea_value[0].data + 4, 2);
+    int dss = str2int(s->nmea_value[0].data + 7, 2);
 
     CurrRTKInfo.MM = str2int(s->nmea_value[1].data, 2);
     CurrRTKInfo.DD = str2int(s->nmea_value[1].data + 2, 2);
@@ -373,36 +372,46 @@
 //        yy -= 0.02 * (by2 - by1) / (bx2 - bx1);
 //    }
 
-    if (CurrRTKInfo.hh == tra_hh && CurrRTKInfo.mm == tra_mm && CurrRTKInfo.ss == tra_ss && CurrRTKInfo.dss == tra_dss) {
+    if (CurrRTKInfo.hh == hh && CurrRTKInfo.mm == mm && CurrRTKInfo.ss == ss && CurrRTKInfo.dss == dss) {
         PlatformStatusChanged(RTK_UPDATE_EVT, (uint8_t *)&CurrRTKInfo, sizeof(CurrRTKInfo));
-        UpdateRTKInfo(&CurrRTKInfo);
+//        UpdateRTKInfo(&CurrRTKInfo);
 //        up_num++;
         /*if ((up_num % 5) == 0)*/ {
 //            NewMgrEvent(DRIVER_UPDATE_EVT);
         }
     }
+    CurrRTKInfo.hh = hh;
+    CurrRTKInfo.mm = mm;
+    CurrRTKInfo.ss = ss;
+    CurrRTKInfo.dss = dss;
 }
 
 void handleGPTRA(const struct nmea *s) {
     DEBUG("handleGPTRA num = %d", s->nmea_num);
 
-    tra_hh = str2int(s->nmea_value[0].data, 2);
-    tra_mm = str2int(s->nmea_value[0].data + 2, 2);
-    tra_ss = str2int(s->nmea_value[0].data + 4, 2);
-    tra_dss = str2int(s->nmea_value[0].data + 7, 2);
+    int hh = str2int(s->nmea_value[0].data, 2);
+    int mm = str2int(s->nmea_value[0].data + 2, 2);
+    int ss = str2int(s->nmea_value[0].data + 4, 2);
+    int dss = str2int(s->nmea_value[0].data + 7, 2);
 
     str2float(&CurrRTKInfo.heading, s->nmea_value[1].data, s->nmea_value[1].length);
+    str2float(&CurrRTKInfo.pitch, s->nmea_value[2].data, s->nmea_value[2].length);
+    str2float(&CurrRTKInfo.roll, s->nmea_value[3].data, s->nmea_value[3].length);
 
 //    CurrRTKInfo.heading = 60;
 
-    if (CurrRTKInfo.hh == tra_hh && CurrRTKInfo.mm == tra_mm && CurrRTKInfo.ss == tra_ss && CurrRTKInfo.dss == tra_dss) {
+    if (CurrRTKInfo.hh == hh && CurrRTKInfo.mm == mm && CurrRTKInfo.ss == ss && CurrRTKInfo.dss == dss) {
         PlatformStatusChanged(RTK_UPDATE_EVT, (uint8_t *)&CurrRTKInfo, sizeof(CurrRTKInfo));
-        UpdateRTKInfo(&CurrRTKInfo);
+//        UpdateRTKInfo(&CurrRTKInfo);
 //        up_num++;
         /*if ((up_num % 5) == 0)*/ {
 //            NewMgrEvent(DRIVER_UPDATE_EVT);
         }
     }
+    CurrRTKInfo.hh = hh;
+    CurrRTKInfo.mm = mm;
+    CurrRTKInfo.ss = ss;
+    CurrRTKInfo.dss = dss;
 }
 
 static void CheckPjkParam(void)

--
Gitblit v1.8.0