Simplified wifmanager code, due to crashes

This commit is contained in:
Magnus Persson 2022-01-03 21:47:42 +01:00
parent d075fe2117
commit d796794602
3 changed files with 14 additions and 25 deletions

View File

@ -278,6 +278,7 @@ void loop() {
//#endif //#endif
} }
if( myWifi.isConnected() )
myWebServer.loop(); myWebServer.loop();
} }

View File

@ -32,8 +32,6 @@ SOFTWARE.
#include <ESP8266HTTPClient.h> #include <ESP8266HTTPClient.h>
#include <ESP8266httpUpdate.h> #include <ESP8266httpUpdate.h>
#include <WiFiManager.h> #include <WiFiManager.h>
//#include <ESP_WiFiManager.h> // TEST
//#include <ESP_WiFiManager-Impl.h> // TEST
#include <LittleFS.h> #include <LittleFS.h>
#include <incbin.h> #include <incbin.h>
@ -46,39 +44,31 @@ const char* userPWD = USER_SSID_PWD;
// Connect to last known access point or create one if connection is not working. // Connect to last known access point or create one if connection is not working.
// //
bool Wifi::connect( bool showPortal ) { bool Wifi::connect( bool showPortal ) {
WiFi.mode(WIFI_STA);
WiFiManager myWifiManager;
if( myWifiManager.getWiFiSSID().length()==0 ) {
Log.info(F("WIFI: No SSID seams to be stored, forcing portal to start." CR));
showPortal = true;
}
#if LOG_LEVEL==6 #if LOG_LEVEL==6
Log.verbose(F("WIFI: Connecting to WIFI via connection manager (portal=%s)." CR), showPortal?"true":"false"); Log.verbose(F("WIFI: Connecting to WIFI via connection manager (portal=%s)." CR), showPortal?"true":"false");
WiFiManager myWifiManager;
myWifiManager.setDebugOutput(true); myWifiManager.setDebugOutput(true);
#endif #endif
if( strlen(userSSID)==0 && showPortal ) { if( strlen(userSSID)==0 && showPortal ) {
Log.notice(F("WIFI: Starting wifi portal." CR)); Log.notice(F("WIFI: Starting wifi portal." CR));
myWifiManager.setBreakAfterConfig( true );
myWifiManager.setSaveConfigCallback(std::bind(&Wifi::setSaveConfig, this));
myWifiManager.setMinimumSignalQuality(10);
myWifiManager.setClass("invert"); myWifiManager.setClass("invert");
myWifiManager.setHostname( myConfig.getMDNS() );
myWifiManager.setConfigPortalTimeout( 120 ); // Keep it open for 120 seconds myWifiManager.setConfigPortalTimeout( 120 ); // Keep it open for 120 seconds
WiFiManagerParameter mdnsParam("mDNS", "hostname", myConfig.getMDNS(), 20);
myWifiManager.addParameter( &mdnsParam );
myWifiManager.startConfigPortal( WIFI_DEFAULT_SSID, WIFI_DEFAULT_PWD ); myWifiManager.startConfigPortal( WIFI_DEFAULT_SSID, WIFI_DEFAULT_PWD );
if( shouldSaveConfig ) {
myConfig.setMDNS( mdnsParam.getValue() );
myConfig.saveFile();
}
} }
// Connect to wifi // Connect to wifi
int i = 0; int i = 0;
Log.notice(F("WIFI: Connecting to WIFI." CR)); Log.notice(F("WIFI: Connecting to WIFI." CR));
//WiFi.persistent(false);
WiFi.mode(WIFI_STA);
if( strlen(userSSID) ) { if( strlen(userSSID) ) {
Log.notice(F("WIFI: Connecting to wifi using predefined settings %s." CR), userSSID); Log.notice(F("WIFI: Connecting to wifi using predefined settings %s." CR), userSSID);
WiFi.begin( userSSID, userPWD ); WiFi.begin( userSSID, userPWD );

View File

@ -32,13 +32,11 @@ class Wifi {
private: private:
// WIFI // WIFI
bool connectedFlag = false; bool connectedFlag = false;
bool shouldSaveConfig = false;
// OTA // OTA
bool newFirmware = false; bool newFirmware = false;
bool parseFirmwareVersionString( int (&num)[3], const char *version ); bool parseFirmwareVersionString( int (&num)[3], const char *version );
void downloadFile(const char *fname); void downloadFile(const char *fname);
void setSaveConfig() { shouldSaveConfig = true; }
public: public:
// WIFI // WIFI