Added two new methods to be able to reload wifi connectivity config while the card is running
This commit is contained in:
parent
cd41b61197
commit
35596c1296
@ -20,30 +20,21 @@ ConnectivityManager::ConnectivityManager(SDCardManager &sdCardManager) : _error(
|
||||
else
|
||||
{
|
||||
//SOFT AP PART
|
||||
CFGFileParser cfgFileParser(sdCardManager, AP_CFG_FILE);
|
||||
CFGDictionary<CFGParameterValue> *cfgDictionary = (CFGDictionary<CFGParameterValue> *) cfgFileParser.parseFile();
|
||||
if(cfgDictionary == NULL)
|
||||
{
|
||||
if(!softAP("ESP8266SwissArmyBoard", NULL, 1, false, 8))_error &= AP_SETUP_ERR;
|
||||
}
|
||||
else if((*cfgDictionary)("SSID") != NULL && (*cfgDictionary)("PASSWORD") != NULL && (*cfgDictionary)("CHANNEL") != NULL && (*cfgDictionary)("SSID_HIDDEN") != NULL && (*cfgDictionary)("AP_MAX_CONNECTION") != NULL && (*cfgDictionary)("ENABLED") != NULL)
|
||||
{
|
||||
if((*cfgDictionary)("ENABLED")->booleanValue())
|
||||
{
|
||||
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;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!softAP("ESP8266SwissArmyBoard", NULL, 1, false, 8))_error &= AP_SETUP_ERR;
|
||||
delete cfgDictionary;
|
||||
}
|
||||
startAP();
|
||||
|
||||
//STATION PART
|
||||
CFGFileParser cfgFileParserSTA(sdCardManager, STA_CFG_FILE);
|
||||
cfgDictionary = (CFGDictionary<CFGParameterValue> *) cfgFileParserSTA.parseFile();
|
||||
connectToSTA();
|
||||
}
|
||||
}
|
||||
|
||||
boolean ConnectivityManager::connectToSTA()
|
||||
{
|
||||
//STATION PART
|
||||
CFGFileParser cfgFileParserSTA(*_sdCardManager, STA_CFG_FILE);
|
||||
CFGDictionary<CFGParameterValue> *cfgDictionary = (CFGDictionary<CFGParameterValue> *) cfgFileParserSTA.parseFile();
|
||||
|
||||
boolean toBeReturned(true);
|
||||
|
||||
if(cfgDictionary != NULL)
|
||||
{
|
||||
if((*cfgDictionary)("SSID") != NULL && (*cfgDictionary)("PASSWORD") != NULL && (*cfgDictionary)("ENABLED") != NULL)
|
||||
@ -51,12 +42,60 @@ ConnectivityManager::ConnectivityManager(SDCardManager &sdCardManager) : _error(
|
||||
if((*cfgDictionary)("ENABLED")->booleanValue())
|
||||
{
|
||||
if(!begin((*cfgDictionary)("SSID")->stringValue(), (*cfgDictionary)("PASSWORD")->stringValue()))
|
||||
{
|
||||
_error &= AP_SETUP_ERR;
|
||||
toBeReturned = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
enableSTA(false);
|
||||
}
|
||||
else
|
||||
toBeReturned = false;
|
||||
|
||||
delete cfgDictionary;
|
||||
}
|
||||
else
|
||||
toBeReturned = false;
|
||||
|
||||
return toBeReturned;
|
||||
}
|
||||
|
||||
boolean ConnectivityManager::startAP()
|
||||
{
|
||||
CFGFileParser cfgFileParser(*_sdCardManager, AP_CFG_FILE);
|
||||
CFGDictionary<CFGParameterValue> *cfgDictionary = (CFGDictionary<CFGParameterValue> *) cfgFileParser.parseFile();
|
||||
|
||||
boolean toBeReturned(true);
|
||||
|
||||
if(cfgDictionary == NULL)
|
||||
{
|
||||
if(!softAP("ESP8266SwissArmyBoard", NULL, 1, false, 8))_error &= AP_SETUP_ERR;
|
||||
|
||||
toBeReturned = false;
|
||||
}
|
||||
else if((*cfgDictionary)("SSID") != NULL && (*cfgDictionary)("PASSWORD") != NULL && (*cfgDictionary)("CHANNEL") != NULL && (*cfgDictionary)("SSID_HIDDEN") != NULL && (*cfgDictionary)("AP_MAX_CONNECTION") != NULL && (*cfgDictionary)("ENABLED") != NULL)
|
||||
{
|
||||
if((*cfgDictionary)("ENABLED")->booleanValue())
|
||||
{
|
||||
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;
|
||||
toBeReturned = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
enableAP(false);
|
||||
delete cfgDictionary;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!softAP("ESP8266SwissArmyBoard", NULL, 1, false, 8))_error &= AP_SETUP_ERR;
|
||||
delete cfgDictionary;
|
||||
toBeReturned = false;
|
||||
}
|
||||
|
||||
return toBeReturned;
|
||||
}
|
||||
|
||||
boolean ConnectivityManager::enableSTAAndAP(boolean enabled)
|
||||
|
@ -18,6 +18,8 @@ class ConnectivityManager : public ESP8266WiFiClass
|
||||
boolean enableSTAAndAP(boolean enable);
|
||||
boolean isSTAEnabled();
|
||||
boolean isAPEnabled();
|
||||
boolean connectToSTA();
|
||||
boolean startAP();
|
||||
|
||||
unsigned char RSSIPercent();
|
||||
unsigned char getError() const;
|
||||
|
Loading…
Reference in New Issue
Block a user