From ae079c1fc5d990ba55714d4b3a51b19f96edaec4 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期四, 24 四月 2025 16:01:43 +0800 Subject: [PATCH] 改为中断来低电平触发发送当前扫描数据,3s内扫描不到的会退出,串口来55 AA 75 70 64 61 74 65,进入升级模式 --- 01_SDK/nimble/host/nimble/nimble/host/src/ble_store.c | 37 +++++++++++++++++++++++++++++++++++++ 1 files changed, 37 insertions(+), 0 deletions(-) diff --git a/01_SDK/nimble/host/nimble/nimble/host/src/ble_store.c b/01_SDK/nimble/host/nimble/nimble/host/src/ble_store.c index 22e6089..459c7f5 100644 --- a/01_SDK/nimble/host/nimble/nimble/host/src/ble_store.c +++ b/01_SDK/nimble/host/nimble/nimble/host/src/ble_store.c @@ -165,6 +165,20 @@ value_sec->irk_present || value_sec->csrk_present); +#if SMP_MULTI_ADDR_MODE_EN + /* Add own address to database */ + ble_addr_t own_addr; + own_addr.type = ble_hs_id_get_used_addr_type(); + + rc = ble_hs_id_copy_addr(own_addr.type, own_addr.val, NULL); + if(rc != 0){ + return -1; + } + + struct ble_store_value_sec *value_sec_tmp = (struct ble_store_value_sec *)value_sec; + value_sec_tmp->own_addr = own_addr; +#endif + store_value = (void *)value_sec; rc = ble_store_write(obj_type, store_value); return rc; @@ -270,6 +284,19 @@ int rc; store_value = (void *)value; + +#if SMP_MULTI_ADDR_MODE_EN + ble_addr_t own_addr; + own_addr.type = ble_hs_id_get_used_addr_type(); + + rc = ble_hs_id_copy_addr(own_addr.type, own_addr.val, NULL); + if(rc != 0){ + return -1; + } + + store_value->cccd.own_addr = own_addr; +#endif + rc = ble_store_write(BLE_STORE_OBJ_TYPE_CCCD, store_value); return rc; } @@ -292,6 +319,11 @@ out_key->peer_addr = value->peer_addr; out_key->chr_val_handle = value->chr_val_handle; out_key->idx = 0; + +#if SMP_MULTI_ADDR_MODE_EN + out_key->own_addr = value->own_addr; + out_key->is_own_addr_valid = 0; +#endif } void @@ -304,6 +336,11 @@ out_key->rand_num = value->rand_num; out_key->ediv_rand_present = 1; out_key->idx = 0; + +#if SMP_MULTI_ADDR_MODE_EN + out_key->own_addr = value->own_addr; + out_key->is_own_addr_valid = 0; +#endif } void -- Gitblit v1.9.3