store config in eeprom

This commit is contained in:
hg
2014-03-04 18:48:45 +01:00
parent ff730fcab2
commit 61b90393dc
6 changed files with 167 additions and 7 deletions

View File

@ -3,6 +3,7 @@
#include "fatal.h"
#include "AD7190.h"
#include "Streaming.h"
#include "Config.h"
@ -118,18 +119,33 @@ Thermometer::Thermometer() : m_period(DEFAULT_PERIOD), m_periodMillis(DEFAULT_PE
void Thermometer::setPeriodMeasure(unsigned long p) {
Config::setULong(Config::THERMOMETER_PERIOD, p);
m_periodMillis = p;
m_period = Metro(p);
}
unsigned long Thermometer::getPeriodMeasure() {
return m_periodMillis;
}
void Thermometer::setAlpha(float a) {
Config::setFloat(Config::THERMOMETER_ALPHA, a);
m_alpha = a;
}
float Thermometer::getAlpha() {
return m_alpha;
}
void Thermometer::setCalibrateFactor(unsigned int i, float c) {
Config::setFloat(Config::THERMOMETER_CAL[i], c);
m_calibrateFactor[i] = c;
}
float Thermometer::getCalibrateFactor(unsigned int i) {
return m_calibrateFactor[i];
}
float pt1000(float r) {
@ -205,10 +221,28 @@ void Thermometer::begin(CmdServer *cmdServer) {
AD7190_Calibrate(AD7190_MODE_CAL_INT_ZERO, AD7190_CH_AIN1P_AINCOM);
AD7190_Calibrate(AD7190_MODE_CAL_INT_FULL, AD7190_CH_AIN1P_AINCOM);
setCalibrateFactor(0, 1.002999);
setCalibrateFactor(1, 1.001804);
setCalibrateFactor(2, 1.000794);
setCalibrateFactor(3, 1.001071);
if (! Config::isInitialized()) {
Serial << "Initializing EEPROM" << endl;
Config::setFloat(Config::THERMOMETER_ALPHA, 1.0);
Config::setULong(Config::THERMOMETER_PERIOD, 1000);
for (int i = 0; i < 4; i++) {
Config::setFloat(Config::THERMOMETER_CAL[i], 1.0);
}
Config::setMagic();
}
setAlpha(Config::getFloat(Config::THERMOMETER_ALPHA));
setPeriodMeasure(Config::getULong(Config::THERMOMETER_PERIOD));
for (int i = 0; i < 4; i++) {
setCalibrateFactor(i, Config::getFloat(Config::THERMOMETER_CAL[i]));
}
//setCalibrateFactor(0, 1.002999);
//setCalibrateFactor(1, 1.001804);
//setCalibrateFactor(2, 1.000794);
//setCalibrateFactor(3, 1.001071);
// prepare
prepareAdc();