diff --git a/WifiControlSensor/WebServer.ino b/WifiControlSensor/WebServer.ino index cb758f3..57c23f8 100644 --- a/WifiControlSensor/WebServer.ino +++ b/WifiControlSensor/WebServer.ino @@ -141,9 +141,15 @@ void WebHandleSave() { WebSendError("Cannot Save Credentials (Too long ?Contains \";\"?)\r\n"); return; } - - server.send(200, "text/html", "

Configuration Saved


" - "Reboot
"); + if(WiFi.softAPIP() != IPAddress((uint32_t)0)){ + //In STA mode, we can test the AP connection + WiFi.begin(server.arg("ssid").c_str(), server.arg("password").c_str()); + server.send(200, "text/html", "

Configuration Saved


" + "Check Wifi Configuration
"); + }else{ + server.send(200, "text/html", "

Configuration Saved


" + "Reboot
"); + } } void WebHandleOTA() { @@ -175,6 +181,40 @@ void WebHandleReboot() { ESP.restart(); } +String statusToString(wl_status_t status) { + switch(status){ + case WL_IDLE_STATUS: return String("Idle"); + case WL_NO_SSID_AVAIL: return String("Wifi not found"); + case WL_CONNECTED: return String("Connected"); + case WL_CONNECT_FAILED: return String("Connection failed (Wrong password ?)"); + case WL_CONNECTION_LOST: return String("Connection Lost"); + case WL_DISCONNECTED: return String("Connecting"); + default: return String(status); + } +} + +void WebHandleWifiStatus() { + + String message; + if(WiFi.status() == WL_DISCONNECTED) + message += ""; + message += "

Wifi Connection Status


"; + message += "Connection to "; + message += WiFi.SSID(); + message += ":
"; + message += statusToString(WiFi.status()); + message += "
"; + if(mode == BOOTMODE_SETUP && WiFi.status() == WL_CONNECTED){ + message += "Wifi correctly setup!, you can reboot now
"; + message += "Reboot
"; + } + if(WiFi.status() == WL_CONNECT_FAILED || WiFi.status() == WL_NO_SSID_AVAIL){ + message += "Try to reconfigure you WiFi details
"; + message += "Enter Setup
"; + } + server.send(200, "text/html", message); +} + void WebSetupServer(int ) { server.on("/", WebHandleRoot); server.on("/setup", WebHandleSetup); @@ -182,6 +222,7 @@ void WebSetupServer(int ) { server.on("/gpio", WebHandleGpio); server.on("/otamode", WebHandleOTA); server.on("/reboot", WebHandleReboot); + server.on("/wifiStatus", WebHandleWifiStatus); server.onNotFound(WebHandleNotFound); server.begin();