ym_free(buf); // 释放内存空间\r
}\r
\r
+void send_long_data(char *buf, uint32_t pack_size,uint8_t type,uint8_t id)\r
+{\r
+ uint32_t data_len = strlen(buf);\r
+ uint32_t surplus_len=data_len;\r
+ uint32_t pack;\r
+ if(data_len%pack_size==0)\r
+ {\r
+ pack=data_len/pack_size;\r
+ }\r
+ else\r
+ { \r
+ pack=data_len/pack_size+1;\r
+ }\r
+ uint32_t pack_id=1;\r
+ uint32_t offset=0;\r
+ while (surplus_len!=0)\r
+ {\r
+ if(surplus_len>=pack_size)\r
+ {\r
+ surplus_len=surplus_len-pack_size;\r
+\r
+ ble_data_type type_={type,id,data_len,pack,pack_id};\r
+ send_big_data(type_,buf+offset,pack_size);\r
+\r
+ //send_big_data(1,json_format+offset,pack_size,data_len,pack_id,pack,id,1);\r
+ offset+=pack_size;\r
+ }\r
+ else\r
+ {\r
+ \r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"%d %d %d %d\r\n",data_len,surplus_len,pack_id,pack);\r
+ ble_data_type type_={type,id,data_len,pack,pack_id};\r
+ send_big_data(type_,buf+offset,surplus_len);\r
+ //send_big_data(1,json_format+offset,surplus_len,data_len,pack_id,pack,id,1);\r
+ break;\r
+ }\r
+ pack_id++;\r
+ }\r
+}\r
+\r
+ \r
\r
bool is_free_ota_update(uint32_t size)\r
{\r
}\r
\r
\r
+void delete_app(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t crcvalue)\r
+{\r
+ \r
+ if(Check_CRC(data,len,crcvalue))\r
+ {\r
+ if(ble_app_delete(data))\r
+ {\r
+ ble_reply_cmd(cmd,1);\r
+ }\r
+ else\r
+ {\r
+ ble_reply_cmd(cmd,2);\r
+ }\r
+\r
+ }\r
+ else\r
+ {\r
+ ble_reply_cmd(cmd,0);\r
+ }\r
+ \r
+}\r
+\r
+void get_app_list(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t crcvalue)\r
+{\r
+ \r
+ if(Check_CRC(data,len,crcvalue))\r
+ {\r
+ cJSON *jdata=ble_app_list();\r
+\r
+ if(jdata)\r
+ {\r
+ \r
+ char *jsonString = cJSON_PrintUnformatted(jdata);\r
+ \r
+ if (jsonString == NULL) {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Error printing JSON to string\n");\r
+ cJSON_Delete(jdata);\r
+ return;\r
+ }\r
+ \r
+ uint32_t data_len = strlen(jsonString);\r
+ cJSON_Delete(jdata);\r
+ \r
+ if (data_len == 0) {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Error: JSON string length is 0\n");\r
+ return;\r
+ }\r
+ int num=(ble_nus_max_data_len-18); \r
+ if(num>482)num=482;\r
+\r
+ send_long_data(jsonString,num,0x06,0x0E);\r
+\r
+ cJSON_free(jsonString);\r
+ }\r
+\r
+\r
+ }\r
+ else\r
+ {\r
+ ble_reply_cmd(cmd,0);\r
+ }\r
+ \r
+}\r
+\r
+void get_watch_msg(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t crcvalue)\r
+{\r
+ \r
+ if(Check_CRC(data,len,crcvalue))\r
+ {\r
+ cJSON *jdata=ble_get_watch_msg();\r
+\r
+ if(jdata)\r
+ {\r
+ \r
+ char *jsonString = cJSON_PrintUnformatted(jdata);\r
+ \r
+ if (jsonString == NULL) {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Error printing JSON to string\n");\r
+ cJSON_Delete(jdata);\r
+ return;\r
+ }\r
+ \r
+ uint32_t data_len = strlen(jsonString);\r
+ cJSON_Delete(jdata);\r
+ \r
+ if (data_len == 0) {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Error: JSON string length is 0\n");\r
+ return;\r
+ }\r
+ int num=(ble_nus_max_data_len-18); \r
+ if(num>482)num=482;\r
+\r
+ send_long_data(jsonString,num,0x06,0x0E);\r
+\r
+ cJSON_free(jsonString);\r
+ }\r
+\r
+\r
+ }\r
+ else\r
+ {\r
+ ble_reply_cmd(cmd,0);\r
+ }\r
+ \r
+}\r
+\r
+\r
bool read_dir_send_json()\r
{\r
\r
break;\r
\r
case OTA_FILE_FAIL_CMD :\r
+\r
break;\r
+\r
+ case APP_DELETE_CMD :\r
+ delete_app( cmd, *data,datalen,crcvalue);\r
+ break; \r
+ case GET_LIST_CMD :\r
+\r
+ get_app_list( cmd, *data,datalen,crcvalue);\r
+\r
+ break; \r
+ case GET_APP_MSG_CMD:\r
+ get_watch_msg( cmd, *data,datalen,crcvalue);\r
+\r
+ break; \r
default:\r
break;\r
}\r