#78: reset wifi nvs storage and do not store wifi data in nvs any more
This commit is contained in:
parent
0696b2acb1
commit
96232e9def
|
@ -1,3 +1,4 @@
|
||||||
|
#include <esp_wifi.h>
|
||||||
#include "GWWifi.h"
|
#include "GWWifi.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -35,7 +36,29 @@ void GwWifi::setup(){
|
||||||
LOG_DEBUG(GwLog::ERROR,"unable to set access point mask %s, falling back to %s",
|
LOG_DEBUG(GwLog::ERROR,"unable to set access point mask %s, falling back to %s",
|
||||||
apMask.c_str(),AP_subnet.toString().c_str());
|
apMask.c_str(),AP_subnet.toString().c_str());
|
||||||
}
|
}
|
||||||
|
//try to remove any existing config from nvs
|
||||||
|
//this will avoid issues when updating from framework 6.3.2 to 6.8.1 - see #78
|
||||||
|
//we do not need the nvs config any way - so we set persistent to false
|
||||||
|
//unfortunately this will be to late (config from nvs has already been loaded)
|
||||||
|
//if we update from an older version that has config in the nvs
|
||||||
|
//so we need to make a dummy init, erase the flash and deinit
|
||||||
|
wifi_config_t conf_current;
|
||||||
|
wifi_init_config_t conf=WIFI_INIT_CONFIG_DEFAULT();
|
||||||
|
esp_err_t err=esp_wifi_init(&conf);
|
||||||
|
esp_wifi_get_config((wifi_interface_t)WIFI_IF_AP, &conf_current);
|
||||||
|
LOG_DEBUG(GwLog::DEBUG,"Wifi AP old config before reset ssid=%s, pass=%s, channel=%d",conf_current.ap.ssid,conf_current.ap.password,conf_current.ap.channel);
|
||||||
|
if (err){
|
||||||
|
LOG_DEBUG(GwLog::ERROR,"unable to pre-init wifi: %d",(int)err);
|
||||||
|
}
|
||||||
|
err=esp_wifi_restore();
|
||||||
|
if (err){
|
||||||
|
LOG_DEBUG(GwLog::ERROR,"unable to reset wifi: %d",(int)err);
|
||||||
|
}
|
||||||
|
err=esp_wifi_deinit();
|
||||||
|
WiFi.persistent(false);
|
||||||
WiFi.mode(WIFI_MODE_APSTA); //enable both AP and client
|
WiFi.mode(WIFI_MODE_APSTA); //enable both AP and client
|
||||||
|
esp_wifi_get_config((wifi_interface_t)WIFI_IF_AP, &conf_current);
|
||||||
|
LOG_DEBUG(GwLog::DEBUG,"Wifi AP old config after reset ssid=%s, pass=%s, channel=%d",conf_current.ap.ssid,conf_current.ap.password,conf_current.ap.channel);
|
||||||
const char *ssid=config->getConfigItem(config->systemName)->asCString();
|
const char *ssid=config->getConfigItem(config->systemName)->asCString();
|
||||||
if (fixedApPass){
|
if (fixedApPass){
|
||||||
WiFi.softAP(ssid,AP_password);
|
WiFi.softAP(ssid,AP_password);
|
||||||
|
@ -45,7 +68,7 @@ void GwWifi::setup(){
|
||||||
}
|
}
|
||||||
delay(100);
|
delay(100);
|
||||||
WiFi.softAPConfig(AP_local_ip, AP_gateway, AP_subnet);
|
WiFi.softAPConfig(AP_local_ip, AP_gateway, AP_subnet);
|
||||||
LOG_DEBUG(GwLog::LOG,"WifiAP created: ssid=%s,adress=%s",
|
LOG_DEBUG(GwLog::ERROR,"WifiAP created: ssid=%s,adress=%s",
|
||||||
ssid,
|
ssid,
|
||||||
WiFi.softAPIP().toString().c_str()
|
WiFi.softAPIP().toString().c_str()
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue