From 29d51ffd5b08e5916eb06f538981dfe790c39d4f Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Wed, 30 Oct 2024 10:48:11 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96BLE=EF=BC=8C=E4=BC=A0=E8=BE=93?= =?utf8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../service/ble_service/bleservice/bleEvent.c | 99 +++++++++---------- 1 file changed, 45 insertions(+), 54 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 06acce9dd..ace76337c 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c @@ -88,8 +88,7 @@ typedef struct //LITE_OS_SEC_TEXT_MINOR UINT32 LOS_MemInfoGet(VOID *pool, LOS_MEM_POOL_STATUS *poolStatus) //根据特征值分开组合读取的数据,并处理 static ble_read_data handle_l[MAX_HANDLE_NUM]={0}; - -errcode_t cancel_recv_file(void); +errcode_t cancel_recv_file(uint8_t flag); uint8_t ble_dial_file_count=0; @@ -4251,7 +4250,7 @@ static void RemoveFileCmd(ble_read_data *buffer_handle,uint16_t cmd,uint8_t *dat value[18] = Calculate_CRC(value,18); sendBleData(value,19); - cancel_recv_file(); + cancel_recv_file(0); }else { @@ -6815,48 +6814,7 @@ static void ble_transfer_Timer_CallBack(int data) if(timer_flie_flag==0) { - if(timer_flie_type==1) - { - TRANSMIT_DATA=TRANS_OTA_FAIL; - } - else if (timer_flie_type==3) - { - TRANSMIT_DATA=TRANS_DIAL_FAIL; - } - else - { - TRANSMIT_DATA=TRANS_FREE; - } - if(ble_read_timer_p) - { - ble_read_timer_p->receive_file_flag = 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_read_timer_p=NULL; - } - } - ble_reply_cmd(FILE_RECV_REPLY_STAT_CMD,0);//接收失败 - CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1); - - if(BR_TRANSFER_timer) - { - osTimerStop(BR_TRANSFER_timer); - osTimerDelete(BR_TRANSFER_timer); - BR_TRANSFER_timer = NULL; - } - + cancel_recv_file(1); } } uint8_t OTA_FILE_value=0; @@ -6884,13 +6842,13 @@ errcode_t decode_ota_data(ble_read_data *buffer_handle,uint8_t *data,uint16_t da //取消文件传输 if(Check_CRC(data_,datalen,crcvalue)) { - cancel_recv_file(); + cancel_recv_file(0); uint8_t replydata= 1; ble_reply_msgarr(6,0x0B,&replydata,1); } else { - cancel_recv_file(); + cancel_recv_file(0); uint8_t replydata= 0; ble_reply_msgarr(6,0x0B,&replydata,1); } @@ -8027,7 +7985,7 @@ errcode_t check_header(msg_header_t *header ) } -errcode_t cancel_recv_file(void) +errcode_t cancel_recv_file(uint8_t flag) { if(BR_TRANSFER_timer) { @@ -8036,12 +7994,36 @@ errcode_t cancel_recv_file(void) osTimerDelete(BR_TRANSFER_timer); BR_TRANSFER_timer = NULL; } - { - TRANSMIT_DATA=TRANS_FREE; - } + if(ble_read_timer_p) { + if(flag) + { + if(timer_flie_type==1) + { + TRANSMIT_DATA=TRANS_OTA_FAIL; + } + else if (timer_flie_type==3) + { + TRANSMIT_DATA=TRANS_DIAL_FAIL; + } + else if(timer_flie_type==2) + { + TRANSMIT_DATA=TRANS_MP3_FAIL; + } + else + { + TRANSMIT_DATA=TRANS_FREE; + } + ble_reply_cmd(FILE_RECV_REPLY_STAT_CMD,0);//接收失败 + } + else + { + TRANSMIT_DATA=TRANS_FREE; + } + ble_read_timer_p->receive_file_flag = 0; + if (ble_read_timer_p->file_recv_stat.recv_file_stat != 2) //已经下载完毕的文件,没有必要cancel了。 { if (ble_read_timer_p->file_recv_stat.file!=NULL) @@ -8060,7 +8042,15 @@ errcode_t cancel_recv_file(void) remove(filepath); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"filepath %s\r\n",filepath); } - + else if (ble_read_timer_p->file_recv_stat.file_type == 3) + { + char filepath[128]={0}; + if (get_file_recv_file_path(ble_read_timer_p->file_recv_stat.file_name,strlen(ble_read_timer_p->file_recv_stat.file_name),filepath,sizeof(filepath)) == ERRCODE_SUCC) + { + remove(filepath); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"filepath %s\r\n",filepath); + } + } if (ble_read_timer_p->file_recv_stat.file_name != NULL) { @@ -8070,9 +8060,10 @@ errcode_t cancel_recv_file(void) ble_read_timer_p->file_recv_stat.recv_file_stat = -1; ble_read_timer_p=NULL; } + CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1); } - CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1); + return ERRCODE_SUCC; } @@ -8582,7 +8573,7 @@ void free_ble_data_Event(void)//以防断开蓝牙没有释放数据类型 recvBigDataBufState = false; sendbigDataBufState = false; - cancel_recv_file(); + cancel_recv_file(1); for (int i = 0 ; i < MAX_HANDLE_NUM ; i++) { -- 2.17.1