From 45a3ec79837c660c791cab6a26013d693b0aebb5 Mon Sep 17 00:00:00 2001 From: wangjialiang Date: Mon, 10 Oct 2022 17:03:47 +0800 Subject: [PATCH] ble_mesh: stack: Fix send fast interval prov_adv failed when PB-ADV and PB-GATT enable simultaneously --- components/bt/esp_ble_mesh/mesh_core/proxy_server.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/components/bt/esp_ble_mesh/mesh_core/proxy_server.c b/components/bt/esp_ble_mesh/mesh_core/proxy_server.c index f79787c1b4..55cecd32e1 100644 --- a/components/bt/esp_ble_mesh/mesh_core/proxy_server.c +++ b/components/bt/esp_ble_mesh/mesh_core/proxy_server.c @@ -73,6 +73,7 @@ static uint16_t proxy_ccc_val; #if defined(CONFIG_BLE_MESH_PB_GATT) static uint16_t prov_ccc_val; static bool prov_fast_adv; +static uint32_t prov_start_time; #endif static struct bt_mesh_proxy_client { @@ -1377,12 +1378,16 @@ int32_t bt_mesh_proxy_server_adv_start(void) } #if defined(CONFIG_BLE_MESH_PB_GATT) + if (prov_fast_adv) { + prov_start_time = k_uptime_get_32(); + } + if (!bt_mesh_is_provisioned()) { const struct bt_mesh_adv_param *param; struct bt_mesh_adv_data prov_sd[2]; size_t prov_sd_len; - if (prov_fast_adv) { + if (k_uptime_get_32() - prov_start_time < K_SECONDS(60)) { param = &fast_adv_param; } else { param = &slow_adv_param;