Allow for 8 byte calibration data

This commit is contained in:
fvanroie 2022-04-09 23:02:03 +02:00
parent 014d95aa45
commit b0fea83a55
2 changed files with 13 additions and 6 deletions

View File

@ -191,9 +191,10 @@ void guiCalibrate(void)
haspTouch.calibrate(gui_settings.cal_data); haspTouch.calibrate(gui_settings.cal_data);
#endif #endif
for(int i = 0; i < 5; i++) { size_t len = sizeof(gui_settings.cal_data) / sizeof(gui_settings.cal_data[0]);
for(int i = 0; i < len; i++) {
Serial.print(gui_settings.cal_data[i]); Serial.print(gui_settings.cal_data[i]);
if(i < 4) Serial.print(", "); if(i < len - 1) Serial.print(", ");
} }
delay(500); delay(500);
@ -497,9 +498,10 @@ bool guiGetConfig(const JsonObject& settings)
/* Check CalData array has changed */ /* Check CalData array has changed */
JsonArray array = settings[FPSTR(FP_GUI_CALIBRATION)].as<JsonArray>(); JsonArray array = settings[FPSTR(FP_GUI_CALIBRATION)].as<JsonArray>();
uint8_t i = 0; uint8_t i = 0;
size_t len = sizeof(gui_settings.cal_data) / sizeof(gui_settings.cal_data[0]);
for(JsonVariant v : array) { for(JsonVariant v : array) {
LOG_VERBOSE(TAG_GUI, F("GUI CONF: %d: %d <=> %d"), i, gui_settings.cal_data[i], v.as<uint16_t>()); LOG_VERBOSE(TAG_GUI, F("GUI CONF: %d: %d <=> %d"), i, gui_settings.cal_data[i], v.as<uint16_t>());
if(i < 5) { if(i < len) {
if(gui_settings.cal_data[i] != v.as<uint16_t>()) changed = true; if(gui_settings.cal_data[i] != v.as<uint16_t>()) changed = true;
v.set(gui_settings.cal_data[i]); v.set(gui_settings.cal_data[i]);
} else { } else {
@ -514,9 +516,9 @@ bool guiGetConfig(const JsonObject& settings)
} }
/* Build new CalData array if the count is not correct */ /* Build new CalData array if the count is not correct */
if(i != 5) { if(i != len) {
array = settings[FPSTR(FP_GUI_CALIBRATION)].to<JsonArray>(); // Clear JsonArray array = settings[FPSTR(FP_GUI_CALIBRATION)].to<JsonArray>(); // Clear JsonArray
for(int i = 0; i < 5; i++) { for(int i = 0; i < len; i++) {
array.add(gui_settings.cal_data[i]); array.add(gui_settings.cal_data[i]);
} }
changed = true; changed = true;
@ -573,10 +575,11 @@ bool guiSetConfig(const JsonObject& settings)
if(!settings[FPSTR(FP_GUI_CALIBRATION)].isNull()) { if(!settings[FPSTR(FP_GUI_CALIBRATION)].isNull()) {
bool status = false; bool status = false;
int i = 0; int i = 0;
size_t len = sizeof(gui_settings.cal_data) / sizeof(gui_settings.cal_data[0]);
JsonArray array = settings[FPSTR(FP_GUI_CALIBRATION)].as<JsonArray>(); JsonArray array = settings[FPSTR(FP_GUI_CALIBRATION)].as<JsonArray>();
for(JsonVariant v : array) { for(JsonVariant v : array) {
if(i < 5) { if(i < len) {
if(gui_settings.cal_data[i] != v.as<uint16_t>()) status = true; if(gui_settings.cal_data[i] != v.as<uint16_t>()) status = true;
gui_settings.cal_data[i] = v.as<uint16_t>(); gui_settings.cal_data[i] = v.as<uint16_t>();
} }

View File

@ -33,7 +33,11 @@ struct gui_conf_t
int8_t backlight_pin; int8_t backlight_pin;
uint8_t rotation; uint8_t rotation;
uint8_t invert_display; uint8_t invert_display;
#if defined(USER_SETUP_LOADED)
uint16_t cal_data[5]; uint16_t cal_data[5];
#else
uint16_t cal_data[8];
#endif
}; };
/* ===== Default Event Processors ===== */ /* ===== Default Event Processors ===== */