#include "../include/configuration.h" #include ClockConfig ActiveConfig; ClockConfig loadConfig () { DynamicJsonBuffer jsonBuffer; ClockConfig cfg; if (fileExist (CLOCK_CONFIG_FILE)) { int size = fileGetSize (CLOCK_CONFIG_FILE); char* jsonString = new char[size + 1]; fileGetContent (CLOCK_CONFIG_FILE, jsonString, size + 1); JsonObject& root = jsonBuffer.parseObject (jsonString); JsonObject& network = root["network"]; cfg.NetworkSSID = String ((const char*) network["ssid"]); cfg.NetworkPassword = String ((const char*) network["password"]); JsonObject& correction = root["correction"]; cfg.AddTZ = correction["TZ"]; JsonObject& light = root["light"]; cfg.LightTrhLow = light["low"]; cfg.LightTrhHigh = light["high"]; JsonObject& bright = root["bright"]; cfg.BrightnessLow = bright["low"]; cfg.BrightnessMiddle = bright["mid"]; cfg.BrightnessHigh = bright["high"]; delete[] jsonString; } else { cfg.NetworkSSID = WIFI_SSID; cfg.NetworkPassword = WIFI_PWD; } return cfg; } void saveConfig (ClockConfig& cfg) { ActiveConfig = cfg; DynamicJsonBuffer jsonBuffer; JsonObject& root = jsonBuffer.createObject (); JsonObject& network = jsonBuffer.createObject (); root["network"] = network; network["ssid"] = cfg.NetworkSSID.c_str (); network["password"] = cfg.NetworkPassword.c_str (); JsonObject& correction = jsonBuffer.createObject (); root["correction"] = correction; correction["TZ"] = cfg.AddTZ; JsonObject& light = jsonBuffer.createObject (); root["light"] = light; light["low"] = cfg.LightTrhLow; light["high"] = cfg.LightTrhHigh; JsonObject& bright = jsonBuffer.createObject (); root["bright"] = bright; bright["low"] = cfg.BrightnessLow; bright["mid"] = cfg.BrightnessMiddle; bright["high"] = cfg.BrightnessHigh; char buf[3048]; root.prettyPrintTo (buf, sizeof(buf)); fileSetContent (CLOCK_CONFIG_FILE, buf); }