Merge #15 into xts_origin from refs/changes/15/head 19/target/1
author邓雪英 <1731678236@qq.com>
Tue, 16 Apr 2024 13:13:05 +0000 (13:13 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Tue, 16 Apr 2024 13:13:05 +0000 (13:13 +0000)
通讯录协议对接完成

* refs/changes/15/head: (3 commits squashed)

  - test

  - 1.通许录协议对接已完成
    2.更改时间 天气 训练目标解析返回值传参出错的问题

  - Merge branch &#39;xts_origin&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into xts_origin

Signed-off-by: d15521469561 <1731678236@qq.com>
Commented-by: d15521469561 <1731678236@qq.com>
Commented-by: Caisking <3449750381@qq.com>
Commented-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/15
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayHelp.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/include/phoneaddressmodel.h
code/sdk/application/wearable/fd230app/nativeui/phone/src/phoneaddressmodel.cpp
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
code/sdk/application/wearable/service/ble_service/bleservice/bleService.c

index 9f29ded..aec899f 100644 (file)
@@ -10,7 +10,7 @@
 #include "cmsis_os.h"\r
 #include "AlipayHelp.h"\r
 #include "AlipayModel.h"\r
-\r
+ \r
 namespace OHOS {\r
 static const char *HELP_TITLE = (char*)"使用支付宝扫码求助";\r
 static const int16 HELP_TITLE_FONT = 30;\r
index 3e87289..cc2b5eb 100644 (file)
@@ -4,22 +4,25 @@
 
 #define ADDRESS_BOOK_PATH "/user/userdata/addressbook.bin"
 
-
+#define NAME_LEN (10*3)
+#define NUMBER_LEN 20
+#define AREA_LEN (20*3)
+#define OPERATOR_LEN (4*3)
 namespace OHOS
 {
 
 struct phone_number
 {
-    char *number={NULL};
-    char *affiliating_area={NULL};
-    char *operator_t={NULL};
+    char number[NUMBER_LEN];
+    char affiliating_area[AREA_LEN];//归属地
+    char operator_t[OPERATOR_LEN];//运营商
     //struct phone_number *next;
 };
 
 
 struct Contact
 {
-    char *name={NULL};
+    char name[NAME_LEN];
     int phone_num=0;
     uint8_t sex;
     struct phone_number phone_number_t[2];
index 5fbe59a..cf41b1c 100644 (file)
 namespace OHOS
 {
     struct addressbook addressbook_t;
-
+    static char *buf = NULL;
     void read_addressbook_bin_file()
     {
 
-    FILE *fp= fopen(ADDRESS_BOOK_PATH,"rb+");
-    if(fp==NULL)
-    {
-        fp= fopen(ADDRESS_BOOK_PATH,"wb+");
-        fclose(fp);
-        return;
-    }
-    char buf[124*20];
-    int ret=fread(buf,1,512,fp);
-    int offset_f=512;
-    while (ret==512)
-    {
-        ret=fread(&buf[offset_f],1,512,fp);
-        offset_f+=512;
-    }
-    
-    int num=buf[0];//人数
-    printf("人数: %d\r\n",num);
-    addressbook_t.num=num;
-    int offset=1;
-    for (int j=0;j<num;j++)
-    {
-        uint8_t sex = buf[offset];
-        printf("性别: %d\r\n",sex);
-        addressbook_t.Contact_t[j].sex=sex;
-        offset=offset+1;
-        uint8_t name_len=buf[offset];
-        printf("name_len %d\r\n",name_len);
-        char *name=(char *)malloc(sizeof(char)*name_len+1);
-        memset(name,0,name_len+1);
-        if(name_len==0)
-        {
-            name_len=strlen("未知");
-           printf("未知\r\n");
-        }
-        else
+        // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "read_addressbook_bin_file");
+        FILE *fp= fopen(ADDRESS_BOOK_PATH,"rb+");
+        if(fp==NULL)
         {
-            memcpy(name,&buf[offset+1],name_len);
-            printf("姓名: %s\r\n",name);
-            addressbook_t.Contact_t[j].name=name;
+            fp= fopen(ADDRESS_BOOK_PATH,"wb+");
+            fclose(fp);
+            return;
         }
-        offset=offset+name_len+1;
-        uint8_t phone_num=buf[offset]; 
-        offset=offset+1;
-        addressbook_t.Contact_t[j].phone_num=phone_num;
-        for(int i=0;i<phone_num;i++)
-        { 
+        // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "read_addressbook_bin_file!!!!!!");
+        buf = (char *)malloc(512);
 
-            uint8_t phonen_len=buf[offset];
-            //char phonen_name[32]={0};
-            char *phonen_name=(char *)malloc(sizeof(char)*phonen_len+1);
-            memset(phonen_name,0,phonen_len+1);
-            memcpy(phonen_name,&buf[offset+1],phonen_len);
-            printf("号码: %s\r\n",phonen_name);
-            addressbook_t.Contact_t[j].phone_number_t[i].number=phonen_name;
-            offset=offset+phonen_len+1;
+        int ret=fread(buf,1,512,fp);
+        int offset_f=512;
+        while (ret==512)
+        {
+            buf = (char *)realloc(buf,offset_f+512);
+            ret=fread(&buf[offset_f],1,512,fp);
+            offset_f+=512;  
         }
-        for(int i=0;i<phone_num;i++)
+        
+        int num=buf[0];//人数
+        printf("人数: %d\r\n",num);
+        addressbook_t.num=num;
+        int offset=1;
+        for (int j=0;j<num;j++)
         {
-            uint8_t add = buf[offset];
-            printf("归属地长度: %d\r\n",add);
-            char *add_buf=(char *)malloc(sizeof(char)*add+1);
-            memset(add_buf,0,add+1);
-            memcpy(add_buf,&buf[offset+1],add);
-            printf("归属地: %s\r\n",add_buf);
-            addressbook_t.Contact_t[j].phone_number_t[i].affiliating_area=add_buf;
-            offset=offset+add+1;
+            uint8_t sex = buf[offset];
+            printf("性别: %d\r\n",sex);
+            addressbook_t.Contact_t[j].sex=sex;
+            offset=offset+1;
+            uint8_t name_len=buf[offset];
+            printf("name_len %d\r\n",name_len);
+            // char *name=(char *)malloc(sizeof(char)*name_len+1);
+            memset(addressbook_t.Contact_t[j].name,0,name_len+1);
+            if(name_len==0)
+            {
+                name_len=strlen("未知");
+                printf("未知\r\n");
+            }
+            else
+            {
+                if(name_len > NAME_LEN)
+                {
+                    addressbook_t.Contact_t[j].name[NAME_LEN] = '\0';
+                    memcpy(addressbook_t.Contact_t[j].name,&buf[offset+1],NAME_LEN);
+                }else{
+                    memcpy(addressbook_t.Contact_t[j].name,&buf[offset+1],name_len);
+                }
+                
+                printf("姓名: %s\r\n",addressbook_t.Contact_t[j].name);
+                // addressbook_t.Contact_t[j].name=name;
+            }
+            offset=offset+name_len+1;
+            uint8_t phone_num=buf[offset]; 
+            offset=offset+1;
+            addressbook_t.Contact_t[j].phone_num=phone_num;
+            for(int i=0;i<phone_num;i++)
+            { 
+
+                uint8_t phonen_len=buf[offset];
+                //char phonen_name[32]={0};
+                // char *phonen_name=(char *)malloc(sizeof(char)*phonen_len+1);
+                memset(addressbook_t.Contact_t[j].phone_number_t[i].number,0,phonen_len+1);
+                if(phonen_len > NUMBER_LEN)
+                {
+                    addressbook_t.Contact_t[j].phone_number_t[i].number[NUMBER_LEN] = '\0';
+                    memcpy(addressbook_t.Contact_t[j].phone_number_t[i].number,&buf[offset+1],NUMBER_LEN);
+                }else{
+                    memcpy(addressbook_t.Contact_t[j].phone_number_t[i].number,&buf[offset+1],phonen_len);
+                }
+                
+                printf("号码: %s\r\n",addressbook_t.Contact_t[j].phone_number_t[i].number);
+                // addressbook_t.Contact_t[j].phone_number_t[i].number=phonen_name;
+                offset=offset+phonen_len+1;
+            }
+            for(int i=0;i<phone_num;i++)
+            {
+                uint8_t add = buf[offset];
+                printf("归属地长度: %d\r\n",add);
+                // char *add_buf=(char *)malloc(sizeof(char)*add+1);
+                memset(addressbook_t.Contact_t[j].phone_number_t[i].affiliating_area,0,add+1);
+                memcpy(addressbook_t.Contact_t[j].phone_number_t[i].affiliating_area,&buf[offset+1],add);
+                printf("归属地: %s\r\n",addressbook_t.Contact_t[j].phone_number_t[i].affiliating_area);
+                // addressbook_t.Contact_t[j].phone_number_t[i].affiliating_area=add_buf;
+                offset=offset+add+1;
 
-            uint8_t yun = buf[offset];
-            char *yun_buf=(char *)malloc(sizeof(char)*yun+1);
-            memset(yun_buf,0,yun+1);
-            memcpy(yun_buf,&buf[offset+1],yun);
-            printf("运营商: %s\r\n",add_buf);
-            addressbook_t.Contact_t[j].phone_number_t[i].operator_t=yun_buf;
+                uint8_t yun = buf[offset];
+                // char *yun_buf=(char *)malloc(sizeof(char)*yun+1);
+                memset(addressbook_t.Contact_t[j].phone_number_t[i].operator_t,0,yun+1);
+                if(yun > OPERATOR_LEN)
+                {
+                    addressbook_t.Contact_t[j].phone_number_t[i].operator_t[OPERATOR_LEN]='\0';
+                    memcpy(addressbook_t.Contact_t[j].phone_number_t[i].operator_t,&buf[offset+1],OPERATOR_LEN);
+                }else{
+                    memcpy(addressbook_t.Contact_t[j].phone_number_t[i].operator_t,&buf[offset+1],yun);
+                }
+                printf("运营商: %s\r\n",addressbook_t.Contact_t[j].phone_number_t[i].operator_t);
+                // addressbook_t.Contact_t[j].phone_number_t[i].operator_t=yun_buf;
 
-            offset=offset+yun+1;
+                offset=offset+yun+1;
+            }
+        }
+        fclose(fp);
+        if(buf)
+        {
+            free(buf);
         }
-    }
-    fclose(fp);
     }
 
     void get_phone_addrss_name(char *name,const char *phone)
@@ -129,6 +157,7 @@ namespace OHOS
 
     void write_addressbook_bin_flle()
     {
+        #if 0
         FILE *fp= fopen(ADDRESS_BOOK_PATH,"wb+");
         if(fp==NULL)
         return;
@@ -180,12 +209,13 @@ namespace OHOS
         }
         fwrite((void *)buf,1,offset,fp);
         fclose(fp);
+        #endif
     }
     
     void add_addressbook(struct Contact *data)
     {
        
-
+        #if 0
         if(data->name!=NULL)
         {
              
@@ -253,54 +283,57 @@ namespace OHOS
             }
         }
         addressbook_t.num+=1;
-
+        #endif
     
     }
     
     void add_addressbook_by_AT(char *name,char *phone)
     {
-        Contact data;
-        data.sex=0;
-        data.name=name;
-        data.phone_num=1;
-        data.phone_number_t[0].number=phone;
-        data.phone_number_t[0].affiliating_area=NULL;
-        data.phone_number_t[0].operator_t=NULL;
+        // Contact data;
+        // data.sex=0;
+        // data.name=name;
+        // data.phone_num=1;
 
-        data.phone_number_t[1].number=NULL;
-        data.phone_number_t[1].affiliating_area=NULL;
-        data.phone_number_t[1].operator_t=NULL;
+        // data.phone_number_t[0].number=phone;
+        // memset(data.phone_number_t[0].affiliating_area,0,AREA_LEN);
+        // // data.phone_number_t[0].affiliating_area=NULL;
+        // // data.phone_number_t[0].operator_t=NULL;
+        // memset(data.phone_number_t[0].affiliating_area,0,OPERATOR_LEN);
 
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "phoneaddressbook::phoneaddressbook");
-        add_addressbook(&data);
+        // data.phone_number_t[1].number=NULL;
+        // data.phone_number_t[1].affiliating_area=NULL;
+        // data.phone_number_t[1].operator_t=NULL;
+
+        // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "phoneaddressbook::phoneaddressbook");
+        // add_addressbook(&data);
     }
 
     void free_address()
 {
-    for(int i=0;i<addressbook_t.num;i++)
-    {
-        if(addressbook_t.Contact_t[i].name)
-        {
-            free(addressbook_t.Contact_t[i].name);
-        }
-        for(int y=0;y<addressbook_t.Contact_t[i].phone_num;y++)
-        {
-            if(addressbook_t.Contact_t[i].phone_number_t[y].number)
-            {
-                free(addressbook_t.Contact_t[i].phone_number_t[y].number);
-            }
-            if(addressbook_t.Contact_t[i].phone_number_t[y].affiliating_area)
-            {
-                free(addressbook_t.Contact_t[i].phone_number_t[y].affiliating_area);
-            }
-            if(addressbook_t.Contact_t[i].phone_number_t[y].operator_t)
-            {
-                free(addressbook_t.Contact_t[i].phone_number_t[y].operator_t);
-            }
+    // for(int i=0;i<addressbook_t.num;i++)
+    // {
+    //     if(addressbook_t.Contact_t[i].name)
+    //     {
+    //         free(addressbook_t.Contact_t[i].name);
+    //     }
+    //     for(int y=0;y<addressbook_t.Contact_t[i].phone_num;y++)
+    //     {
+    //         if(addressbook_t.Contact_t[i].phone_number_t[y].number)
+    //         {
+    //             free(addressbook_t.Contact_t[i].phone_number_t[y].number);
+    //         }
+    //         if(addressbook_t.Contact_t[i].phone_number_t[y].affiliating_area)
+    //         {
+    //             free(addressbook_t.Contact_t[i].phone_number_t[y].affiliating_area);
+    //         }
+    //         if(addressbook_t.Contact_t[i].phone_number_t[y].operator_t)
+    //         {
+    //             free(addressbook_t.Contact_t[i].phone_number_t[y].operator_t);
+    //         }
             
-        }
+    //     }
        
-    }
+    // }
 }
 
     phoneaddressbook::phoneaddressbook()
index d235a88..32e99fe 100644 (file)
@@ -16,7 +16,7 @@
 #include "graphic_service.h"
 #include "WeatherModel.h"
 #include "health_service.h"
-
+#include "phoneaddressmodel.h"
 #ifdef __cplusplus
 #if __cplusplus
 extern "C" {
@@ -47,6 +47,15 @@ extern "C" {
 #include "bleService.h"
 
 
+char *addressbook(void)//获取通讯录保存文件地址路径
+{
+    return ADDRESS_BOOK_PATH;
+}
+void addressbookToRead(void)//转化用于·c文件
+{
+    OHOS::read_addressbook_bin_file();
+    return;
+}
 // struct Weather_data
 // {
 //     int humidity;
index 6b00d35..4199b7f 100644 (file)
@@ -32,6 +32,8 @@ void set_weather_one_data(int tempMin, int iconDay,int fxDate, int tempMax, char
 uint8_t ble_is_ready(void);
 void set_ble_falg(uint8_t falg);
 uint8_t ble_is_connect_ready(void);
+char *addressbook(void);
+void addressbookToRead(void);
 
 #ifdef __cplusplus
 #if __cplusplus
index 939bc98..af4bba7 100644 (file)
@@ -337,7 +337,7 @@ static uint8_t  jsonCheck_phoneinfor(uint8_t *buf,uint8_t *mac_data,char *devnam
     return len;\r
     \r
 }\r
-errcode_t UnbindSucessCmd(void)//发送解绑指令,解绑界面调用这个函数 如果点了✓调用这个函数 返回成功后延迟10s再重启设备  \r
+errcode_t UnbindSucessCmd(uint8_t flag)//发送解绑指令,解绑界面调用这个函数 如果点了✓调用这个函数 返回成功后延迟10s再重启设备  \r
 {\r
     errcode_t sendok = ERRCODE_FAIL;\r
     uint32_t tmp = 1;\r
@@ -352,16 +352,20 @@ errcode_t UnbindSucessCmd(void)//发送解绑指令,解绑界面调用这个函
     memcpy(value+7,&tmp,4);\r
     memcpy(value+11,&tmp,4);\r
     memcpy(value+15,&tmp,2);\r
-    value[17] = 1;\r
+    value[17] = flag;\r
     value[18] = Calculate_CRC(value,18);\r
     sendok =  sendBleData(value,19);\r
     bool ret = bt_is_acl_connected(&phone_addr);\r
-    if(0!=remove(PHONE_WATCH_CONFIG_PATH))\r
-    {\r
-        printf("json remove fail\r\n");\r
+    if(flag == 1)\r
+    {   \r
+        if(0!=remove(PHONE_WATCH_CONFIG_PATH))\r
+        {\r
+            printf("json remove fail\r\n");\r
+        }\r
+        gap_ble_remove_all_pairs(); \r
+        gap_remove_all_pairs();\r
     }\r
-    gap_ble_remove_all_pairs(); \r
-    gap_remove_all_pairs();\r
+    \r
     // uapi_reboot_device();\r
 \r
     return sendok;\r
@@ -1074,7 +1078,7 @@ static uint8_t jsonCheck_time(uint8_t *buf)//json 格式解析
     cJSON* root = cJSON_Parse((const char *)json);\r
     if (root == NULL) {\r
         printf("时间 JSON解析错误\n");\r
-        return 1;\r
+        return 2;\r
     }\r
     char *locations;\r
     int year = 1970;\r
@@ -1132,7 +1136,7 @@ static uint8_t jsonCheck_time(uint8_t *buf)//json 格式解析
     sprintf((char *)time_data,"%d-%d-%d %d:%d:%d",year+2000,month,day,hour,minute,second);\r
     set_system_time(time_data);\r
     cJSON_Delete(root);\r
-    return 2;\r
+    return 1;\r
 }\r
 \r
 \r
@@ -1180,7 +1184,7 @@ static uint8_t jsonCheck_targetparam(uint8_t *buf)//训练目标参数
     cJSON* root = cJSON_Parse((const char *)json);\r
     if (root == NULL) {\r
         printf("时间 JSON解析错误\n");\r
-        return 1;\r
+        return 2;\r
     }\r
         //     {\r
         // "ty":0,\r
@@ -1211,7 +1215,7 @@ static uint8_t jsonCheck_targetparam(uint8_t *buf)//训练目标参数
         printf("st: %d\n", st->valueint);\r
     }\r
     cJSON_Delete(root);\r
-    return 2;\r
+    return 1;\r
 }\r
 \r
 \r
@@ -1555,7 +1559,7 @@ uint8_t jsonCheck_weather(uint8_t *buf)//json 格式解析 天气数据
     cJSON* root = cJSON_Parse((const char *)json);\r
     if (root == NULL) {\r
         printf("天气 JSON解析错误\n");\r
-        return 1;\r
+        return 2;\r
     }\r
     cJSON *now_cjson = cJSON_GetObjectItem(root, "now");\r
     \r
@@ -1605,7 +1609,7 @@ uint8_t jsonCheck_weather(uint8_t *buf)//json 格式解析 天气数据
     // }\r
     cJSON_Delete(root);\r
     printf("weather data!!!!!!!!!!end\r\n");\r
-    return 2;\r
+    return 1;\r
 }\r
 \r
 \r
@@ -1689,7 +1693,7 @@ void getTRAIN_TARGETInfo(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *tota
 {\r
 \r
 }\r
-\r
+// #include "phoneaddressmodel.h"\r
 //电话薄解析函数\r
 void  Parse_addressbook_bin(uint8_t *crcnum,uint16_t len)\r
 {\r
@@ -1769,9 +1773,17 @@ void getAPPaddressbook(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *totalD
     if(Check_CRC(crcnum,len,crcvalue))\r
     {\r
         //解析,传来的二进制数据\r
-         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "");\r
-        Parse_addressbook_bin(crcnum,len);\r
-        \r
+        char *address_path = addressbook();\r
+        FILE *file = fopen(address_path, "wb+");\r
+        if (file)\r
+        {\r
+            size_t len_t = fwrite((void *)crcnum,1,len,file);\r
+            fclose(file); \r
+            if(len_t == len){\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "fwrite:%d",len_t);\r
+                addressbookToRead();\r
+            }\r
+        }\r
         value[17] = 0x01;\r
         value[18] = Calculate_CRC(value,18);\r
         sendBleData(value,19);\r
@@ -3836,6 +3848,9 @@ void sendReadData(void)
     }\r
     while (1)\r
     {\r
+\r
+\r
+        //json id=0 \r
         time = 1711348052+3600*packCount;\r
         memcpy(buf+startDataLen,&time,4);//21 \r
         startDataLen=startDataLen+4;\r
@@ -4102,7 +4117,7 @@ void bleDataRecv(uint8_t *totalData, uint16_t event_size,uint16_t handle)
                 free(recvData);\r
             }\r
         }\r
-    }else if(data2ae4Cmd == handle)\r
+    }else if(data2ae4Cmd == handle)//长数据接收\r
     {\r
         while (1)\r
         {\r
@@ -4192,9 +4207,9 @@ void bleDataRecv(uint8_t *totalData, uint16_t event_size,uint16_t handle)
                 if(bigDataBuf != NULL){\r
                     free(bigDataBuf);\r
                 }\r
-                // if(recvData != NULL){\r
-                //     // free(recvData);\r
-                // }\r
+                if(recvData != NULL){\r
+                    free(recvData);\r
+                }\r
                 break;\r
             }\r
         }\r
@@ -4204,6 +4219,19 @@ void bleDataRecv(uint8_t *totalData, uint16_t event_size,uint16_t handle)
     //      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "xhandle %d,%d %d",data2ae3Cmd,data2ae4Cmd,handle);\r
     // }\r
 }\r
+void free_ble_data(void)//以防断开蓝牙没有释放数据类型\r
+{\r
+    totalpack = 0;\r
+    muiltFlag = 0; \r
+    packdataLen = 0;\r
+    totalDataLen = 0;\r
+    if(bigDataBuf != NULL){\r
+        free(bigDataBuf);\r
+    }\r
+    if(recvData != NULL){\r
+        free(recvData);\r
+    }\r
+}\r
 //接收app下发的原始数据 \r
 void revBleOldData(uint8_t *buf, uint16_t event_size,uint16_t handle)//每包的数据大小\r
 {\r
index 1e4f6b0..ed6d214 100644 (file)
@@ -581,13 +581,14 @@ errcode_t sendBleData(uint8_t *buf,uint16_t len);
 void sendParieSuccess(uint8_t flag,bd_addr_t *addr);//发送配对成功指令to app mac手机端的地址
 void getPhoneInfo_test(void);
 void setFindWatchFlag(uint8_t flag);//查找手表标识
-errcode_t UnbindSucessCmd(void);//发送解绑指令,解绑界面调用这个函数 如果点了✓调用这个函数 返回成功后延迟10s再重启设备  
+errcode_t UnbindSucessCmd(uint8_t flag);// 1确认解绑 0取消解绑 发送解绑指令,解绑界面调用这个函数 如果点了✓调用这个函数 返回成功后延迟10s再重启设备  
 void getDeviceState(void);
 void cleanUnbindInfor(uint8_t flag);//和旧手机解绑清除配对信息 0不清除配对信息 1清除配对信息重启
 void comfirmPaire(uint8_t flag);//发送确认配对指令 1确认配对 0取消配对
 void cameraSend(void);
 void senfindphoneSend(uint8_t flag);
 void readDevDataBle(uint8_t *crcnum,uint16_t len,uint8_t crcvalue);
+void free_ble_data(void);
 #ifdef __cplusplus
 }
 #endif
index 7923ce5..af60f70 100644 (file)
@@ -283,6 +283,7 @@ static void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr,
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_BLE_STATE_DISCONNECTED!!! 0x%x ret:%d\r\n",pair_state,AdverFlag);\r
         // if(AdverFlag == true){\r
         svr_ble_adv_start();\r
+        free_ble_data();\r
         // }    \r
     } else {\r
         devpair_state = 0;//\r
@@ -805,11 +806,7 @@ static void svr_ble_bt_gatts_req_write_cb(uint8_t server_id, uint16_t conn_id, g
 { \r
      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_ble_server_handle %d conn_id :%d write_cb_para->length:%d write_cb_para->handle %d write_cb_para->request_id:%d",g_ble_server_handle,conn_id,write_cb_para->length,\r
      write_cb_para->handle,write_cb_para->request_id);\r
-    for(uint16_t i = 0;i<write_cb_para->length;i++)\r
-    {   \r
-        printf("%x ",write_cb_para->value[i]);\r
-       \r
-    }\r
+    \r
     //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"handle :%d %d %d".write_cb_para->handle,get_factory_ate_write_handl(),get_factory_ota_write_handl());\r
     if (write_cb_para->handle == get_factory_ate_write_handl()) \r
     {\r
@@ -819,6 +816,11 @@ static void svr_ble_bt_gatts_req_write_cb(uint8_t server_id, uint16_t conn_id, g
     {\r
         factory_recv_ota_data(write_cb_para->value,write_cb_para->length,write_cb_para->handle);\r
     }else{\r
+        for(uint16_t i = 0;i<write_cb_para->length;i++)\r
+        {   \r
+            printf("%02x ",write_cb_para->value[i]);\r
+        \r
+        }\r
         revBleOldData(write_cb_para->value,write_cb_para->length,write_cb_para->handle);\r
     }\r
 }\r