From 32e789cf43a39565a506da32f2a952c8398aa4c0 Mon Sep 17 00:00:00 2001
From: fctom1215 <fctom1215@outlook.com>
Date: 星期三, 19 二月 2020 23:16:21 +0800
Subject: [PATCH] GPS信息合并到RTK中,以RTK包,发送

---
 lib/src/main/cpp/rtk_platform/platform.cpp |   65 +++++++++++++++++++++-----------
 1 files changed, 43 insertions(+), 22 deletions(-)

diff --git a/lib/src/main/cpp/rtk_platform/platform.cpp b/lib/src/main/cpp/rtk_platform/platform.cpp
index a5b4082..ceaa2c6 100644
--- a/lib/src/main/cpp/rtk_platform/platform.cpp
+++ b/lib/src/main/cpp/rtk_platform/platform.cpp
@@ -74,6 +74,9 @@
 static pthread_mutex_t platform_tx_mutex = PTHREAD_MUTEX_INITIALIZER;
 static pthread_mutex_t events_mutex = PTHREAD_MUTEX_INITIALIZER;
 
+static struct gpsBrief gbf;
+static struct rtkBrief rbf;
+
 static void AddEvnet(uint32_t event, const uint8_t *data, int length);
 static struct event_t * FetchEvent(void);
 static void RemoveEvent(void);
@@ -166,6 +169,9 @@
 {
     DEBUG("InitPlatform");
 
+    memset(&gbf, 0, sizeof(gbf));
+    memset(&rbf, 0, sizeof(rbf));
+
     pthread_mutex_init(&platform_tx_mutex, NULL);
     pthread_mutex_init(&events_mutex, NULL);
 
@@ -197,7 +203,7 @@
 
 void ConfigPlatform(const rtk_platform_cfg_t *p)
 {
-    DEBUG("ConfigPlatform");
+    DEBUG("閰嶇疆RTK骞冲彴璧勮");
 
     AppTimer_delete(ReqRtkPlatformConfigTimeout);
 
@@ -340,35 +346,50 @@
     if (events & GPS_UPDATE_EVT) {
         DEBUG("GPS_UPDATE_EVT length %d", length);
         const gpsStatus_t *gps = (gpsStatus_t *)data;
-        struct gpsBrief brief;
 
-        brief.qf = gps->gps_status;
-        brief.latitude = gps->latitude;
-        brief.longitude = gps->longitude;
-        brief.altitude = gps->altitude;
-        brief.speed = gps->speed;
-        brief.sat_num = gps->satNum;
-        sprintf(brief.utc, "%04d%02d%02d%02d%02d%02d.%02d", 2000 + gps->YY, gps->MM, gps->DD, gps->hh, gps->mm, gps->ss, gps->mss);
-
-        MA_SendGpsBrief(&brief);
+        gbf.qf = gps->gps_status;
+        gbf.latitude = gps->latitude;
+        gbf.longitude = gps->longitude;
+        gbf.altitude = gps->altitude;
+        gbf.speed = gps->speed;
+        gbf.sat_num = gps->satNum;
+        gbf.trackTure = gps->trackTure;
+        sprintf(gbf.utc, "%04d%02d%02d%02d%02d%02d.%02d", 2000 + gps->YY, gps->MM, gps->DD, gps->hh, gps->mm, gps->ss, gps->mss);
+        if (!strcmp(rbf.utc, gbf.utc)) {
+            rbf.sat_num = gbf.sat_num;
+            rbf.latitude = gbf.latitude;
+            rbf.longitude = gbf.longitude;
+            rbf.altitude = gbf.altitude;
+            rbf.speed = gbf.speed;
+            rbf.trackTure = gbf.trackTure;
+            MA_SendRtkBrief(&rbf);
+        }
+//        MA_SendGpsBrief(&brief);
         RequestRtkDownload(gps, 1);
     }
     if (events & RTK_UPDATE_EVT) {
         DEBUG("RTK_UPDATE_EVT length %d", length);
         const rtk_info *rtk = (rtk_info *)data;
-        struct rtkBrief brief;
 
-        brief.qf = rtk->qf;
-        brief.coord_x = rtk->x;
-        brief.coord_y = rtk->y;
-        brief.heading = rtk->heading;
-        brief.pitch = rtk->pitch;
-        brief.roll = rtk->roll;
-        brief.coord_x_dir = 'N';
-        brief.coord_y_dir = 'E';
-        sprintf(brief.utc, "%04d%02d%02d%02d%02d%02d.%02d", 2000 + rtk->YY, rtk->MM, rtk->DD, rtk->hh, rtk->mm, rtk->ss, rtk->dss);
+        rbf.qf = rtk->qf;
+        rbf.coord_x = rtk->y;
+        rbf.coord_y = rtk->x;
+        rbf.heading = rtk->heading;
+        rbf.pitch = rtk->pitch;
+        rbf.roll = rtk->roll;
+        rbf.coord_x_dir = 'N';
+        rbf.coord_y_dir = 'E';
+        sprintf(rbf.utc, "%04d%02d%02d%02d%02d%02d.%02d", 2000 + rtk->YY, rtk->MM, rtk->DD, rtk->hh, rtk->mm, rtk->ss, rtk->dss);
+        if (!strcmp(rbf.utc, gbf.utc)) {
+            rbf.sat_num = gbf.sat_num;
+            rbf.latitude = gbf.latitude;
+            rbf.longitude = gbf.longitude;
+            rbf.altitude = gbf.altitude;
+            rbf.speed = gbf.speed;
+            rbf.trackTure = gbf.trackTure;
+            MA_SendRtkBrief(&rbf);
+        }
 
-        MA_SendRtkBrief(&brief);
         UpdateRTKInfo(rtk);
     }
     if (events & MCU_UPDATE_EVT) {

--
Gitblit v1.8.0