Added two new methods to know if the STA and/or AP are enabled or not

This commit is contained in:
anschrammh 2019-10-11 09:36:39 +02:00
parent 29ae07da64
commit a824610fb6
2 changed files with 29 additions and 9 deletions

View File

@ -19,15 +19,20 @@ ConnectivityManager::ConnectivityManager(SDCardManager &sdCardManager) : _error(
if(!enableSTAAndAP(false))_error &= AP_AND_STA_ENABLED_ERR; if(!enableSTAAndAP(false))_error &= AP_AND_STA_ENABLED_ERR;
else else
{ {
//SOFT AP PART
CFGFileParser cfgFileParser(sdCardManager, AP_CFG_FILE); CFGFileParser cfgFileParser(sdCardManager, AP_CFG_FILE);
CFGDictionary<CFGParameterValue> *cfgDictionary = (CFGDictionary<CFGParameterValue> *) cfgFileParser.parseFile(); CFGDictionary<CFGParameterValue> *cfgDictionary = (CFGDictionary<CFGParameterValue> *) cfgFileParser.parseFile();
if(cfgDictionary == NULL) if(cfgDictionary == NULL)
{ {
if(!softAP("ESP8266SwissArmyBoard", NULL, 1, false, 8))_error &= AP_SETUP_ERR; 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) else if((*cfgDictionary)("SSID") != NULL && (*cfgDictionary)("PASSWORD") != NULL && (*cfgDictionary)("CHANNEL") != NULL && (*cfgDictionary)("SSID_HIDDEN") != NULL && (*cfgDictionary)("AP_MAX_CONNECTION") != NULL && (*cfgDictionary)("ENABLED") != NULL)
{ {
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; 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; delete cfgDictionary;
} }
else else
@ -35,17 +40,20 @@ ConnectivityManager::ConnectivityManager(SDCardManager &sdCardManager) : _error(
if(!softAP("ESP8266SwissArmyBoard", NULL, 1, false, 8))_error &= AP_SETUP_ERR; if(!softAP("ESP8266SwissArmyBoard", NULL, 1, false, 8))_error &= AP_SETUP_ERR;
delete cfgDictionary; delete cfgDictionary;
} }
//STATION PART
CFGFileParser cfgFileParserSTA(sdCardManager, STA_CFG_FILE); CFGFileParser cfgFileParserSTA(sdCardManager, STA_CFG_FILE);
cfgDictionary = (CFGDictionary<CFGParameterValue> *) cfgFileParserSTA.parseFile(); cfgDictionary = (CFGDictionary<CFGParameterValue> *) cfgFileParserSTA.parseFile();
if(cfgDictionary != NULL) if(cfgDictionary != NULL)
{ {
if((*cfgDictionary)("SSID") != NULL && (*cfgDictionary)("PASSWORD") != NULL) if((*cfgDictionary)("SSID") != NULL && (*cfgDictionary)("PASSWORD") != NULL && (*cfgDictionary)("ENABLED") != NULL)
{ {
if(!begin((*cfgDictionary)("SSID")->stringValue(), (*cfgDictionary)("PASSWORD")->stringValue())) if((*cfgDictionary)("ENABLED")->booleanValue())
_error &= AP_SETUP_ERR; {
if(!begin((*cfgDictionary)("SSID")->stringValue(), (*cfgDictionary)("PASSWORD")->stringValue()))
_error &= AP_SETUP_ERR;
}
} }
delete cfgDictionary; delete cfgDictionary;
} }
} }
@ -56,6 +64,16 @@ boolean ConnectivityManager::enableSTAAndAP(boolean enabled)
return enableSTA(enabled) && enableAP(enabled); return enableSTA(enabled) && enableAP(enabled);
} }
boolean ConnectivityManager::isSTAEnabled()
{
return (getMode() == WIFI_AP_STA || getMode() == WIFI_STA);
}
boolean ConnectivityManager::isAPEnabled()
{
return (getMode() == WIFI_AP_STA || getMode() == WIFI_AP);
}
unsigned char ConnectivityManager::RSSIPercent() unsigned char ConnectivityManager::RSSIPercent()
{ {
int RSSIdBm = RSSI(); int RSSIdBm = RSSI();

View File

@ -16,7 +16,9 @@ class ConnectivityManager : public ESP8266WiFiClass
friend class SAB; friend class SAB;
public: public:
boolean enableSTAAndAP(boolean enable); boolean enableSTAAndAP(boolean enable);
boolean isSTAEnabled();
boolean isAPEnabled();
unsigned char RSSIPercent(); unsigned char RSSIPercent();
unsigned char getError() const; unsigned char getError() const;
protected: protected: