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不等。重新联网期间没有办法上发任何数据。

---
 APL/UDPClient.c |  157 +++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 117 insertions(+), 40 deletions(-)

diff --git a/APL/UDPClient.c b/APL/UDPClient.c
index 90c8715..0ac3d47 100644
--- a/APL/UDPClient.c
+++ b/APL/UDPClient.c
@@ -74,6 +74,9 @@
  * Modified Date:    : 2021年1月9日
  *******************************************************************************/
 uint16_t beepontime;
+uint8_t receive1_gotosleep_flag;
+uint8_t receive2_gotosleep_flag;
+uint8_t receive3_gotosleep_flag;
 static HIDO_INT32 UDPClient_CmdParse(HIDO_UINT8 *_u8Data, HIDO_UINT32 _u32Len)
 {
     HIDO_CHAR *apcSplitStr[12];
@@ -191,6 +194,33 @@
             }
         }
     }
+    else if(STRCMP(_u8Data, "$receive,") == 0)
+    {
+        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+
+        if(u32SplitCnt < 3)
+        {
+            return HIDO_ERR;
+        }
+
+        /* 设备ID检查 */
+        if(HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        {
+           if(HIDO_UtilHexStrToInt(apcSplitStr[2])==1)
+           {
+           receive1_gotosleep_flag=1;
+           }
+           if(HIDO_UtilHexStrToInt(apcSplitStr[2])==2)
+           {
+           receive2_gotosleep_flag=1;
+           }
+           if(HIDO_UtilHexStrToInt(apcSplitStr[2])==3)
+           {
+           receive3_gotosleep_flag=1;
+           }    
+        }
+    }
+    
     /* $update,id,url,version */
     else if(STRCMP(_u8Data, "$update,") == 0)
     {
@@ -430,6 +460,9 @@
  *******************************************************************************/
 uint8_t heartbeasend_flag = 0,userkey_state4g;
 extern uint32_t uwbled,gpsled,loraled,powerled;
+extern uint8_t fangchai_flag;
+extern uint8_t nomove_flag;
+extern uint8_t zuihoufasong_falg;
 HIDO_INT32 UDPClient_Poll(void)
 {
     if(Internet_IsIPReady() == HIDO_TRUE)
@@ -443,18 +476,37 @@
                     g_com_map[IP_0], g_com_map[IP_1], g_com_map[IP_2], g_com_map[IP_3]);
 
             Socket_Connect(l_i32UDPCLientID, (HIDO_CHAR *)l_au8CmdBuff, g_com_map[PORT]);
+            
+//                        HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%u.%u.%u.%u",
+//                    39, 105, 162, 230);
+
+//            Socket_Connect(l_i32UDPCLientID, (HIDO_CHAR *)l_au8CmdBuff, 8999);
         }
         else if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
         {
             HIDO_UINT32 u32CurTick =  HIDO_TimerGetTick();
-
-            if((u32CurTick - l_u32HeartBeatTick) >= 60000)
-            {
-                heartbeasend_flag = 0;
-                l_u32HeartBeatTick = u32CurTick;
-                UDPClient_Heartbeat();
-                userkey_state4g = 0;
-            }
+//            if(fangchai_flag==0)
+//            {
+//                if((u32CurTick - l_u32HeartBeatTick) >= 10000)
+//                {
+//                    heartbeasend_flag = 0;
+//                    l_u32HeartBeatTick = u32CurTick;
+//                    UDPClient_Heartbeat();
+////                    if(nomove_flag==1)
+////                    {zuihoufasong_falg=1;}
+//                    userkey_state4g = 0;
+//                }
+//            }
+//            else            
+//            {
+                if((u32CurTick - l_u32HeartBeatTick) >= 5000)
+                {
+                    heartbeasend_flag = 0;
+                    l_u32HeartBeatTick = u32CurTick;
+                    UDPClient_Heartbeat();
+                    userkey_state4g = 0;
+                }
+//            }
         }
     }
     else
@@ -478,41 +530,69 @@
 
 extern uint8_t fangchai_flag;
 extern  uint8_t bat_percent;
+extern uint8_t GPS_ParseGGA_data[256];
+extern uint8_t GPS_ParseGGA_changdu;
 HIDO_INT32 UDPClient_UploadGPS(HIDO_CHAR *_pcGGA)
