{\r
return ANCS_DATA_CONFIG_DIR;\r
}\r
-void message_data(int uid,int appid,char *title,char *msg,int hasCode)\r
+\r
+uint32_t message_data(int uid,int appid,char *title,char *msg,int hasCode)\r
{\r
if(!creatMessageDir())//创建文件夹失败\r
{\r
- return;\r
- }\r
- uint8_t buf_size = 0;\r
- FILE *jsfile = fopen(ANCS_DATA_CJSON_PATH, "r");\r
- cJSON *data_root;\r
-\r
- if (jsfile != NULL) {\r
- printf("succes opening file\n");\r
- fseek(jsfile, 0, SEEK_END);\r
- long fileSize = ftell(jsfile);\r
- fseek(jsfile, 0, SEEK_SET);\r
- char *jsonData = (char *)ym_malloc(fileSize + 1);\r
- fread(jsonData, 1, fileSize, jsfile);\r
- jsonData[fileSize] = '\0';\r
- fclose(jsfile);\r
- // 解析JSON数据\r
- // printf("jsonData %s",jsonData);\r
- data_root= cJSON_Parse(jsonData);\r
- // data_root = cJSON_GetObjectItem(modifiedJson,"infor");\r
- ym_free(jsonData);\r
-\r
- }else{\r
- data_root = cJSON_Parse("{\\r
- \"infor\": [\\r
- ]}");\r
+ return 0;\r
}\r
+ uint32_t index= ble_get_message_index();\r
\r
- cJSON *dataJSON = cJSON_CreateObject();\r
-\r
- cJSON *detialJSON = cJSON_CreateObject();\r
-\r
- cJSON* itemJSON = cJSON_CreateObject();\r
\r
+ uint8_t buf_size = 0;\r
+ char message_data_path[128]={0};\r
uint32_t timeBuf = 0;\r
if (uapi_get_timestampe_ss(&timeBuf) != ERRCODE_SUCC)\r
{\r
timeBuf = 0;\r
}\r
+\r
+ sprintf_s(message_data_path,128,ANCS_DATA_MSG_CJSON_PATH,index);\r
\r
- cJSON_AddNumberToObject(itemJSON,"uid",uid);\r
- cJSON_AddNumberToObject(itemJSON,"appid_t",appid);//消息类型 微信 qq 等看结构体或者协议定义\r
- cJSON_AddStringToObject(itemJSON,"title",title);//消息发送者\r
- cJSON_AddStringToObject(itemJSON,"msg",msg);//消息内容\r
- cJSON_AddNumberToObject(itemJSON,"time",timeBuf);//时间戳\r
- cJSON_AddNumberToObject(itemJSON,"hasCode",hasCode);//暂时不需要预留接口\r
- cJSON_AddBoolToObject(itemJSON,"read",false);//是否已读 false未读 1 已读默认存的时候已经未读\r
- \r
- cJSON *dataList = cJSON_GetObjectItem(data_root, "infor");\r
- if (dataList != NULL && cJSON_IsArray(dataList))\r
+ FILE *jsfile = fopen(message_data_path, "w+");\r
+ if(jsfile==NULL)\r
{\r
- int numData = cJSON_GetArraySize(dataList);\r
- if(numData >= MAX_MESSAGE_NUM)//大于20条就循环迭代显示并保存数据 \r
- {\r
- for (uint8_t i = 0; i < MAX_MESSAGE_NUM-1; i++)//2-1 1 0\r
- {\r
- // printf("ancs !!!!!!!!!!!! i:%d\r\n",i);\r
- cJSON *object = NULL;\r
- cJSON *uid = NULL;\r
- cJSON *appid_t = NULL;\r
- cJSON *title = NULL;\r
- cJSON *msg = NULL;\r
- cJSON *time = NULL;\r
- cJSON *hasCode = NULL;\r
- cJSON *read = NULL;\r
- cJSON* deitemJSON = cJSON_CreateObject();\r
- cJSON *detialJSON = cJSON_CreateObject();\r
- object = cJSON_GetArrayItem(dataList,i+1);//9 9-18 0+1 9+1\r
- uid = cJSON_GetObjectItem(object, "uid");\r
- appid_t = cJSON_GetObjectItem(object, "appid_t");\r
- title = cJSON_GetObjectItem(object, "title");\r
- msg = cJSON_GetObjectItem(object, "msg");\r
- time = cJSON_GetObjectItem(object, "time");\r
- hasCode = cJSON_GetObjectItem(object, "hasCode");\r
- read = cJSON_GetObjectItem(object, "read");\r
- // printf("ancs title->valuestring:%s msg->valuestring:%s\r\n",title->valuestring,msg->valuestring);\r
- cJSON_AddNumberToObject(deitemJSON,"uid",uid->valueint);\r
- cJSON_AddNumberToObject(deitemJSON,"appid_t",appid_t->valueint);//消息类型 微信 qq 等看结构体或者协议定义\r
- cJSON_AddStringToObject(deitemJSON,"title",title->valuestring);//消息发送者\r
- cJSON_AddStringToObject(deitemJSON,"msg",msg->valuestring);//消息内容\r
- cJSON_AddNumberToObject(deitemJSON,"time",time->valueint);//时间戳\r
- cJSON_AddNumberToObject(deitemJSON,"hasCode",hasCode->valueint);//暂时不需要预留接口\r
- cJSON_AddBoolToObject(deitemJSON,"read",read->valueint);//是否已读 false未读 1 已读默认存的时候已经未读\r
- cJSON_ReplaceItemInArray(dataList, i, deitemJSON);// \r
- }\r
- cJSON_ReplaceItemInArray(dataList,MAX_MESSAGE_NUM-1, itemJSON);\r
- }else{\r
- cJSON_AddItemToArray(dataList, itemJSON);\r
- }\r
+ printf("message_data open %s fail\r\n",message_data_path);\r
}\r
- char *jsonString = cJSON_Print(data_root);\r
- // printf("ancs %s",jsonString);\r
- FILE *fp = fopen(ANCS_DATA_CJSON_PATH, "wb");\r
- if (fp)\r
- {\r
- int ret=fwrite(jsonString, 1, strlen(jsonString), fp);\r
\r
- if(ret!=strlen(jsonString))\r
- printf("message_data write fail\r\n");\r
\r
- fclose(fp);\r
- }\r
+ cJSON* dataJSON = cJSON_CreateObject();\r
+\r
+ cJSON_AddNumberToObject(dataJSON,"uid",uid);\r
+ cJSON_AddNumberToObject(dataJSON,"appid_t",appid);//消息类型 微信 qq 等看结构体或者协议定义\r
+ cJSON_AddStringToObject(dataJSON,"title",title);//消息发送者\r
+ cJSON_AddStringToObject(dataJSON,"msg",msg);//消息内容\r
+ cJSON_AddNumberToObject(dataJSON,"time",timeBuf);//时间戳\r
+ cJSON_AddNumberToObject(dataJSON,"hasCode",hasCode);//暂时不需要预留接口\r
+ cJSON_AddBoolToObject(dataJSON,"read",false);//是否已读 false未读 1 已读默认存的时候已经未读\r
+\r
+ char *json_format = cJSON_PrintUnformatted(dataJSON);\r
+ cJSON_Delete(dataJSON);\r
+\r
+ if(json_format==NULL)\r
+ return 0;\r
else\r
+ printf("message_data json:%s\r\n",json_format);\r
+\r
+ if( strlen(json_format)!=fwrite(json_format,1,strlen(json_format),jsfile))\r
{\r
- printf("fopen fail\r\n");\r
+ printf("message_data fwrite fail\r\n");\r
}\r
- cJSON_free(jsonString);\r
- cJSON_Delete(data_root);\r
- read_message_data();\r
-\r
-\r
+ \r
+ fclose(jsfile);\r
+ cJSON_free(json_format);\r
+ ble_add_message_index(index);\r
+ return index;\r
+ //read_message_data();\r
}\r
int uft8_check(char *chinese_string,int length)\r
{\r
}\r
return i;\r
}\r
+static uint32_t ancs_msg_index =0;\r
//安卓消息接收解析数据 //ANCS 2AE1\r
uint8_t jscheck_ancs(uint8_t *data)\r
{\r
hasCode_t = hasCode->valueint;\r
}\r
cJSON_Delete(root);\r
- message_data(uid_t,appid_t,titleBuf,msgBuf,hasCode_t);\r
+ ancs_msg_index= message_data(uid_t,appid_t,titleBuf,msgBuf,hasCode_t);\r
if(titleBuf != NULL){\r
ym_free(titleBuf);\r
titleBuf = NULL;\r
}\r
return 1;\r
}\r
+\r
void ancsDataShowCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//\r
{\r
uint8_t value[19];\r
value[17] = 1;\r
value[18] = Calculate_CRC(value,18);\r
sendBleData(value,19);\r
- CustomEventPublish(TOPIC_EVENT_MESSAGENOTE,&data,1);\r
+\r
+ CustomEventPublish(TOPIC_EVENT_MESSAGENOTE,&ancs_msg_index,4);\r
}else{\r
value[17] = 0;\r
value[18] = Calculate_CRC(value,18);\r
}\r
}\r
\r
-void CustomEventPublish_TOPIC_EVENT_MESSAGENOTE(void)\r
+void CustomEventPublish_TOPIC_EVENT_MESSAGENOTE(uint32_t index)\r
{\r
- CustomEventPublish(TOPIC_EVENT_MESSAGENOTE,NULL,0);\r
+ CustomEventPublish(TOPIC_EVENT_MESSAGENOTE,&index,4);\r
}\r
\r
void type2AE1Data(uint8_t *buf_cmd,uint8_t *data,uint16_t datalen,uint8_t *totalData,uint8_t crcvalue)\r