Fixes; additional input filtering

This commit is contained in:
Brian Hrebec 2023-08-30 19:49:22 -05:00
parent 209959e2de
commit 7740c09375
11 changed files with 802 additions and 513 deletions

View file

@ -41,7 +41,7 @@ void readCalibration(calibration_t &calibration) {
}
void writePreset(uint8_t preset) {
EEPROM.put(SETTINGS_OFFSET + preset * sizeof(preset_t), presets[preset]);
EEPROM.put(SETTINGS_OFFSET + CALIBRATION_MAX_SIZE + preset * sizeof(preset_t), presets[preset]);
}
void writePresets() {
@ -326,16 +326,27 @@ void readEEPROM(const bool factoryReset, calibration_t &calibration) {
// blank eeprom will be 0xFFFF. For a full reset, call it "version 0" so everything gets overwritten.
if (factoryReset || settings_version == 0xffffu) {
settings_version = 0;
preset_t defaultPreset;
calibration_t defaultCalibration;
for (int i = 0; i < PRESET_COUNT; i++) {
presets[i] = defaultPreset;
}
calibration = defaultCalibration;
} else {
readPresets();
readCalibration(calibration);
}
if(settings_version != EEPROM_VERSION) {
// Add default settings here
for (int i = 0; i < PRESET_COUNT; i++) {
if (settings_version < 3) {
presets[i].breathFilterFreq = 20;
presets[i].spikeFilterFreq = 20;
}
}
writePresets();
writeCalibration();
writeCalibration(calibration);
writeInt(EEPROM_VERSION_ADDR, EEPROM_VERSION);
}
}