/* * config.cpp * * Created on: 11.05.2015 * Author: wn */ #include #include #include "config.h" static bool __configIsValid = false; const uint32_t CONFIG_MAGIC_TOKEN = 0xAffe0003; void configInit() { uint32_t magic; configRead(CONFIG_MAGIC, 4, (char*)&magic); __configIsValid = (magic != CONFIG_MAGIC_TOKEN); if (! __configIsValid) { Serial << "Initialize config" << endl; uint32_t setMagic = CONFIG_MAGIC_TOKEN; configWrite(CONFIG_MAGIC, 4, (char*)&setMagic); } else { Serial << "Config valid" << endl; } } bool configIsValid() { return __configIsValid; } void configReset() { Serial << "Reset config" << endl; uint32_t setMagic = 0xa5a5a5a5; configWrite(CONFIG_MAGIC, 4, (char*)&setMagic); } void configRead(int addr, uint16_t len, char *buffer) { for (uint16_t i = 0; i < len; i++) { *(buffer + i) = EEPROM.read(addr + i); //Serial << "Read " << *(buffer + i) << " from " << addr + i << endl; } } void configWrite(int addr, uint16_t len, char *buffer) { for (uint16_t i = 0; i < len; i++) { //Serial << "Write " << _HEX(*(buffer + i)) << " to " << addr + i << endl; EEPROM.write(addr + i, *(buffer + i)); } }