From 767edd5ec2a133c04c5d84aeba4135f0bd21d23f Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期三, 28 八月 2024 15:11:49 +0800
Subject: [PATCH] V3.1,改为最新逻辑。 1.铁鞋没有处于充电状态&&同时在运动状态,正常定位,有uwb发uwb跟gps数据,没有就看是否有gps数据,有发gps数据没有发lbs数据。 2.铁鞋没有处于充电状态&&同时在静止休状态,1秒钟发送一次状态和位置坐标;直到定位引擎回复收到消息后,设备停止发送状态进入休眠模式;20分钟后再次启动工作,重复(避免铁鞋被盗找不到) 3.铁鞋插上充电时候(延迟x秒后,为了确保能判断归箱)1秒钟发送一次在充电状态;定位引擎回复收到消息后,设备停止发送状态进入休眠模式(目的太阳能充电省电) 4.铁鞋充电到100%后启动4G工作,1秒钟发送一次充满电状态;定位引擎回复收到消息后,设备停止发送状态进入休眠模式(目的太阳能充电省电)。休眠模式是指:所有外设不再工作,不联网不测距。PS:每两种状态之间切换时,只要之前进入过休眠,就要重新开启4g,联网时间根据信号强度5-20s不等。重新联网期间没有办法上发任何数据。

---
 FML/GPS.c |   36 +++++++++++++++++++++++++++++-------
 1 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/FML/GPS.c b/FML/GPS.c
index 8f6da14..1587545 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;
@@ -490,7 +497,6 @@
     {
         return HIDO_ERR;
     }
-
     if(*(HIDO_CHAR *)stPosState.m_pData != '0')
     {
 //        HIDO_DebugString(_pcData, _u32Len);
@@ -500,17 +506,32 @@
         }
         gpsled=RED;
         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;
         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;
     }
 
     return HIDO_OK;
@@ -659,6 +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);
             	}
                 else if(strstr(l_stGPSRecv.m_acRecvBuf, "RMC,") != HIDO_NULL)
             	{

--
Gitblit v1.9.3