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" #include "ConnectivityManager.h"
ConnectivityManager::ConnectivityManager() : _error(0), _sdCardManager(NULL) ConnectivityManager::ConnectivityManager(bool persistent)
{ {
persistent(false); ConnectivityManager::persistent(persistent);
}
ConnectivityManager::ConnectivityManager(SDCardManager &sdCardManager, bool persistent) : _sdCardManager(&sdCardManager)
{
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.disconnect(true))_error |= STA_ENABLED_DISABLE_ERR;
if(!WiFi.softAPdisconnect(true))_error |= AP_ENABLED_DISABLE_ERR; if(!WiFi.softAPdisconnect(true))_error |= AP_ENABLED_DISABLE_ERR;
if(!softAP("ESP8266SwissArmyBoard", NULL, 1, false, 8))_error |= AP_SETUP_ERR; if(!softAP("ESP8266SwissArmyBoard", NULL, 1, false, 8))_error |= AP_SETUP_ERR;
}
ConnectivityManager::ConnectivityManager(SDCardManager &sdCardManager) : _error(0), _sdCardManager(&sdCardManager) return _error == NO_ERROR;
{ }
persistent(false); else
{
startAP(); return connectToSTA() && startAP();
connectToSTA(); }
} }
boolean ConnectivityManager::connectToSTA() boolean ConnectivityManager::connectToSTA()

View File

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