From a68a207fa1b6d9acef8c531aab2166a6d0c0ecbd Mon Sep 17 00:00:00 2001 From: Mathieu Maret Date: Fri, 8 Jul 2016 16:04:20 +0200 Subject: [PATCH] Suggest SSID name when configuring Wifi Details --- WifiControlSensor/WebServer.ino | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/WifiControlSensor/WebServer.ino b/WifiControlSensor/WebServer.ino index 57c23f8..e278922 100644 --- a/WifiControlSensor/WebServer.ino +++ b/WifiControlSensor/WebServer.ino @@ -45,6 +45,27 @@ void WebSendError(const char *error) { server.send(500, "text/plain", error); } +void WebBuildSSIDList(String &datalist){ + int n = WiFi.scanNetworks(); + datalist = ""; + // sort by RSSI + int indices[n]; + for (int i = 0; i < n; i++) { + indices[i] = i; + } + for (int i = 0; i < n; i++) { + for (int j = i + 1; j < n; j++) { + if (WiFi.RSSI(indices[j]) > WiFi.RSSI(indices[i])) { + std::swap(indices[i], indices[j]); + } + } + } + for (int i = 0; i < n; ++i){ + datalist += ""; +} + void WebHandleSetup() { uint8_t mode; char *confSsid = ""; @@ -61,13 +82,17 @@ void WebHandleSetup() { uint32_t dns = 0; uint32_t dns2 = 0; + String ssidlist; + WebBuildSSIDList(ssidlist); + EepromReadConfig(mode, &confSsid, &confPassword, &confHost, &mqttServer, &mqttUser, &mqttPasswd, mqttPort, ip_config, ip, gw, mask, dns, dns2); server.send(200, "text/html", "
" "
" "Wifi configuration:" - "

" - "

" + "

" + "" + ssidlist + "" + "

" "

" "
" "
" @@ -83,7 +108,7 @@ void WebHandleSetup() { "MQTT:" "

" "

" - "

" + "

" "

" "
" "
"