Added the persistent constructor parameter, as well as added the connect method to ease the class's instantiation

This commit is contained in:
Th3maz1ng 2022-04-17 21:58:10 +02:00
parent 285c9ef20b
commit e68ab04195
2 changed files with 25 additions and 15 deletions

View File

@ -1,20 +1,29 @@
#include "ConnectivityManager.h"
ConnectivityManager::ConnectivityManager() : _error(0), _sdCardManager(NULL)
ConnectivityManager::ConnectivityManager(bool persistent)
{
persistent(false);
if(!WiFi.disconnect(true))_error |= STA_ENABLED_DISABLE_ERR;
if(!WiFi.softAPdisconnect(true))_error |= AP_ENABLED_DISABLE_ERR;
if(!softAP("ESP8266SwissArmyBoard", NULL, 1, false, 8))_error |= AP_SETUP_ERR;
ConnectivityManager::persistent(persistent);
}
ConnectivityManager::ConnectivityManager(SDCardManager &sdCardManager) : _error(0), _sdCardManager(&sdCardManager)
ConnectivityManager::ConnectivityManager(SDCardManager &sdCardManager, bool persistent) : _sdCardManager(&sdCardManager)
{
persistent(false);
startAP();
connectToSTA();
ConnectivityManager::persistent(persistent);
}
boolean ConnectivityManager::connect()
{
if(!_sdCardManager) // ie _sdCardManager was not provided in contructor
{
if(!WiFi.disconnect(true))_error |= STA_ENABLED_DISABLE_ERR;
if(!WiFi.softAPdisconnect(true))_error |= AP_ENABLED_DISABLE_ERR;
if(!softAP("ESP8266SwissArmyBoard", NULL, 1, false, 8))_error |= AP_SETUP_ERR;
return _error == NO_ERROR;
}
else
{
return connectToSTA() && startAP();
}
}
boolean ConnectivityManager::connectToSTA()

View File

@ -20,6 +20,7 @@ class ConnectivityManager : public ESP8266WiFiClass
{
friend class SAB;
public:
boolean connect();
boolean enableSTAAndAP(boolean enable);
boolean isSTAEnabled();
boolean isAPEnabled();
@ -27,14 +28,14 @@ class ConnectivityManager : public ESP8266WiFiClass
unsigned char RSSIPercent();
unsigned char getError() const;
protected:
ConnectivityManager();
ConnectivityManager(SDCardManager &sdCardManager);
ConnectivityManager(bool persistent = false);
ConnectivityManager(SDCardManager &sdCardManager, bool persistent = false);
boolean connectToSTA();
boolean startAP();
private:
unsigned char _error;
SDCardManager *_sdCardManager;
unsigned char _error = NO_ERROR;
SDCardManager *_sdCardManager = nullptr;
};
#endif //CONNECTIVITYMANAGER_H