Fix saving calibration data

This commit is contained in:
fvanroie 2020-04-13 21:53:42 +02:00
parent 2baef72a2f
commit 033bd74eda

View File

@ -832,21 +832,25 @@ bool guiGetConfig(const JsonObject & settings)
settings[FPSTR(F_GUI_POINTER)] = guiShowPointer; settings[FPSTR(F_GUI_POINTER)] = guiShowPointer;
/* Check CalData array has changed */ /* Check CalData array has changed */
JsonArray array = settings[FPSTR(F_GUI_CALIBRATION)].to<JsonArray>(); JsonArray array = settings[FPSTR(F_GUI_CALIBRATION)].as<JsonArray>();
uint8_t i = 0; uint8_t i = 0;
for(JsonVariant v : array) { for(JsonVariant v : array) {
Log.verbose(F("GUI CONF: %d: %d <=> %d"), i, calData[i], v.as<uint16_t>()); Log.verbose(F("GUI CONF: %d: %d <=> %d"), i, calData[i], v.as<uint16_t>());
if(i < 5) { if(i < 5) {
if(calData[i] != v.as<uint16_t>()) changed = true; if(calData[i] != v.as<uint16_t>()) changed = true;
v.set(calData[i]);
} else { } else {
changed = true; changed = true;
} }
i++; i++;
} }
/* Build new CalData array */ /* Build new CalData array if the count is not correct */
for(uint8_t i = 0; i < 5; i++) { if(i != 5) {
array.add(calData[i]); array = settings[FPSTR(F_GUI_CALIBRATION)].to<JsonArray>(); // Clear JsonArray
for(uint8_t i = 0; i < 5; i++) {
array.add(calData[i]);
}
} }
if(changed) configOutput(settings); if(changed) configOutput(settings);
@ -887,8 +891,10 @@ bool guiSetConfig(const JsonObject & settings)
JsonArray array = settings[FPSTR(F_GUI_CALIBRATION)].as<JsonArray>(); JsonArray array = settings[FPSTR(F_GUI_CALIBRATION)].as<JsonArray>();
for(JsonVariant v : array) { for(JsonVariant v : array) {
if(calData[i] != v.as<uint16_t>()) status = true; if(i < 5) {
calData[i] = v.as<uint16_t>(); if(calData[i] != v.as<uint16_t>()) status = true;
calData[i] = v.as<uint16_t>();
}
i++; i++;
} }