From e660ec0176844b5fc1770e43378d0dc65315fb51 Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Fri, 12 Jul 2024 19:08:22 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8DAI=E6=95=B0=E6=8D=AEbug=20?= =?utf8?q?=E5=A2=9E=E5=8A=A0=E8=B6=85=E6=97=B6=E4=B8=8B=E8=BD=BD=E5=AF=B9?= =?utf8?q?=E6=96=87=E4=BB=B6=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../service/ble_service/bleservice/bleEvent.c | 53 ++++++++++--------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c index 94cb1612b..92af0fb98 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c @@ -48,6 +48,8 @@ extern "C" { #define JSON_CHECK_OK 1 //json解析成功 #define JSON_CHECK_ERR 2 //json解析失败 +#define AI_TXT_BUF_MAX_LEN 1024*3 //json解析失败 + uint8_t *bigDataBuf = NULL;//大数据buf uint8_t bigDataBufLen=0; bool sendbigDataBufState = false;//发送大数据表示不要被其他指令打断 @@ -1995,7 +1997,7 @@ uint8_t binCheck_AI(uint8_t *buf,uint8_t *check,uint16_t len)//json 格式解析 { uint8_t flag = 0; // printf("jsonCheck_weather:len: json:%f jsonlen:%d\r\n",0.011,strlen((char *)json)); - #if 1 + #if 0 FILE *fp=fopen("user/AI.txt","wb+"); printf("binCheck_AI len %d\r\n",len); fwrite((void*)buf,1,len,fp); @@ -2021,6 +2023,8 @@ uint8_t binCheck_AI(uint8_t *buf,uint8_t *check,uint16_t len)//json 格式解析 offset+=txt_len; //offset+=1; } + if(offset>=len)break; + if(buf[offset]==2) { offset++; @@ -2029,8 +2033,8 @@ uint8_t binCheck_AI(uint8_t *buf,uint8_t *check,uint16_t len)//json 格式解析 offset+=2; - if(txt_len>=1024*3) - txt_len=1024*3; + if(txt_len>=AI_TXT_BUF_MAX_LEN) + txt_len=AI_TXT_BUF_MAX_LEN; char *txt_buf=(char*)malloc(txt_len+1); if(txt_buf==NULL) @@ -2050,17 +2054,14 @@ uint8_t binCheck_AI(uint8_t *buf,uint8_t *check,uint16_t len)//json 格式解析 offset+=txt_len; //offset+=1; } + if(offset>=len)break; if(buf[offset]==0) { printf("AI 解析失败\r\n"); } - if(offset>=len) - { - break; - } + if(offset>=len)break; offset++; - } *check = 1; @@ -6078,23 +6079,23 @@ static void ble_transfer_Timer_CallBack(int data) { TRANSMIT_DATA=TRANS_FREE; } - // if (ble_read_timer_p->file_recv_stat.recv_file_stat != 2) //已经下载完毕的文件,没有必要cancel了。 - // { - - // if (ble_read_timer_p->file_recv_stat.file!=NULL) - // { - // fclose(ble_read_timer_p->file_recv_stat.file); - // ble_read_timer_p->file_recv_stat.file = NULL; - // } - // if (ble_read_timer_p->file_recv_stat.file_name != NULL) - // { - // free(ble_read_timer_p->file_recv_stat.file_name); - // ble_read_timer_p->file_recv_stat.file_name=NULL; - // } - // ble_read_timer_p->file_recv_stat.recv_file_stat = -1; - - // ble_reply_cmd(FILE_RECV_REPLY_STAT_CMD,0);//接收失败 - // } + if (ble_read_timer_p->file_recv_stat.recv_file_stat != 2) //已经下载完毕的文件,没有必要cancel了。 + { + + if (ble_read_timer_p->file_recv_stat.file!=NULL) + { + fclose(ble_read_timer_p->file_recv_stat.file); + ble_read_timer_p->file_recv_stat.file = NULL; + } + if (ble_read_timer_p->file_recv_stat.file_name != NULL) + { + free(ble_read_timer_p->file_recv_stat.file_name); + ble_read_timer_p->file_recv_stat.file_name=NULL; + } + ble_read_timer_p->file_recv_stat.recv_file_stat = -1; + + ble_reply_cmd(FILE_RECV_REPLY_STAT_CMD,0);//接收失败 + } CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1); if(BR_TRANSFER_timer) { @@ -6252,7 +6253,7 @@ errcode_t handle_recv_file(ble_read_data *buffer_handle,uint8_t *data, uint16_t } //检查文件是否写完 - if(buffer_handle->file_recv_stat.file_size == buffer_handle->file_recv_stat.received_size ) + if(buffer_handle->file_recv_stat.file_size == buffer_handle->file_recv_stat.received_size) { if (buffer_handle->file_recv_stat.file!=NULL) { -- 2.17.1