diff options
Diffstat (limited to 'main/net.cpp')
-rw-r--r-- | main/net.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/main/net.cpp b/main/net.cpp index eeef7d9..e5bcfe7 100644 --- a/main/net.cpp +++ b/main/net.cpp @@ -45,15 +45,23 @@ static void wifi_event_handler(void *arg, esp_event_base_t event_base, { static int s_retry_num; - if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) { + if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) + { esp_wifi_connect(); - } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) { + } + else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_CONNECTED) + { + ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); + } + else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) + { if (s_retry_num < 5) { esp_wifi_connect(); s_retry_num++; ESP_LOGI(TAG, "retry to connect to the AP"); } else { xEventGroupSetBits(s_wifi_event_group, WIFI_FAIL_BIT); + ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_APSTA)); } ESP_LOGI(TAG,"connect to the AP fail"); } else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) { @@ -141,7 +149,7 @@ static bool wifi_init_sta(void) ESP_RETURN_ON_FALSE(esp_wifi_get_config(WIFI_IF_STA, &wifi_cfg) == ESP_OK, false, TAG_STA, "failed to get wifi sta config"); ESP_LOGI(TAG_STA, "BLA BLA SSID IS: %s", (char*)wifi_cfg.sta.ssid); - + ESP_LOGI(TAG_STA, "BLA BLA BSSID IS: %i " MACSTR, wifi_cfg.sta.bssid_set, MAC2STR(wifi_cfg.sta.bssid)); if (!strlen((const char*)wifi_cfg.sta.ssid)) return false; @@ -181,7 +189,6 @@ esp_err_t net_connect(void) ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_FLASH)); - // Set APSTA ahead of time so we can check data ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_APSTA)); @@ -221,7 +228,6 @@ esp_err_t net_connect(void) * hence we can test which event actually happened. */ if (bits & WIFI_CONNECTED_BIT) { ESP_LOGI(TAG, "Connected to station, setting STA mode"); - ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); } else if (bits & WIFI_FAIL_BIT) { ESP_LOGI(TAG, "Failed to connect to station"); } else { |