#include #include #include "config.h" #include "app_settings.h" AppSettings settings; static const char* PATH = "/settings.json"; void settingsDefaults() { settings.altitudeM = DEFAULT_ALTITUDE_M; settings.tzOffsetMin = DEFAULT_TZ_OFFSET_MIN; settings.lat = DEFAULT_LAT; settings.lon = DEFAULT_LON; } static bool settingsLoad() { File f = LittleFS.open(PATH, "r"); if (!f) return false; JsonDocument doc; DeserializationError err = deserializeJson(doc, f); f.close(); if (err) return false; settings.altitudeM = doc["altitude"] | DEFAULT_ALTITUDE_M; settings.tzOffsetMin = doc["tz"] | DEFAULT_TZ_OFFSET_MIN; settings.lat = doc["lat"] | DEFAULT_LAT; settings.lon = doc["lon"] | DEFAULT_LON; return true; } bool settingsSave() { JsonDocument doc; doc["altitude"] = settings.altitudeM; doc["tz"] = settings.tzOffsetMin; doc["lat"] = settings.lat; doc["lon"] = settings.lon; File f = LittleFS.open(PATH, "w"); if (!f) return false; serializeJson(doc, f); f.close(); return true; } void settingsBegin() { if (!LittleFS.begin()) { LittleFS.format(); LittleFS.begin(); } settingsDefaults(); if (!settingsLoad()) { // first boot: persist defaults settingsSave(); } }