From f39c69839382ee3890906e96211527dcb2eaeb51 Mon Sep 17 00:00:00 2001
From: zhangbo <zhangbo@qq.com>
Date: 星期六, 28 六月 2025 15:19:51 +0800
Subject: [PATCH] 修改语音上传bug,新增4G下发指令

---
 keil/include/src/TCPClient.c |   73 +++++++++++++++++++++++++++++++++++-
 1 files changed, 70 insertions(+), 3 deletions(-)

diff --git a/keil/include/src/TCPClient.c b/keil/include/src/TCPClient.c
index 51a2dd2..033ed59 100644
--- a/keil/include/src/TCPClient.c
+++ b/keil/include/src/TCPClient.c
@@ -82,6 +82,9 @@
 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;
 static HIDO_INT32 TCPClient_DataProc(HIDO_UINT8 *_u8Data, HIDO_UINT32 _u32Len)
 {
     HIDO_CHAR *apcSplitStr[12];
@@ -319,8 +322,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]={"$rec_voicece\r\n"};
         if (u32SplitCnt < 3)
         {
             return HIDO_ERR;
@@ -329,7 +333,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 +354,10 @@
     /* $play_audio,0-9 */
     else if (STRCMP(_u8Data, "$play_audio,") == 0)
     {
+        uint16_t buffer_len,datalen;
         u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
-
+        char send_buffer[20]={"$Receivevoice \r\n"};
+        
         if (u32SplitCnt < 3)
         {
             return HIDO_ERR;
@@ -358,6 +367,10 @@
             PCA9555_Set_One_Value_Output(TTS_ENABLE,1);//输出高电平切换为5V输入
             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]);
+            buffer_len += datalen;
+            Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
         }
     }
     else if (STRCMP(_u8Data, "$set_gpsuwbpara,") == 0)
@@ -432,7 +445,60 @@
             Socket_Send(l_i32TCPClientID,send_buffer,9+160);
         }
     }
+    else if (STRCMP(_u8Data, "$set_uwb_work,") == 0)
+    {
+     uint16_t temp,buffer_len,datalen;
+     u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+     char send_buffer[20]={"$rec_uwb_work\r\n"};
+     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;
+          Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+        }
+       
+    }
+    else if (STRCMP(_u8Data, "$set_uwb_frequency,") == 0)
+    {
+     uint16_t temp,buffer_len,datalen;
+        
+     u32SplitCnt = HIDO_UtilStrSplit((HIDO_CHAR *)_u8Data, ',', apcSplitStr, HIDO_ARRARY_COUNT(apcSplitStr));
+     char send_buffer[20]={"$rec_frequency\r\n"};
+     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;
+           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 += datalen;
+           Socket_Send(l_i32TCPClientID,(uint8_t*)send_buffer,buffer_len);
+        }
 
+
+    }
     return HIDO_OK;
 }
 
@@ -481,6 +547,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