|
- #include "Config.h"
- #include "Debug.h"
- #include "Hardware.h"
-
- #define LOGGER_NAME "Config"
-
- namespace config {
- Config value;
-
- void format() {
- VERBOSE("format");
- hardware::i2c::eepromPowerOn();
- for (int i = 0; i < 1024; i++)
- {
- hardware::i2c::eeprom.write(i, 0);
- }
- hardware::i2c::eepromPowerOff();
- }
-
- void write() {
- VERBOSE_FORMAT("write", "%s, %s, %d, %d", value.seed, value.version, value.firstEntry, value.lastEntry);
-
- hardware::i2c::eepromPowerOn();
- int written = hardware::i2c::eeprom.writeBlock(CONFIG_ADDR, value);
- hardware::i2c::eepromPowerOff();
- }
-
- void reset() {
- VERBOSE("reset");
- Config config = {
- CONFIG_SEED,
- VERSION,
- 0xFFFF,
- 0xFFFF
- };
-
- value = config;
- //format();
- write();
-
- VERBOSE_FORMAT("reset", "value : %s, %s, %d, %d", value.seed, value.version, value.firstEntry, value.lastEntry);
- }
-
- void read() {
- hardware::i2c::eepromPowerOn();
- hardware::i2c::eeprom.readBlock(CONFIG_ADDR, value);
- if (!String(CONFIG_SEED).equals(value.seed)) reset();
- hardware::i2c::eepromPowerOff();
-
- VERBOSE_FORMAT("read", "%s, %s, %d, %d", value.seed, value.version, value.firstEntry, value.lastEntry);
-
- }
- }
|