|
@@ -47,7 +47,7 @@ void _EEPROM_readData(int &pos, uint8_t* value, uint8_t size)
|
|
|
// wrong data being written to the variables.
|
|
|
// ALSO: always make sure the variables in the Store and retrieve sections are in the same order.
|
|
|
|
|
|
-#define EEPROM_VERSION "V1"
|
|
|
+#define EEPROM_VERSION "V2"
|
|
|
|
|
|
#ifdef EEPROM_SETTINGS
|
|
|
void Config_StoreSettings(uint16_t offset, uint8_t level)
|
|
@@ -285,9 +285,10 @@ void Config_PrintSettings(uint8_t level)
|
|
|
|
|
|
|
|
|
#ifdef EEPROM_SETTINGS
|
|
|
-void Config_RetrieveSettings(uint16_t offset, uint8_t level)
|
|
|
+bool Config_RetrieveSettings(uint16_t offset, uint8_t level)
|
|
|
{
|
|
|
int i=offset;
|
|
|
+ bool previous_settings_retrieved = true;
|
|
|
char stored_ver[4];
|
|
|
char ver[4]=EEPROM_VERSION;
|
|
|
EEPROM_READ_VAR(i,stored_ver); //read stored version
|
|
@@ -386,10 +387,18 @@ void Config_RetrieveSettings(uint16_t offset, uint8_t level)
|
|
|
else
|
|
|
{
|
|
|
Config_ResetDefault();
|
|
|
+ //Return false to inform user that eeprom version was changed and firmware is using default hardcoded settings now.
|
|
|
+ //In case that storing to eeprom was not used yet, do not inform user that hardcoded settings are used.
|
|
|
+ if (eeprom_read_byte((uint8_t *)offset) != 0xFF ||
|
|
|
+ eeprom_read_byte((uint8_t *)offset + 1) != 0xFF ||
|
|
|
+ eeprom_read_byte((uint8_t *)offset + 2) != 0xFF) {
|
|
|
+ previous_settings_retrieved = false;
|
|
|
+ }
|
|
|
}
|
|
|
#ifdef EEPROM_CHITCHAT
|
|
|
Config_PrintSettings();
|
|
|
#endif
|
|
|
+ return previous_settings_retrieved;
|
|
|
}
|
|
|
#endif
|
|
|
|