From c685c18b57d9d4aa202307c17f66a8edd863c174 Mon Sep 17 00:00:00 2001 From: Magnus Persson Date: Sun, 24 Apr 2022 18:15:37 +0200 Subject: [PATCH] Increasing calibration points to 10 --- html/calibration.htm | 27 +++++++++++++++++++++++++++ src/config.cpp | 18 ++++++++++++++++++ src/config.hpp | 2 +- src/webserver.cpp | 6 ++++++ test/formula.json | 4 ++++ 5 files changed, 56 insertions(+), 1 deletion(-) diff --git a/html/calibration.htm b/html/calibration.htm index 16d685b..8fd1462 100644 --- a/html/calibration.htm +++ b/html/calibration.htm @@ -142,6 +142,18 @@
+
+ +
+
+
+ +
+ +
+
+
+
@@ -240,6 +252,8 @@ g6.onchange = setGravityDecimal g7.onchange = setGravityDecimal g8.onchange = setGravityDecimal + g9.onchange = setGravityDecimal + g10.onchange = setGravityDecimal a1.onchange = setAngleDecimal a2.onchange = setAngleDecimal @@ -249,6 +263,8 @@ a6.onchange = setAngleDecimal a7.onchange = setAngleDecimal a8.onchange = setAngleDecimal + a9.onchange = setAngleDecimal + a10.onchange = setAngleDecimal window.onload = getConfig; setButtonDisabled( true ); @@ -319,6 +335,8 @@ populateChartForm( $("#a6").val(), $("#g6").val() ); populateChartForm( $("#a7").val(), $("#g7").val() ); populateChartForm( $("#a8").val(), $("#g8").val() ); + populateChartForm( $("#a9").val(), $("#g9").val() ); + populateChartForm( $("#a10").val(), $("#g10").val() ); if( myChart ) myChart.destroy(); @@ -355,6 +373,11 @@ $("#g3").val( parseFloat(cfg["g3"]).toFixed(1) ); $("#g4").val( parseFloat(cfg["g4"]).toFixed(1) ); $("#g5").val( parseFloat(cfg["g5"]).toFixed(1) ); + $("#g6").val( parseFloat(cfg["g6"]).toFixed(1) ); + $("#g7").val( parseFloat(cfg["g7"]).toFixed(1) ); + $("#g8").val( parseFloat(cfg["g8"]).toFixed(1) ); + $("#g9").val( parseFloat(cfg["g9"]).toFixed(1) ); + $("#g10").val( parseFloat(cfg["g10"]).toFixed(1) ); } else { $("#gravity-header").text("Gravity (SG):"); $("#g1").val( parseFloat(cfg["g1"]).toFixed(4) ); @@ -365,6 +388,8 @@ $("#g6").val( parseFloat(cfg["g6"]).toFixed(4) ); $("#g7").val( parseFloat(cfg["g7"]).toFixed(4) ); $("#g8").val( parseFloat(cfg["g8"]).toFixed(4) ); + $("#g9").val( parseFloat(cfg["g9"]).toFixed(4) ); + $("#g10").val( parseFloat(cfg["g10"]).toFixed(4) ); } $("#a1").val( parseFloat(cfg["a1"]).toFixed(2) ); @@ -375,6 +400,8 @@ $("#a6").val( parseFloat(cfg["a6"]).toFixed(2) ); $("#a7").val( parseFloat(cfg["a7"]).toFixed(2) ); $("#a8").val( parseFloat(cfg["a8"]).toFixed(2) ); + $("#a9").val( parseFloat(cfg["a9"]).toFixed(2) ); + $("#a10").val( parseFloat(cfg["a10"]).toFixed(2) ); if( cfg["error"]!="" ) { showError(cfg["error"]); diff --git a/src/config.cpp b/src/config.cpp index 3825493..d0da370 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -105,12 +105,22 @@ void Config::createJson(DynamicJsonDocument& doc) { cal2["a3"] = reduceFloatPrecision(_formulaData.a[2], 2); cal2["a4"] = reduceFloatPrecision(_formulaData.a[3], 2); cal2["a5"] = reduceFloatPrecision(_formulaData.a[4], 2); + cal2["a6"] = reduceFloatPrecision(_formulaData.a[5], 2); + cal2["a7"] = reduceFloatPrecision(_formulaData.a[6], 2); + cal2["a8"] = reduceFloatPrecision(_formulaData.a[7], 2); + cal2["a9"] = reduceFloatPrecision(_formulaData.a[8], 2); + cal2["a10"] = reduceFloatPrecision(_formulaData.a[9], 2); cal2["g1"] = reduceFloatPrecision(_formulaData.g[0], 4); cal2["g2"] = reduceFloatPrecision(_formulaData.g[1], 4); cal2["g3"] = reduceFloatPrecision(_formulaData.g[2], 4); cal2["g4"] = reduceFloatPrecision(_formulaData.g[3], 4); cal2["g5"] = reduceFloatPrecision(_formulaData.g[4], 4); + cal2["g6"] = reduceFloatPrecision(_formulaData.g[5], 4); + cal2["g7"] = reduceFloatPrecision(_formulaData.g[6], 4); + cal2["g8"] = reduceFloatPrecision(_formulaData.g[7], 4); + cal2["g9"] = reduceFloatPrecision(_formulaData.g[8], 4); + cal2["g10"] = reduceFloatPrecision(_formulaData.g[9], 4); } // @@ -283,6 +293,10 @@ bool Config::loadFile() { _formulaData.a[6] = doc[PARAM_FORMULA_DATA]["a7"].as(); if (!doc[PARAM_FORMULA_DATA]["a8"].isNull()) _formulaData.a[7] = doc[PARAM_FORMULA_DATA]["a8"].as(); + if (!doc[PARAM_FORMULA_DATA]["a9"].isNull()) + _formulaData.a[8] = doc[PARAM_FORMULA_DATA]["a9"].as(); + if (!doc[PARAM_FORMULA_DATA]["a10"].isNull()) + _formulaData.a[9] = doc[PARAM_FORMULA_DATA]["a10"].as(); if (!doc[PARAM_FORMULA_DATA]["g1"].isNull()) _formulaData.g[0] = doc[PARAM_FORMULA_DATA]["g1"].as(); @@ -300,6 +314,10 @@ bool Config::loadFile() { _formulaData.g[6] = doc[PARAM_FORMULA_DATA]["g7"].as(); if (!doc[PARAM_FORMULA_DATA]["g8"].isNull()) _formulaData.g[7] = doc[PARAM_FORMULA_DATA]["g8"].as(); + if (!doc[PARAM_FORMULA_DATA]["g9"].isNull()) + _formulaData.g[8] = doc[PARAM_FORMULA_DATA]["g9"].as(); + if (!doc[PARAM_FORMULA_DATA]["g10"].isNull()) + _formulaData.g[9] = doc[PARAM_FORMULA_DATA]["g10"].as(); /*if( doc[PARAM_CONFIG_VER].isNull() ) { // If this parameter is missing we need to reset the gyrocalibaration due to diff --git a/src/config.hpp b/src/config.hpp index 7113cfd..af1ee77 100644 --- a/src/config.hpp +++ b/src/config.hpp @@ -47,7 +47,7 @@ struct RawGyroData { }; // Used for holding formulaData (used for calculating formula on device) -#define FORMULA_DATA_SIZE 8 +#define FORMULA_DATA_SIZE 10 struct RawFormulaData { double a[FORMULA_DATA_SIZE]; diff --git a/src/webserver.cpp b/src/webserver.cpp index 704a781..48bb162 100644 --- a/src/webserver.cpp +++ b/src/webserver.cpp @@ -732,6 +732,8 @@ void WebServerHandler::webHandleFormulaRead() { doc["a6"] = reduceFloatPrecision(fd.a[5], 2); doc["a7"] = reduceFloatPrecision(fd.a[6], 2); doc["a8"] = reduceFloatPrecision(fd.a[7], 2); + doc["a9"] = reduceFloatPrecision(fd.a[8], 2); + doc["a10"] = reduceFloatPrecision(fd.a[9], 2); if (myConfig.isGravityPlato()) { doc["g1"] = reduceFloatPrecision(convertToPlato(fd.g[0]), 1); @@ -742,6 +744,8 @@ void WebServerHandler::webHandleFormulaRead() { doc["g6"] = reduceFloatPrecision(convertToPlato(fd.g[5]), 1); doc["g7"] = reduceFloatPrecision(convertToPlato(fd.g[6]), 1); doc["g8"] = reduceFloatPrecision(convertToPlato(fd.g[7]), 1); + doc["g9"] = reduceFloatPrecision(convertToPlato(fd.g[8]), 1); + doc["g10"] = reduceFloatPrecision(convertToPlato(fd.g[9]), 1); } else { doc["g1"] = reduceFloatPrecision(fd.g[0], 4); doc["g2"] = reduceFloatPrecision(fd.g[1], 4); @@ -751,6 +755,8 @@ void WebServerHandler::webHandleFormulaRead() { doc["g6"] = reduceFloatPrecision(fd.g[5], 4); doc["g7"] = reduceFloatPrecision(fd.g[6], 4); doc["g8"] = reduceFloatPrecision(fd.g[7], 4); + doc["g9"] = reduceFloatPrecision(fd.g[8], 4); + doc["g10"] = reduceFloatPrecision(fd.g[9], 4); } #if LOG_LEVEL == 6 && !defined(WEB_DISABLE_LOGGING) diff --git a/test/formula.json b/test/formula.json index 9fea7de..5bceaf1 100644 --- a/test/formula.json +++ b/test/formula.json @@ -9,6 +9,8 @@ "a6": 30, "a7": 30, "a8": 30, + "a9": 30, + "a10": 30, "g1": 1.000, "g3": 1.010, "g2": 1.025, @@ -17,5 +19,7 @@ "g6": 1.005, "g7": 1.005, "g8": 1.005, + "g9": 1.005, + "g10": 1.005, "error": "" } \ No newline at end of file