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 |   86 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 81 insertions(+), 5 deletions(-)

diff --git a/keil/include/src/TCPClient.c b/keil/include/src/TCPClient.c
index 984795f..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;
@@ -515,15 +582,24 @@
 extern uint8_t GPS_ParseGGA_data[256];
 extern uint8_t GPS_ParseGGA_changdu;
 uint8_t uwbsendnum,gpssendnum;
-extern uint16_t gaodu;
-void UDPClient_UploadGPS(HIDO_CHAR *_pcGGA)
+
+extern uint8_t exercise_state;
+extern uint32_t step_count;    
+extern uint16_t gaodu;void UDPClient_UploadGPS(HIDO_CHAR *_pcGGA)
 {
     if(TCP_CLIENT_STATE_CONNECTED == l_eTCPClientState)
     {
         
+
+#ifdef JIBU_XIUMIAN				
+        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,ave_sp,0,0,0);
+                _pcGGA, g_com_map[DEV_ID], bat_percent,ave_sp,gaodu,(uint8_t)(step_count),exercise_state);
+#else
         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,ave_sp,gaodu,0,0);
 
+#endif
        
 //        if((l_u32UploadBuffLen + u32Len) < sizeof(l_acUploadBuff))
 //        {

--
Gitblit v1.9.3