diff --git a/libraries/WiFi/src/WiFiSTA.cpp b/libraries/WiFi/src/WiFiSTA.cpp index 7bcafea1d3e..185aaa84503 100644 --- a/libraries/WiFi/src/WiFiSTA.cpp +++ b/libraries/WiFi/src/WiFiSTA.cpp @@ -366,6 +366,22 @@ bool WiFiSTAClass::disconnect(bool wifioff, bool eraseap) return false; } +/** + * @brief Reset WiFi settings in NVS to default values. + * @return true if erase succeeded + * @note: Resets SSID, password, protocol, mode, etc. + * These settings are maintained by WiFi driver in IDF. + * WiFi driver must be initialized. + */ +bool WiFiSTAClass::eraseAP(void) { + if(WiFi.getMode()==WIFI_MODE_NULL) { + if(!WiFi.enableSTA(true)) + return false; + } + + return esp_wifi_restore()==ESP_OK; +} + /** * Change IP configuration settings disabling the dhcp client * @param local_ip Static ip configuration diff --git a/libraries/WiFi/src/WiFiSTA.h b/libraries/WiFi/src/WiFiSTA.h index b8bb855c198..2cdea7667b8 100644 --- a/libraries/WiFi/src/WiFiSTA.h +++ b/libraries/WiFi/src/WiFiSTA.h @@ -53,6 +53,7 @@ class WiFiSTAClass bool reconnect(); bool disconnect(bool wifioff = false, bool eraseap = false); + bool eraseAP(void); bool isConnected();