Settings.h 1002 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. String adminUsername;
  33. String adminPassword;
  34. uint8_t cePin;
  35. uint8_t csnPin;
  36. uint16_t *deviceIds;
  37. size_t numDeviceIds;
  38. };
  39. #endif