You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.8 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. NOTICE_FORMAT("read", "%d, %s, %d, %d", value.seed, value.version, value.firstEntry, value.lastEntry);
  16. #if BACKUP_ENABLE_NETWORK
  17. NOTICE_FORMAT("read", "%d, %d, %s, %s", value.network.saveThreshold, value.network.lastSavedEntry, value.network.apn, value.network.url);
  18. //networkConfig_t c = {
  19. // POSITIONS_CONFIG_NET_DEFAULT_SAVE_THRESHOLD,
  20. // 0xFFFF,
  21. // POSITIONS_CONFIG_NET_DEFAULT_APN,
  22. // POSITIONS_CONFIG_NET_DEFAULT_URL,
  23. //};
  24. //value.network = c;
  25. #endif
  26. }
  27. void write() {
  28. NOTICE_FORMAT("write", "%d, %s, %d, %d", value.seed, value.version, value.firstEntry, value.lastEntry);
  29. #if BACKUP_ENABLE_NETWORK
  30. NOTICE_FORMAT("write", "%d, %d, %s, %s", value.network.saveThreshold, value.network.lastSavedEntry, value.network.apn, value.network.url);
  31. #endif
  32. hardware::i2c::powerOn();
  33. int written = hardware::i2c::eeprom.writeBlock(CONFIG_ADDR, value);
  34. hardware::i2c::powerOff();
  35. }
  36. }
  37. void setup() {
  38. details::read();
  39. //details::write();
  40. }
  41. void save() {
  42. details::write();
  43. }
  44. void reset() {
  45. VERBOSE("reset");
  46. config_t config = {
  47. CONFIG_SEED,
  48. VERSION,
  49. 0xFFFF,
  50. 0xFFFF,
  51. #if BACKUP_ENABLE_NETWORK
  52. {
  53. POSITIONS_CONFIG_NET_DEFAULT_SAVE_THRESHOLD,
  54. 0xFFFF,
  55. POSITIONS_CONFIG_NET_DEFAULT_APN,
  56. POSITIONS_CONFIG_NET_DEFAULT_URL,
  57. },
  58. #endif
  59. };
  60. value = config;
  61. save();
  62. }
  63. }
  64. }