-{uint16_t state_flag;
+{
+//    uint16_t state_flag;
     static HIDO_CHAR l_acUploadBuff[1024];
     static HIDO_UINT32 l_u32UploadBuffLen = 0;
     static HIDO_UINT32 l_u32UdpsendTick = 0;
     
-    if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
-    {
-            state_flag = 0;
-    state_flag = fangchai_flag;
-        
-        HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%s,%X,%02x,%x,%d,%d,%d%\r\n",
-                _pcGGA, g_com_map[DEV_ID], bat_percent,0,0,0,state_flag);
+//    if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
+//    {
+//            state_flag = 0;
+//    state_flag = fangchai_flag;
+//        
+//        HIDO_UINT32 u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "%s,%X,%02x,%x,%d,%d,%d,%d\r\n",
+//                _pcGGA, g_com_map[DEV_ID], bat_percent,0,0,0,state_flag,gpsbaoxu);
+//        gpsbaoxu++;
+
+//        
+//        if((l_u32UploadBuffLen + u32Len) < sizeof(l_acUploadBuff))
+//        {
+//            memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len);
+//            l_u32UploadBuffLen += u32Len;
+//        }
+//        //memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len);
+//        //l_u32UploadBuffLen += u32Len;
+//       // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
+//        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
+//        {
+//            l_u32UdpsendTick = HIDO_TimerGetTick();
+//            Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_acUploadBuff, l_u32UploadBuffLen);
+//            l_u32UploadBuffLen = 0;
+//        }
 
 
-        
-        if((l_u32UploadBuffLen + u32Len) < sizeof(l_acUploadBuff))
-        {
-            memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len);
-            l_u32UploadBuffLen += u32Len;
-        }
-        //memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len);
-        //l_u32UploadBuffLen += u32Len;
-       // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
+//    }
+
+//    return HIDO_OK;
+//    if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
+//    {
+////        memcpy(l_acUploadBuff + l_u32UploadBuffLen, l_au8CmdBuff, u32Len);
+////        l_u32UploadBuffLen += u32Len;
+//       // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
+//        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
+//        {
+//            l_u32UdpsendTick = HIDO_TimerGetTick();
+//            Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len);
+//            memset(l_au8CmdBuff,0,u32Len);
+//            l_u32UploadBuffLen = 0;
+//        }
+
+
+//    }
         if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
         {
             l_u32UdpsendTick = HIDO_TimerGetTick();
-            Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_acUploadBuff, l_u32UploadBuffLen);
-            l_u32UploadBuffLen = 0;
+            Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)GPS_ParseGGA_data, GPS_ParseGGA_changdu);
+            memset(GPS_ParseGGA_data,0,GPS_ParseGGA_changdu);
+            GPS_ParseGGA_changdu = 0;
         }
 
-
-    }
-
     return HIDO_OK;
+//    }
 }
 HIDO_INT32 UDPClient_Uploadhex(uint8_t *_pcGGA,uint16_t u32Len)
 {
@@ -547,26 +627,23 @@
  * Modified Date:    : 2021年1月9日
  *******************************************************************************/
 uint8_t bat_percent2 = 0;
+extern uint8_t input_5v_flag;
+extern uint8_t nomove_flag;
 //extern qxwz_sdk_config_t sdk_config;
+uint8_t xintiaobaoxu;
 HIDO_INT32 UDPClient_Heartbeat(HIDO_VOID)
 {
     HIDO_UINT32 u32Len = 0;
     
     if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
     {
-    if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
-    {       u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,3:%d.%d.%d.%d:%d.",
-                    g_com_map[DEV_ID], bat_percent2, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),userkey_state4g,g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]);
-    }else if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NTRIP)
     {
-          u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,2%s %s",
-                    g_com_map[DEV_ID], bat_percent2, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),userkey_state4g,(char *)&g_com_map[NTRIP_HOST_INDEX],(char *)&g_com_map[NTRIP_USERNANME_INDEX]);    
-     }else if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NONE)
-    {
-         u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,1.",
-                    g_com_map[DEV_ID], bat_percent2, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),userkey_state4g,g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]);   
+         u32Len = HIDO_UtilSnprintf((HIDO_CHAR *)l_au8CmdBuff, sizeof(l_au8CmdBuff), "$XTB,%X,%02u%%,%d.%d,%s,%d,1.,%d,%d,%d,%d",
+                    g_com_map[DEV_ID], bat_percent, g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff, Module_GetCCID(),userkey_state4g,input_5v_flag,fangchai_flag,nomove_flag,xintiaobaoxu); 
+         xintiaobaoxu ++;        
     }      
         Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_au8CmdBuff, u32Len);
+    memset(l_au8CmdBuff,0,u32Len);
     }
 
     return HIDO_OK;

--
Gitblit v1.9.3