#endif
}
+void ble_set_dial_by_id_(uint16_t id)
+{
+ #ifdef FD230
+ OHOS::SetDialModel::GetInstance().UpdateDialSetting(id);
+ #endif
+
+}
void ble_set_dial_by_id(uint16_t id)
{
#ifdef FD230
- OHOS::SetDialModel::GetInstance().UpdateDialSetting(id);
- svr_ble_read_data_value_updata_noyify();
+ GraphicService::GetInstance()->PostGraphicEvent(
+ std::bind(ble_set_dial_by_id_ ,id));
#endif
}
#endif
}
+
+
bool ble_is_dial_install_by_id(uint16_t id)
{
#ifdef FD230
#endif
}
+void ble_delete_dial_(uint16_t id)
+{
+ #ifdef FD230
+ OHOS::SetDialModel::GetInstance().UninstallDial(id);
+ #endif
+}
+
bool ble_delete_dial(uint16_t id)
{
if(id==OHOS::SetDialModel::GetInstance().GetCurrentDialID())
return false;
else
- return OHOS::SetDialModel::GetInstance().UninstallDial(id);
+ {
+ switch (id) {
+ case OHOS::DEFAULT_DIAL_ID:
+ case OHOS::MAX_DEFAULT_DIAL_ID:
+ case OHOS::DEFAULT_DIAL_ID_0:
+ case OHOS::DEFAULT_DIAL_ID_1:
+ case OHOS::DEFAULT_DIAL_ID_2:
+ case OHOS::DEFAULT_DIAL_ID_3:
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "UninstallDial: Default dial %d cannot be uninstalled", id);
+ return false;
+ }
+ GraphicService::GetInstance()->PostGraphicEvent(
+ std::bind(ble_delete_dial_,id));
+ return true;
+ }
+
#else
return false;
#endif
#endif
}
+void install_Register_dial_( char * name,uint16_t id)
+{
+ #ifdef FD230
+ OHOS::SetDialModel::GetInstance().RegisterDial(id,name,0);
+ #endif
+
+}
void install_Register_dial( char * name,uint16_t id)
{
-#ifdef FD230
- return OHOS::SetDialModel::GetInstance().RegisterDial(id,name,0);
-#endif
+ GraphicService::GetInstance()->PostGraphicEvent(
+ std::bind(install_Register_dial_,name ,id));
+ return ;
+
}
static uint32_t timer_flie_flag=0;\r
ble_read_data* ble_read_timer_p=NULL;\r
\r
+#ifdef SINGLE_USER_PARTITION\r
+#define UP_DATE_FWPKG_PATH "/user/update/update.fwpkg" \r
+ \r
+#else\r
+#define UP_DATE_FWPKG_PATH "/update/update.fwpkg"\r
+#endif\r
+\r
\r
//MP3文件重命名\r
static errcode_t create_mp3_name(char* path,char*dir_path ,char* file_name)\r
}\r
\r
\r
+bool is_free_ota_update(uint32_t size)\r
+{\r
+ uint64_t free_size=0;\r
+ int i;\r
+ struct statfs file_buf = {0};\r
+ FILE *fp=NULL;\r
+ fp=fopen(UP_DATE_FWPKG_PATH,"rb+");\r
+ if(fp)\r
+ {\r
+ fclose(fp);\r
+ remove(UP_DATE_FWPKG_PATH);\r
+ }\r
+\r
+#ifdef SINGLE_USER_PARTITION\r
+ static const char * const g_volume_names[1] = { "/user/"};\r
+ for (i = 0; i < 1; i++) {\r
+#else\r
+ static const char * const g_volume_names[4] = {"/system/", "/update/", "/music/", "/user/"};\r
+ for (i = 0; i < 4; i++) {\r
+#endif\r
+ \r
+ /* 获取文件系统状态 */\r
+ if (statfs(g_volume_names[i], &file_buf) != 0) {\r
+ return false ;\r
+ }\r
+\r
+ #ifdef SINGLE_USER_PARTITION\r
+ if(strcmp("/user/",g_volume_names[i])==0)\r
+ {\r
+ free_size= ((uint64_t)(file_buf.f_bfree * file_buf.f_bsize));\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"free_size :%ld\r\n",free_size);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"free_size :%lu\r\n",free_size);\r
+ }\r
+ int need_size=size*1.5;\r
+ if(need_size>free_size)\r
+ {\r
+ return false;\r
+ }\r
+ else\r
+ {\r
+ return true;\r
+ }\r
+ #else\r
+ //单分区不考虑是否足够空间\r
+ return true;\r
+ #endif\r
+#ifdef SINGLE_USER_PARTITION\r
+ }\r
+#else\r
+ }\r
+#endif\r
+ return false;\r
+}\r
+\r
+\r
+\r
//发送训练状态[app发起的运动]\r
void sendtraningstatedata(uint8_t state ,uint16_t time)\r
{\r
{\r
free_size= ((uint64_t)(file_buf.f_bfree * file_buf.f_bsize));\r
// WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"free_size :%ld\r\n",free_size);\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"free_size :%lu\r\n",free_size);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"free_size :%lu\r\n",free_size);\r
}\r
}\r
if(sdFlag == 1)// 1获取失败 2 获取成功 \r
buffer_handle->file_recv_stat.lrcvalue = 0;\r
if (buffer_handle->file_recv_stat.file_type == 1)\r
{\r
-#ifdef SINGLE_USER_PARTITION\r
- buffer_handle->file_recv_stat.file = fopen("/user/update/update.fwpkg","w+");\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"create file /user/update/update.fwpkg %X\n",buffer_handle->file_recv_stat.file);\r
-#else\r
- buffer_handle->file_recv_stat.file = fopen("/update/update.fwpkg","w+");\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"create file /update/update.fwpkg %X\n",buffer_handle->file_recv_stat.file);\r
-#endif\r
+\r
+ buffer_handle->file_recv_stat.file = fopen(UP_DATE_FWPKG_PATH,"w+");\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"create file %s %X\n",UP_DATE_FWPKG_PATH,buffer_handle->file_recv_stat.file);\r
+\r
\r
}\r
else if (buffer_handle->file_recv_stat.file_type == 2)\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,"ota_json_file_save %s\n",data);\r
-\r
- /**\r
- * * OTA文件信息格式\r
- * {\r
- "type":1, \r
- //"name":"MT2523_FOTA.bin",\r
- "size":3894464,\r
- "major":0,\r
- "mid":3,\r
- "minor":2\r
- "isForced":1\r
- }\r
-\r
- {"isForced":0,"size":254208,"minor":1,"type":1,"major":1,"mid":0}\r
- */\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"ota_json_file_save %s\n",data);\r
\r
cJSON* root = cJSON_Parse((const char *)data);\r
if(root != NULL)\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))\r
+ {\r
+ TRANSMIT_DATA=TRANS_OTA_FAIL;\r
+ CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);\r
+ return ERRCODE_FAIL;\r
+ }\r
}\r
cJSON* ota_major_json = cJSON_GetObjectItem(root, "major");\r
if(ota_major_json != NULL && cJSON_IsNumber(ota_major_json))\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
- /**\r
- MP3文件信息格式\r
- {\r
- "type":2, \r
- "name":"夜曲.mp3",\r
- "size":3894464\r
- }\r
- */\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"MP3_file_save %s\n",data);\r
\r
cJSON* root = cJSON_Parse((const char *)data);\r
\r
custom_dial_info->time_font);\r
\r
ble_save_dial_custom(custom_dial_info);\r
-\r
ble_dial_file_count=*(data+sizeof(msg_recv_custom_dial_info_t));\r
-\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," custom_dial file_count %d\r\n",ble_dial_file_count);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," custom_dial file_count %d\r\n",ble_dial_file_count);\r
\r
}\r
else\r
buffer_handle->file_recv_stat.received_size = 0;\r
buffer_handle->file_recv_stat.lrcvalue = 0;\r
buffer_handle->receive_file_flag = 0;\r
-\r
- //进入特殊UI\r
- \r
-\r
\r
return ERRCODE_SUCC;\r
\r
buffer_handle->file_recv_stat.lrcvalue = 0;\r
if (buffer_handle->file_recv_stat.file_type == 1)\r
{\r
-#ifdef SINGLE_USER_PARTITION\r
- buffer_handle->file_recv_stat.file = fopen("/user/update/update.fwpkg","w+");\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"create file /user/update/update.fwpkg %X\n",buffer_handle->file_recv_stat.file);\r
-#else\r
- buffer_handle->file_recv_stat.file = fopen("/update/update.fwpkg","w+");\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"create file /update/update.fwpkg %X\n",buffer_handle->file_recv_stat.file);\r
-#endif\r
+\r
+ buffer_handle->file_recv_stat.file = fopen(UP_DATE_FWPKG_PATH,"w+");\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"create file %s %X\n",UP_DATE_FWPKG_PATH,buffer_handle->file_recv_stat.file);\r
+\r
}\r
else if (buffer_handle->file_recv_stat.file_type == 2)\r
{\r