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