Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

70 Zeilen
1.6 KiB

  1. #include "Config.h"
  2. #include "Debug.h"
  3. #include "Hardware.h"
  4. #define LOGGER_NAME "Config"
  5. namespace config {
  6. namespace main {
  7. config_t value;
  8. namespace details {
  9. void read() {
  10. VERBOSE("read");
  11. hardware::i2c::powerOn();
  12. hardware::i2c::eeprom.readBlock(CONFIG_ADDR, value);
  13. if (CONFIG_SEED != value.seed) reset(); //todo : reset network if seed for network is not right
  14. hardware::i2c::powerOff();
  15. }
  16. void write() {
  17. VERBOSE_FORMAT("write", "%d, %s, %d, %d", value.seed, value.version, value.firstEntry, value.lastEntry);
  18. #if BACKUP_ENABLE_NETWORK
  19. VERBOSE_FORMAT("write", "%d, %d, %s, %s", value.network.saveThreshold, value.network.lastSavedEntry, value.network.apn, value.network.url);
  20. #endif
  21. hardware::i2c::powerOn();
  22. int written = hardware::i2c::eeprom.writeBlock(CONFIG_ADDR, value);
  23. hardware::i2c::powerOff();
  24. }
  25. }
  26. config_t get() {
  27. if (value.seed == 0) details::read();
  28. VERBOSE_FORMAT("get", "%d, %s, %d, %d", value.seed, value.version, value.firstEntry, value.lastEntry);
  29. #if BACKUP_ENABLE_NETWORK
  30. VERBOSE_FORMAT("get", "%d, %d, %s, %s", value.network.saveThreshold, value.network.lastSavedEntry, value.network.apn, value.network.url);
  31. #endif
  32. return value;
  33. }
  34. void set(const config_t config) {
  35. value = config;
  36. details::write();
  37. }
  38. void reset() {
  39. VERBOSE("reset");
  40. config_t config = {
  41. CONFIG_SEED,
  42. VERSION,
  43. 0xFFFF,
  44. 0xFFFF,
  45. #if BACKUP_ENABLE_NETWORK
  46. {
  47. POSITIONS_CONFIG_NET_DEFAULT_SAVE_THRESHOLD,
  48. 0xFFFF,
  49. POSITIONS_CONFIG_NET_DEFAULT_APN,
  50. POSITIONS_CONFIG_NET_DEFAULT_URL,
  51. },
  52. #endif
  53. };
  54. value = config;
  55. details::write();
  56. }
  57. }
  58. }