64 lines
1.8 KiB
C++
64 lines
1.8 KiB
C++
#include <global.h>
|
|
|
|
class EEPROM {
|
|
private:
|
|
struct blynk_store_s {
|
|
uint32_t magic;
|
|
char version[15];
|
|
uint8_t flags;
|
|
char wifiSSID[34];
|
|
char wifiPass[64];
|
|
char cloudToken[34];
|
|
char cloudHost[34];
|
|
uint16_t cloudPort;
|
|
uint32_t staticIP;
|
|
uint32_t staticMask;
|
|
uint32_t staticGW;
|
|
uint32_t staticDNS;
|
|
uint32_t staticDNS2;
|
|
int last_error;
|
|
} blynkStore;
|
|
|
|
Preferences prefs;
|
|
|
|
public:
|
|
EEPROM() {}
|
|
|
|
void loadBlynkConfig() {
|
|
if (prefs.begin("blynk", false) && prefs.getBytes("config", &blynkStore, sizeof(blynkStore))) {
|
|
DEBUG_PRINTLN("[EEPROM] Found previous Blynk Config:");
|
|
DEBUG_PRINTLN(String(" => ") + blynkStore.wifiSSID);
|
|
DEBUG_PRINTLN(String(" => ") + blynkStore.wifiPass);
|
|
strlcpy(soft.wifi.ssid, blynkStore.wifiSSID, sizeof(soft.wifi.ssid));
|
|
strlcpy(soft.wifi.password, blynkStore.wifiPass, sizeof(soft.wifi.password));
|
|
} else {
|
|
DEBUG_PRINTLN("[EEPROM] No Old Blynk Configuration found.");
|
|
}
|
|
prefs.end();
|
|
}
|
|
|
|
void readJSON() {
|
|
if (prefs.begin("winder", false) && prefs.isKey("config")) {
|
|
String json = prefs.getString("config");
|
|
DEBUG_PRINTLN("[EEPROM] Data Backup found:");
|
|
DEBUG_PRINTLN(json);
|
|
// soft.fromJSON(json);
|
|
} else {
|
|
DEBUG_PRINTLN("[EEPROM] No Data Backup found.");
|
|
}
|
|
prefs.end();
|
|
}
|
|
|
|
void writeJSON() {
|
|
prefs.begin("winder", false);
|
|
String json = soft.asJSON();
|
|
DEBUG_PRINTLN("[EEPROM] Data Backup stored. Update can begin.");
|
|
prefs.putString("config", json);
|
|
}
|
|
|
|
void init() {
|
|
loadBlynkConfig();
|
|
readJSON();
|
|
}
|
|
};
|