config stuff
This commit is contained in:
54
Config.cpp
Normal file
54
Config.cpp
Normal file
@ -0,0 +1,54 @@
|
||||
#include "Config.h"
|
||||
|
||||
|
||||
float Config::getFloat(int pos) {
|
||||
u_float u;
|
||||
for (uint8_t i = 0; i < sizeof(float); i++) {
|
||||
u.e[i] = EEPROM.read(pos + i);
|
||||
}
|
||||
return u.f;
|
||||
}
|
||||
|
||||
void Config::setFloat(int pos, float value) {
|
||||
u_float u;
|
||||
u.f = value;
|
||||
for (uint8_t i = 0; i < sizeof(float); i++) {
|
||||
EEPROM.write(pos + i, u.e[i]);
|
||||
}
|
||||
}
|
||||
|
||||
unsigned int Config::getUInt32(int pos) {
|
||||
u_uint32 u;
|
||||
for (uint8_t i = 0; i < sizeof(uint32_t); i++) {
|
||||
u.e[i] = EEPROM.read(pos + i);
|
||||
}
|
||||
return u.i;
|
||||
}
|
||||
|
||||
void Config::setUInt32(int pos, uint32_t value) {
|
||||
u_uint32 u;
|
||||
u.i = value;
|
||||
for (uint8_t i = 0; i < sizeof(uint32_t); i++) {
|
||||
EEPROM.write(pos + i, u.e[i]);
|
||||
}
|
||||
}
|
||||
|
||||
bool Config::isInitialized() {
|
||||
uint32_t magic = getUInt32(MAGIC);
|
||||
return magic == MAGIC_TOKEN;
|
||||
}
|
||||
|
||||
void Config::setMagic() {
|
||||
setUInt32(MAGIC, MAGIC_TOKEN);
|
||||
}
|
||||
|
||||
void Config::initialize() {
|
||||
if (! isInitialized()) {
|
||||
setFloat(ADC1START, 0.0);
|
||||
setFloat(ADC1START + 4, 1.0);
|
||||
setFloat(ADC2START, 0.0);
|
||||
setFloat(ADC2START + 4, 1.0);
|
||||
|
||||
setMagic();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user