解析协议相关内容
authorDXY <1731678236@qq.com>
Mon, 29 Apr 2024 06:34:39 +0000 (14:34 +0800)
committerDXY <1731678236@qq.com>
Mon, 29 Apr 2024 06:34:39 +0000 (14:34 +0800)
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp
code/sdk/application/wearable/service/ble_service/blemoder/bletest.h
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h

index cee04da..3ade5fb 100644 (file)
@@ -256,6 +256,91 @@ void set_weather_one_data(int tempMin, int iconDay,int fxDate, int tempMax, char
     if(x==6)
     return UI_set_weather_seven_day_data(data_t);
 }
+struct message_infor_t message_infor_s;
+void read_message_data(void)
+{
+    if(!creatMessageDir())//创建失败
+    {
+        return;
+    }
+    char path[100];
+    uint32_t data_len = 0;
+    char *str_data = get_message_dir_path();
+    sprintf(path,"%s%s",str_data,ANCS_DATA_CJSON);
+    printf("buf file %s\n",path);
+    FILE *jsfile = fopen(path, "r");
+    cJSON *data_root;
+    if (jsfile != NULL) {
+        printf("succes opening file\n");
+        fseek(jsfile, 0, SEEK_END);
+        long fileSize = ftell(jsfile);
+        fseek(jsfile, 0, SEEK_SET);
+
+        char *jsonData = (char *)malloc(fileSize + 1);
+        fread(jsonData, 1, fileSize, jsfile);
+        jsonData[fileSize] = '\0';
+        fclose(jsfile);
+
+        // 解析JSON数据
+        printf("jsonData %s",jsonData);
+        data_len = strlen(jsonData);
+        data_root= cJSON_Parse(jsonData);
+        free(jsonData);
+        if(data_len > 0)//只有读出来的内容不为空就认为文件里面有数据
+        {
+            cJSON *dataList = cJSON_GetObjectItem(data_root, "infor");
+            if (dataList != NULL && cJSON_IsArray(dataList))//判断是否为NULL并且是否为数组类型的内容
+            {
+               int count = cJSON_GetArraySize(dataList);//获取数组的大小 10//9 8 7 6 5 4 3 2 1 0
+               memset(&message_infor_s,0,sizeof(message_infor_t)); 
+               message_infor_s.num = count;
+               for (uint8_t i = 0; i < count; i++)//反序存储是反序 所以读出来显示也需要反序度
+               {
+                    cJSON *object = NULL;
+                    cJSON *uid_t = NULL;
+                    cJSON *appid_t = NULL;
+                    cJSON *title_buf = NULL;
+                    cJSON *msg_buf = NULL;
+                    cJSON *time = NULL;
+                    cJSON *hasCode = NULL;
+                    cJSON *read_t = NULL;
+                    cJSON *detialJSON = cJSON_CreateObject();
+                    object = cJSON_GetArrayItem(dataList,i);//1 0 
+                    uid_t = cJSON_GetObjectItem(object, "uid");
+                    appid_t = cJSON_GetObjectItem(object, "appid_t");
+                    title_buf = cJSON_GetObjectItem(object, "title");
+                    msg_buf = cJSON_GetObjectItem(object, "msg");
+                    time = cJSON_GetObjectItem(object, "time");
+                    hasCode = cJSON_GetObjectItem(object, "hasCode");
+                    read_t = cJSON_GetObjectItem(object, "read");
+                    message_infor_s.message_t[count - 1- i].uid = uid_t->valueint;//
+                    message_infor_s.message_t[count - 1- i].appid = appid_t->valueint;
+                    if(strlen(title_buf->valuestring) == 0)
+                    {
+                        memcpy(message_infor_s.message_t[count - 1- i].title,title_buf->valuestring,strlen(title_buf->valuestring));
+                    }else{
+                        memset(message_infor_s.message_t[count - 1- i].title,0,TITLE_BUF_LEN);
+
+                    }
+
+                    if(strlen(msg_buf->valuestring) == 0)
+                    {
+                        memcpy(message_infor_s.message_t[count - 1- i].msg,msg_buf->valuestring,strlen(msg_buf->valuestring));
+                    }else{
+                        memset(message_infor_s.message_t[count - 1- i].msg,0,MSG_BUF_LEN);
+                    }
+                    message_infor_s.message_t[count - 1- i].time = time->valueint;
+                    message_infor_s.message_t[count - 1- i].hasCode = hasCode->valueint;
+                    message_infor_s.message_t[count - 1- i].read = read_t->valueint;
+               }
+            }
+        }
+    }
+}
+message_infor_t *get_message_info(void)
+{
+    return &message_infor_s;
+}
 #ifdef __cplusplus
 #if __cplusplus
 }
