From b7899c0a3d75003b5dcad5fae7430a4e9b1ccdb5 Mon Sep 17 00:00:00 2001 From: anschrammh Date: Sun, 24 Mar 2019 23:12:11 +0100 Subject: [PATCH] Retrieving AP config parameter from sdCard --- src/app/ConnectivityManager.cpp | 23 ++++++++++++++++++++++- src/app/ConnectivityManager.h | 5 +++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/app/ConnectivityManager.cpp b/src/app/ConnectivityManager.cpp index 057ead6..b28d3f9 100644 --- a/src/app/ConnectivityManager.cpp +++ b/src/app/ConnectivityManager.cpp @@ -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); diff --git a/src/app/ConnectivityManager.h b/src/app/ConnectivityManager.h index 53921de..da517ef 100644 --- a/src/app/ConnectivityManager.h +++ b/src/app/ConnectivityManager.h @@ -2,6 +2,9 @@ #define CONNECTIVITYMANAGER_H #include +#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