From 505f40f3850944e685045caa3e6a809f9b1fcf3d Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Wed, 16 Oct 2024 22:45:31 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0=E5=9C=A8=E9=85=8D=E5=AF=B9?= =?utf8?q?=E5=89=8D=EF=BC=8C=E6=B8=85=E9=99=A4=E9=85=8D=E5=AF=B9=E6=95=B0?= =?utf8?q?=E6=8D=AE=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../service/ble_service/bleservice/bleEvent.c | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c index 1b6a32a82..aadbcd947 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c @@ -1080,16 +1080,20 @@ void sendBindInfor(uint8_t *data) GetwatchSaveMac(&save_mac,&MacType);//获取手表设备本地保存的mac地址和mac地址类型 getPhoneMac(data,&copare_mac); + 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地址就走连接流程重新绑定 { bond = 0x01;//手表未和任何手机绑定过 //未配过使能一键双联 - - + //清除一次配对 + //if(get_ble_pair()) + + // value[17] = bond;// value[18] = Calculate_CRC(value,18); sendBleData(value,19); + #ifdef SUPPORT_DEVICE_PAIRING_NOTIFICATION #ifdef SUPPORT_A5133_SERVICE_BLE_PAIR comfirmPaire(1); @@ -1098,6 +1102,17 @@ void sendBindInfor(uint8_t *data) getPhoneNameLen(data,&devnamelen,&phone_type);//获取手机下发的手机设备名称长度 if(devnamelen > 0 ) { + if(phone_type==0) + { + int paired_devices_num=0; + bool gap_get_paired =gap_get_paired_devices_num(&paired_devices_num); + if(gap_get_paired!=true ||paired_devices_num!=0 ) + { + gap_remove_all_pairs(); + } + } + + devname = getPhoneName(data); printf("devname!!!!!!!!!:%s devnamelen:%d",devname,devnamelen); if (devname != NULL){ @@ -1148,7 +1163,7 @@ void sendBindInfor(uint8_t *data) printf("phone devname is no name!!!!!!!!!:"); CustomEventPublish(TOPIC_EVENT_DEVICE_BIND,buf,2); } - #endif + #endif #endif return; @@ -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 { 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]); + if(g_ble_conn_id==0) + { + return; + + } if(first_bond == 1 && phoneDataFlag == 1)//第一次连接绑定 { set_ble_falg(1); @@ -5503,7 +5523,7 @@ static void GetSynDataEndCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *to sendBleData(value,19); uapi_ble_connect_param_update(BLE_CONNECT_INTERVAL_SLOW); - + }else { value[17] = 0; -- 2.17.1