53 lines
745 B
C++
53 lines
745 B
C++
|
#include "./settings.h"
|
||
|
#include <EEPROM.h>
|
||
|
|
||
|
|
||
|
#define SettingsIdentifier 0x42
|
||
|
#define SettingsVersion1 1
|
||
|
|
||
|
SettingsContainer Settings;
|
||
|
|
||
|
|
||
|
struct SettingsHeader
|
||
|
{
|
||
|
uint8_t identifier;
|
||
|
uint8_t version;
|
||
|
};
|
||
|
|
||
|
#define SettingsHeightsAddress sizeof(SettingsHeader)
|
||
|
|
||
|
|
||
|
// Forward declarations
|
||
|
void readHeights();
|
||
|
|
||
|
|
||
|
bool readSettings()
|
||
|
{
|
||
|
memset(&Settings, 0, sizeof(SettingsContainer));
|
||
|
|
||
|
SettingsHeader header;
|
||
|
EEPROM.get(0, header);
|
||
|
|
||
|
if (header.identifier == SettingsIdentifier)
|
||
|
{
|
||
|
if (header.version >= 1)
|
||
|
readHeights();
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
|
||
|
void readHeights()
|
||
|
{
|
||
|
EEPROM.get(SettingsHeightsAddress, Settings.Height);
|
||
|
}
|
||
|
|
||
|
|
||
|
void writeSettingsHeights()
|
||
|
{
|
||
|
EEPROM.put(SettingsHeightsAddress, Settings.Height);
|
||
|
}
|