From f313a9ae0ed73b1343280de648b8a19e2d36983c Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期一, 24 二月 2025 10:00:56 +0800
Subject: [PATCH] 3.5,加入加速度计10s开机后重新初始化,发生硬件错误直接重启

---
 FML/GPS.c |   46 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 34 insertions(+), 12 deletions(-)

diff --git a/FML/GPS.c b/FML/GPS.c
index 286fa24..f51dd66 100644
--- a/FML/GPS.c
+++ b/FML/GPS.c
@@ -475,8 +475,15 @@
 extern uint8_t GPS_successful_flag;
 extern uint32_t uwbled,gpsled,loraled,powerled;
 extern uint8_t jinru_parsegga_flag;
+extern uint8_t fangchai_flag;
+uint8_t GPS_ParseGGA_data[256];
+uint8_t GPS_ParseGGA_changdu;
+extern uint16_t g_com_map[256];
+extern uint8_t bat_percent;
+uint8_t gpsbaoxu;
 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;
@@ -497,21 +504,36 @@
         {
             l_fnGPSEventCallback(GPS_TYPE_GGA, _pcData, _u32Len);
         }
-        gpsled=RED;
+        gpsled=BLUE;
         GPS_successful_flag=1;
-        GPS_data[_u32Len-1]=0;
-        GPS_data[_u32Len-2]=0;
-        memcpy(GPS_data,_pcData, _u32Len-2);//去掉回车换行
+        _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
     {
-        gpsled=LEDOFF;
+        gpsled=RED;
         GPS_successful_flag=0;
-        GPS_data[_u32Len-1]=0;
-        GPS_data[_u32Len-2]=0;
-        memcpy(GPS_data,_pcData, _u32Len-2);
+        _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((char*)GPS_ParseGGA_data);
     return HIDO_OK;
 }
 
@@ -658,7 +680,7 @@
             	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);//去掉回车换行
+                    memset(l_stGPSRecv.m_acRecvBuf,0, l_stGPSRecv.m_u32RecvLen);
             	}
                 else if(strstr(l_stGPSRecv.m_acRecvBuf, "RMC,") != HIDO_NULL)
             	{
@@ -707,7 +729,7 @@
 {
     l_bIsPowerOn = HIDO_TRUE;
 //    GPIO_RESET(&l_astGPSPin[GPS_PIN_EN]);
-    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_RESET);
+    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_SET);
 }
 
 /*******************************************************************************
@@ -723,7 +745,7 @@
 {
     l_bIsPowerOn = HIDO_FALSE;
 //    GPIO_RESET(&l_astGPSPin[GPS_PIN_EN]);
-    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_SET);
+    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_RESET);
 }
 
 /*******************************************************************************

--
Gitblit v1.9.3