diff --git a/TODO.md b/TODO.md index 7a6c691..849df5c 100644 --- a/TODO.md +++ b/TODO.md @@ -15,3 +15,6 @@ v2.0 - ADD option point for location (read from online table and select the location via dropdown) DONE - ADD option to enter a name, age DONE - ADD upload to a Online Database () DONE + + +- Redo Database Backend -> New SQL Server and deploy backend to edge functions?! Maybe host evrythin myself in a VM! diff --git a/src/master.cpp b/src/master.cpp index 8a5f7d9..4322851 100644 --- a/src/master.cpp +++ b/src/master.cpp @@ -22,90 +22,11 @@ #include #include #include +#include const char *firmwareversion = "1.0.0"; // Version der Firmware -void saveButtonConfig() { - preferences.begin("buttons", false); - preferences.putBytes("config", &buttonConfigs, sizeof(buttonConfigs)); - preferences.end(); -} - -void loadButtonConfig() { - preferences.begin("buttons", true); - size_t schLen = preferences.getBytesLength("config"); - if (schLen == sizeof(buttonConfigs)) { - preferences.getBytes("config", &buttonConfigs, schLen); - } - preferences.end(); -} - -void saveBestTimes() { - preferences.begin("times", false); - preferences.putULong("best1", timerData.bestTime1); - preferences.putULong("best2", timerData.bestTime2); - preferences.end(); -} - -void loadBestTimes() { - preferences.begin("times", true); - timerData.bestTime1 = preferences.getULong("best1", 0); - timerData.bestTime2 = preferences.getULong("best2", 0); - preferences.end(); -} - -void saveSettings() { - preferences.begin("settings", false); - preferences.putULong("maxTime", maxTimeBeforeReset); - preferences.putULong("maxTimeDisplay", maxTimeDisplay); - preferences.putUInt("gamemode", gamemode); - preferences.end(); -} - -void loadSettings() { - preferences.begin("settings", true); - maxTimeBeforeReset = preferences.getULong("maxTime", 300000); - maxTimeDisplay = preferences.getULong("maxTimeDisplay", 20000); - gamemode = preferences.getUInt("gamemode", 0); - preferences.end(); -} - -void saveWifiSettings() { - preferences.begin("wifi", false); - preferences.putString("ssid", ssidSTA); - preferences.putString("password", passwordSTA); - preferences.end(); - delay(500); // Warte 2 Sekunden, bevor der Neustart erfolgt - ESP.restart(); // Neustart des ESP32 -} - -void loadLocationSettings() { - preferences.begin("location", true); - masterlocation = preferences.getString("location", ""); - preferences.end(); -} - -void saveLocationSettings() { - preferences.begin("location", false); - preferences.putString("location", masterlocation); - preferences.end(); -} - -void loadWifiSettings() { - preferences.begin("wifi", true); - String ssid = preferences.getString("ssid", ""); - String password = preferences.getString("password", ""); - ssidSTA = strdup(ssid.c_str()); - passwordSTA = strdup(password.c_str()); - preferences.end(); -} - -int checkLicence() { - loadLicenceFromPrefs(); - String id = getUniqueDeviceID(); - int tier = getLicenseTier(id, licence); // licence = stored or entered key - return tier; -} +// moved to preferencemanager.h diff --git a/src/preferencemanager.h b/src/preferencemanager.h new file mode 100644 index 0000000..b514033 --- /dev/null +++ b/src/preferencemanager.h @@ -0,0 +1,96 @@ +#pragma once +#include +#include + +#include +#include + +// Persist and load button configuration +void saveButtonConfig() { + preferences.begin("buttons", false); + preferences.putBytes("config", &buttonConfigs, sizeof(buttonConfigs)); + preferences.end(); +} + +void loadButtonConfig() { + preferences.begin("buttons", true); + size_t schLen = preferences.getBytesLength("config"); + if (schLen == sizeof(buttonConfigs)) { + preferences.getBytes("config", &buttonConfigs, schLen); + } + preferences.end(); +} + +// Persist and load best times +void saveBestTimes() { + preferences.begin("times", false); + preferences.putULong("best1", timerData.bestTime1); + preferences.putULong("best2", timerData.bestTime2); + preferences.end(); +} + +void loadBestTimes() { + preferences.begin("times", true); + timerData.bestTime1 = preferences.getULong("best1", 0); + timerData.bestTime2 = preferences.getULong("best2", 0); + preferences.end(); +} + +// Persist and load general settings +void saveSettings() { + preferences.begin("settings", false); + preferences.putULong("maxTime", maxTimeBeforeReset); + preferences.putULong("maxTimeDisplay", maxTimeDisplay); + preferences.putUInt("gamemode", gamemode); + preferences.end(); +} + +void loadSettings() { + preferences.begin("settings", true); + maxTimeBeforeReset = preferences.getULong("maxTime", 300000); + maxTimeDisplay = preferences.getULong("maxTimeDisplay", 20000); + gamemode = preferences.getUInt("gamemode", 0); + preferences.end(); +} + +// Persist and load WiFi settings +void saveWifiSettings() { + preferences.begin("wifi", false); + preferences.putString("ssid", ssidSTA); + preferences.putString("password", passwordSTA); + preferences.end(); + delay(500); + ESP.restart(); +} + +void loadWifiSettings() { + preferences.begin("wifi", true); + String ssid = preferences.getString("ssid", ""); + String password = preferences.getString("password", ""); + ssidSTA = strdup(ssid.c_str()); + passwordSTA = strdup(password.c_str()); + preferences.end(); +} + +// Persist and load location settings +void loadLocationSettings() { + preferences.begin("location", true); + masterlocation = preferences.getString("location", ""); + preferences.end(); +} + +void saveLocationSettings() { + preferences.begin("location", false); + preferences.putString("location", masterlocation); + preferences.end(); +} + +// Licence helper +int checkLicence() { + loadLicenceFromPrefs(); + String id = getUniqueDeviceID(); + int tier = getLicenseTier(id, licence); + return tier; +} + +