index 227c994..5eef800 100644 (file)
@@ -27,15 +27,7 @@ extern "C"
 #include "errcode.h"
 #include "bleEvent.h"
 
-struct ancs_data_info_t
-{
-    int uid;//uid 消息唯一编号
-    int appid;//消息类型:1:微信 2:QQ 3:短信 4:其他
-    char title[256];//消息发送者
-    char msg[300];//消息内容
-    char time[20];//时间戳"20240417T102400" 用T分隔日期和时间,显示需要注意
-    int hasCode;//消息hash code
-};
+
 
 enum PAIRING
 {
@@ -77,7 +69,25 @@ typedef struct
     uint32_t sportTag;     //训练目标
     uint8_t controlmd;    //训练控制md
 } training_ble;
+#define MAX_MESSAGE_NUM 10
+#define TITLE_BUF_LEN 256
+#define MSG_BUF_LEN 301
+struct ancs_data_info_t
+{
+    uint32_t time;//时间戳 
+    int uid;//uid 消息唯一编号
+    int appid;//消息类型:1:微信 2:QQ 3:短信 4:其他
+    char title[TITLE_BUF_LEN];//消息发送者
+    char msg[MSG_BUF_LEN];//消息内容
+    int hasCode;//消息hash code
+    int read;//是否已读 0 未读 1 已读
+};
 
+struct message_infor_t
+{
+    uint8_t num;
+    struct ancs_data_info_t message_t[MAX_MESSAGE_NUM];
+};
 void set_weather_now_data(int humidity, char* windScale, char* textNight,int uvIndex,int temp,int iconNight);
 
 void set_weather_address_data(int lat, char* atm, char* city,char* subLocality,int lon);
