增加ai数据字符长度 514/1
authorhcj <1224667075@qq.com>
Fri, 12 Jul 2024 10:43:13 +0000 (18:43 +0800)
committerhcj <1224667075@qq.com>
Fri, 12 Jul 2024 10:43:13 +0000 (18:43 +0800)
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c

index 879b667..94cb161 100644 (file)
@@ -2014,9 +2014,9 @@ uint8_t binCheck_AI(uint8_t *buf,uint8_t *check,uint16_t len)//json 格式解析
             memcpy_s(&txt_len,2,&buf[offset],2);\r
 \r
             offset+=2;\r
-            char txt_buf[128]={0};\r
-            memcpy_s(txt_buf,128,&buf[offset],txt_len);\r
-            printf("binCheck_AI txtbuf:%s %d\r\n",txt_buf,txt_len);\r
+            char txt_buf[256]={0};\r
+            memcpy_s(txt_buf,256,&buf[offset],txt_len);\r
+            printf("binCheck_AI Question txtbuf:%s %d\r\n",txt_buf,txt_len);\r
             ble_set_ai_Question_str(txt_buf);\r
             offset+=txt_len;\r
             //offset+=1;\r
@@ -2029,24 +2029,38 @@ uint8_t binCheck_AI(uint8_t *buf,uint8_t *check,uint16_t len)//json 格式解析
 \r
             offset+=2;\r
 \r
-            char txt_buf[128]={0};\r
-            memcpy_s(txt_buf,128,&buf[offset],txt_len);\r
-            printf("binCheck_AI txtbuf %s %d\r\n",txt_buf,txt_len);\r
+            if(txt_len>=1024*3)\r
+            txt_len=1024*3;\r
+\r
+            char *txt_buf=(char*)malloc(txt_len+1);\r
+            if(txt_buf==NULL)\r
+            {\r
+                printf("binCheck_AI txtbuf malloc fail\r\n");\r
+                ble_set_ai_Answer_str("手表缓存不足");\r
+                return 0;\r
+            }\r
+\r
+            txt_buf[txt_len]=0;\r
+            memcpy_s((char *)txt_buf,1024*3,&buf[offset],txt_len);\r
+\r
+            printf("binCheck_AI txtbuf Answer %s %d\r\n",txt_buf,txt_len);\r
             ble_set_ai_Answer_str(txt_buf);\r
+            free(txt_buf);\r
+\r
             offset+=txt_len;\r
             //offset+=1;\r
-       }\r
-       if(offset>=len)\r
-       {\r
-            break;\r
        }\r
         if(buf[offset]==0)\r
        {\r
             printf("AI 解析失败\r\n");\r
-            offset++;\r
-             break;\r
        }\r
-       offset++;\r
+       \r
+       if(offset>=len)\r
+       {\r
+            break;\r
+       }\r
+        offset++;\r
+      \r
     }\r
    \r
     *check = 1;\r
@@ -6045,6 +6059,7 @@ errcode_t cancel_recv_file(ble_read_data *buffer_handle)
 \r
 static uint8_t timer_flie_type=0;\r
 static uint32_t timer_flie_flag=0;\r
+ble_read_data* ble_read_timer_p=NULL;\r
 static void  ble_transfer_Timer_CallBack(int data)\r
 {\r
     timer_flie_flag--;\r
@@ -6063,6 +6078,23 @@ static void  ble_transfer_Timer_CallBack(int data)
         {\r
             TRANSMIT_DATA=TRANS_FREE;\r
         }\r
+        // if (ble_read_timer_p->file_recv_stat.recv_file_stat != 2) //已经下载完毕的文件,没有必要cancel了。\r
+        // {\r
+\r
+        //     if (ble_read_timer_p->file_recv_stat.file!=NULL)\r
+        //     {\r
+        //         fclose(ble_read_timer_p->file_recv_stat.file);\r
+        //         ble_read_timer_p->file_recv_stat.file = NULL;\r
+        //     }\r
+        //     if (ble_read_timer_p->file_recv_stat.file_name != NULL)\r
+        //     {\r
+        //         free(ble_read_timer_p->file_recv_stat.file_name);\r
+        //         ble_read_timer_p->file_recv_stat.file_name=NULL;\r
+        //     }\r
+        //     ble_read_timer_p->file_recv_stat.recv_file_stat = -1;\r
+\r
+        //     ble_reply_cmd(FILE_RECV_REPLY_STAT_CMD,0);//接收失败\r
+        // }\r
         CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
         if(BR_TRANSFER_timer)\r
         {\r
@@ -6183,7 +6215,8 @@ errcode_t handle_recv_file(ble_read_data *buffer_handle,uint8_t *data, uint16_t
             BR_TRANSFER_timer = NULL;\r
         }\r
         timer_flie_type=buffer_handle->file_recv_stat.file_type;\r
-        timer_flie_flag=3;\r
+        ble_read_timer_p=buffer_handle;\r
+        timer_flie_flag=10;\r
 \r
         BR_TRANSFER_timer = osTimerNew((osTimerFunc_t)ble_transfer_Timer_CallBack, osTimerPeriodic, NULL, NULL);\r
         tick =1000;// osMs2Tick(1000);\r
@@ -6195,10 +6228,7 @@ errcode_t handle_recv_file(ble_read_data *buffer_handle,uint8_t *data, uint16_t
             return ERRCODE_FAIL;\r
         }\r
         ///////////////////////////////////////////////////////////\r
-\r
-\r
     }\r
-\r
     if (buffer_handle->file_recv_stat.file == NULL)\r
     {\r
         printf("6194 buffer_handle->file_recv_stat.file  \n");\r