Settings.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <Arduino.h>
  2. #include <StringStream.h>
  3. #include <ArduinoJson.h>
  4. #ifndef _SETTINGS_H_INCLUDED
  5. #define _SETTINGS_H_INCLUDED
  6. #define SETTINGS_FILE "/config.json"
  7. #define SETTINGS_TERMINATOR '\0'
  8. #define WEB_INDEX_FILENAME "/index.html"
  9. class Settings {
  10. public:
  11. Settings() :
  12. adminUsername(""),
  13. adminPassword(""),
  14. // CE and CSN pins from nrf24l01
  15. cePin(D0),
  16. csnPin(D8),
  17. deviceIds(NULL),
  18. numDeviceIds(0)
  19. { }
  20. ~Settings() {
  21. if (deviceIds) {
  22. delete deviceIds;
  23. }
  24. }
  25. static void deserialize(Settings& settings, String json);
  26. static void deserialize(Settings& settings, JsonObject& json);
  27. static void load(Settings& settings);
  28. void save();
  29. String toJson(const bool prettyPrint = true);
  30. void serialize(Stream& stream, const bool prettyPrint = false);
  31. void updateDeviceIds(JsonArray& arr);
  32. void patch(JsonObject& obj);
  33. String adminUsername;
  34. String adminPassword;
  35. uint8_t cePin;
  36. uint8_t csnPin;
  37. uint16_t *deviceIds;
  38. size_t numDeviceIds;
  39. };
  40. #endif