mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'bugfix/ble_mesh_node_reset_erase_v4.0' into 'release/v4.0'
ble_mesh: Fix node not erase info completely (v4.0) See merge request espressif/esp-idf!8623
This commit is contained in:
commit
7b6236c2d9
@ -1573,7 +1573,7 @@ void btc_ble_mesh_prov_call_handler(btc_msg_t *msg)
|
|||||||
break;
|
break;
|
||||||
case BTC_BLE_MESH_ACT_NODE_RESET:
|
case BTC_BLE_MESH_ACT_NODE_RESET:
|
||||||
BT_DBG("%s, BTC_BLE_MESH_ACT_NODE_RESET", __func__);
|
BT_DBG("%s, BTC_BLE_MESH_ACT_NODE_RESET", __func__);
|
||||||
bt_mesh_reset();
|
bt_mesh_node_reset();
|
||||||
return;
|
return;
|
||||||
case BTC_BLE_MESH_ACT_SET_OOB_PUB_KEY:
|
case BTC_BLE_MESH_ACT_SET_OOB_PUB_KEY:
|
||||||
act = ESP_BLE_MESH_NODE_PROV_SET_OOB_PUB_KEY_COMP_EVT;
|
act = ESP_BLE_MESH_NODE_PROV_SET_OOB_PUB_KEY_COMP_EVT;
|
||||||
|
@ -2746,7 +2746,7 @@ static void node_reset(struct bt_mesh_model *model,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_BLE_MESH_NODE)) {
|
if (IS_ENABLED(CONFIG_BLE_MESH_NODE)) {
|
||||||
bt_mesh_reset();
|
bt_mesh_node_reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -498,7 +498,7 @@ int bt_mesh_deinit(struct bt_mesh_deinit_param *param);
|
|||||||
* to enable unprovisioned advertising on one or more provisioning bearers.
|
* to enable unprovisioned advertising on one or more provisioning bearers.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void bt_mesh_reset(void);
|
void bt_mesh_node_reset(void);
|
||||||
|
|
||||||
/** @brief Suspend the Mesh network temporarily.
|
/** @brief Suspend the Mesh network temporarily.
|
||||||
*
|
*
|
||||||
|
@ -93,9 +93,9 @@ int bt_mesh_provision(const u8_t net_key[16], u16_t net_idx,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void bt_mesh_reset(void)
|
void bt_mesh_node_reset(void)
|
||||||
{
|
{
|
||||||
if (!bt_mesh_atomic_test_bit(bt_mesh.flags, BLE_MESH_VALID)) {
|
if (!bt_mesh_is_provisioned()) {
|
||||||
BT_WARN("%s, Not provisioned", __func__);
|
BT_WARN("%s, Not provisioned", __func__);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -103,7 +103,7 @@ void bt_mesh_reset(void)
|
|||||||
bt_mesh.iv_index = 0U;
|
bt_mesh.iv_index = 0U;
|
||||||
bt_mesh.seq = 0U;
|
bt_mesh.seq = 0U;
|
||||||
|
|
||||||
memset(bt_mesh.flags, 0, sizeof(bt_mesh.flags));
|
bt_mesh_atomic_clear_bit(bt_mesh.flags, BLE_MESH_VALID);
|
||||||
|
|
||||||
k_delayed_work_cancel(&bt_mesh.ivu_timer);
|
k_delayed_work_cancel(&bt_mesh.ivu_timer);
|
||||||
|
|
||||||
@ -136,9 +136,12 @@ void bt_mesh_reset(void)
|
|||||||
bt_mesh_comp_unprovision();
|
bt_mesh_comp_unprovision();
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_BLE_MESH_SETTINGS)) {
|
if (IS_ENABLED(CONFIG_BLE_MESH_SETTINGS)) {
|
||||||
|
bt_mesh_clear_seq();
|
||||||
bt_mesh_clear_role();
|
bt_mesh_clear_role();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memset(bt_mesh.flags, 0, sizeof(bt_mesh.flags));
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_BLE_MESH_PROV)) {
|
if (IS_ENABLED(CONFIG_BLE_MESH_PROV)) {
|
||||||
bt_mesh_prov_reset();
|
bt_mesh_prov_reset();
|
||||||
}
|
}
|
||||||
|
@ -1438,8 +1438,7 @@ static void schedule_store(int flag)
|
|||||||
timeout = K_NO_WAIT;
|
timeout = K_NO_WAIT;
|
||||||
} else if (bt_mesh_atomic_test_bit(bt_mesh.flags, BLE_MESH_RPL_PENDING) &&
|
} else if (bt_mesh_atomic_test_bit(bt_mesh.flags, BLE_MESH_RPL_PENDING) &&
|
||||||
(!(bt_mesh_atomic_get(bt_mesh.flags) & GENERIC_PENDING_BITS) ||
|
(!(bt_mesh_atomic_get(bt_mesh.flags) & GENERIC_PENDING_BITS) ||
|
||||||
(CONFIG_BLE_MESH_RPL_STORE_TIMEOUT <
|
(CONFIG_BLE_MESH_RPL_STORE_TIMEOUT < CONFIG_BLE_MESH_STORE_TIMEOUT))) {
|
||||||
CONFIG_BLE_MESH_STORE_TIMEOUT))) {
|
|
||||||
timeout = K_SECONDS(CONFIG_BLE_MESH_RPL_STORE_TIMEOUT);
|
timeout = K_SECONDS(CONFIG_BLE_MESH_RPL_STORE_TIMEOUT);
|
||||||
} else {
|
} else {
|
||||||
timeout = K_SECONDS(CONFIG_BLE_MESH_STORE_TIMEOUT);
|
timeout = K_SECONDS(CONFIG_BLE_MESH_STORE_TIMEOUT);
|
||||||
@ -1451,7 +1450,7 @@ static void schedule_store(int flag)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
BT_DBG("Waiting %d seconds", timeout / MSEC_PER_SEC);
|
BT_INFO("Waiting %d seconds", timeout / MSEC_PER_SEC);
|
||||||
|
|
||||||
if (timeout) {
|
if (timeout) {
|
||||||
k_delayed_work_submit(&pending_store, timeout);
|
k_delayed_work_submit(&pending_store, timeout);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user