From 8316843f9c1046459d66d7fd79d2b172fc4903d0 Mon Sep 17 00:00:00 2001
From: zhangbo <zhangbo@qq.com>
Date: 星期三, 02 七月 2025 19:41:25 +0800
Subject: [PATCH] 能正确休眠版本

---
 keil/include/src/TCPClient.c |  238 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 192 insertions(+), 46 deletions(-)

diff --git a/keil/include/src/TCPClient.c b/keil/include/src/TCPClient.c
index 51a2dd2..468c1c5 100644
--- a/keil/include/src/TCPClient.c
+++ b/keil/include/src/TCPClient.c
@@ -82,6 +82,11 @@
 uint16_t g_com_position;
 uint16_t g_com_num;
 uint8_t testdata[100];
+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];
@@ -319,8 +324,9 @@
     /* $download_audio,http://39.106.210.13:8080/hfs/xxx.bin */
     else if (STRCMP(_u8Data, "$download_audio,") == 0)
     {
+        uint16_t buffer_len,datalen;
         u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-
+        char send_buffer[20]={0};
         if (u32SplitCnt < 3)
         {
             return HIDO_ERR;
@@ -329,7 +335,10 @@
         {
             uint16_t tmp = 0xCCCC;
             uint8_t flag = 1;
-
+//            buffer_len = sprintf(send_buffer,"$rec_voicece,");
+//            datalen = sprintf(&send_buffer[buffer_len],"%x,",g_com_map[DEV_ID]);
+//            buffer_len += datalen;
+//            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
             __disable_irq();
             result = flash_open(FLASH_ID0, NULL);
             if (!result)
@@ -347,8 +356,10 @@
     /* $play_audio,0-9 */
     else if (STRCMP(_u8Data, "$play_audio,") == 0)
     {
+        uint16_t buffer_len,datalen,datalen1,temp;
         u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-
+        char send_buffer[20]={0};
+        
         if (u32SplitCnt < 3)
         {
             return HIDO_ERR;
@@ -358,55 +369,62 @@
             PCA9555_Set_One_Value_Output(TTS_ENABLE,1);//输出高电平切换为5V输入
             delay_ms(100);
             WT588E_PLAY(atoi(apcSplitStr[2]));
+            temp= HIDO_UtilStrToInt(apcSplitStr[2]);
+            buffer_len = sprintf(send_buffer,"$Receivevoice,");
+            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_gpsuwbpara,") == 0)
-    {
-        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-        uint16_t buffer_len,datalen;
-        char send_buffer[20]={"ERROR\r\n"};
-        if (u32SplitCnt < 6)
-        {
-            return HIDO_ERR;
-        }
-        if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
-        {
-            HIDO_INT32 gpskaiguan,uwbkaiguan,gpspinlv,uwbpinlv,gpsbaudrate1;
-            gpskaiguan= HIDO_UtilStrToInt(apcSplitStr[2]);
-            g_com_map[GPSENBLE] = gpskaiguan;
-            uwbkaiguan= HIDO_UtilStrToInt(apcSplitStr[3]);
-            g_com_map[UWBENBLE] = uwbkaiguan;
-            gpspinlv= HIDO_UtilStrToInt(apcSplitStr[4]);
-            g_com_map[GPSFrequency] = gpspinlv;
-            uwbpinlv= HIDO_UtilStrToInt(apcSplitStr[5]);
-            g_com_map[UWBFrequency] = uwbpinlv;
-            gpsbaudrate1= HIDO_UtilStrToInt(apcSplitStr[6]);
-            g_com_map[GPSBAUDRATE1_INDEX] = gpsbaudrate1>>16;
-            g_com_map[GPSBAUDRATE2_INDEX] = gpsbaudrate1;
-            
-            
-            if((g_com_map[GPSENBLE]||g_com_map[GPSENBLE]==0)
-             &&(g_com_map[UWBENBLE]||g_com_map[UWBENBLE]==0)
-             &&(g_com_map[GPSFrequency]<65535&&g_com_map[GPSFrequency]>0)
-             &&(g_com_map[UWBFrequency]==1||g_com_map[UWBFrequency]==3||g_com_map[UWBFrequency]==5||g_com_map[UWBFrequency]==10)
-             &&(gpsbaudrate1==9600||gpsbaudrate1==115200)
-            )
-            {
-            save_com_map_to_flash();
-//            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
-            g_com_map[CNT_RESTART] = 1;
-            }
-            else
-            {
-            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,10);
-            }
-        }
-    }
+//    else if (STRCMP(_u8Data, "$set_gpsuwbpara,") == 0)
+//    {
+//        u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+//        uint16_t buffer_len,datalen;
+//        char send_buffer[20]={0};
+//        if (u32SplitCnt < 6)
+//        {
+//            return HIDO_ERR;
+//        }
+//        if (HIDO_UtilHexStrToInt(apcSplitStr[1]) == g_com_map[DEV_ID])
+//        {
+//            HIDO_INT32 gpskaiguan,uwbkaiguan,gpspinlv,uwbpinlv,gpsbaudrate1;
+//            gpskaiguan= HIDO_UtilStrToInt(apcSplitStr[2]);
+//            g_com_map[GPSENBLE] = gpskaiguan;
+//            uwbkaiguan= HIDO_UtilStrToInt(apcSplitStr[3]);
+//            g_com_map[UWBENBLE] = uwbkaiguan;
+//            gpspinlv= HIDO_UtilStrToInt(apcSplitStr[4]);
+//            g_com_map[GPSFrequency] = gpspinlv;
+//            uwbpinlv= HIDO_UtilStrToInt(apcSplitStr[5]);
+//            g_com_map[UWBFrequency] = uwbpinlv;
+//            gpsbaudrate1= HIDO_UtilStrToInt(apcSplitStr[6]);
+//            g_com_map[GPSBAUDRATE1_INDEX] = gpsbaudrate1>>16;
+//            g_com_map[GPSBAUDRATE2_INDEX] = gpsbaudrate1;
+//            
+//            
+//            if((g_com_map[GPSENBLE]||g_com_map[GPSENBLE]==0)
+//             &&(g_com_map[UWBENBLE]||g_com_map[UWBENBLE]==0)
+//             &&(g_com_map[GPSFrequency]<65535&&g_com_map[GPSFrequency]>0)
+//             &&(g_com_map[UWBFrequency]==1||g_com_map[UWBFrequency]==3||g_com_map[UWBFrequency]==5||g_com_map[UWBFrequency]==10)
+//             &&(gpsbaudrate1==9600||gpsbaudrate1==115200)
+//            )
+//            {
+//            save_com_map_to_flash();
+////            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+//            g_com_map[CNT_RESTART] = 1;
+//            }
+//            else
+//            {
+//            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,10);
+//            }
+//        }
+//    }
     else if (STRCMP(_u8Data, "$read_gpsuwbpara,") == 0)
     {
         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;
@@ -432,7 +450,134 @@
             Socket_Send(l_i32TCPClientID,send_buffer,9+160);
         }
     }
+    else if (STRCMP(_u8Data, "$set_uwb_work,") == 0)
+    {
+     uint16_t temp,buffer_len,datalen,datalen1;
+     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])
+        {
+             temp=HIDO_UtilStrToInt(apcSplitStr[2]);
+             if(temp==1)
+             {
+              OpenUWB();
+              uwb_OpenClose_flag=1;
+             }
+             else if(temp==0)
+             {
+              CloseUWB();
+              uwb_OpenClose_flag=0;
+             }
+          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,datalen1;
+        
+     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;
+           frequency=HIDO_UtilStrToInt(apcSplitStr[2]);        
+           g_com_map[UWBFrequency]=frequency;
+           
+           state_start_time=0;
+           uwb_time_count=0; 
+           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;
 }
 
@@ -481,6 +626,7 @@
         i32Ret = Socket_Recv(l_i32TCPClientID, l_au8CmdBuff, sizeof(l_au8CmdBuff) - 1, &u32RecvLen);
         if(HIDO_OK == i32Ret)
         {
+            l_au8CmdBuff[u32RecvLen]=0;
             TCPClient_DataProc(l_au8CmdBuff, u32RecvLen);
         }
         break;

--
Gitblit v1.9.3