configuration partly done
This commit is contained in:
50
config.cpp
Normal file
50
config.cpp
Normal file
@ -0,0 +1,50 @@
|
||||
/*
|
||||
* config.cpp
|
||||
*
|
||||
* Created on: 11.05.2015
|
||||
* Author: wn
|
||||
*/
|
||||
|
||||
#include <EEPROM.h>
|
||||
#include <Streaming.h>
|
||||
#include "config.h"
|
||||
|
||||
static bool __configIsValid = false;
|
||||
|
||||
void configInit() {
|
||||
uint32_t magic;
|
||||
configRead(CONFIG_MAGIC, 4, (char*)&magic);
|
||||
__configIsValid = (magic != 0xdeadbeef);
|
||||
|
||||
if (! __configIsValid) {
|
||||
Serial << "Initialize config" << endl;
|
||||
uint32_t setMagic = 0xdeadbeef;
|
||||
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, uint8_t len, char *buffer) {
|
||||
for (uint8_t i = 0; i < len; i++) {
|
||||
*(buffer + i) = EEPROM.read(addr + i);
|
||||
//Serial << "Read " << *(buffer + i) << " from " << addr + i << endl;
|
||||
}
|
||||
}
|
||||
|
||||
void configWrite(int addr, uint8_t len, char *buffer) {
|
||||
for (uint8_t i = 0; i < len; i++) {
|
||||
//Serial << "Write " << _HEX(*(buffer + i)) << " to " << addr + i << endl;
|
||||
EEPROM.write(addr + i, *(buffer + i));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user