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