diff --git a/WiFiManager.cpp b/WiFiManager.cpp index 45ffb9f..3b435f5 100644 --- a/WiFiManager.cpp +++ b/WiFiManager.cpp @@ -354,7 +354,7 @@ void WiFiManager::handleWifi(boolean scan) { page += F("No networks found. Refresh to scan again."); } else { //sort networks - int indices[n]; + /*int indices[n]; for (int i = 0; i < n; i++) { indices[i] = i; @@ -370,7 +370,18 @@ void WiFiManager::handleWifi(boolean scan) { } } } + */ + int indices[n]; + for (int i = 0; i < n; i++) { + indices[i] = i; + } + std::sort(indices, indices+n, [](const int & a, const int & b) -> bool + { + return WiFi.RSSI(a) > WiFi.RSSI(b); + }); + + //display networks in page for (int i = 0; i < n; i++) { DEBUG_WM(WiFi.SSID(indices[i])); diff --git a/WiFiManager.h b/WiFiManager.h index 512d51f..c8878f9 100644 --- a/WiFiManager.h +++ b/WiFiManager.h @@ -17,6 +17,9 @@ #include #include #include +#undef min +#undef max +#include const char HTTP_200[] PROGMEM = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";