configuration.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #include "../include/configuration.h"
  2. #include <SmingCore/SmingCore.h>
  3. ClockConfig ActiveConfig;
  4. ClockConfig loadConfig()
  5. {
  6. DynamicJsonBuffer jsonBuffer;
  7. ClockConfig cfg;
  8. if (fileExist(CLOCK_CONFIG_FILE))
  9. {
  10. int size = fileGetSize(CLOCK_CONFIG_FILE);
  11. char* jsonString = new char[size + 1];
  12. fileGetContent(CLOCK_CONFIG_FILE, jsonString, size + 1);
  13. JsonObject& root = jsonBuffer.parseObject(jsonString);
  14. JsonObject& network = root["network"];
  15. cfg.NetworkSSID = String((const char*)network["ssid"]);
  16. cfg.NetworkPassword = String((const char*)network["password"]);
  17. JsonObject& correction = root["correction"];
  18. cfg.AddTZ = correction["TZ"];
  19. JsonObject& light = root["light"];
  20. cfg.LightTrhLow = light["low"];
  21. cfg.LightTrhLow = light["high"];
  22. JsonObject& bright = root["bright"];
  23. cfg.BrightnessLow = bright["low"];
  24. cfg.BrightnessMiddle = bright["mid"];
  25. cfg.BrightnessHigh = bright["high"];
  26. delete[] jsonString;
  27. }
  28. else
  29. {
  30. cfg.NetworkSSID = WIFI_SSID;
  31. cfg.NetworkPassword = WIFI_PWD;
  32. }
  33. return cfg;
  34. }
  35. void saveConfig(ClockConfig& cfg)
  36. {
  37. ActiveConfig = cfg;
  38. DynamicJsonBuffer jsonBuffer;
  39. JsonObject& root = jsonBuffer.createObject();
  40. JsonObject& network = jsonBuffer.createObject();
  41. root["network"] = network;
  42. network["ssid"] = cfg.NetworkSSID.c_str();
  43. network["password"] = cfg.NetworkPassword.c_str();
  44. JsonObject& correction = jsonBuffer.createObject();
  45. root["correction"] = correction;
  46. correction["TZ"] = cfg.AddTZ;
  47. JsonObject& light = jsonBuffer.createObject();
  48. root["light"] = light;
  49. light["low"] = cfg.LightTrhLow;
  50. light["high"] = cfg.LightTrhHigh;
  51. JsonObject& bright = jsonBuffer.createObject();
  52. root["bright"] = bright;
  53. bright["low"] = cfg.BrightnessLow;
  54. bright["mid"] = cfg.BrightnessMiddle;
  55. bright["high"] = cfg.BrightnessHigh;
  56. char buf[3048];
  57. root.prettyPrintTo(buf, sizeof(buf));
  58. fileSetContent(CLOCK_CONFIG_FILE, buf);
  59. }