/* * Stairs lighting * Copyright 2017 (c) Mark van Renswoude * * https://git.x2software.net/pub/Stairs */ #include "settings.h" #include // First byte is 0xAA to recognize uninitialised EEPROM const uint8_t EEPROMHeader = 0xAA; const uint8_t EEPROMCurrentVersion = 1; const uint8_t EEPROMAddressHeader = 0; const uint8_t EEPROMAddressVersion = 1; const uint8_t EEPROMAddressModuleIndex = 2; void Settings::init() { if (EEPROM.read(EEPROMAddressHeader) != EEPROMHeader) { EEPROM.put(EEPROMAddressHeader, EEPROMHeader); EEPROM.put(EEPROMAddressVersion, EEPROMCurrentVersion); EEPROM.put(EEPROMAddressModuleIndex, mModuleIndex); } else { uint8_t version = EEPROM.read(EEPROMAddressVersion); if (version >= 1) { mModuleIndex = EEPROM.read(EEPROMAddressModuleIndex); } } } bool Settings::hasModuleIndex() { return mModuleIndex != ModuleIndexUndefined; } uint8_t Settings::getModuleIndex(void) { return mModuleIndex; } void Settings::setModuleIndex(uint8_t index) { if (index == mModuleIndex) return; mModuleIndex = index; EEPROM.put(EEPROMAddressModuleIndex, mModuleIndex); }