add empty type as default; add calib for types PRPOS,RPOS, and for PageRudderPosition

This commit is contained in:
Ulrich Meine 2025-05-16 19:43:27 +02:00
parent 2c348ca7fb
commit 3d31fcf4ed
3 changed files with 19 additions and 7 deletions

View File

@ -22,10 +22,10 @@ void CalibrationDataList::readConfig(GwConfigHandler* config, GwLog* logger)
String instance = "calInstance" + String(i+1);
String offset = "calOffset" + String(i+1);
String slope = "calSlope" + String(i+1);
calibrationData.list[i] = { "", 0.0f, 1.0f, 0.0f, false };
calibrationData.list[i] = { "---", 0.0f, 1.0f, 0.0f, false };
calibrationData.list[i].instance = config->getString(instance, "");
if (calibrationData.list[i].instance == "") {
calibrationData.list[i].instance = config->getString(instance, "---");
if (calibrationData.list[i].instance == "---") {
LOG_DEBUG(GwLog::LOG, "no calibration data for instance no. %d", i+1);
continue;
}
@ -45,7 +45,8 @@ void CalibrationDataList::readConfig(GwConfigHandler* config, GwLog* logger)
calibrationData.list[i].offset *= 0.5; // Convert Bft to m/s (approx) -> to be improved
}
} else if (calibrationData.list[i].instance == "AWA" || calibrationData.list[i].instance == "TWA" ||calibrationData.list[i].instance == "TWD" || calibrationData.list[i].instance == "HDM") {
} else if (calibrationData.list[i].instance == "AWA" || calibrationData.list[i].instance == "TWA" ||calibrationData.list[i].instance == "TWD" || calibrationData.list[i].instance == "HDM" ||
calibrationData.list[i].instance == "PRPOS" || calibrationData.list[i].instance == "RPOS") {
calibrationData.list[i].offset *= M_PI / 180; // Convert deg to rad
} else if (calibrationData.list[i].instance == "DBT") {

View File

@ -2,6 +2,7 @@
#include "Pagedata.h"
#include "OBP60Extensions.h"
#include "BoatDataCalibration.h"
class PageRudderPosition : public Page
{
@ -40,6 +41,7 @@ public:
GwApi::BoatValue *bvalue1 = pageData.values[0]; // First element in list
String name1 = bvalue1->getName().c_str(); // Value name
name1 = name1.substring(0, 6); // String length limit for value name
calibrationData.calibrateInstance(name1, bvalue1, logger); // Check if boat data value is to be calibrated
value1 = bvalue1->value; // Raw value without unit convertion
bool valid1 = bvalue1->valid; // Valid information
String svalue1 = formatValue(bvalue1, *commonData).svalue; // Formatted value as string including unit conversion and switching decimal places

View File

@ -690,13 +690,16 @@
"name": "calInstance1",
"label": "Calibration Data Instance 1",
"type": "list",
"default": "",
"default": "---",
"description": "Data instance for calibration",
"list": [
"---",
"AWA",
"AWS",
"DBT",
"HDM",
"PRPOS",
"RPOS",
"STW",
"TWA",
"TWS",
@ -734,13 +737,16 @@
"name": "calInstance2",
"label": "Calibration Data Instance 2",
"type": "list",
"default": "",
"default": "---",
"description": "Data instance for calibration",
"list": [
"---",
"AWA",
"AWS",
"DBT",
"HDM",
"PRPOS",
"RPOS",
"STW",
"TWA",
"TWS",
@ -778,13 +784,16 @@
"name": "calInstance3",
"label": "Calibration Data Instance 3",
"type": "list",
"default": "",
"default": "---",
"description": "Data instance for calibration",
"list": [
"---",
"AWA",
"AWS",
"DBT",
"HDM",
"PRPOS",
"RPOS",
"STW",
"TWA",
"TWS",