From 781c2b42ce6c20fd3166633b03c1c41a84815019 Mon Sep 17 00:00:00 2001 From: fvanroie Date: Fri, 7 Feb 2020 23:55:08 +0100 Subject: [PATCH] Improve Connect Callback --- src/hasp_wifi.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/hasp_wifi.cpp b/src/hasp_wifi.cpp index 7fb0a834..d7fdd34c 100644 --- a/src/hasp_wifi.cpp +++ b/src/hasp_wifi.cpp @@ -17,7 +17,7 @@ #else #include -static WiFiEventHandler wifiEventHandler[3]; +static WiFiEventHandler gotIpEventHandler, disconnectedEventHandler; #endif #include "DNSserver.h" @@ -60,15 +60,18 @@ String wifiGetMacAddress(int start, const char * seperator) void wifiConnected(IPAddress ipaddress) { + bool isConnected = WiFi.status() == WL_CONNECTED; char buffer[64]; sprintf_P(buffer, PSTR("WIFI: Received IP address %s"), ipaddress.toString().c_str()); debugPrintln(buffer); - sprintf_P(buffer, PSTR("WIFI: Connected = %s"), WiFi.status() == WL_CONNECTED ? PSTR("yes") : PSTR("no")); + sprintf_P(buffer, PSTR("WIFI: Connected = %s"), isConnected ? PSTR("yes") : PSTR("no")); debugPrintln(buffer); - httpReconnect(); - // mqttReconnect(); - haspReconnect(); + if(isConnected) { + httpReconnect(); + // mqttReconnect(); + haspReconnect(); + } } void wifiDisconnected(const char * ssid, uint8_t reason) @@ -157,9 +160,9 @@ void wifiSetup(JsonObject settings) debugPrintln(buffer); #if defined(ARDUINO_ARCH_ESP8266) - wifiEventHandler[0] = WiFi.onStationModeGotIP(wifiSTAGotIP); // As soon WiFi is connected, start NTP Client - wifiEventHandler[1] = WiFi.onStationModeDisconnected(wifiSTADisconnected); - wifiEventHandler[2] = WiFi.onStationModeConnected(wifiSTAConnected); + // wifiEventHandler[0] = WiFi.onStationModeConnected(wifiSTAConnected); + gotIpEventHandler = WiFi.onStationModeGotIP(wifiSTAGotIP); // As soon WiFi is connected, start NTP Client + disconnectedEventHandler = WiFi.onStationModeDisconnected(wifiSTADisconnected); #endif #if defined(ARDUINO_ARCH_ESP32) WiFi.onEvent(wifi_callback);