From 6777eb77964fa79e39cb34112d23d8a3acae1ef3 Mon Sep 17 00:00:00 2001
From: zhangbo <zhangbo@qq.com>
Date: 星期三, 02 七月 2025 11:00:24 +0800
Subject: [PATCH] 按照文档修改4G下发指令,杨总测试过的版本V1.25

---
 keil/include/src/TCPClient.c |  108 ++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 93 insertions(+), 15 deletions(-)

diff --git a/keil/include/src/TCPClient.c b/keil/include/src/TCPClient.c
index 033ed59..5f35ca4 100644
--- a/keil/include/src/TCPClient.c
+++ b/keil/include/src/TCPClient.c
@@ -85,6 +85,8 @@
 uint8_t uwb_OpenClose_flag=1;
 extern uint32_t state_start_time;
 extern uint32_t uwb_time_count;
+extern uint8_t GPS_UPLOAD_FLAG;
+extern float nomove_count;
 static HIDO_INT32 TCPClient_DataProc(HIDO_UINT8 *_u8Data, HIDO_UINT32 _u32Len)
 {
     HIDO_CHAR *apcSplitStr[12];
@@ -324,7 +326,7 @@
     {
         uint16_t buffer_len,datalen;
         u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-        char send_buffer[20]={"$rec_voicece\r\n"};
+        char send_buffer[20]={0};
         if (u32SplitCnt < 3)
         {
             return HIDO_ERR;
@@ -354,9 +356,9 @@
     /* $play_audio,0-9 */
     else if (STRCMP(_u8Data, "$play_audio,") == 0)
     {
-        uint16_t buffer_len,datalen;
+        uint16_t buffer_len,datalen,datalen1,temp;
         u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-        char send_buffer[20]={"$Receivevoice \r\n"};
+        char send_buffer[20]={0};
         
         if (u32SplitCnt < 3)
         {
@@ -368,8 +370,10 @@
             delay_ms(100);
             WT588E_PLAY(atoi(apcSplitStr[2]));
             buffer_len = sprintf(send_buffer,"$Receivevoice,");
-            datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
+            datalen = sprintf(&send_buffer[buffer_len],"%x",g_com_map[DEV_ID]);
             buffer_len += datalen;
+            datalen1=sprintf(&send_buffer[buffer_len],"%d",temp);
+            buffer_len+= datalen1;
             Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
         }
     }
@@ -377,7 +381,7 @@
     {
         u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
         uint16_t buffer_len,datalen;
-        char send_buffer[20]={"ERROR\r\n"};
+        char send_buffer[20]={0};
         if (u32SplitCnt < 6)
         {
             return HIDO_ERR;
@@ -419,7 +423,7 @@
     {
         u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
         uint16_t buffer_len,datalen;
-        char send_buffer[200]={"ERROR\r\n"};
+        char send_buffer[100]={0};
         if (u32SplitCnt < 1)
         {
             return HIDO_ERR;
@@ -447,9 +451,9 @@
     }
     else if (STRCMP(_u8Data, "$set_uwb_work,") == 0)
     {
-     uint16_t temp,buffer_len,datalen;
+     uint16_t temp,buffer_len,datalen,datalen1;
      u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-     char send_buffer[20]={"$rec_uwb_work\r\n"};
+     char send_buffer[30]={0};
      if (u32SplitCnt < 3)
      {
        return HIDO_ERR;
@@ -470,35 +474,109 @@
           buffer_len = sprintf(send_buffer,"$rec_uwb_work,");
           datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
           buffer_len += datalen;
+          datalen1=sprintf(&send_buffer[buffer_len],"%d",temp);
+          buffer_len+= datalen1;
           Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
         }
        
     }
     else if (STRCMP(_u8Data, "$set_uwb_frequency,") == 0)
     {
-     uint16_t temp,buffer_len,datalen;
+     uint16_t temp,buffer_len,datalen,datalen1;
         
      u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-     char send_buffer[20]={"$rec_frequency\r\n"};
+     char send_buffer[30]={0};
      if (u32SplitCnt < 3)
      {
        return HIDO_ERR;
      }
         if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
         {
-           HIDO_INT32 uwb_fre;
-           uwb_fre=HIDO_UtilStrToInt(apcSplitStr[2]);        
-           g_com_map[UWBFrequency]=uwb_fre;
+           HIDO_INT32 frequency;
+           frequency=HIDO_UtilStrToInt(apcSplitStr[2]);        
+           g_com_map[UWBFrequency]=frequency;
+           
            state_start_time=0;
            uwb_time_count=0; 
-           buffer_len = sprintf(send_buffer,"$rec_frequency,");
-           datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
+           buffer_len = sprintf(send_buffer,"$rec_uwbfrequency,");
+           datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);         
            buffer_len += datalen;
+           datalen1=sprintf(&send_buffer[buffer_len],"%d",frequency);
+           buffer_len+= datalen1;
+           save_com_map_to_flash();
            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
         }
 
 
     }
+    else if (STRCMP(_u8Data, "$set_gpsuwb_fet,") == 0)
+    {
+     uint16_t temp,buffer_len,datalen,datalen1,datalen2,datalen3;
+        
+     u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+     char send_buffer[30]={0};
+     if (u32SplitCnt < 3)
+     {
+       return HIDO_ERR;
+     }
+        if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+        {
+           HIDO_INT32 frequency,temp,temp1;
+           frequency=HIDO_UtilStrToInt(apcSplitStr[2]); 
+           temp=HIDO_UtilStrToInt(apcSplitStr[3]); 
+           temp1=HIDO_UtilStrToInt(apcSplitStr[4]);              
+           g_com_map[GPSFrequency]=frequency;
+           g_com_map[IMU_ENABLE]=temp;
+           g_com_map[NOMOVESLEEP_TIME]=temp1;         
+           GPS_UPLOAD_FLAG=0;
+           nomove_count=0;
+           buffer_len = sprintf(send_buffer,"$rec_gpsuwb_fet,");
+           datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);         
+           buffer_len += datalen;
+           datalen1=sprintf(&send_buffer[buffer_len],"%d,",frequency);
+           buffer_len+= datalen1;
+           datalen2=sprintf(&send_buffer[buffer_len],"%d,",temp);
+           buffer_len+= datalen2;
+           datalen3=sprintf(&send_buffer[buffer_len],"%d",temp1);
+           buffer_len+= datalen3;    
+           save_com_map_to_flash();            
+           Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+        }
+
+
+    }
+//        else if (STRCMP(_u8Data, "$set_sleep_enable_time,") == 0)
+//    {
+//     uint16_t temp,buffer_len,datalen,datalen1,datalen2;
+//        
+//     u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+//     char send_buffer[30]={0};
+//     if (u32SplitCnt < 3)
+//     {
+//       return HIDO_ERR;
+//     }
+//        if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+//        {
+//           HIDO_INT32 temp,temp1;
+//           temp=HIDO_UtilStrToInt(apcSplitStr[2]); 
+//           temp1=HIDO_UtilStrToInt(apcSplitStr[3]);
+//            
+//            
+//           g_com_map[IMU_ENABLE]=temp;
+//           g_com_map[NOMOVESLEEP_TIME]=temp1;
+//           
+//           buffer_len = sprintf(send_buffer,"$rec_sleep_enable_time,");
+//           datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);         
+//           buffer_len += datalen;
+//           datalen1=sprintf(&send_buffer[buffer_len],"%d",temp);
+//           buffer_len+= datalen1;
+//           datalen2=sprintf(&send_buffer[buffer_len],"%d",temp1);
+//           buffer_len+= datalen2;
+//           Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+//        }
+
+
+//    }
     return HIDO_OK;
 }
 

--
Gitblit v1.9.3