index cb29478..7cc91b4 100644 (file)
@@ -31,15 +31,15 @@ extern "C" {
 #include "bleEvent.h"\r
 #include "ppg_service.h"\r
 #include "broadcast_feature.h"\r
+#include <sys/stat.h>\r
 #if 1//#ifdef //SUPPORT_BLE_SERVICE\r
 #include "app_common_api.h"\r
 #include "hidService.h"\r
 #include "../../../../../open_source/openharmony/third_party/cJSON/cJSON.h"\r
 #include "errcode.h"\r
-#define PHONE_WATCH_CONFIG_PATH "/user/userdata/phone_watch.json"\r
-#define ALARM_DATA_CONFIG_PATH "/user/userdata/alarm_test.json"\r
-#define ANCS_DATA_CONFIG_PATH "/user/userdata/ancs.json"\r
+\r
 #include "bletest.h"\r
+\r
 #define DEBUG_TEST (0)\r
 #define CRC_CHECK_ERR 0 //crc校验失败\r
 #define JSON_CHECK_OK 1 //json解析成功\r
@@ -181,6 +181,15 @@ static bool Check_CRC(uint8_t *crcnum,uint16_t len,uint8_t crcvalue)//计算20by
 {\r
        uint8_t crcbuf  = 0;\r
     uint8_t lrcValue = 0x00;\r
+    if(crcnum == NULL)\r
+    {\r
+        if(crcvalue == 0x00)\r
+        {\r
+            return true;\r
+        }else{\r
+            return false;\r
+        }\r
+    }\r
        for(uint16_t i = 0; i < len; i++)\r
        {\r
                lrcValue =lrcValue+ crcnum[i];\r
@@ -449,7 +458,7 @@ errcode_t UnbindSucessCmd(uint8_t flag)//发送解绑指令,解绑界面调用
         gap_remove_all_pairs();\r
     }\r
     \r
-    // uapi_reboot_device();\r
+    uapi_reboot_device();\r
 \r
     return sendok;\r
 }\r
@@ -475,6 +484,8 @@ void clearPaireFlag(uint8_t flag)
     value[17] = flag;\r
     value[18] = Calculate_CRC(value,18);\r
     sendBleData(value,19);\r
+    \r
+    UnbindSucessCmd(1);//1确认解绑;\r
 }\r
 void clearPaireCmd(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *totaldata,uint8_t crcvalue)//发送清除配对指令\r
 {\r
@@ -3210,20 +3221,10 @@ static void GetAllDialUidCmd(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *
     memcpy(value+15,&tmp_data,2);\r
     if(1)\r
     {\r
-        uint8_t sleepTime = 0;//作息时间设定 0关闭 1开启\r
-        uint8_t bedTimeHour = 0;//就寝时间\r
-        uint8_t bedTimeMin = 0;//就寝时间\r
-        uint8_t wakeTimeHour = 0;//起床时间\r
-        uint8_t wakeTimeMin = 0;//起床时间\r
-        uint8_t bedTimeOn = 0;//就寝前20分钟提醒时间\r
-        value[17] = sleepTime;\r
-        value[18] = bedTimeHour;\r
-        value[19] = bedTimeMin;\r
-        value[20] = wakeTimeHour;\r
-        value[21] = wakeTimeMin;\r
-        value[22] = bedTimeOn;\r
-        value[23] = Calculate_CRC(value,23);\r
-        sendBleData(value,24);\r
+        \r
+        value[17] = 0;\r
+        value[18] = Calculate_CRC(value,18);\r
+        sendBleData(value,19);\r
     }else\r
     {\r
         value[17] = 0;\r
@@ -4205,21 +4206,145 @@ void bleLongRecvData(uint8_t *data, uint16_t data_size,uint8_t *buf_cmd,uint8_t
 {\r
     uint8_t type=buf_cmd[1];\r
     printf("type:%d %d data_size:%d data:%d crcvalue:%x",buf_cmd[0],type,data_size,data[0],crcvalue);\r
-    // FILE *fp= fopen("user/ble_test.json","w+");\r
-    // fwrite((void *)data,1,data_size,fp);\r
-    // fclose(fp);\r
     switch (type)\r
     {\r
         case 0x02://获取手机信息\r
             type2AE4Data(buf_cmd,data,data_size,totalData,crcvalue);\r
             break;\r
-        // case 0x02://获取手机信息\r
-        //     type2AE4Data(buf_cmd,data,data_size,totalData,crcvalue);\r
-        //     break;\r
         default:\r
             break;\r
     }\r
 }\r
+bool creatMessageDir(void)//创建消息文件夹\r
+{\r
+    struct stat info;\r
+    if (stat(ANCS_DATA_CONFIG_PATH, &info) != 0)\r
+    {\r
+        if (mkdir(ANCS_DATA_CONFIG_PATH, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) != 0)\r
+        {\r
+            return false; // Failed to create folder\r
+        }\r
+    }\r
+    return true;\r
+}\r
+char *get_message_dir_path(void)//获取信息的文件夹路径\r
+{\r
+    return ANCS_DATA_CONFIG_PATH;\r
+}\r
+void 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
+    char *path;\r
+    path = malloc(100);\r
+    if(path == NULL)\r
+    {\r
+        return;\r
+    }\r
+    char *str_data = get_message_dir_path();\r
+    sprintf(path,"%s%s",str_data,ANCS_DATA_CJSON);\r
+    printf("creat file %s\n",path);\r
+    FILE *jsfile = fopen(path, "r");\r
+    cJSON *data_root;\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
+\r
+        char *jsonData = (char *)malloc(fileSize + 1);\r
+        fread(jsonData, 1, fileSize, jsfile);\r
+        jsonData[fileSize] = '\0';\r
+        fclose(jsfile);\r
+\r
+        // 解析JSON数据\r
+        printf("jsonData %s",jsonData);\r
+        data_root= cJSON_Parse(jsonData);\r
+        // data_root = cJSON_GetObjectItem(modifiedJson,"infor");\r
+        free(jsonData);\r
+    }else{\r
+        data_root = cJSON_Parse("{\\r
+        \"infor\": [\\r
+        ]}");\r
+    }\r
+    cJSON *dataJSON = cJSON_CreateObject();\r
+\r
+    cJSON *detialJSON = cJSON_CreateObject();\r
+\r
+    cJSON* itemJSON = cJSON_CreateObject();\r
+\r
+    uint32_t timeBuf = 0;\r
+    if (uapi_get_timestampe_ss(&timeBuf) != ERRCODE_SUCC)\r
+    {\r
+        timeBuf = 0;\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
+    cJSON *dataList = cJSON_GetObjectItem(data_root, "infor");\r
+    if (dataList != NULL && cJSON_IsArray(dataList))\r
+    {\r
+        int numData = cJSON_GetArraySize(dataList);\r
+        if(numData >= MAX_MESSAGE_NUM)//大于20条就循环迭代显示并保存数据 \r
+        {\r
+            for (uint8_t i = MAX_MESSAGE_NUM-1; i > 0; i--)//2-1 1 0\r
+            {\r
+                // printf("ancs !!!!!!!!!!!!\r\n");\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 0 \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-1, deitemJSON);\r
+            }\r
+            cJSON_ReplaceItemInArray(dataList,MAX_MESSAGE_NUM-1, itemJSON);\r
+        }else{\r
+            cJSON_AddItemToArray(dataList, itemJSON);\r
+        }\r
+    }\r
+    char *jsonString = cJSON_Print(data_root);\r
+    printf("ancs %s",jsonString);\r
+    FILE *file = fopen(path, "wb");\r
+    if (file)\r
+    {\r
+        fwrite(jsonString, 1, strlen(jsonString), file);\r
+        fclose(file);\r
+    }\r
+    free(jsonString);\r
+    if(path != NULL)\r
+    {\r
+        free(path);\r
+    }\r
+\r
+}\r
 \r
 //安卓消息接收解析数据 //ANCS 2AE1\r
 uint8_t jscheck_ancs(uint8_t *data)\r
@@ -4229,19 +4354,28 @@ uint8_t jscheck_ancs(uint8_t *data)
     json = data;\r
     cJSON* root = cJSON_Parse((const char *)json);\r
     if (root == NULL) {\r
-        printf("信息解析 JSON解析\n");\r
+        printf("信息解析 JSON解析 失败\n");\r
         return 2;\r
     }\r
 \r
+\r
     int uid_t = 0;\r
     int appid_t = 0;\r
-    char titleBuf[256];\r
-    char msgBuf[300];\r
-    char timeBuf[32];\r
     int hasCode_t = 0;\r
+    char *titleBuf;\r
+    char *msgBuf;\r
+    titleBuf = malloc(TITLE_BUF_LEN);\r
+    msgBuf = malloc(MSG_BUF_LEN);\r
+    if(titleBuf == NULL || msgBuf == NULL)//申请内存失败不在申请\r
+    {\r
+        return 2;\r
+    }\r
+    memset(titleBuf,0,TITLE_BUF_LEN);\r
+    memset(msgBuf,0,MSG_BUF_LEN);\r
     cJSON* uid = cJSON_GetObjectItem(root, "uid");\r
     if (cJSON_IsNumber(uid)) {\r
         printf("uid_t: %d\n", uid->valueint);\r
+        uid_t = uid->valueint;\r
     }\r
     cJSON* appid = cJSON_GetObjectItem(root, "appid");\r
     if (cJSON_IsNumber(appid)) {\r
@@ -4265,10 +4399,6 @@ uint8_t jscheck_ancs(uint8_t *data)
     if (cJSON_IsString(time)) {\r
         printf("time: %s\n", time->valuestring);\r
         // timeBuf = time->valueint;\r
-        time->valuestring[strlen(time->valuestring)]='\0';\r
-        memcpy(timeBuf,time->valuestring,strlen(time->valuestring));\r
-\r
-       \r
     }\r
     cJSON* hasCode = cJSON_GetObjectItem(root, "hasCode");\r
     if (cJSON_IsNumber(hasCode)) {\r
@@ -4276,61 +4406,13 @@ uint8_t jscheck_ancs(uint8_t *data)
         hasCode_t = hasCode->valueint;\r
     }\r
     cJSON_Delete(root);\r
-    uint8_t buf_size = 0;\r
-    FILE *jsfile = fopen(ANCS_DATA_CONFIG_PATH, "r");\r
-    cJSON *data_root;\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
-\r
-        char *jsonData = (char *)malloc(fileSize + 1);\r
-        fread(jsonData, 1, fileSize, jsfile);\r
-        jsonData[fileSize] = '\0';\r
-        fclose(jsfile);\r
-\r
-        // 解析JSON数据\r
-        printf("jsonData %s",jsonData);\r
-        data_root= cJSON_Parse(jsonData);\r
-        // data_root = cJSON_GetObjectItem(modifiedJson,"infor");\r
-        free(jsonData);\r
-    }else{\r
-        data_root = cJSON_Parse("{\\r
-        \"infor\": [\\r
-        ]}");\r
+    message_data(uid_t,appid_t,title_c,msgBuf,hasCode);\r
+    if(title_c != NULL){\r
+        free(title_c);\r
     }\r
-    cJSON *dataJSON = cJSON_CreateObject();\r
-\r
-    cJSON *detialJSON = cJSON_CreateObject();\r
-\r
-    cJSON* itemJSON = cJSON_CreateObject();\r
-\r
-    \r
-    \r
-    cJSON_AddNumberToObject(itemJSON,"uid",uid_t);\r
-    cJSON_AddNumberToObject(itemJSON,"appid_t",appid_t);\r
-    cJSON_AddStringToObject(itemJSON,"title",titleBuf);\r
-    cJSON_AddStringToObject(itemJSON,"msg",msgBuf);\r
-    cJSON_AddStringToObject(itemJSON,"time",timeBuf);\r
-    cJSON_AddNumberToObject(itemJSON,"hasCode",hasCode_t);\r
-    cJSON *dataList = cJSON_GetObjectItem(data_root, "infor");\r
-    // printf("dataList %s",dataList);\r
-    cJSON *array = cJSON_GetObjectItemCaseSensitive(data_root, "infor");\r
-    cJSON_AddItemToArray(array, itemJSON);\r
-\r
-    // char *modified_json = cJSON_Print(data_root);\r
-\r
-\r
-    char *jsonString = cJSON_Print(data_root);\r
-    printf("ancs %s",jsonString);\r
-    FILE *file = fopen(ANCS_DATA_CONFIG_PATH, "wb");\r
-    if (file)\r
-    {\r
-        fwrite(jsonString, 1, strlen(jsonString), file);\r
-        fclose(file);\r
+    if(msgBuf != NULL){\r
+        free(msgBuf);\r
     }\r
-    free(jsonString);\r
     return 1;\r
 }\r
 void ancsDataShowCmd(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//\r
@@ -4377,7 +4459,7 @@ void bleRecvANCSData(uint8_t *data, uint16_t data_size,uint8_t *buf_cmd,uint8_t
     printf("type:%d %d data_size:%d data:%d crcvalue:%x",buf_cmd[0],type,data_size,data[0],crcvalue);\r
     switch (type)\r
     {\r
-        case 0x03://获取手机信息\r
+        case 0x03://\r
             type2AE1Data(buf_cmd,data,data_size,totalData,crcvalue);\r
             break;\r
         default:\r
@@ -4446,34 +4528,32 @@ void bleDataRecv(uint8_t *totalData, uint16_t event_size,uint16_t handle)
                         memset(cmd_data,0,17);\r
                         memcpy(cmd_data,totalData,17);\r
                         totalpack=1;\r
-                        break;\r
                     }else{//直接发送数据解析\r
-                        printf("muilt totalDataLen11;%d packdataLen:%d",totalDataLen,packdataLen);\r
                         muiltFlag = 0; \r
                         packdataLen = event_size-17;\r
                         memset(cmd_data,0,17);\r
                         memcpy(cmd_data,totalData,17);\r
-\r
-                        // 73 2 10 1 0 0 0 16 0 0 0 1 0 0 0 16 0\r
-                        recvData = malloc(packdataLen-1);\r
-                        if(recvData == NULL)return;\r
-                        memcpy(recvData,totalData+17,packdataLen-1);\r
-                        if(totalDataLen == 0){\r
-                            crcvalue = 0x00;\r
-                        }else{\r
+                        printf("muilt totalDataLen11;%d packdataLen:%d",totalDataLen,packdataLen);\r
+                        if(totalData == 0 && event_size == 18)//数据长度为0 没数据数据包 \r
+                        {\r
                             crcvalue = totalData[event_size-1];\r
+                            bleLongRecvData(NULL,0,cmd_data,totalData,crcvalue);\r
+                        }else{\r
+                            // 73 2 10 1 0 0 0 16 0 0 0 1 0 0 0 16 0\r
+                            recvData = malloc(packdataLen-1);\r
+                            if(recvData != NULL){\r
+                                memcpy(recvData,totalData+17,packdataLen-1);\r
+                                crcvalue = totalData[event_size-1];\r
+                                bleLongRecvData(recvData,packdataLen-1,cmd_data,totalData,crcvalue);\r
+                                if(recvData != NULL){\r
+                                    free(recvData);\r
+                                }\r
+                                packdataLen = 0;\r
+                            }\r
                         }\r
-                        \r
-                        bleLongRecvData(recvData,packdataLen-1,cmd_data,totalData,crcvalue);\r
-                        if(recvData != NULL){\r
-                            free(recvData);\r
-                        }\r
-                        packdataLen = 0;\r
-                        break;\r
                     }\r
                 }\r
                 break;\r
-                \r
             }else//这是接收两包以上的数据\r
             {\r
                 totalpack+=1;//包数\r
index 6c90bac..005c1c8 100644 (file)
@@ -9,9 +9,16 @@ extern "C" {
 #include "stdbool.h"
 #include "errcode.h"
 #include "bts_def.h"
+#define PHONE_WATCH_CONFIG_PATH "/user/userdata/phone_watch.json"
+#define ALARM_DATA_CONFIG_PATH "/user/userdata/alarm_test.json"
+#define ANCS_DATA_CONFIG_PATH "/user/userdata/message"
+
+#define ANCS_DATA_CJSON "ancs.json" //消息文件可以任意更改
 
 #define READ_FLASH_DATA 0x01 //读flash数据
 #define WRITE_FLASH_DATA 0x02 //写flash数据
+bool creatMessageDir(void);//创建消息文件夹
+char *get_message_dir_path(void);
 typedef struct {
     uint8_t *data;           /* data    */
     uint16_t data_len;       /* data_len 数据长度        */