diff --git a/src/hasp/hasp_nvs.cpp b/src/hasp/hasp_nvs.cpp new file mode 100644 index 00000000..04a4dadb --- /dev/null +++ b/src/hasp/hasp_nvs.cpp @@ -0,0 +1,25 @@ +#ifdef ESP32 + +#include "hasplib.h" +#include "hasp_nvs.h" + +bool nvsUpdateString(Preferences& preferences, const char* key, JsonVariant value) +{ + bool changed = false; + const char* val = value.as(); + + if(!value.isNull()) { // Json key exists + if(preferences.isKey(key)) { // Nvs key exists + changed = preferences.getString(key, "") != String(val); // Value changed + } else + changed = true; // Nvs key doesnot exist, create it + if(changed) { + size_t len = preferences.putString(key, val); + LOG_VERBOSE(TAG_TIME, F(D_BULLET "Wrote %s => %s (%d bytes)"), key, val, len); + } + } + + return changed; +} + +#endif \ No newline at end of file diff --git a/src/hasp/hasp_nvs.h b/src/hasp/hasp_nvs.h new file mode 100644 index 00000000..8f47b514 --- /dev/null +++ b/src/hasp/hasp_nvs.h @@ -0,0 +1,16 @@ +/* MIT License - Copyright (c) 2019-2022 Francis Van Roie + For full license information read the LICENSE file in the project folder */ + +#ifndef HASP_NVS_H +#define HASP_NVS_H + +#ifdef ESP32 + +#include "hasplib.h" +#include + +bool nvsUpdateString(Preferences& preferences, const char* key, JsonVariant value); + +#endif // ESP32 + +#endif // HASP_NVS_H \ No newline at end of file diff --git a/src/hasplib.h b/src/hasplib.h index 85c97e59..2e264142 100644 --- a/src/hasplib.h +++ b/src/hasplib.h @@ -33,6 +33,10 @@ #include "hasp/lv_theme_hasp.h" +#ifdef ESP32 +#include "hasp/hasp_nvs.h" +#endif + #include "ArduinoJson.h" #if HASP_USE_FREETYPE > 0 diff --git a/src/sys/net/hasp_time.cpp b/src/sys/net/hasp_time.cpp index 5f7129b9..9fde6b5d 100644 --- a/src/sys/net/hasp_time.cpp +++ b/src/sys/net/hasp_time.cpp @@ -91,25 +91,6 @@ bool timeGetConfig(const JsonObject& settings) return changed; } -bool nvsUpateString(Preferences& preferences, const char* key, JsonVariant value) -{ - bool changed = false; - const char* val = value.as(); - - if(!value.isNull()) { // Json key exists - if(preferences.isKey(key)) { // Nvs key exists - changed = preferences.getString(key, "") != String(val); // Value changed - } else - changed = true; // Nvs key doesnot exist, create it - if(changed) { - size_t len = preferences.putString(key, val); - LOG_VERBOSE(TAG_TIME, F(D_BULLET "Wrote %s => %s (%d bytes)"), key, val, len); - } - } - - return changed; -} - bool timeSetConfig(const JsonObject& settings) { Preferences preferences; @@ -119,10 +100,10 @@ bool timeSetConfig(const JsonObject& settings) bool changed = false; char key[16] = "tz"; - changed |= nvsUpateString(preferences, key, settings[key]); - changed |= nvsUpateString(preferences, "ntp1", settings["ntp"][0]); - changed |= nvsUpateString(preferences, "ntp2", settings["ntp"][1]); - changed |= nvsUpateString(preferences, "ntp3", settings["ntp"][2]); + changed |= nvsUpdateString(preferences, key, settings[key]); + changed |= nvsUpdateString(preferences, "ntp1", settings["ntp"][0]); + changed |= nvsUpdateString(preferences, "ntp2", settings["ntp"][1]); + changed |= nvsUpdateString(preferences, "ntp3", settings["ntp"][2]); preferences.end(); timeSetup();