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开机后重新初始化,发生硬件错误直接重启

---
 APL/UDPClient.c |  103 ++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 72 insertions(+), 31 deletions(-)

diff --git a/APL/UDPClient.c b/APL/UDPClient.c
index 54a1e82..d77347e 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)
     {
@@ -433,11 +463,12 @@
 extern uint8_t fangchai_flag;
 extern uint8_t nomove_flag;
 extern uint8_t zuihoufasong_falg;
+extern uint32_t main_time;
 HIDO_INT32 UDPClient_Poll(void)
 {
     if(Internet_IsIPReady() == HIDO_TRUE)
     {
-        loraled=RED;
+        loraled=GREEN;
         if(UDP_CLIENT_STATE_IDLE == l_eUDPCLientState)
         {
             l_eUDPCLientState = UDP_CLIENT_STATE_CONNECTING;
@@ -454,34 +485,35 @@
         }
         else if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
         {
-            HIDO_UINT32 u32CurTick =  HIDO_TimerGetTick();
-            if(fangchai_flag==0)
-            {
-                if((u32CurTick - l_u32HeartBeatTick) >= 10000)
+//            HIDO_UINT32 u32CurTick =  main_time;
+//            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((main_time - l_u32HeartBeatTick) >= 300)
                 {
+                    printf("发送4G心跳包\r\n");
                     heartbeasend_flag = 0;
-                    l_u32HeartBeatTick = u32CurTick;
-                    UDPClient_Heartbeat();
-//                    if(nomove_flag==1)
-//                    {zuihoufasong_falg=1;}
-                    userkey_state4g = 0;
-                }
-            }
-            else            
-            {
-                if((u32CurTick - l_u32HeartBeatTick) >= 1000)
-                {
-                    heartbeasend_flag = 0;
-                    l_u32HeartBeatTick = u32CurTick;
+                    l_u32HeartBeatTick = main_time;
                     UDPClient_Heartbeat();
                     userkey_state4g = 0;
                 }
-            }
+//            }
         }
     }
     else
     {
-        loraled=LEDOFF;
+        loraled=RED;
         l_eUDPCLientState = UDP_CLIENT_STATE_IDLE;
     }
 
@@ -509,8 +541,8 @@
     static HIDO_UINT32 l_u32UploadBuffLen = 0;
     static HIDO_UINT32 l_u32UdpsendTick = 0;
     
-//    if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
-//    {
+    if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
+    {
 //            state_flag = 0;
 //    state_flag = fangchai_flag;
 //        
@@ -553,16 +585,16 @@
 
 
 //    }
-        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
-        {
-            l_u32UdpsendTick = HIDO_TimerGetTick();
+//        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
+//        {
+//            l_u32UdpsendTick = HIDO_TimerGetTick();
             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)
 {
@@ -575,12 +607,12 @@
         memcpy(l_acUploadBuff + l_u32UploadBuffLen, _pcGGA, u32Len);
         l_u32UploadBuffLen += u32Len;
        // if((l_u32UploadBuffLen + u32Len )> sizeof(l_acUploadBuff))
-        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
-        {
-            l_u32UdpsendTick = HIDO_TimerGetTick();
+//        if((HIDO_TimerGetTick() - l_u32UdpsendTick) >= 200)
+//        {
+//            l_u32UdpsendTick = HIDO_TimerGetTick();
             Socket_Send(l_i32UDPCLientID, (HIDO_UINT8 *)l_acUploadBuff, l_u32UploadBuffLen);
             l_u32UploadBuffLen = 0;
-        }
+//        }
 
 
     }
@@ -634,3 +666,12 @@
 
     return HIDO_OK;
 }
+uint8_t IfTCPConnected(void)
+{
+    if(UDP_CLIENT_STATE_CONNECTED == l_eUDPCLientState)
+    {
+        return 1;
+    } else {
+        return 0;
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3