Retrieving AP config parameter from sdCard

This commit is contained in:
anschrammh 2019-03-24 23:12:11 +01:00
parent 5f864592f9
commit b7899c0a3d
2 changed files with 27 additions and 1 deletions

View File

@ -1,6 +1,6 @@
#include "ConnectivityManager.h"
ConnectivityManager::ConnectivityManager() : _error(0)
ConnectivityManager::ConnectivityManager() : _error(0), _sdCardManager(NULL)
{
persistent(false);
@ -8,6 +8,27 @@ ConnectivityManager::ConnectivityManager() : _error(0)
if(!softAP("ESP8266SwissArmyBoard", NULL, 1, false, 8))_error &= AP_SETUP_ERR;
}
ConnectivityManager::ConnectivityManager(SDCardManager *sdCardManager) : _error(0), _sdCardManager(sdCardManager)
{
persistent(false);
if(!enableSTAAndAP(false))_error &= AP_AND_STA_ENABLED_ERR;
else
{
CFGFileParser cfgFileParser(*sdCardManager, AP_CFG_FILE);
CFGDictionary *cfgDictionary = (CFGDictionary *) cfgFileParser.parseFile();
if(cfgDictionary == NULL)
{
if(!softAP("ESP8266SwissArmyBoard", NULL, 1, false, 8))_error &= AP_SETUP_ERR;
}
else
{
if(!softAP((*cfgDictionary)("SSID").stringValue(), strcmp((*cfgDictionary)("PASSWORD").stringValue(),"") == 0 ? NULL:(*cfgDictionary)("PASSWORD").stringValue(), (*cfgDictionary)("CHANNEL").intValue(), (*cfgDictionary)("SSID_HIDDEN").booleanValue(), (*cfgDictionary)("AP_MAX_CONNECTION").intValue()))_error &= AP_SETUP_ERR;
delete cfgDictionary;
}
}
}
boolean ConnectivityManager::enableSTAAndAP(boolean enabled)
{
return enableSTA(enabled) && enableAP(enabled);

View File

@ -2,6 +2,9 @@
#define CONNECTIVITYMANAGER_H
#include <ESP8266WiFi.h>
#include "SDCardManager.h"
#include "CFGFileParser.h"
#include "CFGDictionary.h"
#include "definition.h"
class ConnectivityManager : public ESP8266WiFiClass
@ -13,8 +16,10 @@ class ConnectivityManager : public ESP8266WiFiClass
unsigned char getError() const;
protected:
ConnectivityManager();
ConnectivityManager(SDCardManager *sdCardManager);
private:
unsigned char _error;
SDCardManager *_sdCardManager;
};
#endif //CONNECTIVITYMANAGER_H