NimBLE : Init deinit nimble stack in a loop

pull/10970/head
isha.pardikar@espressif.com 2022-10-19 15:23:21 +05:30
rodzic 28f9ddee74
commit ff29f5c43a
2 zmienionych plików z 43 dodań i 0 usunięć

Wyświetl plik

@ -12,4 +12,10 @@ menu "Example Configuration"
prompt "Enable Extended Adv"
help
Use this option to enable extended advertising in the example
config EXAMPLE_INIT_DEINIT_LOOP
bool
prompt "Perform init deinit of nimble stack in a loop"
help
Enable this flag, to perform only stack Init and Deinit in a loop.
endmenu

Wyświetl plik

@ -577,8 +577,10 @@ blecent_on_sync(void)
rc = ble_hs_util_ensure_addr(0);
assert(rc == 0);
#if !CONFIG_EXAMPLE_INIT_DEINIT_LOOP
/* Begin scanning for a peripheral to connect to. */
blecent_scan();
#endif
}
void blecent_host_task(void *param)
@ -590,6 +592,37 @@ void blecent_host_task(void *param)
nimble_port_freertos_deinit();
}
#if CONFIG_EXAMPLE_INIT_DEINIT_LOOP
/* This function showcases stack init and deinit procedure. */
static void stack_init_deinit(void)
{
int rc;
while(1) {
vTaskDelay(1000);
ESP_LOGI(tag, "Deinit host");
rc = nimble_port_stop();
if (rc == 0) {
nimble_port_deinit();
} else {
ESP_LOGI(tag, "Nimble port stop failed, rc = %d", rc);
break;
}
vTaskDelay(1000);
ESP_LOGI(tag, "Init host");
nimble_port_init();
nimble_port_freertos_init(blecent_host_task);
ESP_LOGI(tag, "Waiting for 1 second");
}
}
#endif
void
app_main(void)
{
@ -621,4 +654,8 @@ app_main(void)
nimble_port_freertos_init(blecent_host_task);
#if CONFIG_EXAMPLE_INIT_DEINIT_LOOP
stack_init_deinit();
#endif
}