增加在配对前,清除配对数据操作
authorhcj <1224667075@qq.com>
Wed, 16 Oct 2024 14:45:31 +0000 (22:45 +0800)
committerhcj <1224667075@qq.com>
Wed, 16 Oct 2024 14:45:31 +0000 (22:45 +0800)
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c

index 1b6a32a..aadbcd9 100644 (file)
@@ -1080,16 +1080,20 @@ void sendBindInfor(uint8_t *data)
     \r
     GetwatchSaveMac(&save_mac,&MacType);//获取手表设备本地保存的mac地址和mac地址类型 \r
     getPhoneMac(data,&copare_mac);\r
+\r
     if(save_mac[0] == 0 && save_mac[1] == 0 && save_mac[2] == 0 && save_mac[3] == 0 && save_mac[4] == 0 && save_mac[5] == 0)//只要手表本地存储没有mac地址就走连接流程重新绑定\r
     {\r
         bond = 0x01;//手表未和任何手机绑定过\r
         //未配过使能一键双联\r
-       \r
-\r
 \r
+        //清除一次配对\r
+        //if(get_ble_pair())\r
+       \r
+        //\r
         value[17] = bond;//\r
         value[18] = Calculate_CRC(value,18);\r
         sendBleData(value,19);\r
+\r
         #ifdef SUPPORT_DEVICE_PAIRING_NOTIFICATION\r
         #ifdef SUPPORT_A5133_SERVICE_BLE_PAIR\r
         comfirmPaire(1);\r
@@ -1098,6 +1102,17 @@ void sendBindInfor(uint8_t *data)
         getPhoneNameLen(data,&devnamelen,&phone_type);//获取手机下发的手机设备名称长度\r
         if(devnamelen > 0 )\r
         {\r
+            if(phone_type==0)\r
+            {\r
+                int paired_devices_num=0;\r
+                bool  gap_get_paired =gap_get_paired_devices_num(&paired_devices_num);\r
+                if(gap_get_paired!=true ||paired_devices_num!=0 )\r
+                {\r
+                    gap_remove_all_pairs();\r
+                }\r
+            }\r
+       \r
+\r
             devname = getPhoneName(data);\r
             printf("devname!!!!!!!!!:%s devnamelen:%d",devname,devnamelen);\r
             if (devname != NULL){\r
@@ -1148,7 +1163,7 @@ void sendBindInfor(uint8_t *data)
             printf("phone devname is no name!!!!!!!!!:");\r
             CustomEventPublish(TOPIC_EVENT_DEVICE_BIND,buf,2);\r
         }\r
-        #endif\r
+         #endif\r
         #endif\r
 \r
         return;\r
@@ -1279,6 +1294,11 @@ void SetPhoneInfo(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uin
 void sendParieSuccess(uint8_t flag,bd_addr_t *addr)//发送配对成功指令to app\r
 {\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sendParieSuccess:0x%x-0x%x-0x%x-0x%x-0x%x-0x%x\r\n",addr->addr[0],addr->addr[1],addr->addr[2],addr->addr[3],addr->addr[4],addr->addr[5]);\r
+    if(g_ble_conn_id==0)\r
+    {\r
+        return;\r
+\r
+    }\r
     if(first_bond == 1 && phoneDataFlag == 1)//第一次连接绑定\r
     {\r
         set_ble_falg(1);\r
@@ -5503,7 +5523,7 @@ static void GetSynDataEndCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *to
         sendBleData(value,19);\r
 \r
         uapi_ble_connect_param_update(BLE_CONNECT_INTERVAL_SLOW);\r
-        \r
+\r
     }else\r
     {\r
         value[17] = 0;\r