From 63ae42588f614e655ca33445f271828f62bf7cce Mon Sep 17 00:00:00 2001 From: Thomas Hooge Date: Fri, 22 Aug 2025 14:13:35 +0200 Subject: [PATCH] Use placeholder from formatter for missing data text --- lib/obp60task/OBP60Formatter.cpp | 2 +- lib/obp60task/OBP60Formatter.h | 3 ++- lib/obp60task/PageBattery.cpp | 6 +++--- lib/obp60task/PageBattery2.cpp | 10 +++++++--- lib/obp60task/PageClock.cpp | 8 ++++---- lib/obp60task/PageGenerator.cpp | 10 +++++++--- lib/obp60task/PageSkyView.cpp | 2 +- lib/obp60task/PageSolar.cpp | 12 ++++++++---- lib/obp60task/PageVoltage.cpp | 2 +- lib/obp60task/PageWindRose.cpp | 6 +++--- lib/obp60task/PageWindRoseFlex.cpp | 2 +- lib/obp60task/obp60task.cpp | 3 +-- lib/obp60task/obp60task.h | 7 ++++++- 13 files changed, 45 insertions(+), 28 deletions(-) diff --git a/lib/obp60task/OBP60Formatter.cpp b/lib/obp60task/OBP60Formatter.cpp index 6a0380f..5ef27a7 100644 --- a/lib/obp60task/OBP60Formatter.cpp +++ b/lib/obp60task/OBP60Formatter.cpp @@ -43,7 +43,7 @@ FormattedData Formatter::formatValue(GwApi::BoatValue *value, CommonData &common // If boat value not valid if (! value->valid && !usesimudata){ - result.svalue = "---"; + result.svalue = placeholder; return result; } diff --git a/lib/obp60task/OBP60Formatter.h b/lib/obp60task/OBP60Formatter.h index 7977cfe..55a69b4 100644 --- a/lib/obp60task/OBP60Formatter.h +++ b/lib/obp60task/OBP60Formatter.h @@ -70,7 +70,7 @@ XDR units */ // Possible formats as scoped enums -enum class fmtDate {DE, EN, GB, ISO}; +enum class fmtDate {DE, GB, US, ISO}; enum class fmtTime {MMHH, MMHHSS}; enum class fmtLength {METER, FEET, FATHOM, CABLE}; enum class fmtDepth {METER, FEET, FATHOM}; @@ -116,6 +116,7 @@ private: public: Formatter(GwConfigHandler *config); FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata); + String placeholder = "---"; }; // Standard format functions without overhead diff --git a/lib/obp60task/PageBattery.cpp b/lib/obp60task/PageBattery.cpp index 37f7368..60372ca 100644 --- a/lib/obp60task/PageBattery.cpp +++ b/lib/obp60task/PageBattery.cpp @@ -227,7 +227,7 @@ public: epd->print(value1,2); // Real value as formated string } else{ - epd->print("---"); // No sensor data (sensor is off) + epd->print(commonData->fmt->placeholder); // No sensor data (sensor is off) } // ############### Horizontal Line ################ @@ -256,7 +256,7 @@ public: epd->print(value2,1); // Real value as formated string } else{ - epd->print("---"); // No sensor data (sensor is off) + epd->print(commonData->fmt->placeholder); // No sensor data (sensor is off) } // ############### Horizontal Line ################ @@ -285,7 +285,7 @@ public: epd->print(value3,1); // Real value as formated string } else{ - epd->print("---"); // No sensor data (sensor is off) + epd->print(commonData->fmt->placeholder); // No sensor data (sensor is off) } return PAGE_UPDATE; diff --git a/lib/obp60task/PageBattery2.cpp b/lib/obp60task/PageBattery2.cpp index e79cddb..c2399b3 100644 --- a/lib/obp60task/PageBattery2.cpp +++ b/lib/obp60task/PageBattery2.cpp @@ -286,7 +286,7 @@ public: if(value1 > 99.9) epd->print(value1, 0); } else{ - epd->print("---"); // Missing bus data + epd->print(commonData->fmt->placeholder); // Missing bus data } } epd->setFont(&Ubuntu_Bold16pt8b); @@ -300,7 +300,9 @@ public: if(value2 > 9.9 && value2 <= 99.9)epd->print(value2, 1); if(value2 > 99.9) epd->print(value2, 0); } - else epd->print("---"); + else { + epd->print(commonData->fmt->placeholder); + } epd->setFont(&Ubuntu_Bold16pt8b); epd->print("A"); @@ -312,7 +314,9 @@ public: if(value3 > 9.9 && value3 <= 99.9)epd->print(value3, 1); if(value3 > 99.9) epd->print(value3, 0); } - else epd->print("---"); + else { + epd->print(commonData->fmt->placeholder); + } epd->setFont(&Ubuntu_Bold16pt8b); epd->print("W"); diff --git a/lib/obp60task/PageClock.cpp b/lib/obp60task/PageClock.cpp index e00d31e..f043198 100644 --- a/lib/obp60task/PageClock.cpp +++ b/lib/obp60task/PageClock.cpp @@ -208,7 +208,7 @@ public: epd->print(formatDate(dateformat, commonData->data.rtcTime.tm_year + 1900, commonData->data.rtcTime.tm_mon + 1, commonData->data.rtcTime.tm_mday)); } } else { - epd->print("---"); + epd->print(commonData->fmt->placeholder); } } else { epd->print(svalue2old); @@ -235,7 +235,7 @@ public: epd->print(formatTime('s', commonData->data.rtcTime.tm_hour, commonData->data.rtcTime.tm_min, commonData->data.rtcTime.tm_sec)); } } else { - epd->print("---"); + epd->print(commonData->fmt->placeholder); } } else { @@ -246,7 +246,7 @@ public: epd->print("Time"); // Name // Show values sunrise - String sunrise = "---"; + String sunrise = commonData->fmt->placeholder; if (((source == 'G') and gpsvalid) or (homevalid and commonData->data.rtcValid)) { sunrise = String(commonData->sundata.sunriseHour) + ":" + String(commonData->sundata.sunriseMinute + 100).substring(1); svalue5old = sunrise; @@ -266,7 +266,7 @@ public: epd->fillRect(340, 149, 80, 3, commonData->fgcolor); // Show values sunset - String sunset = "---"; + String sunset = commonData->fmt->placeholder; if (((source == 'G') and gpsvalid) or (homevalid and commonData->data.rtcValid)) { sunset = String(commonData->sundata.sunsetHour) + ":" + String(commonData->sundata.sunsetMinute + 100).substring(1); svalue6old = sunset; diff --git a/lib/obp60task/PageGenerator.cpp b/lib/obp60task/PageGenerator.cpp index b26c87f..fb663e7 100644 --- a/lib/obp60task/PageGenerator.cpp +++ b/lib/obp60task/PageGenerator.cpp @@ -168,7 +168,7 @@ public: if(value1 > 99.9) epd->print(value1, 0); } else{ - epd->print("---"); // Missing bus data + epd->print(commonData->fmt->placeholder); // Missing bus data } } epd->setFont(&Ubuntu_Bold16pt8b); @@ -182,7 +182,9 @@ public: if(value2 > 9.9 && value2 <= 99.9)epd->print(value2, 1); if(value2 > 99.9) epd->print(value2, 0); } - else epd->print("---"); + else { + epd->print(commonData->fmt->placeholder); + } epd->setFont(&Ubuntu_Bold16pt8b); epd->print("A"); @@ -194,7 +196,9 @@ public: if(value3 > 9.9 && value3 <= 99.9)epd->print(value3, 1); if(value3 > 99.9) epd->print(value3, 0); } - else epd->print("---"); + else { + epd->print(commonData->fmt->placeholder); + } epd->setFont(&Ubuntu_Bold16pt8b); epd->print("W"); diff --git a/lib/obp60task/PageSkyView.cpp b/lib/obp60task/PageSkyView.cpp index 4a3a7cf..0f9e9f8 100644 --- a/lib/obp60task/PageSkyView.cpp +++ b/lib/obp60task/PageSkyView.cpp @@ -88,7 +88,7 @@ public: // directions - int16_t x1, y1; + int16_t x1, y1; uint16_t w, h; epd->setFont(&Ubuntu_Bold12pt8b); diff --git a/lib/obp60task/PageSolar.cpp b/lib/obp60task/PageSolar.cpp index cd0a1d1..52f326a 100644 --- a/lib/obp60task/PageSolar.cpp +++ b/lib/obp60task/PageSolar.cpp @@ -164,8 +164,8 @@ public: if(value1 > 9.9 && value1 <= 99.9)epd->print(value1, 1); if(value1 > 99.9) epd->print(value1, 0); } - else{ - epd->print("---"); // Missing bus data + else { + epd->print(commonData->fmt->placeholder); // Missing bus data } } epd->setFont(&Ubuntu_Bold16pt8b); @@ -179,7 +179,9 @@ public: if(value2 > 9.9 && value2 <= 99.9)epd->print(value2, 1); if(value2 > 99.9) epd->print(value2, 0); } - else epd->print("---"); + else { + epd->print(commonData->fmt->placeholder); + } epd->setFont(&Ubuntu_Bold16pt8b); epd->print("A"); @@ -191,7 +193,9 @@ public: if(value3 > 9.9 && value3 <= 99.9)epd->print(value3, 1); if(value3 > 99.9) epd->print(value3, 0); } - else epd->print("---"); + else { + epd->print(commonData->fmt->placeholder); + } epd->setFont(&Ubuntu_Bold16pt8b); epd->print("W"); diff --git a/lib/obp60task/PageVoltage.cpp b/lib/obp60task/PageVoltage.cpp index 7f1229a..b1a90ae 100644 --- a/lib/obp60task/PageVoltage.cpp +++ b/lib/obp60task/PageVoltage.cpp @@ -249,7 +249,7 @@ public: } } else{ - epd->print("---"); // Missing bus data + epd->print(commonData->fmt->placeholder); // Missing bus data } } diff --git a/lib/obp60task/PageWindRose.cpp b/lib/obp60task/PageWindRose.cpp index b0440bb..57da0f3 100644 --- a/lib/obp60task/PageWindRose.cpp +++ b/lib/obp60task/PageWindRose.cpp @@ -182,11 +182,11 @@ public: // Show values TWD epd->setFont(&DSEG7Classic_BoldItalic20pt7b); epd->setCursor(295, 65); - if(valid3 == true){ + if (valid3 == true) { epd->print(abs(value3 * 180 / PI), 0); // Value } - else{ - epd->print("---"); // Value + else { + epd->print(commonData->fmt->placeholder); } epd->setFont(&Ubuntu_Bold12pt8b); epd->setCursor(335, 95); diff --git a/lib/obp60task/PageWindRoseFlex.cpp b/lib/obp60task/PageWindRoseFlex.cpp index 9ec0d89..41de2aa 100644 --- a/lib/obp60task/PageWindRoseFlex.cpp +++ b/lib/obp60task/PageWindRoseFlex.cpp @@ -207,7 +207,7 @@ public: epd->print(svalue4); // Value } else{ - epd->print("---"); // Value + epd->print(commonData->fmt->placeholder); } epd->setFont(&Ubuntu_Bold12pt8b); epd->setCursor(335, 95); diff --git a/lib/obp60task/obp60task.cpp b/lib/obp60task/obp60task.cpp index a26c7b9..343bbe3 100644 --- a/lib/obp60task/obp60task.cpp +++ b/lib/obp60task/obp60task.cpp @@ -156,7 +156,7 @@ class BoatValueList{ //additionally we put the necessary values into the paga data - see below GwApi::BoatValue *allBoatValues[MAXVALUES]; int numValues=0; - + bool addValueToList(GwApi::BoatValue *v){ for (int i=0;i Pages; -//the page list class class PageList{ public: Pages pages; diff --git a/lib/obp60task/obp60task.h b/lib/obp60task/obp60task.h index 4d959f0..9d6ad97 100644 --- a/lib/obp60task/obp60task.h +++ b/lib/obp60task/obp60task.h @@ -41,5 +41,10 @@ #ifdef BOARD_OBP40S3 DECLARE_CAPABILITY(obp40,true) #endif - DECLARE_STRING_CAPABILITY(HELP_URL, "https://obp60-v2-docu.readthedocs.io/de/latest/"); // Link to help pages + #ifdef BOARD_OBP60S3 + DECLARE_STRING_CAPABILITY(HELP_URL, "https://obp60-v2-docu.readthedocs.io/en/latest/"); // Link to help pages + #endif + #ifdef BOARD_OBP40S3 + DECLARE_STRING_CAPABILITY(HELP_URL, "https://obp40-v1-docu.readthedocs.io/en/latest/"); // Link to help pages + #endif #endif