}
s_connect_event_group = xEventGroupCreate();
start();
+ ESP_ERROR_CHECK(esp_register_shutdown_handler(&stop));
xEventGroupWaitBits(s_connect_event_group, CONNECTED_BITS, true, true, portMAX_DELAY);
ESP_LOGI(TAG, "Connected to %s", s_connection_name);
ESP_LOGI(TAG, "IPv4 address: " IPSTR, IP2STR(&s_ip_addr));
int32_t event_id, void *event_data)
{
ESP_LOGI(TAG, "Wi-Fi disconnected, trying to reconnect...");
- ESP_ERROR_CHECK(esp_wifi_connect());
+ esp_err_t err = esp_wifi_connect();
+ if (err == ESP_ERR_WIFI_NOT_STARTED) {
+ return;
+ }
+ ESP_ERROR_CHECK(err);
}
#ifdef CONFIG_EXAMPLE_CONNECT_IPV6
ESP_ERROR_CHECK(esp_event_handler_unregister(IP_EVENT, IP_EVENT_GOT_IP6, &on_got_ipv6));
ESP_ERROR_CHECK(esp_event_handler_unregister(WIFI_EVENT, WIFI_EVENT_STA_CONNECTED, &on_wifi_connect));
#endif
- ESP_ERROR_CHECK(esp_wifi_stop());
+ esp_err_t err = esp_wifi_stop();
+ if (err == ESP_ERR_WIFI_NOT_INIT) {
+ return;
+ }
+ ESP_ERROR_CHECK(err);
ESP_ERROR_CHECK(esp_wifi_deinit());
}
#endif // CONFIG_EXAMPLE_CONNECT_WIFI