\r
\r
\r
-errcode_t decode_ota_json(ble_read_data *buffer_handle)\r
-{\r
+errcode_t decode_ota_json(ble_read_data *buffer_handle) {\r
+\r
+ if (uapi_dev_runtime_get_train_status() == 1) {\r
+ return ERRCODE_FAIL;\r
+ }\r
\r
uint8_t *data = buffer_handle->data+sizeof(msg_header_t);\r
uint16_t datalen = buffer_handle->totalDataLen;\r
\r
cJSON* root = cJSON_Parse((const char *)data);\r
if(root != NULL)\r
- { \r
+ { \r
+ cJSON* ota_size_json = cJSON_GetObjectItem(root, "size");\r
+ if(ota_size_json != NULL && cJSON_IsNumber(ota_size_json))\r
+ {\r
+ buffer_handle->file_recv_stat.file_size = ota_size_json->valueint;\r
+ if(is_free_ota_update(ota_size_json->valueint)==false)\r
+ {\r
+ TRANSMIT_DATA=TRANS_OTA_FAIL;\r
+ CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
+ return ERRCODE_FAIL;\r
+ }\r
+ }\r
+\r
cJSON* ota_type_json = cJSON_GetObjectItem(root, "type");\r
if(ota_type_json != NULL && cJSON_IsNumber(ota_type_json))\r
{\r
}else{\r
buffer_handle->file_recv_stat.file_name = NULL;\r
}\r
- cJSON* ota_size_json = cJSON_GetObjectItem(root, "size");\r
- if(ota_size_json != NULL && cJSON_IsNumber(ota_size_json))\r
- {\r
- buffer_handle->file_recv_stat.file_size = ota_size_json->valueint;\r
- if(is_free_ota_update(ota_size_json->valueint)==false)\r
- {\r
- TRANSMIT_DATA=TRANS_OTA_FAIL;\r
- CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
- return ERRCODE_FAIL;\r
- }\r
- }\r
+ \r
cJSON* ota_major_json = cJSON_GetObjectItem(root, "major");\r
if(ota_major_json != NULL && cJSON_IsNumber(ota_major_json))\r
{\r
\r
errcode_t decode_mp3_json(ble_read_data *buffer_handle)\r
{\r
+ if (uapi_dev_runtime_get_train_status() == 1) {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ \r
uint8_t *data = buffer_handle->data+sizeof(msg_header_t);\r
uint16_t datalen = buffer_handle->totalDataLen;\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"MP3_file_save %s\n",data);\r
\r
if (filenamelen > 0 && filenamelen < 255)\r
{\r
+ if(buffer_handle->file_recv_stat.file_name)\r
+ {\r
+ free(buffer_handle->file_recv_stat.file_name);\r
+ buffer_handle->file_recv_stat.file_name=NULL;\r
+ }\r
buffer_handle->file_recv_stat.file_name = malloc(filenamelen);\r
if (buffer_handle->file_recv_stat.file_name!=NULL)\r
{\r
{\r
buffer_handle->file_recv_stat.file_size = ota_size_json->valueint;\r
}\r
- cJSON_Delete(root);\r
+ cJSON_Delete(root);\r
\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," MP3_type= %d, MP3_name=%s, MP3_size=%d \n",\r
buffer_handle->file_recv_stat.file_type,\r
// CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
if(IS_free_save_Mp3(ota_size_json->valueint)==false)\r
{\r
+ free(buffer_handle->file_recv_stat.file_name);\r
TRANSMIT_DATA=TRANS_MP3_MAX_FAIL;\r
CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"file name len should in [0,255] \n");\r
return ERRCODE_FAIL;\r
}\r
+\r
char * filename = malloc(dialinfo.file_name_len);\r
+\r
ble_dial_file_count= data[sizeof(msg_recv_dial_info_t)+dialinfo.file_name_len];\r
if (filename == NULL)\r
{\r
return ERRCODE_FAIL;\r
}\r
memcpy_s(filename,dialinfo.file_name_len,data+sizeof(msg_recv_dial_info_t),dialinfo.file_name_len);\r
+\r
buffer_handle->file_recv_stat.file_name = filename;\r
\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP," dial name = %s, dial file count = %d \n",\r
- filename,\r
- ble_dial_file_count\r
- );\r
- free(filename);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP," dial name = %s, dial file count = %d \n",\r
+ filename,ble_dial_file_count);\r
\r
+ free(filename);\r
+ buffer_handle->file_recv_stat.file_name=NULL;\r
}\r
- ble_dial_uid = dialinfo.dial_uid;\r
+\r
+ ble_dial_uid = dialinfo.dial_uid;\r
\r
buffer_handle->file_recv_stat.received_size = 0;\r
buffer_handle->file_recv_stat.lrcvalue = 0;\r
errcode_t decode_single_dial_info(ble_read_data *buffer_handle)\r
{\r
\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"decode_single_dial_info \n");\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"decode_single_dial_info \n");\r
for(uint8_t i = 0;i<buffer_handle->data_len;i++)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"%x ",buffer_handle->data[i]);\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"\n");\r
if (buffer_handle->data_len == 6)\r
{\r
-\r
return ERRCODE_SUCC;\r
}\r
uint8_t *data = buffer_handle->data+sizeof(msg_header_t);\r
return ERRCODE_FAIL;\r
}\r
\r
+ if (uapi_dev_runtime_get_train_status() == 1) {\r
+ return ERRCODE_FAIL;\r
+ }\r
\r
\r
char * filename = malloc(dialinfo.file_name_len+1);\r
filename[dialinfo.file_name_len] ='\0';\r
//在runtime中备份一个安装文件名。\r
uapi_dev_runtime_set_dialname(filename);\r
-\r
+ \r
if (check_dial_freespace(dialinfo.dial_uid, file_size) == false)\r
{\r
+ free(filename);\r
+ filename=NULL;\r
\r
TRANSMIT_DATA=TRANS_DIAL_MAX_FAIL;\r
CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
// if(ble_dial_uid<=4)\r
// ble_dial_uid++;\r
\r
-\r
+ if(buffer_handle->file_recv_stat.file_name)\r
+ {\r
+ free(buffer_handle->file_recv_stat.file_name);\r
+ buffer_handle->file_recv_stat.file_name=NULL;\r
+ }\r
+ \r
buffer_handle->file_recv_stat.file_name = filename;\r
buffer_handle->file_recv_stat.file_size = file_size;\r
buffer_handle->file_recv_stat.file_type = 3;//表盘\r