static uint16_t data_len = 0;\r
ble_recv_data_info_t ble_recv_data;\r
static uint8_t TRANSMIT_DATA;\r
+static osTimerId_t BR_TRANSFER_timer=NULL;\r
+\r
#if 1\r
#include "app_msg_manager.h"\r
#include "app_tx_process.h"\r
return ERRCODE_SUCC;\r
}\r
\r
+static uint8_t timer_flie_type=0;\r
+static uint32_t timer_flie_flag=0;\r
+static void ble_transfer_Timer_CallBack(int data)\r
+{\r
+ timer_flie_flag--;\r
+\r
+ if(timer_flie_flag==0)\r
+ {\r
+ if(timer_flie_type==1)\r
+ {\r
+ TRANSMIT_DATA=TRANS_OTA_FAIL;\r
+ }\r
+ else if (timer_flie_type==3)\r
+ {\r
+ TRANSMIT_DATA=TRANS_DIAL_FAIL;\r
+ }\r
+ else\r
+ {\r
+ TRANSMIT_DATA=TRANS_FREE;\r
+ }\r
+ CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
+ if(BR_TRANSFER_timer)\r
+ {\r
+ osTimerStop(BR_TRANSFER_timer);\r
+ osTimerDelete(BR_TRANSFER_timer);\r
+ BR_TRANSFER_timer = NULL;\r
+ }\r
+\r
+ }\r
+}\r
uint8_t OTA_FILE_value=0;\r
\r
uint8_t get_OTA_recv_value()\r
}\r
buffer_handle->file_recv_stat.recv_file_stat = 1;\r
OTA_FILE_value=0;\r
+ ////////////////创建文件传输超时定时器//////////////////\r
+ uint32_t tick;\r
+ osStatus_t retTimer;\r
+ if(BR_TRANSFER_timer!=NULL)\r
+ {\r
+ osTimerDelete(BR_TRANSFER_timer);\r
+ BR_TRANSFER_timer = NULL;\r
+ }\r
+ timer_flie_type=buffer_handle->file_recv_stat.file_type;\r
+ timer_flie_flag=3;\r
+\r
+ BR_TRANSFER_timer = osTimerNew((osTimerFunc_t)ble_transfer_Timer_CallBack, osTimerPeriodic, NULL, NULL);\r
+ tick =1000;// osMs2Tick(1000);\r
+ retTimer = osTimerStart(BR_TRANSFER_timer, tick);\r
+ if (retTimer != osOK && BR_TRANSFER_timer != NULL) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"StartCallTimer osTimerStart failed, ret = %lx!!", retTimer);\r
+ osTimerDelete(BR_TRANSFER_timer);\r
+ BR_TRANSFER_timer = NULL;\r
+ return ERRCODE_FAIL;\r
+ }\r
+ ///////////////////////////////////////////////////////////\r
+\r
+\r
}\r
\r
if (buffer_handle->file_recv_stat.file == NULL)\r
size_t writtensize = fwrite(data,1,event_size,buffer_handle->file_recv_stat.file);\r
if(writtensize == event_size)\r
{\r
+ timer_flie_flag=10;\r
+\r
buffer_handle->file_recv_stat.lrcvalue = calculate_lrc(data,event_size,buffer_handle->file_recv_stat.lrcvalue);\r
buffer_handle->file_recv_stat.received_size += event_size;\r
printf("handle_recv_file received_size %d\n",buffer_handle->file_recv_stat.received_size);\r
buffer_handle->receive_file_flag = 0;\r
printf("handle_recv_file received success \n");\r
\r
+ if(BR_TRANSFER_timer)\r
+ {\r
+ osTimerStop(BR_TRANSFER_timer);\r
+ osTimerDelete(BR_TRANSFER_timer);\r
+ BR_TRANSFER_timer = NULL;\r
+ }\r
+\r
\r
ble_reply_cmd(FILE_RECV_REPLY_STAT_CMD,1);//接收成功\r
}\r