From 365cedccf05864124ffeea098a19453195ec1ce9 Mon Sep 17 00:00:00 2001 From: Sven Naumann <3747263+sVnsation@users.noreply.github.com> Date: Mon, 24 Oct 2022 08:49:35 +0200 Subject: [PATCH] Wifi getAvailNetworks sort by RSSI signal strength --- tools/esp8266/ahoywifi.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/esp8266/ahoywifi.cpp b/tools/esp8266/ahoywifi.cpp index 54ada30a..852d792e 100644 --- a/tools/esp8266/ahoywifi.cpp +++ b/tools/esp8266/ahoywifi.cpp @@ -223,9 +223,16 @@ void ahoywifi::getAvailNetworks(JsonObject obj) { int n = WiFi.scanComplete(); if(n > 0) { + int sort[n]; + for (int i = 0; i < n; i++) + sort[i] = i; + for (int i = 0; i < n; i++) + for (int j = i + 1; j < n; j++) + if (WiFi.RSSI(sort[j]) > WiFi.RSSI(sort[i])) + std::swap(sort[i], sort[j]); for (int i = 0; i < n; ++i) { - nets[i]["ssid"] = WiFi.SSID(i); - nets[i]["rssi"] = WiFi.RSSI(i); + nets[i]["ssid"] = WiFi.SSID(sort[i]); + nets[i]["rssi"] = WiFi.RSSI(sort[i]); } WiFi.scanDelete(); }