mirror of
https://github.com/espressif/esp-idf
synced 2025-04-01 20:30:09 -04:00
ble_mesh: stack: Use erase settings functions
This commit is contained in:
parent
69131a11ed
commit
034906c6a8
@ -1211,43 +1211,44 @@ const struct bt_mesh_setting {
|
|||||||
const char *name;
|
const char *name;
|
||||||
int (*func)(const char *name);
|
int (*func)(const char *name);
|
||||||
} settings[] = {
|
} settings[] = {
|
||||||
{ "mesh/role", role_set },
|
{ "mesh/role", role_set }, /* For Node & Provisioner */
|
||||||
{ "mesh/net", net_set },
|
{ "mesh/net", net_set }, /* For Node */
|
||||||
{ "mesh/iv", iv_set },
|
{ "mesh/iv", iv_set }, /* For Node & Provisioner */
|
||||||
{ "mesh/seq", seq_set },
|
{ "mesh/seq", seq_set }, /* For Node & Provisioner */
|
||||||
{ "mesh/rpl", rpl_set },
|
{ "mesh/rpl", rpl_set }, /* For Node & Provisioner */
|
||||||
{ "mesh/netkey", net_key_set },
|
{ "mesh/netkey", net_key_set }, /* For Node */
|
||||||
{ "mesh/appkey", app_key_set },
|
{ "mesh/appkey", app_key_set }, /* For Node */
|
||||||
{ "mesh/hb_pub", hb_pub_set },
|
{ "mesh/hb_pub", hb_pub_set }, /* For Node */
|
||||||
{ "mesh/cfg", cfg_set },
|
{ "mesh/cfg", cfg_set }, /* For Node */
|
||||||
{ "mesh/sig", sig_mod_set },
|
{ "mesh/sig", sig_mod_set }, /* For Node & Provisioner */
|
||||||
{ "mesh/vnd", vnd_mod_set },
|
{ "mesh/vnd", vnd_mod_set }, /* For Node & Provisioner */
|
||||||
#if CONFIG_BLE_MESH_LABEL_COUNT > 0
|
#if CONFIG_BLE_MESH_LABEL_COUNT > 0
|
||||||
{ "mesh/vaddr", va_set },
|
{ "mesh/vaddr", va_set }, /* For Node */
|
||||||
#endif
|
#endif
|
||||||
#if CONFIG_BLE_MESH_PROVISIONER
|
#if CONFIG_BLE_MESH_PROVISIONER
|
||||||
{ "mesh/p_prov", p_prov_set },
|
{ "mesh/p_prov", p_prov_set }, /* For Provisioner */
|
||||||
{ "mesh/p_netidx", p_net_idx_set },
|
{ "mesh/p_netidx", p_net_idx_set }, /* For Provisioner */
|
||||||
{ "mesh/p_appidx", p_app_idx_set },
|
{ "mesh/p_appidx", p_app_idx_set }, /* For Provisioner */
|
||||||
{ "mesh/p_netkey", p_net_key_set },
|
{ "mesh/p_netkey", p_net_key_set }, /* For Provisioner */
|
||||||
{ "mesh/p_appkey", p_app_key_set },
|
{ "mesh/p_appkey", p_app_key_set }, /* For Provisioner */
|
||||||
{ "mesh/p_node", p_node_set },
|
{ "mesh/p_node", p_node_set }, /* For Provisioner */
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For Provisioner, the load operation needs the following actions:
|
* For Provisioner, the load operation needs the following actions:
|
||||||
|
* role_set: Need, restore the device role
|
||||||
* net_set: Not needed
|
* net_set: Not needed
|
||||||
* iv_set: Need, although Provisioner will do some initialization of IV Index
|
* iv_set: Need, restore the last IV Index status
|
||||||
* during startup, but we need to restore the last IV Index status
|
|
||||||
* seq_set: Need, restore the previous sequence number
|
* seq_set: Need, restore the previous sequence number
|
||||||
* rpl_set: Need, restore the previous Replay Protection List
|
* rpl_set: Need, restore the previous Replay Protection List
|
||||||
* net_key_set: Need, restore the previous network keys
|
* net_key_set: Not needed
|
||||||
* app_key_set: Need, restore the previous application keys
|
* app_key_set: Not needed
|
||||||
* hb_pub_set: Not needed currently
|
* hb_pub_set: Not needed currently
|
||||||
* cfg_set: Not needed currently
|
* cfg_set: Not needed currently
|
||||||
* sig_mod_set: Need, restore SIG models related info (app, sub, pub)
|
* sig_mod_set: Need, restore SIG models related info (app, sub, pub)
|
||||||
* vnd_mod_set: Need, restore vendor models related info (app, sub, pub)
|
* vnd_mod_set: Need, restore vendor models related info (app, sub, pub)
|
||||||
|
* va_set: Not needed currently
|
||||||
*/
|
*/
|
||||||
int settings_core_load(void)
|
int settings_core_load(void)
|
||||||
{
|
{
|
||||||
@ -1260,7 +1261,8 @@ int settings_core_load(void)
|
|||||||
!strcmp(settings[i].name, "mesh/netkey") ||
|
!strcmp(settings[i].name, "mesh/netkey") ||
|
||||||
!strcmp(settings[i].name, "mesh/appkey") ||
|
!strcmp(settings[i].name, "mesh/appkey") ||
|
||||||
!strcmp(settings[i].name, "mesh/hb_pub") ||
|
!strcmp(settings[i].name, "mesh/hb_pub") ||
|
||||||
!strcmp(settings[i].name, "mesh/cfg")) &&
|
!strcmp(settings[i].name, "mesh/cfg") ||
|
||||||
|
!strcmp(settings[i].name, "mesh/vaddr")) &&
|
||||||
(!IS_ENABLED(CONFIG_BLE_MESH_NODE) || bt_mesh_is_provisioner())) {
|
(!IS_ENABLED(CONFIG_BLE_MESH_NODE) || bt_mesh_is_provisioner())) {
|
||||||
BT_DBG("Not restoring %s for Provisioner", settings[i].name);
|
BT_DBG("Not restoring %s for Provisioner", settings[i].name);
|
||||||
continue;
|
continue;
|
||||||
@ -1282,7 +1284,7 @@ int settings_core_load(void)
|
|||||||
if (!strcmp(settings[i].name, "mesh/role")) {
|
if (!strcmp(settings[i].name, "mesh/role")) {
|
||||||
u8_t role = bt_mesh_atomic_get(bt_mesh.flags) & BLE_MESH_SETTINGS_ROLE_BIT_MASK;
|
u8_t role = bt_mesh_atomic_get(bt_mesh.flags) & BLE_MESH_SETTINGS_ROLE_BIT_MASK;
|
||||||
switch (role) {
|
switch (role) {
|
||||||
case 0U:
|
case BLE_MESH_SETTINGS_ROLE_NONE:
|
||||||
BT_INFO("Mesh device just starts up, no restore");
|
BT_INFO("Mesh device just starts up, no restore");
|
||||||
return 0;
|
return 0;
|
||||||
case BLE_MESH_SETTINGS_ROLE_NODE:
|
case BLE_MESH_SETTINGS_ROLE_NODE:
|
||||||
@ -1482,16 +1484,10 @@ static void schedule_store(int flag)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void clear_iv(void)
|
|
||||||
{
|
|
||||||
BT_DBG("Clearing IV");
|
|
||||||
bt_mesh_save_core_settings("mesh/iv", NULL, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void clear_net(void)
|
static void clear_net(void)
|
||||||
{
|
{
|
||||||
BT_DBG("Clearing Network");
|
BT_DBG("Clearing Network");
|
||||||
bt_mesh_save_core_settings("mesh/net", NULL, 0);
|
bt_mesh_erase_core_settings("mesh/net");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void store_pending_net(void)
|
static void store_pending_net(void)
|
||||||
@ -1542,7 +1538,8 @@ void bt_mesh_store_iv(bool only_duration)
|
|||||||
|
|
||||||
void bt_mesh_clear_iv(void)
|
void bt_mesh_clear_iv(void)
|
||||||
{
|
{
|
||||||
clear_iv();
|
BT_DBG("Clearing IV");
|
||||||
|
bt_mesh_erase_core_settings("mesh/iv");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void store_pending_seq(void)
|
static void store_pending_seq(void)
|
||||||
@ -1566,7 +1563,7 @@ void bt_mesh_store_seq(void)
|
|||||||
|
|
||||||
void bt_mesh_clear_seq(void)
|
void bt_mesh_clear_seq(void)
|
||||||
{
|
{
|
||||||
bt_mesh_save_core_settings("mesh/seq", NULL, 0);
|
bt_mesh_erase_core_settings("mesh/seq");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void store_rpl(struct bt_mesh_rpl *entry)
|
static void store_rpl(struct bt_mesh_rpl *entry)
|
||||||
@ -1609,7 +1606,7 @@ static void clear_rpl(void)
|
|||||||
|
|
||||||
buf = bt_mesh_get_core_settings_item("mesh/rpl");
|
buf = bt_mesh_get_core_settings_item("mesh/rpl");
|
||||||
if (!buf) {
|
if (!buf) {
|
||||||
bt_mesh_save_core_settings("mesh/rpl", NULL, 0);
|
bt_mesh_erase_core_settings("mesh/rpl");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1617,11 +1614,17 @@ static void clear_rpl(void)
|
|||||||
|
|
||||||
for (i = 0; i < length / SETTINGS_ITEM_SIZE; i++) {
|
for (i = 0; i < length / SETTINGS_ITEM_SIZE; i++) {
|
||||||
src = net_buf_simple_pull_le16(buf);
|
src = net_buf_simple_pull_le16(buf);
|
||||||
|
|
||||||
|
if (!BLE_MESH_ADDR_IS_UNICAST(src)) {
|
||||||
|
BT_ERR("Invalid source address 0x%04x", src);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
sprintf(name, "mesh/rpl/%04x", src);
|
sprintf(name, "mesh/rpl/%04x", src);
|
||||||
bt_mesh_save_core_settings(name, NULL, 0);
|
bt_mesh_erase_core_settings(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
bt_mesh_save_core_settings("mesh/rpl", NULL, 0);
|
bt_mesh_erase_core_settings("mesh/rpl");
|
||||||
|
|
||||||
bt_mesh_free_buf(buf);
|
bt_mesh_free_buf(buf);
|
||||||
return;
|
return;
|
||||||
@ -1687,7 +1690,7 @@ static void store_pending_cfg(void)
|
|||||||
static void clear_cfg(void)
|
static void clear_cfg(void)
|
||||||
{
|
{
|
||||||
BT_DBG("Clearing configuration");
|
BT_DBG("Clearing configuration");
|
||||||
bt_mesh_save_core_settings("mesh/cfg", NULL, 0);
|
bt_mesh_erase_core_settings("mesh/cfg");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void clear_app_key(u16_t app_idx)
|
static void clear_app_key(u16_t app_idx)
|
||||||
@ -1698,7 +1701,7 @@ static void clear_app_key(u16_t app_idx)
|
|||||||
BT_DBG("AppKeyIndex 0x%03x", app_idx);
|
BT_DBG("AppKeyIndex 0x%03x", app_idx);
|
||||||
|
|
||||||
sprintf(name, "mesh/ak/%04x", app_idx);
|
sprintf(name, "mesh/ak/%04x", app_idx);
|
||||||
bt_mesh_save_core_settings(name, NULL, 0);
|
bt_mesh_erase_core_settings(name);
|
||||||
|
|
||||||
err = bt_mesh_remove_core_settings_item("mesh/appkey", app_idx);
|
err = bt_mesh_remove_core_settings_item("mesh/appkey", app_idx);
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -1716,7 +1719,7 @@ static void clear_net_key(u16_t net_idx)
|
|||||||
BT_DBG("NetKeyIndex 0x%03x", net_idx);
|
BT_DBG("NetKeyIndex 0x%03x", net_idx);
|
||||||
|
|
||||||
sprintf(name, "mesh/nk/%04x", net_idx);
|
sprintf(name, "mesh/nk/%04x", net_idx);
|
||||||
bt_mesh_save_core_settings(name, NULL, 0);
|
bt_mesh_erase_core_settings(name);
|
||||||
|
|
||||||
err = bt_mesh_remove_core_settings_item("mesh/netkey", net_idx);
|
err = bt_mesh_remove_core_settings_item("mesh/netkey", net_idx);
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -1834,7 +1837,7 @@ static void store_pending_mod_bind(struct bt_mesh_model *model, bool vnd)
|
|||||||
|
|
||||||
if (IS_ENABLED(CONFIG_BLE_MESH_NODE) && bt_mesh_is_node() &&
|
if (IS_ENABLED(CONFIG_BLE_MESH_NODE) && bt_mesh_is_node() &&
|
||||||
!bt_mesh_is_provisioned()) {
|
!bt_mesh_is_provisioned()) {
|
||||||
bt_mesh_save_core_settings(name, NULL, 0);
|
bt_mesh_erase_core_settings(name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1865,7 +1868,7 @@ static void store_pending_mod_sub(struct bt_mesh_model *model, bool vnd)
|
|||||||
|
|
||||||
if (IS_ENABLED(CONFIG_BLE_MESH_NODE) && bt_mesh_is_node() &&
|
if (IS_ENABLED(CONFIG_BLE_MESH_NODE) && bt_mesh_is_node() &&
|
||||||
!bt_mesh_is_provisioned()) {
|
!bt_mesh_is_provisioned()) {
|
||||||
bt_mesh_save_core_settings(name, NULL, 0);
|
bt_mesh_erase_core_settings(name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1896,6 +1899,15 @@ static void store_pending_mod_pub(struct bt_mesh_model *model, bool vnd)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
model_key = BLE_MESH_GET_MODEL_KEY(model->elem_idx, model->model_idx);
|
||||||
|
sprintf(name, "mesh/%s/%04x/p", vnd ? "v" : "s", model_key);
|
||||||
|
|
||||||
|
if (IS_ENABLED(CONFIG_BLE_MESH_NODE) && bt_mesh_is_node() &&
|
||||||
|
!bt_mesh_is_provisioned()) {
|
||||||
|
bt_mesh_erase_core_settings(name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
pub.addr = model->pub->addr;
|
pub.addr = model->pub->addr;
|
||||||
pub.key = model->pub->key;
|
pub.key = model->pub->key;
|
||||||
pub.ttl = model->pub->ttl;
|
pub.ttl = model->pub->ttl;
|
||||||
@ -1904,16 +1916,6 @@ static void store_pending_mod_pub(struct bt_mesh_model *model, bool vnd)
|
|||||||
pub.period_div = model->pub->period_div;
|
pub.period_div = model->pub->period_div;
|
||||||
pub.cred = model->pub->cred;
|
pub.cred = model->pub->cred;
|
||||||
|
|
||||||
model_key = BLE_MESH_GET_MODEL_KEY(model->elem_idx, model->model_idx);
|
|
||||||
|
|
||||||
sprintf(name, "mesh/%s/%04x/p", vnd ? "v" : "s", model_key);
|
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_BLE_MESH_NODE) && bt_mesh_is_node() &&
|
|
||||||
!bt_mesh_is_provisioned()) {
|
|
||||||
bt_mesh_save_core_settings(name, NULL, 0);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
err = bt_mesh_save_core_settings(name, (const u8_t *)&pub, sizeof(pub));
|
err = bt_mesh_save_core_settings(name, (const u8_t *)&pub, sizeof(pub));
|
||||||
if (err) {
|
if (err) {
|
||||||
BT_ERR("Failed to store %s", name);
|
BT_ERR("Failed to store %s", name);
|
||||||
@ -1971,7 +1973,7 @@ static void store_pending_va(void)
|
|||||||
sprintf(name, "mesh/va/%04x", i);
|
sprintf(name, "mesh/va/%04x", i);
|
||||||
|
|
||||||
if (IS_VA_DEL(lab)) {
|
if (IS_VA_DEL(lab)) {
|
||||||
err = bt_mesh_save_core_settings(name, NULL, 0);
|
err = bt_mesh_erase_core_settings(name);
|
||||||
} else {
|
} else {
|
||||||
va.ref = lab->ref;
|
va.ref = lab->ref;
|
||||||
va.addr = lab->addr;
|
va.addr = lab->addr;
|
||||||
@ -2029,7 +2031,7 @@ static void store_pending(struct k_work *work)
|
|||||||
if (!IS_ENABLED(CONFIG_BLE_MESH_NODE) || bt_mesh_is_provisioned()) {
|
if (!IS_ENABLED(CONFIG_BLE_MESH_NODE) || bt_mesh_is_provisioned()) {
|
||||||
store_pending_iv();
|
store_pending_iv();
|
||||||
} else {
|
} else {
|
||||||
clear_iv();
|
bt_mesh_clear_iv();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2055,8 +2057,8 @@ static void store_pending(struct k_work *work)
|
|||||||
bt_mesh_model_foreach(store_pending_mod, NULL);
|
bt_mesh_model_foreach(store_pending_mod, NULL);
|
||||||
if (IS_ENABLED(CONFIG_BLE_MESH_NODE) && bt_mesh_is_node() &&
|
if (IS_ENABLED(CONFIG_BLE_MESH_NODE) && bt_mesh_is_node() &&
|
||||||
!bt_mesh_is_provisioned()) {
|
!bt_mesh_is_provisioned()) {
|
||||||
bt_mesh_save_core_settings("mesh/sig", NULL, 0);
|
bt_mesh_erase_core_settings("mesh/sig");
|
||||||
bt_mesh_save_core_settings("mesh/vnd", NULL, 0);
|
bt_mesh_erase_core_settings("mesh/vnd");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2166,7 +2168,7 @@ void bt_mesh_store_cfg(void)
|
|||||||
void bt_mesh_clear_role(void)
|
void bt_mesh_clear_role(void)
|
||||||
{
|
{
|
||||||
BT_DBG("Clear device role");
|
BT_DBG("Clear device role");
|
||||||
bt_mesh_save_core_settings("mesh/role", NULL, 0);
|
bt_mesh_erase_core_settings("mesh/role");
|
||||||
}
|
}
|
||||||
|
|
||||||
void bt_mesh_clear_net(void)
|
void bt_mesh_clear_net(void)
|
||||||
@ -2286,7 +2288,8 @@ void bt_mesh_store_prov_info(u16_t primary_addr, u16_t alloc_addr)
|
|||||||
|
|
||||||
void bt_mesh_clear_prov_info(void)
|
void bt_mesh_clear_prov_info(void)
|
||||||
{
|
{
|
||||||
bt_mesh_save_core_settings("mesh/p_prov", NULL, 0);
|
BT_DBG("Clearing prov info");
|
||||||
|
bt_mesh_erase_core_settings("mesh/p_prov");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void clear_p_net_key(u16_t net_idx)
|
static void clear_p_net_key(u16_t net_idx)
|
||||||
@ -2295,7 +2298,7 @@ static void clear_p_net_key(u16_t net_idx)
|
|||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
sprintf(name, "mesh/pnk/%04x", net_idx);
|
sprintf(name, "mesh/pnk/%04x", net_idx);
|
||||||
bt_mesh_save_core_settings(name, NULL, 0);
|
bt_mesh_erase_core_settings(name);
|
||||||
|
|
||||||
err = bt_mesh_remove_core_settings_item("mesh/p_netkey", net_idx);
|
err = bt_mesh_remove_core_settings_item("mesh/p_netkey", net_idx);
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -2309,7 +2312,7 @@ static void clear_p_app_key(u16_t app_idx)
|
|||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
sprintf(name, "mesh/pak/%04x", app_idx);
|
sprintf(name, "mesh/pak/%04x", app_idx);
|
||||||
bt_mesh_save_core_settings(name, NULL, 0);
|
bt_mesh_erase_core_settings(name);
|
||||||
|
|
||||||
err = bt_mesh_remove_core_settings_item("mesh/p_appkey", app_idx);
|
err = bt_mesh_remove_core_settings_item("mesh/p_appkey", app_idx);
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -2375,7 +2378,8 @@ void bt_mesh_store_p_net_idx(void)
|
|||||||
|
|
||||||
void bt_mesh_clear_p_net_idx(void)
|
void bt_mesh_clear_p_net_idx(void)
|
||||||
{
|
{
|
||||||
bt_mesh_save_core_settings("mesh/p_netidx", NULL, 0);
|
BT_DBG("Clearing NetKey Index");
|
||||||
|
bt_mesh_erase_core_settings("mesh/p_netidx");
|
||||||
}
|
}
|
||||||
|
|
||||||
void bt_mesh_store_p_app_idx(void)
|
void bt_mesh_store_p_app_idx(void)
|
||||||
@ -2388,7 +2392,8 @@ void bt_mesh_store_p_app_idx(void)
|
|||||||
|
|
||||||
void bt_mesh_clear_p_app_idx(void)
|
void bt_mesh_clear_p_app_idx(void)
|
||||||
{
|
{
|
||||||
bt_mesh_save_core_settings("mesh/p_appidx", NULL, 0);
|
BT_DBG("Clearing AppKey Index");
|
||||||
|
bt_mesh_erase_core_settings("mesh/p_appidx");
|
||||||
}
|
}
|
||||||
|
|
||||||
void bt_mesh_store_p_subnet(struct bt_mesh_subnet *sub)
|
void bt_mesh_store_p_subnet(struct bt_mesh_subnet *sub)
|
||||||
@ -2452,7 +2457,7 @@ void bt_mesh_clear_rpl_single(u16_t src)
|
|||||||
}
|
}
|
||||||
|
|
||||||
sprintf(name, "mesh/rpl/%04x", src);
|
sprintf(name, "mesh/rpl/%04x", src);
|
||||||
bt_mesh_save_core_settings(name, NULL, 0);
|
bt_mesh_erase_core_settings(name);
|
||||||
|
|
||||||
err = bt_mesh_remove_core_settings_item("mesh/rpl", src);
|
err = bt_mesh_remove_core_settings_item("mesh/rpl", src);
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -2502,15 +2507,15 @@ static void clear_node(u16_t addr)
|
|||||||
|
|
||||||
/* Clear node information */
|
/* Clear node information */
|
||||||
sprintf(name, "mesh/pn/%04x/i", addr);
|
sprintf(name, "mesh/pn/%04x/i", addr);
|
||||||
bt_mesh_save_core_settings(name, NULL, 0);
|
bt_mesh_erase_core_settings(name);
|
||||||
|
|
||||||
/* Clear node name */
|
/* Clear node name */
|
||||||
sprintf(name, "mesh/pn/%04x/n", addr);
|
sprintf(name, "mesh/pn/%04x/n", addr);
|
||||||
bt_mesh_save_core_settings(name, NULL, 0);
|
bt_mesh_erase_core_settings(name);
|
||||||
|
|
||||||
/* Clear node composition data */
|
/* Clear node composition data */
|
||||||
sprintf(name, "mesh/pn/%04x/c", addr);
|
sprintf(name, "mesh/pn/%04x/c", addr);
|
||||||
bt_mesh_save_core_settings(name, NULL, 0);
|
bt_mesh_erase_core_settings(name);
|
||||||
|
|
||||||
err = bt_mesh_remove_core_settings_item("mesh/p_node", addr);
|
err = bt_mesh_remove_core_settings_item("mesh/p_node", addr);
|
||||||
if (err) {
|
if (err) {
|
||||||
|
@ -178,6 +178,16 @@ int bt_mesh_save_core_settings(const char *key, const u8_t *val, size_t len)
|
|||||||
return bt_mesh_save_settings(handle, key, val, len);
|
return bt_mesh_save_settings(handle, key, val, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int bt_mesh_erase_settings(bt_mesh_nvs_handle_t handle, const char *key)
|
||||||
|
{
|
||||||
|
return bt_mesh_save_settings(handle, key, NULL, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int bt_mesh_erase_core_settings(const char *key)
|
||||||
|
{
|
||||||
|
return bt_mesh_save_core_settings(key, NULL, 0);
|
||||||
|
}
|
||||||
|
|
||||||
/* API used to load BLE Mesh related settings */
|
/* API used to load BLE Mesh related settings */
|
||||||
|
|
||||||
static int settings_load(bt_mesh_nvs_handle_t handle, const char *key,
|
static int settings_load(bt_mesh_nvs_handle_t handle, const char *key,
|
||||||
|
@ -37,6 +37,9 @@ int bt_mesh_save_settings(bt_mesh_nvs_handle_t handle, const char *key,
|
|||||||
const u8_t *val, size_t len);
|
const u8_t *val, size_t len);
|
||||||
int bt_mesh_save_core_settings(const char *key, const u8_t *val, size_t len);
|
int bt_mesh_save_core_settings(const char *key, const u8_t *val, size_t len);
|
||||||
|
|
||||||
|
int bt_mesh_erase_settings(bt_mesh_nvs_handle_t handle, const char *key);
|
||||||
|
int bt_mesh_erase_core_settings(const char *key);
|
||||||
|
|
||||||
int bt_mesh_load_settings(bt_mesh_nvs_handle_t handle, const char *key,
|
int bt_mesh_load_settings(bt_mesh_nvs_handle_t handle, const char *key,
|
||||||
u8_t *buf, size_t buf_len, bool *exist);
|
u8_t *buf, size_t buf_len, bool *exist);
|
||||||
int bt_mesh_load_core_settings(const char *key, u8_t *buf, size_t buf_len, bool *exist);
|
int bt_mesh_load_core_settings(const char *key, u8_t *buf, size_t buf_len, bool *exist);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user