diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFi.cpp b/libraries/ESP8266WiFi/src/ESP8266WiFi.cpp index ee38217ef..870e99cec 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFi.cpp +++ b/libraries/ESP8266WiFi/src/ESP8266WiFi.cpp @@ -284,6 +284,18 @@ void ESP8266WiFiClass::config(IPAddress local_ip, IPAddress gateway, IPAddress s _useStaticIp = true; } +/** + * will force a disconnect an then start reconnecting to AP + * @return ok + */ +bool ESP8266WiFiClass::reconnect() { + if((getMode() & WIFI_STA) != 0) { + if(wifi_station_disconnect()) { + return wifi_station_connect(); + } + } + return false; +} /** * Disconnect from the network diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFi.h b/libraries/ESP8266WiFi/src/ESP8266WiFi.h index ebdfe4b65..dbadb135e 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFi.h +++ b/libraries/ESP8266WiFi/src/ESP8266WiFi.h @@ -80,6 +80,8 @@ class ESP8266WiFiClass { void config(IPAddress local_ip, IPAddress gateway, IPAddress subnet); void config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns); + + bool reconnect(); int disconnect(bool wifioff = false); uint8_t waitForConnectResult();