From 8217c70984ac4feb7bfc952e4f6e944bf824527d Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期二, 06 五月 2025 16:51:53 +0800
Subject: [PATCH] Merge branch 'MK大工卡-低精度GPS-1/5HZ' of http://47.108.70.204:60062/r/ChinaUWBProject into MK大工卡-低精度GPS-1/5HZ

---
 keil/include/src/GPS.c |  102 +++++++++++++++++++++++++++------------------------
 1 files changed, 54 insertions(+), 48 deletions(-)

diff --git a/keil/include/src/GPS.c b/keil/include/src/GPS.c
index 9362494..2e97834 100644
--- a/keil/include/src/GPS.c
+++ b/keil/include/src/GPS.c
@@ -7,14 +7,14 @@
 #include "HIDO_Util.h"
 #include "HIDO_Debug.h"
 #include "HIDO_Timer.h"
-
+#include "DBG.h"
 #include "GPS.h"
 //#include "GPIO.h"
 #include "Uart.h"
 #include "WS2812.h"
 #define GPS_DBG(level, fmt, ...) HIDO_Debug(fmt, __VA_ARGS__)
-
-#define GPS_UART_RX_BUF_SIZE                    1024
+#include <global_param.h>
+#define GPS_UART_RX_BUF_SIZE                    1000
 #define GPS_UART_TX_BUF_SIZE                    (4)
 
 typedef enum
@@ -40,7 +40,7 @@
 static ST_GPSRecv l_stGPSRecv;
 static FN_GPSEventCallback l_fnGPSEventCallback;
 ST_GPS l_stGPS;
-
+static HIDO_UINT8 l_u8PosState = 0;
 /*******************************************************************************
  * Function Name     : GPS_AddHours
  * Description       :
@@ -478,64 +478,39 @@
 uint8_t fangchai_flag;
 uint8_t GPS_ParseGGA_data[256];
 uint8_t GPS_ParseGGA_changdu;
-extern uint16_t g_com_map[256];
+uint8_t YUANGPS_ParseGGA_data[256];
+uint8_t YUANGPS_ParseGGA_changdu;
+//extern uint16_t g_com_map[256];
 extern uint8_t bat_percent;
 uint8_t gpsbaoxu;
+extern uint8_t gps_ntripsend;
+//static HIDO_UINT8 l_u8GPSBuff[512];
+//static HIDO_UINT32 l_u8GPSLen = 0;
+//static HIDO_UINT32 l_u8GPSRecvTick = 0;
+uint8_t gps_error1,gps_error2;
 static HIDO_INT32 GPS_ParseGGA(HIDO_CHAR *_pcData, HIDO_UINT32 _u32Len)
 {
-    uint16_t state_flag;
     ST_GPS stGPS;
     HIDO_DataStruct stPosState;
-    jinru_parsegga_flag=1;
+
     memset(&stGPS, 0, sizeof(ST_GPS));
     if (GPS_DataCheck(_pcData, _u32Len) != HIDO_OK)
     {
+        gps_error1++;
         return HIDO_ERR;
     }
 
     if (HIDO_UtilParseFormat((HIDO_UINT8 *) _pcData, _u32Len, "$%*,%*,%*,%*,%*,%*,%p,%*,%*,%*,%*,%*,%*,%*,%**", &stPosState) != 15)
     {
+        gps_error2++;
         return HIDO_ERR;
     }
-    if(*(HIDO_CHAR *)stPosState.m_pData != '0')
-    {
-//        HIDO_DebugString(_pcData, _u32Len);
-        if(l_fnGPSEventCallback != NULL)
-        {
-            l_fnGPSEventCallback(GPS_TYPE_GGA, _pcData, _u32Len);
-        }
-        rtkled=BLUE;
-        GPS_successful_flag=1;
-        _pcData[_u32Len-1]=0;
-        _pcData[_u32Len-2]=0;
-//        memcpy(GPS_data,_pcData, _u32Len-2);//去掉回车换行
-    state_flag = 0;
-    state_flag = fangchai_flag;
-        
-        HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)GPS_ParseGGA_data, sizeof(GPS_ParseGGA_data), "%s,%X,%02x,%x,%d,%d,%d,%d\r\n",
-                _pcData, g_com_map[2], bat_percent,0,0,0,state_flag,gpsbaoxu);
-        gpsbaoxu++;
-        GPS_ParseGGA_changdu=u32Len;
 
-    }
-    else
-    {
-        rtkled=RED;
-        GPS_successful_flag=0;
-        _pcData[_u32Len-1]=0;
-        _pcData[_u32Len-2]=0;
-//        memcpy(GPS_data,_pcData, _u32Len-2);
-            state_flag = 0;
-    state_flag = fangchai_flag;
-        
-        HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)GPS_ParseGGA_data, sizeof(GPS_ParseGGA_data), "%s,%X,%02x,%x,%d,%d,%d,%d\r\n",
-                _pcData, g_com_map[2], bat_percent,0,0,0,state_flag,gpsbaoxu);
-        gpsbaoxu++;
-        GPS_ParseGGA_changdu=u32Len;
-    }
-    UDPClient_UploadGPS();
+    l_u8PosState = atoi((HIDO_CHAR *)stPosState.m_pData);
+
     return HIDO_OK;
 }
+
 
 /*******************************************************************************
  * Function Name     : GPS_ParseRMC
@@ -639,6 +614,8 @@
  * Author            : hido.ltd
  * Modified Date:    : 2021年5月07日
  *******************************************************************************/
