From ccffb2229f98c75bcd3fe4168e4c565caa831cd2 Mon Sep 17 00:00:00 2001 From: "Morgan 'ARR\\!' Allen" Date: Thu, 11 Oct 2018 13:41:53 -0700 Subject: [PATCH] better handle matching AP during scan --- main/esp32-wifi-manager.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/main/esp32-wifi-manager.c b/main/esp32-wifi-manager.c index 46b86a2..aed53c0 100644 --- a/main/esp32-wifi-manager.c +++ b/main/esp32-wifi-manager.c @@ -79,6 +79,8 @@ static esp_err_t wifi_event_handler(void *ctx, system_event_t *event) { ESP_ERROR_CHECK(esp_wifi_scan_get_ap_num(&ap_count)); if(ap_count > 0) { + ap_store.last = -1; + records = malloc(ap_count * sizeof(wifi_ap_record_t)); ESP_LOGI(TAG, "Found %d APs", ap_count); @@ -100,11 +102,15 @@ static esp_err_t wifi_event_handler(void *ctx, system_event_t *event) { } found: - ESP_LOGI(TAG, "Got matching ESSID: %s", ap_store.aps[ap_store.last].ssid); - xEventGroupClearBits(wm_event_group, WIFI_SCANNING); - xEventGroupSetBits(wm_event_group, WIFI_IDLE); + if(ap_store.last != -1) { + ESP_LOGI(TAG, "Got matching ESSID: %s", ap_store.aps[ap_store.last].ssid); + xEventGroupClearBits(wm_event_group, WIFI_SCANNING); + xEventGroupSetBits(wm_event_group, WIFI_IDLE); - wifi_manager_connect(); + wifi_manager_connect(); + } else { + ESP_LOGI(TAG, "No matching APs found"); + } } else { ESP_LOGI(TAG, "No APs found"); }