修复AI数据bug 增加超时下载对文件操作 514/2 514/head
authorhcj <1224667075@qq.com>
Fri, 12 Jul 2024 11:08:22 +0000 (19:08 +0800)
committerhcj <1224667075@qq.com>
Fri, 12 Jul 2024 11:08:22 +0000 (19:08 +0800)
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c

index 94cb161..92af0fb 100644 (file)
@@ -48,6 +48,8 @@ extern "C" {
 #define JSON_CHECK_OK 1 //json解析成功\r
 #define JSON_CHECK_ERR 2 //json解析失败\r
 \r
+#define AI_TXT_BUF_MAX_LEN 1024*3 //json解析失败\r
+\r
 uint8_t *bigDataBuf = NULL;//大数据buf\r
 uint8_t bigDataBufLen=0;\r
 bool sendbigDataBufState = false;//发送大数据表示不要被其他指令打断\r
@@ -1995,7 +1997,7 @@ uint8_t binCheck_AI(uint8_t *buf,uint8_t *check,uint16_t len)//json 格式解析
 {\r
     uint8_t flag = 0;\r
     // printf("jsonCheck_weather:len: json:%f jsonlen:%d\r\n",0.011,strlen((char *)json));\r
-    #if 1\r
+    #if 0\r
         FILE *fp=fopen("user/AI.txt","wb+");\r
         printf("binCheck_AI len %d\r\n",len);\r
         fwrite((void*)buf,1,len,fp);\r
@@ -2021,6 +2023,8 @@ uint8_t binCheck_AI(uint8_t *buf,uint8_t *check,uint16_t len)//json 格式解析
             offset+=txt_len;\r
             //offset+=1;\r
        }\r
+        if(offset>=len)break;\r
+       \r
         if(buf[offset]==2)\r
        {\r
             offset++;\r
@@ -2029,8 +2033,8 @@ uint8_t binCheck_AI(uint8_t *buf,uint8_t *check,uint16_t len)//json 格式解析
 \r
             offset+=2;\r
 \r
-            if(txt_len>=1024*3)\r
-            txt_len=1024*3;\r
+            if(txt_len>=AI_TXT_BUF_MAX_LEN)\r
+            txt_len=AI_TXT_BUF_MAX_LEN;\r
 \r
             char *txt_buf=(char*)malloc(txt_len+1);\r
             if(txt_buf==NULL)\r
@@ -2050,17 +2054,14 @@ uint8_t binCheck_AI(uint8_t *buf,uint8_t *check,uint16_t len)//json 格式解析
             offset+=txt_len;\r
             //offset+=1;\r
        }\r
+        if(offset>=len)break;\r
         if(buf[offset]==0)\r
        {\r
             printf("AI 解析失败\r\n");\r
        }\r
        \r
-       if(offset>=len)\r
-       {\r
-            break;\r
-       }\r
+       if(offset>=len)break;\r
         offset++;\r
-      \r
     }\r
    \r
     *check = 1;\r
@@ -6078,23 +6079,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
+        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
@@ -6252,7 +6253,7 @@ errcode_t handle_recv_file(ble_read_data *buffer_handle,uint8_t *data, uint16_t
     }\r
 \r
     //检查文件是否写完\r
-    if(buffer_handle->file_recv_stat.file_size == buffer_handle->file_recv_stat.received_size )\r
+    if(buffer_handle->file_recv_stat.file_size == buffer_handle->file_recv_stat.received_size)\r
     {\r
         if (buffer_handle->file_recv_stat.file!=NULL)\r
         {\r