+extern uint8_t GPS_UPLOAD_FLAG;
+uint8_t gpserror;
 HIDO_VOID GPS_RecvFsm(HIDO_UINT8 _u8RecvChar)
 {
     switch (l_stGPSRecv.m_eState)
@@ -676,15 +653,44 @@
             {
             	l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen++] = _u8RecvChar;
             	l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen] = '\0';
-
+//                l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen - 2] = '\0';
+//                UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf);
             	if(strstr(l_stGPSRecv.m_acRecvBuf, "GGA,") != HIDO_NULL)
             	{
             		GPS_ParseGGA(l_stGPSRecv.m_acRecvBuf, l_stGPSRecv.m_u32RecvLen);
-                    memset(l_stGPSRecv.m_acRecvBuf,0, l_stGPSRecv.m_u32RecvLen);
+                    l_stGPSRecv.m_acRecvBuf[l_stGPSRecv.m_u32RecvLen - 2] = '\0';
+										if(GPS_UPLOAD_FLAG==1)
+										{
+	                    UDPClient_UploadGPS(l_stGPSRecv.m_acRecvBuf); 
+											GPS_UPLOAD_FLAG=0;											
+										}
+             
+                    switch(l_u8PosState)
+                    {
+                        case 0:
+                        rtkled = RED;
+                        break;
+                        case 1:
+                        rtkled = BLUE; 
+                        break;
+                        case 2:
+                        rtkled = BLUE+GREEN; 
+                        break;
+                        case 4:
+                        rtkled = GREEN; 
+                        break;
+                        case 5:
+                        rtkled = YELLOW; 
+                        break;
+                        default:
+                        rtkled = WHITE; 
+                        break;
+                    } 
             	}
-                else if(strstr(l_stGPSRecv.m_acRecvBuf, "RMC,") != HIDO_NULL)
+
+                else //if(strstr(l_stGPSRecv.m_acRecvBuf, "RMC,") != HIDO_NULL)
             	{
-            		GPS_ParseRMC(l_stGPSRecv.m_acRecvBuf, l_stGPSRecv.m_u32RecvLen);
+            		gpserror++;
             	}
             }
 
@@ -781,7 +787,7 @@
 {
     HIDO_UINT8 u8RecvChar = 0;
 
-    while (Uart_GetChar(UART_ID_GPS, &u8RecvChar) == HIDO_OK)
+    while (Uart_GetChar(UART_ID_DBG_GPS, &u8RecvChar) == HIDO_OK)
     {
     	GPS_RecvFsm(u8RecvChar);
     }

--
Gitblit v1.9.3