From 290254c2df328c6ed928a7e9360b7cd3729a3b7e Mon Sep 17 00:00:00 2001 From: David Panusch Date: Sun, 22 Jan 2023 15:30:53 +0100 Subject: [PATCH 01/37] Refactored minuteVariants to a more human readable enum class to get type safe values. Changes to be committed: modified: include/Animation.h modified: include/Animation.hpp modified: include/Uhr.h modified: include/clockWork.h modified: include/clockWork.hpp modified: include/webPageAdapter.h modified: src/Wortuhr.cpp --- include/Animation.h | 1 + include/Animation.hpp | 21 +++++++++++++++++++-- include/Uhr.h | 8 +++++++- include/clockWork.h | 26 ++++++++++++++------------ include/clockWork.hpp | 27 ++++++++++++++++++++++----- include/webPageAdapter.h | 2 +- src/Wortuhr.cpp | 2 +- 7 files changed, 65 insertions(+), 22 deletions(-) diff --git a/include/Animation.h b/include/Animation.h index 7f098153..5a8048d5 100644 --- a/include/Animation.h +++ b/include/Animation.h @@ -167,6 +167,7 @@ class Animation { void saveMatrix(); void analyzeColors(RgbfColor **dest, RgbfColor **source, RgbfColor &foreground, RgbfColor &background); + uint8_t determineWhichMinuteVariant(); void set_minutes(void); void copy2Stripe(RgbfColor **source); void copyMatrix(RgbfColor **dest, RgbfColor **source); diff --git a/include/Animation.hpp b/include/Animation.hpp index 74240c7b..71034d83 100644 --- a/include/Animation.hpp +++ b/include/Animation.hpp @@ -289,11 +289,28 @@ void Animation::analyzeColors(RgbfColor **dest, RgbfColor **source, //------------------------------------------------------------------------------ +uint8_t Animation::determineWhichMinuteVariant() { + switch (G.minuteVariant) { + case MinuteVariant::Row: + return 0; + break; + case MinuteVariant::Corners: + return 1; + break; + default: + Serial.println("[ERROR] G.minuteVariant undefined"); + return 0; + break; + } +} + +//------------------------------------------------------------------------------ + void Animation::set_minutes() { - if (G.minuteVariant > 0) { + if (G.minuteVariant != MinuteVariant::Off) { uint8_t m = lastMinute % 5; uint16_t minArray[4]; - usedUhrType->getMinArr(minArray, G.minuteVariant - 1); + usedUhrType->getMinArr(minArray, determineWhichMinuteVariant()); if (G.layoutVariant[ReverseMinDirection]) { std::reverse(std::begin(minArray), std::end(minArray)); } diff --git a/include/Uhr.h b/include/Uhr.h index e3e643ea..ad985c43 100644 --- a/include/Uhr.h +++ b/include/Uhr.h @@ -48,6 +48,12 @@ struct OpenWeatherMapData { char cityid[8]; }; +enum class MinuteVariant { + Off = 0, + Row = 1, + Corners = 2, +}; + struct GLOBAL { uint8_t sernr; uint16_t prog; @@ -63,7 +69,7 @@ struct GLOBAL { uint8_t effectSpeed; uint8_t client_nr; uint8_t secondVariant; - uint8_t minuteVariant; + MinuteVariant minuteVariant; bool languageVariant[6]; bool layoutVariant[1]; char timeserver[PAYLOAD_LENGTH]; diff --git a/include/clockWork.h b/include/clockWork.h index 8518be6e..765bca70 100644 --- a/include/clockWork.h +++ b/include/clockWork.h @@ -26,22 +26,24 @@ class ClockWork { void setClock(); void setHour(const uint8_t std, const uint8_t voll); + void setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll); void showMinute(uint8_t min); + uint8_t determineWhichMinuteVariant(); -public: - ClockWork() = default; - ~ClockWork() = default; + public: + ClockWork() = default; + ~ClockWork() = default; - iUhrType *getPointer(uint8_t type); + iUhrType *getPointer(uint8_t type); - void loop(struct tm &tm); + void loop(struct tm & tm); - void initBootLed(); - void initBootLedBlink(); - void initBootLedSweep(uint32_t delay); - void initBootShowIp(const char *buf); - void initBootWifiSignalStrength(int strength); + void initBootLed(); + void initBootLedBlink(); + void initBootLedSweep(uint32_t delay); + void initBootShowIp(const char *buf); + void initBootWifiSignalStrength(int strength); - void initLedStrip(uint8_t num); -}; + void initLedStrip(uint8_t num); + }; diff --git a/include/clockWork.hpp b/include/clockWork.hpp index 9ba536f5..dc6811af 100644 --- a/include/clockWork.hpp +++ b/include/clockWork.hpp @@ -254,13 +254,30 @@ void ClockWork::setHour(const uint8_t std, const uint8_t voll) { //------------------------------------------------------------------------------ +uint8_t ClockWork::determineWhichMinuteVariant() { + switch (G.minuteVariant) { + case MinuteVariant::Row: + return 0; + break; + case MinuteVariant::Corners: + return 1; + break; + default: + Serial.println("[ERROR] G.minuteVariant undefined"); + return 0; + break; + } +} + +//------------------------------------------------------------------------------ + void ClockWork::showMinute(uint8_t min) { - if (G.minuteVariant > 0) { + if (G.minuteVariant != MinuteVariant::Off) { while (min > 4) { min -= 5; } uint16_t minArray[4]; - usedUhrType->getMinArr(minArray, G.minuteVariant - 1); + usedUhrType->getMinArr(minArray, determineWhichMinuteVariant()); if (G.layoutVariant[ReverseMinDirection]) { std::reverse(std::begin(minArray), std::end(minArray)); } @@ -751,7 +768,7 @@ void ClockWork::loop(struct tm &tm) { } config["effectBri"] = G.effectBri; config["secondVariant"] = G.secondVariant; - config["minuteVariant"] = G.minuteVariant; + config["minuteVariant"] = static_cast(G.minuteVariant); config["ldr"] = G.ldr; config["ldrCal"] = G.ldrCal; config["cityid"] = G.openWeatherMap.cityid; @@ -1007,7 +1024,7 @@ void ClockWork::loop(struct tm &tm) { parametersChanged = false; if (usedUhrType->hasSecondsFrame() && G.secondVariant < 1 && - G.minuteVariant < 2) { + G.minuteVariant != MinuteVariant::Corners) { led.setFrameColor(); } G.prog = COMMAND_IDLE; @@ -1033,7 +1050,7 @@ void ClockWork::loopSecondsFrame() { } if (lastSecond48 != _second48) { if (G.prog == 0 && G.conf == 0) { - if (G.secondVariant == 1 || G.minuteVariant == 2) { + if (G.secondVariant == 1 || G.minuteVariant == MinuteVariant::Corners) { led.clearFrame(); } if (G.secondVariant > 0) { diff --git a/include/webPageAdapter.h b/include/webPageAdapter.h index 59d3f34f..f0b9235a 100644 --- a/include/webPageAdapter.h +++ b/include/webPageAdapter.h @@ -339,7 +339,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t *payload, case COMMAND_SET_MINUTE: { G.conf = COMMAND_SET_MINUTE; - G.minuteVariant = split(payload, 3); + G.minuteVariant = static_cast(split(payload, 3)); break; } diff --git a/src/Wortuhr.cpp b/src/Wortuhr.cpp index bae8f790..1cc56184 100644 --- a/src/Wortuhr.cpp +++ b/src/Wortuhr.cpp @@ -155,7 +155,7 @@ void setup() { G.effectSpeed = 10; G.client_nr = 0; G.secondVariant = 0; - G.minuteVariant = 1; + G.minuteVariant = MinuteVariant::Row; G.ldr = 0; G.ldrCal = 0; strcpy(G.openWeatherMap.cityid, ""); From ef823edfc024ea40e7f998726f0f26452821755a Mon Sep 17 00:00:00 2001 From: David Panusch Date: Sun, 22 Jan 2023 17:23:33 +0100 Subject: [PATCH 02/37] Added feature to manage minute display options on all Clocktypes "Off" and "Normal". Changed order of minuteVariants accordingly. Changes to be committed: modified: include/Uhr.h modified: include/Uhrtypes/DE10x11.frame.hpp modified: include/Uhrtypes/DE11x11.hpp modified: include/Uhrtypes/DE21x11.weather.hpp modified: src/Wortuhr.cpp modified: webpage/index.html modified: webpage/script.js --- include/Uhr.h | 4 ++-- include/Uhrtypes/DE10x11.frame.hpp | 5 +++-- include/Uhrtypes/DE11x11.hpp | 4 ++-- include/Uhrtypes/DE21x11.weather.hpp | 2 +- src/Wortuhr.cpp | 2 +- webpage/index.html | 13 ++++++------- webpage/script.js | 13 +++++++++++++ 7 files changed, 28 insertions(+), 15 deletions(-) diff --git a/include/Uhr.h b/include/Uhr.h index ad985c43..c5f90b68 100644 --- a/include/Uhr.h +++ b/include/Uhr.h @@ -50,8 +50,8 @@ struct OpenWeatherMapData { enum class MinuteVariant { Off = 0, - Row = 1, - Corners = 2, + Corners = 1, + Row = 2, }; struct GLOBAL { diff --git a/include/Uhrtypes/DE10x11.frame.hpp b/include/Uhrtypes/DE10x11.frame.hpp index f11f653b..ac4e1371 100644 --- a/include/Uhrtypes/DE10x11.frame.hpp +++ b/include/Uhrtypes/DE10x11.frame.hpp @@ -27,8 +27,9 @@ class De10x11frame_t : public iUhrType { //------------------------------------------------------------------------------ const uint16_t minArr[2][4] = { - - {152, 150, 148, 146}, {0, 12, 168, 156}}; + {0, 12, 168, 156}, // LEDs for "Normal" minute display + {152, 150, 148, 146} // LEDs für "Row" type minute display + }; //------------------------------------------------------------------------------ diff --git a/include/Uhrtypes/DE11x11.hpp b/include/Uhrtypes/DE11x11.hpp index 3774e389..e71393c6 100644 --- a/include/Uhrtypes/DE11x11.hpp +++ b/include/Uhrtypes/DE11x11.hpp @@ -20,8 +20,8 @@ class De11x11_t : public iUhrType { public: const uint16_t minArr[2][4] = { - {110, 111, 112, 113}, // LED für Minuten Anzeige Zeile - {121, 122, 123, 124} // LED für Minuten Anzeige Ecken + {121, 122, 123, 124}, // LEDs for "Normal" minute display + {110, 111, 112, 113} // LEDs für "Row" type minute display }; //------------------------------------------------------------------------------ diff --git a/include/Uhrtypes/DE21x11.weather.hpp b/include/Uhrtypes/DE21x11.weather.hpp index a7b99564..72282230 100644 --- a/include/Uhrtypes/DE21x11.weather.hpp +++ b/include/Uhrtypes/DE21x11.weather.hpp @@ -30,7 +30,7 @@ class De21x11Weather_t : public iUhrType { public: - const uint16_t minArr[4] = {112, 114, 116, 118}; // Minuten LED´s für Zeile + const uint16_t minArr[4] = {112, 114, 116, 118}; //------------------------------------------------------------------------------ diff --git a/src/Wortuhr.cpp b/src/Wortuhr.cpp index 1cc56184..202f2b04 100644 --- a/src/Wortuhr.cpp +++ b/src/Wortuhr.cpp @@ -155,7 +155,7 @@ void setup() { G.effectSpeed = 10; G.client_nr = 0; G.secondVariant = 0; - G.minuteVariant = MinuteVariant::Row; + G.minuteVariant = MinuteVariant::Corners; G.ldr = 0; G.ldrCal = 0; strcpy(G.openWeatherMap.cityid, ""); diff --git a/webpage/index.html b/webpage/index.html index 2e149e4d..edcd3412 100644 --- a/webpage/index.html +++ b/webpage/index.html @@ -157,24 +157,23 @@

Einstellung

Anzeigeoptinen

- -
+
-

Minuten-Anzeige

+

Minuten Optionen

- - - + +
+

Sekunden-Anzeige

diff --git a/webpage/script.js b/webpage/script.js index 3d5b212c..4b1bda6b 100644 --- a/webpage/script.js +++ b/webpage/script.js @@ -252,6 +252,18 @@ function enableSpecific(cls, enbl) { } } +/// only shows elements of class `cls` if `enbl` is true. +function removeSpecificOption(cls, val, bool) { + if (bool) { + var selectobject = document.getElementById(cls); + for (var i = 0; i < selectobject.length; i++) { + if (selectobject.options[i].value === val) { + selectobject.remove(i); + } + } + } +} + function initWebsocket() { websocket = new WebSocket(ipEsp); @@ -353,6 +365,7 @@ function initWebsocket() { enableSpecific("specific-layout-5", data.hasWeatherLayout); enableSpecific("specific-layout-6", data.UhrtypeDef === 10); // En10x11 enableSpecific("specific-colortype-4", data.colortype === 4); + removeSpecificOption("show-minutes", "2", data.UhrtypeDef !== 4); // MinuteVariant "Row" autoLdrEnabled = data.autoLdrEnabled; $("#auto-ldr-enabled").set("value", autoLdrEnabled); From a764a18f4e0617c07be84fdf91f4331fbe0545df Mon Sep 17 00:00:00 2001 From: David Panusch Date: Sun, 22 Jan 2023 17:28:30 +0100 Subject: [PATCH 03/37] Resoled an error for Wifi Settings Changes to be committed: modified: include/network.hpp --- include/network.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/network.hpp b/include/network.hpp index 4d727936..cc3a7644 100644 --- a/include/network.hpp +++ b/include/network.hpp @@ -28,7 +28,7 @@ String Network::getSSID() { return wifiManager.getWiFiSSID(); } void Network::setup(const char *hostname) { wifiManager.setHostname(hostname); -#ifdef MANUAL_WIFI_SETTINGS +#if MANUAL_WIFI_SETTINGS wifiManager.preloadWiFi(WIFI_SSID, WIFI_PASSWORD); #endif wifiManager.autoConnect(connectionSSID); From 862363051136b5eebb68ca04dbc28a0c1de85740 Mon Sep 17 00:00:00 2001 From: David Panusch Date: Sun, 22 Jan 2023 17:59:36 +0100 Subject: [PATCH 04/37] Minor Improvements in showMinute() --- include/clockWork.hpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/include/clockWork.hpp b/include/clockWork.hpp index dc6811af..4048dddd 100644 --- a/include/clockWork.hpp +++ b/include/clockWork.hpp @@ -273,9 +273,8 @@ uint8_t ClockWork::determineWhichMinuteVariant() { void ClockWork::showMinute(uint8_t min) { if (G.minuteVariant != MinuteVariant::Off) { - while (min > 4) { - min -= 5; - } + min %= 5; + uint16_t minArray[4]; usedUhrType->getMinArr(minArray, determineWhichMinuteVariant()); if (G.layoutVariant[ReverseMinDirection]) { From b319f3a9a38ffe2d35f516eefc6d78266cc76578 Mon Sep 17 00:00:00 2001 From: David Panusch Date: Sun, 22 Jan 2023 18:54:11 +0100 Subject: [PATCH 05/37] Added option to show minutes as words, only on NL10x11. Changes to be committed: modified: include/Uhr.h renamed: include/Uhrtypes/nl10x11.hpp -> include/Uhrtypes/NL10x11.hpp modified: include/Uhrtypes/Uhrtype.hpp modified: include/clockWork.h modified: include/clockWork.hpp modified: webpage/index.html modified: webpage/script.js --- include/Uhr.h | 1 + include/Uhrtypes/{nl10x11.hpp => NL10x11.hpp} | 176 ++++++++++-------- include/Uhrtypes/Uhrtype.hpp | 3 + include/clockWork.h | 25 +-- include/clockWork.hpp | 40 +++- webpage/index.html | 7 +- webpage/script.js | 2 +- 7 files changed, 155 insertions(+), 99 deletions(-) rename include/Uhrtypes/{nl10x11.hpp => NL10x11.hpp} (71%) diff --git a/include/Uhr.h b/include/Uhr.h index c5f90b68..f5437e9f 100644 --- a/include/Uhr.h +++ b/include/Uhr.h @@ -52,6 +52,7 @@ enum class MinuteVariant { Off = 0, Corners = 1, Row = 2, + InWords = 3, }; struct GLOBAL { diff --git a/include/Uhrtypes/nl10x11.hpp b/include/Uhrtypes/NL10x11.hpp similarity index 71% rename from include/Uhrtypes/nl10x11.hpp rename to include/Uhrtypes/NL10x11.hpp index f6d4ec0f..cc018341 100644 --- a/include/Uhrtypes/nl10x11.hpp +++ b/include/Uhrtypes/NL10x11.hpp @@ -3,25 +3,21 @@ /* * Layout Front * - * H E T R I S L V I J F - * T I E N Z J A R U A G - * D R I E S K W A R T N - * F T O V E R V O O R M - * H A L F X T W A A L F - * T W E E N Z E V E N P - * L D R I E B Y V I J F - * E L F A C H T V I E R - * N E G E N P M T I E N - * O S Z E S T L P U U R + * H E T L I S H N U W S + * T W I N T I G T I E N + * V I J F B Y K W A R T + * V O O R P M O V E R U + * H A L F I T W E E N N + * A C H T D R I E Z E S + * Z E V E N E G E N T O + * T W A A L F A T I E N + * V I E R V I J F E L F + * U U R A G E W E E S T * */ -class Nl10x11_t : public iUhrType { +class NL10x11_t : public iUhrType { public: - virtual const bool hasZwanzig() override { return false; } - - //------------------------------------------------------------------------------ - void show(uint8_t text) override { switch (text) { @@ -38,39 +34,40 @@ class Nl10x11_t : public iUhrType { case nach: case v_nach: - Letter_set(41); - Letter_set(40); - Letter_set(39); - Letter_set(38); - break; - - case vor: - case v_vor: Letter_set(37); Letter_set(36); Letter_set(35); Letter_set(34); break; + case vor: + case v_vor: + Letter_set(43); + Letter_set(42); + Letter_set(41); + Letter_set(40); + break; + case viertel: - Letter_set(27); Letter_set(28); Letter_set(29); Letter_set(30); + Letter_set(31); + Letter_set(32); break; case fuenf: - Letter_set(7); - Letter_set(8); - Letter_set(9); - Letter_set(10); + Letter_set(22); + Letter_set(23); + Letter_set(24); + Letter_set(25); break; case zehn: - Letter_set(21); - Letter_set(20); - Letter_set(19); - Letter_set(18); + Letter_set(14); + Letter_set(13); + Letter_set(12); + Letter_set(11); break; case halb: @@ -81,94 +78,111 @@ class Nl10x11_t : public iUhrType { break; case h_ein: - Letter_set(63); - Letter_set(62); - Letter_set(61); + Letter_set(51); + Letter_set(52); + Letter_set(53); break; case uhr: - Letter_set(101); - Letter_set(100); - Letter_set(99); + Letter_set(109); + Letter_set(108); + Letter_set(107); break; case h_zwei: - Letter_set(65); - Letter_set(64); - Letter_set(63); - Letter_set(62); + Letter_set(49); + Letter_set(50); + Letter_set(51); + Letter_set(52); break; case h_drei: - Letter_set(67); - Letter_set(68); - Letter_set(69); - Letter_set(70); + Letter_set(61); + Letter_set(60); + Letter_set(59); + Letter_set(58); break; case h_vier: - Letter_set(80); - Letter_set(79); - Letter_set(78); - Letter_set(77); + Letter_set(88); + Letter_set(89); + Letter_set(90); + Letter_set(91); break; case h_fuenf: - Letter_set(73); - Letter_set(74); - Letter_set(75); - Letter_set(76); + Letter_set(92); + Letter_set(93); + Letter_set(94); + Letter_set(95); break; case h_sechs: - Letter_set(107); - Letter_set(106); - Letter_set(105); + Letter_set(57); + Letter_set(56); + Letter_set(55); break; case h_sieben: - Letter_set(60); - Letter_set(59); - Letter_set(58); - Letter_set(57); - Letter_set(56); + Letter_set(66); + Letter_set(67); + Letter_set(68); + Letter_set(69); + Letter_set(70); break; case h_acht: - Letter_set(84); - Letter_set(83); - Letter_set(82); - Letter_set(81); + Letter_set(65); + Letter_set(64); + Letter_set(63); + Letter_set(62); break; case h_neun: - Letter_set(88); - Letter_set(89); - Letter_set(90); - Letter_set(91); - Letter_set(92); + Letter_set(70); + Letter_set(71); + Letter_set(72); + Letter_set(73); + Letter_set(74); break; case h_zehn: - Letter_set(95); + Letter_set(80); + Letter_set(79); + Letter_set(78); + Letter_set(77); + break; + + case h_elf: Letter_set(96); Letter_set(97); Letter_set(98); break; - case h_elf: + case h_zwoelf: Letter_set(87); Letter_set(86); Letter_set(85); + Letter_set(84); + Letter_set(83); + Letter_set(82); break; - case h_zwoelf: - Letter_set(49); - Letter_set(50); - Letter_set(51); - Letter_set(52); - Letter_set(53); - Letter_set(54); + case nur: + // Nu + Letter_set(7); + Letter_set(8); + break; + + case gewesen: + // Geweest + Letter_set(105); + Letter_set(104); + Letter_set(103); + Letter_set(102); + Letter_set(101); + Letter_set(100); + Letter_set(99); break; default: @@ -177,4 +191,4 @@ class Nl10x11_t : public iUhrType { }; }; -Nl10x11_t _nl10x11; \ No newline at end of file +NL10x11_t _nl10x11; \ No newline at end of file diff --git a/include/Uhrtypes/Uhrtype.hpp b/include/Uhrtypes/Uhrtype.hpp index f7e9429d..b92718e8 100644 --- a/include/Uhrtypes/Uhrtype.hpp +++ b/include/Uhrtypes/Uhrtype.hpp @@ -45,6 +45,9 @@ enum ledText { v_vor = 123, v_nach = 124, a_quarter = 125, + nur = 126, + beina = 127, + gewesen = 128, h_ein = 151, h_zwei = 152, diff --git a/include/clockWork.h b/include/clockWork.h index 765bca70..05c400e2 100644 --- a/include/clockWork.h +++ b/include/clockWork.h @@ -29,21 +29,22 @@ class ClockWork { void setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll); void showMinute(uint8_t min); + void showMinuteInWords(uint8_t min); uint8_t determineWhichMinuteVariant(); - public: - ClockWork() = default; - ~ClockWork() = default; +public: + ClockWork() = default; + ~ClockWork() = default; - iUhrType *getPointer(uint8_t type); + iUhrType *getPointer(uint8_t type); - void loop(struct tm & tm); + void loop(struct tm &tm); - void initBootLed(); - void initBootLedBlink(); - void initBootLedSweep(uint32_t delay); - void initBootShowIp(const char *buf); - void initBootWifiSignalStrength(int strength); + void initBootLed(); + void initBootLedBlink(); + void initBootLedSweep(uint32_t delay); + void initBootShowIp(const char *buf); + void initBootWifiSignalStrength(int strength); - void initLedStrip(uint8_t num); - }; + void initLedStrip(uint8_t num); +}; diff --git a/include/clockWork.hpp b/include/clockWork.hpp index 4048dddd..0855bf71 100644 --- a/include/clockWork.hpp +++ b/include/clockWork.hpp @@ -271,10 +271,30 @@ uint8_t ClockWork::determineWhichMinuteVariant() { //------------------------------------------------------------------------------ +void ClockWork::showMinuteInWords(uint8_t min) { + switch (min) { + case 0: + usedUhrType->show(nur); + break; + case 1: + case 2: + usedUhrType->show(gewesen); + break; + case 3: + case 4: + usedUhrType->show(beina); + break; + default: + break; + } +} + +//------------------------------------------------------------------------------ + void ClockWork::showMinute(uint8_t min) { if (G.minuteVariant != MinuteVariant::Off) { min %= 5; - + uint16_t minArray[4]; usedUhrType->getMinArr(minArray, determineWhichMinuteVariant()); if (G.layoutVariant[ReverseMinDirection]) { @@ -283,6 +303,9 @@ void ClockWork::showMinute(uint8_t min) { for (uint8_t i = 0; i < min; i++) { frontMatrix[minArray[i]] = true; } + } else if (G.UhrtypeDef == Nl10x11 && + G.minuteVariant == MinuteVariant::InWords) { + showMinuteInWords(min); } } @@ -649,6 +672,17 @@ void ClockWork::initLedStrip(uint8_t num) { //------------------------------------------------------------------------------ +void resetMinVariantIfNotAvailable() { + if (G.UhrtypeDef != Nl10x11 && G.minuteVariant == MinuteVariant::InWords) { + G.minuteVariant = MinuteVariant::Off; + } else if (G.UhrtypeDef != Ger10x11Frame && + G.minuteVariant == MinuteVariant::Row) { + G.minuteVariant = MinuteVariant::Off; + } +} + +//------------------------------------------------------------------------------ + void ClockWork::loop(struct tm &tm) { unsigned long currentMillis = millis(); countMillisSpeed += currentMillis - previousMillis; @@ -914,6 +948,7 @@ void ClockWork::loop(struct tm &tm) { eeprom::write(); Serial.printf("Uhrtype: %u\n", G.UhrtypeDef); usedUhrType = getPointer(G.UhrtypeDef); + resetMinVariantIfNotAvailable(); G.conf = COMMAND_IDLE; break; } @@ -1049,7 +1084,8 @@ void ClockWork::loopSecondsFrame() { } if (lastSecond48 != _second48) { if (G.prog == 0 && G.conf == 0) { - if (G.secondVariant == 1 || G.minuteVariant == MinuteVariant::Corners) { + if (G.secondVariant == 1 || + G.minuteVariant == MinuteVariant::Corners) { led.clearFrame(); } if (G.secondVariant > 0) { diff --git a/webpage/index.html b/webpage/index.html index edcd3412..976f31da 100644 --- a/webpage/index.html +++ b/webpage/index.html @@ -154,7 +154,7 @@

Einstellung

-

Anzeigeoptinen

+

Anzeigeoptionen

@@ -167,6 +167,7 @@

Minuten Optionen

+
@@ -176,11 +177,11 @@

Minuten Optionen

-

Sekunden-Anzeige

+

Sekundenanzeige

- +
diff --git a/webpage/script.js b/webpage/script.js index 8f6ea848..73c709c2 100644 --- a/webpage/script.js +++ b/webpage/script.js @@ -362,7 +362,7 @@ function initWebsocket() { enableSpecific("specific-layout-3", data.hasZwanzig); enableSpecific("specific-layout-4", data.hasSecondsFrame); enableSpecific("specific-layout-5", data.hasWeatherLayout); - enableSpecific("specific-layout-6", data.UhrtypeDef === 10); // En10x11 + enableSpecific("specific-layout-6", data.UhrtypeDef === 10); // EN10x11 enableSpecific("specific-colortype-4", data.colortype === 4); removeSpecificOption("show-minutes", "2", data.UhrtypeDef !== 4); // MinuteVariant "Row" removeSpecificOption("show-minutes", "3", data.UhrtypeDef !== 9); // MinuteVariant "In Words" From b86197a87ca34fe6b504b4d3a30c212fbd2a2793 Mon Sep 17 00:00:00 2001 From: David Panusch Date: Sun, 22 Jan 2023 19:35:19 +0100 Subject: [PATCH 07/37] Resolved an error with NL Minute Setup --- include/clockWork.hpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/include/clockWork.hpp b/include/clockWork.hpp index 6db83d27..2a358625 100644 --- a/include/clockWork.hpp +++ b/include/clockWork.hpp @@ -292,9 +292,10 @@ void ClockWork::showMinuteInWords(uint8_t min) { //------------------------------------------------------------------------------ void ClockWork::showMinute(uint8_t min) { - if (G.minuteVariant != MinuteVariant::Off) { - min %= 5; - + min %= 5; + if (G.UhrtypeDef == Nl10x11 && G.minuteVariant == MinuteVariant::InWords) { + showMinuteInWords(min); + } else if (G.minuteVariant != MinuteVariant::Off) { uint16_t minArray[4]; usedUhrType->getMinArr(minArray, determineWhichMinuteVariant()); if (G.layoutVariant[ReverseMinDirection]) { @@ -303,9 +304,6 @@ void ClockWork::showMinute(uint8_t min) { for (uint8_t i = 0; i < min; i++) { frontMatrix[minArray[i]] = true; } - } else if (G.UhrtypeDef == Nl10x11 && - G.minuteVariant == MinuteVariant::InWords) { - showMinuteInWords(min); } } From 144247a5d848289c887e7a4349af607250b3ccf6 Mon Sep 17 00:00:00 2001 From: David Panusch Date: Fri, 27 Jan 2023 20:49:37 +0100 Subject: [PATCH 08/37] Refactored setHour and setMinute with bool variable Changes to be committed: modified: include/clockWork.h modified: include/clockWork.hpp --- include/clockWork.h | 4 +- include/clockWork.hpp | 87 ++++++++++++------------------------------- 2 files changed, 25 insertions(+), 66 deletions(-) diff --git a/include/clockWork.h b/include/clockWork.h index 05c400e2..d75ff501 100644 --- a/include/clockWork.h +++ b/include/clockWork.h @@ -25,9 +25,9 @@ class ClockWork { void calcClockface(); void setClock(); - void setHour(const uint8_t std, const uint8_t voll); + void setHour(const uint8_t std, const bool fullHour); - void setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll); + void setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour); void showMinute(uint8_t min); void showMinuteInWords(uint8_t min); uint8_t determineWhichMinuteVariant(); diff --git a/include/clockWork.hpp b/include/clockWork.hpp index 2a358625..d95e9cd6 100644 --- a/include/clockWork.hpp +++ b/include/clockWork.hpp @@ -162,13 +162,13 @@ void ClockWork::initBootWifiSignalStrength(int strength) { //------------------------------------------------------------------------------ -void ClockWork::setHour(const uint8_t std, const uint8_t voll) { - switch (std) { +void ClockWork::setHour(const uint8_t hour, const bool fullHour) { + switch (hour % 12) { case 0: usedUhrType->show(h_zwoelf); break; case 1: - if (voll == 1 || G.UhrtypeDef == Eng10x11) { + if (fullHour || G.UhrtypeDef == Eng10x11) { usedUhrType->show(h_ein); } else { usedUhrType->show(eins); @@ -207,46 +207,6 @@ void ClockWork::setHour(const uint8_t std, const uint8_t voll) { case 12: usedUhrType->show(h_zwoelf); break; - case 13: - if (voll == 1 || G.UhrtypeDef == Eng10x11) { - usedUhrType->show(h_ein); - } else { - usedUhrType->show(eins); - } - break; - case 14: - usedUhrType->show(h_zwei); - break; - case 15: - usedUhrType->show(h_drei); - break; - case 16: - usedUhrType->show(h_vier); - break; - case 17: - usedUhrType->show(h_fuenf); - break; - case 18: - usedUhrType->show(h_sechs); - break; - case 19: - usedUhrType->show(h_sieben); - break; - case 20: - usedUhrType->show(h_acht); - break; - case 21: - usedUhrType->show(h_neun); - break; - case 22: - usedUhrType->show(h_zehn); - break; - case 23: - usedUhrType->show(h_elf); - break; - case 24: - usedUhrType->show(h_zwoelf); - break; default: break; } @@ -309,7 +269,7 @@ void ClockWork::showMinute(uint8_t min) { //------------------------------------------------------------------------------ -void ClockWork::setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll) { +void ClockWork::setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour) { if (!usedUhrType->has24HourLayout()) { showMinute(min); min /= 5; @@ -318,7 +278,7 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll) { switch (min) { case 0: // full hour usedUhrType->show(uhr); - voll = 1; + fullHour = true; break; case 1: usedUhrType->show(m_eine); @@ -345,7 +305,7 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll) { case 15: // quarter past if (G.languageVariant[ItIs15]) { usedUhrType->show(viertel); - offsetH = 1; + offsetHour = 1; } else { // A Quarter past if (G.languageVariant[EN_ShowAQuarter]) { @@ -386,7 +346,7 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll) { usedUhrType->show(fuenf); usedUhrType->show(vor); usedUhrType->show(halb); - offsetH = 1; + offsetHour = 1; } break; case 26: @@ -395,14 +355,14 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll) { usedUhrType->show(30 - min); usedUhrType->show(vor); usedUhrType->show(halb); - offsetH = 1; + offsetHour = 1; break; case 29: usedUhrType->show(m_eine); usedUhrType->show(minute); usedUhrType->show(vor); usedUhrType->show(halb); - offsetH = 1; + offsetHour = 1; break; case 30: // half if (G.UhrtypeDef == Eng10x11) { @@ -410,7 +370,7 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll) { usedUhrType->show(nach); } else { usedUhrType->show(halb); - offsetH = 1; + offsetHour = 1; } break; case 31: @@ -418,7 +378,7 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll) { usedUhrType->show(minute); usedUhrType->show(nach); usedUhrType->show(halb); - offsetH = 1; + offsetHour = 1; break; case 32: case 33: @@ -427,13 +387,12 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll) { if (usedUhrType->hasTwentyfive()) { usedUhrType->show(twentyfive); usedUhrType->show(vor); - offsetH = 1; } else { usedUhrType->show(fuenf); usedUhrType->show(nach); usedUhrType->show(halb); - offsetH = 1; } + offsetHour = 1; break; case 36: case 37: @@ -442,7 +401,7 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll) { usedUhrType->show(min - 30); usedUhrType->show(nach); usedUhrType->show(halb); - offsetH = 1; + offsetHour = 1; break; case 40: // 20 to if (!usedUhrType->hasZwanzig() || G.languageVariant[ItIs40]) { @@ -453,7 +412,7 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll) { usedUhrType->show(zwanzig); usedUhrType->show(vor); } - offsetH = 1; + offsetHour = 1; break; case 41: case 42: @@ -461,7 +420,7 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll) { case 44: usedUhrType->show(60 - min); usedUhrType->show(vor); - offsetH = 1; + offsetHour = 1; break; case 45: // quarter to if (usedUhrType->hasDreiviertel() && G.languageVariant[ItIs45]) { @@ -479,7 +438,7 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll) { usedUhrType->show(v_vor); } } - offsetH = 1; + offsetHour = 1; break; case 46: case 47: @@ -493,7 +452,7 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll) { case 55: usedUhrType->show(60 - min); usedUhrType->show(vor); - offsetH = 1; + offsetHour = 1; break; case 56: case 57: @@ -501,13 +460,13 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetH, uint8_t &voll) { usedUhrType->show(60 - min); usedUhrType->show(minuten); usedUhrType->show(vor); - offsetH = 1; + offsetHour = 1; break; case 59: usedUhrType->show(m_eine); usedUhrType->show(minute); usedUhrType->show(vor); - offsetH = 1; + offsetHour = 1; break; default: break; @@ -561,11 +520,11 @@ void ClockWork::setClock() { usedUhrType->show(es_ist); } - uint8_t offsetH = 0; - uint8_t voll = 0; + uint8_t offsetHour = 0; + bool fullHour = 0; - setMinute(_minute, offsetH, voll); - setHour(_hour + offsetH, voll); + setMinute(_minute, offsetHour, fullHour); + setHour(_hour + offsetHour, fullHour); } //------------------------------------------------------------------------------ From 4662f22f1b8562b3d723e0050f5cc05584afdb03 Mon Sep 17 00:00:00 2001 From: David Panusch Date: Fri, 27 Jan 2023 20:53:27 +0100 Subject: [PATCH 09/37] Added Language Indicator to Uhrtypes and added Condition in setHour to use it. Changes to be committed: modified: include/Uhrtypes/DE10x11.2clock.hpp modified: include/Uhrtypes/DE10x11.alternative.hpp modified: include/Uhrtypes/DE10x11.frame.hpp modified: include/Uhrtypes/DE10x11.hpp modified: include/Uhrtypes/DE11x11.hpp modified: include/Uhrtypes/DE11x11.v2.hpp modified: include/Uhrtypes/DE17x17.hpp modified: include/Uhrtypes/DE21x11.weather.hpp modified: include/Uhrtypes/EN10x11.hpp modified: include/Uhrtypes/NL10x11.hpp modified: include/Uhrtypes/Uhrtype.hpp modified: include/clockWork.hpp --- include/Uhrtypes/DE10x11.2clock.hpp | 6 ++++++ include/Uhrtypes/DE10x11.alternative.hpp | 6 ++++++ include/Uhrtypes/DE10x11.frame.hpp | 6 ++++++ include/Uhrtypes/DE10x11.hpp | 6 ++++++ include/Uhrtypes/DE11x11.hpp | 6 ++++++ include/Uhrtypes/DE11x11.v2.hpp | 6 ++++++ include/Uhrtypes/DE17x17.hpp | 6 ++++++ include/Uhrtypes/DE21x11.weather.hpp | 6 ++++++ include/Uhrtypes/EN10x11.hpp | 6 ++++++ include/Uhrtypes/NL10x11.hpp | 5 +++-- include/Uhrtypes/Uhrtype.hpp | 2 +- include/clockWork.hpp | 2 +- 12 files changed, 59 insertions(+), 4 deletions(-) diff --git a/include/Uhrtypes/DE10x11.2clock.hpp b/include/Uhrtypes/DE10x11.2clock.hpp index a82db247..4e833db0 100644 --- a/include/Uhrtypes/DE10x11.2clock.hpp +++ b/include/Uhrtypes/DE10x11.2clock.hpp @@ -18,6 +18,12 @@ class De10x11Clock_t : public iUhrType { public: + virtual LanguageAbbreviation usedLang() override { + return LanguageAbbreviation::DE; + }; + + //------------------------------------------------------------------------------ + virtual const bool hasDreiviertel() override { return true; } //------------------------------------------------------------------------------ diff --git a/include/Uhrtypes/DE10x11.alternative.hpp b/include/Uhrtypes/DE10x11.alternative.hpp index 3e5fc57e..37ac3cbe 100644 --- a/include/Uhrtypes/DE10x11.alternative.hpp +++ b/include/Uhrtypes/DE10x11.alternative.hpp @@ -20,6 +20,12 @@ class De10x11Alternative_t : public iUhrType { public: + virtual LanguageAbbreviation usedLang() override { + return LanguageAbbreviation::DE; + }; + + //------------------------------------------------------------------------------ + virtual const bool hasDreiviertel() override { return true; } //------------------------------------------------------------------------------ diff --git a/include/Uhrtypes/DE10x11.frame.hpp b/include/Uhrtypes/DE10x11.frame.hpp index ac4e1371..5cc5c7cf 100644 --- a/include/Uhrtypes/DE10x11.frame.hpp +++ b/include/Uhrtypes/DE10x11.frame.hpp @@ -18,6 +18,12 @@ class De10x11frame_t : public iUhrType { public: + virtual LanguageAbbreviation usedLang() override { + return LanguageAbbreviation::DE; + }; + + //------------------------------------------------------------------------------ + const uint16_t rmatrix[48] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 38, 39, 64, 65, 90, 91, 116, 117, 142, 143, diff --git a/include/Uhrtypes/DE10x11.hpp b/include/Uhrtypes/DE10x11.hpp index abc3525b..d19cd171 100644 --- a/include/Uhrtypes/DE10x11.hpp +++ b/include/Uhrtypes/DE10x11.hpp @@ -21,6 +21,12 @@ class De10x11_t : public iUhrType { public: + virtual LanguageAbbreviation usedLang() override { + return LanguageAbbreviation::DE; + }; + + //------------------------------------------------------------------------------ + #if (LED_LAYOUT_REVERSE) /* diff --git a/include/Uhrtypes/DE11x11.hpp b/include/Uhrtypes/DE11x11.hpp index e71393c6..00344d99 100644 --- a/include/Uhrtypes/DE11x11.hpp +++ b/include/Uhrtypes/DE11x11.hpp @@ -19,6 +19,12 @@ class De11x11_t : public iUhrType { public: + virtual LanguageAbbreviation usedLang() override { + return LanguageAbbreviation::DE; + }; + + //------------------------------------------------------------------------------ + const uint16_t minArr[2][4] = { {121, 122, 123, 124}, // LEDs for "Normal" minute display {110, 111, 112, 113} // LEDs für "Row" type minute display diff --git a/include/Uhrtypes/DE11x11.v2.hpp b/include/Uhrtypes/DE11x11.v2.hpp index 268578ef..da5dcb16 100644 --- a/include/Uhrtypes/DE11x11.v2.hpp +++ b/include/Uhrtypes/DE11x11.v2.hpp @@ -19,6 +19,12 @@ class De11x11V2_t : public iUhrType { public: + virtual LanguageAbbreviation usedLang() override { + return LanguageAbbreviation::DE; + }; + + //------------------------------------------------------------------------------ + virtual const uint16_t NUM_PIXELS() override { return 125; }; //------------------------------------------------------------------------------ diff --git a/include/Uhrtypes/DE17x17.hpp b/include/Uhrtypes/DE17x17.hpp index 8cbb081e..43231e9f 100644 --- a/include/Uhrtypes/DE17x17.hpp +++ b/include/Uhrtypes/DE17x17.hpp @@ -24,6 +24,12 @@ class De17x17_t : public iUhrType { public: + virtual LanguageAbbreviation usedLang() override { + return LanguageAbbreviation::DE; + }; + + //------------------------------------------------------------------------------ + virtual const uint16_t NUM_PIXELS() override { return 291; }; //------------------------------------------------------------------------------ diff --git a/include/Uhrtypes/DE21x11.weather.hpp b/include/Uhrtypes/DE21x11.weather.hpp index 72282230..c33a68b7 100644 --- a/include/Uhrtypes/DE21x11.weather.hpp +++ b/include/Uhrtypes/DE21x11.weather.hpp @@ -30,6 +30,12 @@ class De21x11Weather_t : public iUhrType { public: + virtual LanguageAbbreviation usedLang() override { + return LanguageAbbreviation::DE; + }; + + //------------------------------------------------------------------------------ + const uint16_t minArr[4] = {112, 114, 116, 118}; //------------------------------------------------------------------------------ diff --git a/include/Uhrtypes/EN10x11.hpp b/include/Uhrtypes/EN10x11.hpp index 3b5a715f..e351a0b7 100644 --- a/include/Uhrtypes/EN10x11.hpp +++ b/include/Uhrtypes/EN10x11.hpp @@ -20,6 +20,12 @@ class En10x11_t : public iUhrType { public: + virtual LanguageAbbreviation usedLang() override { + return LanguageAbbreviation::EN; + }; + + //------------------------------------------------------------------------------ + virtual const bool hasZwanzig() override { return true; } //------------------------------------------------------------------------------ diff --git a/include/Uhrtypes/NL10x11.hpp b/include/Uhrtypes/NL10x11.hpp index cc018341..485c9200 100644 --- a/include/Uhrtypes/NL10x11.hpp +++ b/include/Uhrtypes/NL10x11.hpp @@ -18,8 +18,9 @@ class NL10x11_t : public iUhrType { public: - void show(uint8_t text) override { - switch (text) { + virtual LanguageAbbreviation usedLang() override { + return LanguageAbbreviation::NL; + }; case es_ist: // Es diff --git a/include/Uhrtypes/Uhrtype.hpp b/include/Uhrtypes/Uhrtype.hpp index b92718e8..a1e778cb 100644 --- a/include/Uhrtypes/Uhrtype.hpp +++ b/include/Uhrtypes/Uhrtype.hpp @@ -1,6 +1,6 @@ #pragma once -enum ledText { +enum class LanguageAbbreviation { EN, DE, NL }; m_eine = 1, m_zwei = 2, diff --git a/include/clockWork.hpp b/include/clockWork.hpp index d95e9cd6..395a724d 100644 --- a/include/clockWork.hpp +++ b/include/clockWork.hpp @@ -168,7 +168,7 @@ void ClockWork::setHour(const uint8_t hour, const bool fullHour) { usedUhrType->show(h_zwoelf); break; case 1: - if (fullHour || G.UhrtypeDef == Eng10x11) { + if (fullHour || usedUhrType->usedLang() != LanguageAbbreviation::DE) { usedUhrType->show(h_ein); } else { usedUhrType->show(eins); From 144f994621852ccdb5a69b8a0e8949195a96e81d Mon Sep 17 00:00:00 2001 From: David Panusch Date: Fri, 27 Jan 2023 20:56:20 +0100 Subject: [PATCH 10/37] Added a enum class for scoped values of Words on Front. Made SetLetter Typesafe. Changes to be committed: modified: include/Uhrtypes/DE10x11.2clock.hpp modified: include/Uhrtypes/DE10x11.alternative.hpp modified: include/Uhrtypes/DE10x11.frame.hpp modified: include/Uhrtypes/DE10x11.hpp modified: include/Uhrtypes/DE11x11.hpp modified: include/Uhrtypes/DE11x11.v2.hpp modified: include/Uhrtypes/DE17x17.hpp modified: include/Uhrtypes/DE21x11.weather.hpp modified: include/Uhrtypes/EN10x11.hpp modified: include/Uhrtypes/NL10x11.hpp modified: include/Uhrtypes/Uhrtype.hpp modified: include/clockWork.h modified: include/clockWork.hpp modified: include/openwmap.h --- include/Uhrtypes/DE10x11.2clock.hpp | 266 ++++----- include/Uhrtypes/DE10x11.alternative.hpp | 306 +++++----- include/Uhrtypes/DE10x11.frame.hpp | 245 ++++---- include/Uhrtypes/DE10x11.hpp | 293 +++++----- include/Uhrtypes/DE11x11.hpp | 242 ++++---- include/Uhrtypes/DE11x11.v2.hpp | 302 +++++----- include/Uhrtypes/DE17x17.hpp | 699 +++++++++++------------ include/Uhrtypes/DE21x11.weather.hpp | 499 ++++++++-------- include/Uhrtypes/EN10x11.hpp | 311 +++++----- include/Uhrtypes/NL10x11.hpp | 235 ++++---- include/Uhrtypes/Uhrtype.hpp | 179 +++--- include/clockWork.h | 1 + include/clockWork.hpp | 275 ++++++--- include/openwmap.h | 516 ++++++++--------- 14 files changed, 2222 insertions(+), 2147 deletions(-) diff --git a/include/Uhrtypes/DE10x11.2clock.hpp b/include/Uhrtypes/DE10x11.2clock.hpp index 4e833db0..aa02c172 100644 --- a/include/Uhrtypes/DE10x11.2clock.hpp +++ b/include/Uhrtypes/DE10x11.2clock.hpp @@ -28,190 +28,190 @@ class De10x11Clock_t : public iUhrType { //------------------------------------------------------------------------------ - void show(uint8_t text) override { - switch (text) { + void show(FrontWord word) override { + switch (word) { - case es_ist: + case FrontWord::es_ist: // Es - Letter_set(0); - Letter_set(1); + setLetter(0); + setLetter(1); // Ist - Letter_set(3); - Letter_set(4); - Letter_set(5); + setLetter(3); + setLetter(4); + setLetter(5); break; - case nach: - case v_nach: + case FrontWord::nach: + case FrontWord::v_nach: // NACH - Letter_set(36); - Letter_set(35); - Letter_set(34); - Letter_set(33); + setLetter(36); + setLetter(35); + setLetter(34); + setLetter(33); break; - case vor: - case v_vor: + case FrontWord::vor: + case FrontWord::v_vor: // Vor - Letter_set(41); - Letter_set(42); - Letter_set(43); + setLetter(41); + setLetter(42); + setLetter(43); break; - case viertel: + case FrontWord::viertel: // Viertel - Letter_set(32); - Letter_set(31); - Letter_set(30); - Letter_set(29); - Letter_set(28); - Letter_set(27); - Letter_set(26); + setLetter(32); + setLetter(31); + setLetter(30); + setLetter(29); + setLetter(28); + setLetter(27); + setLetter(26); break; - case dreiviertel: - Letter_set(32); - Letter_set(31); - Letter_set(30); - Letter_set(29); - Letter_set(28); - Letter_set(27); - Letter_set(26); - Letter_set(25); - Letter_set(24); - Letter_set(23); - Letter_set(22); + case FrontWord::dreiviertel: + setLetter(32); + setLetter(31); + setLetter(30); + setLetter(29); + setLetter(28); + setLetter(27); + setLetter(26); + setLetter(25); + setLetter(24); + setLetter(23); + setLetter(22); break; - case fuenf: - Letter_set(7); - Letter_set(8); - Letter_set(9); - Letter_set(10); + case FrontWord::fuenf: + setLetter(7); + setLetter(8); + setLetter(9); + setLetter(10); break; - case zehn: - Letter_set(21); - Letter_set(20); - Letter_set(19); - Letter_set(18); + case FrontWord::zehn: + setLetter(21); + setLetter(20); + setLetter(19); + setLetter(18); break; - case zwanzig: - Letter_set(17); - Letter_set(16); - Letter_set(15); - Letter_set(14); - Letter_set(13); - Letter_set(12); - Letter_set(11); + case FrontWord::zwanzig: + setLetter(17); + setLetter(16); + setLetter(15); + setLetter(14); + setLetter(13); + setLetter(12); + setLetter(11); break; - case halb: - Letter_set(44); - Letter_set(45); - Letter_set(46); - Letter_set(47); + case FrontWord::halb: + setLetter(44); + setLetter(45); + setLetter(46); + setLetter(47); break; - case eins: - Letter_set(65); - Letter_set(64); - Letter_set(63); - Letter_set(62); + case FrontWord::eins: + setLetter(65); + setLetter(64); + setLetter(63); + setLetter(62); break; - case uhr: - Letter_set(99); - Letter_set(100); - Letter_set(101); + case FrontWord::uhr: + setLetter(99); + setLetter(100); + setLetter(101); break; - case h_ein: - Letter_set(63); - Letter_set(64); - Letter_set(65); + case FrontWord::h_ein: + setLetter(63); + setLetter(64); + setLetter(65); break; - case h_zwei: - Letter_set(55); - Letter_set(56); - Letter_set(57); - Letter_set(58); + case FrontWord::h_zwei: + setLetter(55); + setLetter(56); + setLetter(57); + setLetter(58); break; - case h_drei: - Letter_set(66); - Letter_set(67); - Letter_set(68); - Letter_set(69); + case FrontWord::h_drei: + setLetter(66); + setLetter(67); + setLetter(68); + setLetter(69); break; - case h_vier: - Letter_set(73); - Letter_set(74); - Letter_set(75); - Letter_set(76); + case FrontWord::h_vier: + setLetter(73); + setLetter(74); + setLetter(75); + setLetter(76); break; - case h_fuenf: - Letter_set(51); - Letter_set(52); - Letter_set(53); - Letter_set(54); + case FrontWord::h_fuenf: + setLetter(51); + setLetter(52); + setLetter(53); + setLetter(54); break; - case h_sechs: - Letter_set(83); - Letter_set(84); - Letter_set(85); - Letter_set(86); - Letter_set(87); + case FrontWord::h_sechs: + setLetter(83); + setLetter(84); + setLetter(85); + setLetter(86); + setLetter(87); break; - case h_sieben: - Letter_set(88); - Letter_set(89); - Letter_set(90); - Letter_set(91); - Letter_set(92); - Letter_set(93); + case FrontWord::h_sieben: + setLetter(88); + setLetter(89); + setLetter(90); + setLetter(91); + setLetter(92); + setLetter(93); break; - case h_acht: - Letter_set(77); - Letter_set(78); - Letter_set(79); - Letter_set(80); + case FrontWord::h_acht: + setLetter(77); + setLetter(78); + setLetter(79); + setLetter(80); break; - case h_neun: - Letter_set(103); - Letter_set(104); - Letter_set(105); - Letter_set(106); + case FrontWord::h_neun: + setLetter(103); + setLetter(104); + setLetter(105); + setLetter(106); break; - case h_zehn: - Letter_set(106); - Letter_set(107); - Letter_set(108); - Letter_set(109); + case FrontWord::h_zehn: + setLetter(106); + setLetter(107); + setLetter(108); + setLetter(109); break; - case h_elf: - Letter_set(49); - Letter_set(50); - Letter_set(51); + case FrontWord::h_elf: + setLetter(49); + setLetter(50); + setLetter(51); break; - case h_zwoelf: - Letter_set(94); - Letter_set(95); - Letter_set(96); - Letter_set(97); - Letter_set(98); + case FrontWord::h_zwoelf: + setLetter(94); + setLetter(95); + setLetter(96); + setLetter(97); + setLetter(98); break; default: diff --git a/include/Uhrtypes/DE10x11.alternative.hpp b/include/Uhrtypes/DE10x11.alternative.hpp index 37ac3cbe..37e25b0c 100644 --- a/include/Uhrtypes/DE10x11.alternative.hpp +++ b/include/Uhrtypes/DE10x11.alternative.hpp @@ -30,214 +30,214 @@ class De10x11Alternative_t : public iUhrType { //------------------------------------------------------------------------------ - void show(uint8_t text) override { - switch (text) { + void show(FrontWord word) override { + switch (word) { - case es_ist: + case FrontWord::es_ist: // Es - Letter_set(0); - Letter_set(1); + setLetter(0); + setLetter(1); // Ist - Letter_set(3); - Letter_set(4); - Letter_set(5); + setLetter(3); + setLetter(4); + setLetter(5); break; - case nach: - case v_nach: - Letter_set(43); - Letter_set(42); - Letter_set(41); - Letter_set(40); + case FrontWord::nach: + case FrontWord::v_nach: + setLetter(43); + setLetter(42); + setLetter(41); + setLetter(40); break; - case vor: - case v_vor: - Letter_set(33); - Letter_set(34); - Letter_set(35); + case FrontWord::vor: + case FrontWord::v_vor: + setLetter(33); + setLetter(34); + setLetter(35); break; - case viertel: - Letter_set(32); - Letter_set(31); - Letter_set(30); - Letter_set(29); - Letter_set(28); - Letter_set(27); - Letter_set(26); + case FrontWord::viertel: + setLetter(32); + setLetter(31); + setLetter(30); + setLetter(29); + setLetter(28); + setLetter(27); + setLetter(26); break; - case dreiviertel: - Letter_set(32); - Letter_set(31); - Letter_set(30); - Letter_set(29); - Letter_set(28); - Letter_set(27); - Letter_set(26); - Letter_set(25); - Letter_set(24); - Letter_set(23); - Letter_set(22); + case FrontWord::dreiviertel: + setLetter(32); + setLetter(31); + setLetter(30); + setLetter(29); + setLetter(28); + setLetter(27); + setLetter(26); + setLetter(25); + setLetter(24); + setLetter(23); + setLetter(22); break; - case fuenf: - Letter_set(7); - Letter_set(8); - Letter_set(9); - Letter_set(10); + case FrontWord::fuenf: + setLetter(7); + setLetter(8); + setLetter(9); + setLetter(10); break; - case zehn: - Letter_set(21); - Letter_set(20); - Letter_set(19); - Letter_set(18); + case FrontWord::zehn: + setLetter(21); + setLetter(20); + setLetter(19); + setLetter(18); break; - case zwanzig: - Letter_set(17); - Letter_set(16); - Letter_set(15); - Letter_set(14); - Letter_set(13); - Letter_set(12); - Letter_set(11); + case FrontWord::zwanzig: + setLetter(17); + setLetter(16); + setLetter(15); + setLetter(14); + setLetter(13); + setLetter(12); + setLetter(11); break; - case halb: - Letter_set(44); - Letter_set(45); - Letter_set(46); - Letter_set(47); + case FrontWord::halb: + setLetter(44); + setLetter(45); + setLetter(46); + setLetter(47); break; - case eins: - Letter_set(85); - Letter_set(84); - Letter_set(83); - Letter_set(82); + case FrontWord::eins: + setLetter(85); + setLetter(84); + setLetter(83); + setLetter(82); break; - case uhr: - Letter_set(101); - Letter_set(102); - Letter_set(103); + case FrontWord::uhr: + setLetter(101); + setLetter(102); + setLetter(103); break; - case happy_birthday: + case FrontWord::happy_birthday: // happy - Letter_set(40); - Letter_set(39); - Letter_set(38); - Letter_set(37); - Letter_set(36); + setLetter(40); + setLetter(39); + setLetter(38); + setLetter(37); + setLetter(36); // happy - Letter_set(47); - Letter_set(48); - Letter_set(49); - Letter_set(50); - Letter_set(51); - Letter_set(52); - Letter_set(53); - Letter_set(54); + setLetter(47); + setLetter(48); + setLetter(49); + setLetter(50); + setLetter(51); + setLetter(52); + setLetter(53); + setLetter(54); break; - case h_ein: - Letter_set(85); - Letter_set(84); - Letter_set(83); + case FrontWord::h_ein: + setLetter(85); + setLetter(84); + setLetter(83); break; - case h_zwei: - Letter_set(87); - Letter_set(86); - Letter_set(85); - Letter_set(84); + case FrontWord::h_zwei: + setLetter(87); + setLetter(86); + setLetter(85); + setLetter(84); break; - case h_drei: - Letter_set(73); - Letter_set(74); - Letter_set(75); - Letter_set(76); + case FrontWord::h_drei: + setLetter(73); + setLetter(74); + setLetter(75); + setLetter(76); break; - case h_vier: - Letter_set(91); - Letter_set(92); - Letter_set(93); - Letter_set(94); + case FrontWord::h_vier: + setLetter(91); + setLetter(92); + setLetter(93); + setLetter(94); break; - case h_fuenf: - Letter_set(59); - Letter_set(58); - Letter_set(57); - Letter_set(56); + case FrontWord::h_fuenf: + setLetter(59); + setLetter(58); + setLetter(57); + setLetter(56); break; - case h_sechs: - Letter_set(109); - Letter_set(108); - Letter_set(107); - Letter_set(106); - Letter_set(105); + case FrontWord::h_sechs: + setLetter(109); + setLetter(108); + setLetter(107); + setLetter(106); + setLetter(105); break; - case h_sieben: - Letter_set(82); - Letter_set(81); - Letter_set(80); - Letter_set(79); - Letter_set(78); - Letter_set(77); + case FrontWord::h_sieben: + setLetter(82); + setLetter(81); + setLetter(80); + setLetter(79); + setLetter(78); + setLetter(77); break; - case h_acht: - Letter_set(95); - Letter_set(96); - Letter_set(97); - Letter_set(98); + case FrontWord::h_acht: + setLetter(95); + setLetter(96); + setLetter(97); + setLetter(98); break; - case h_neun: - Letter_set(69); - Letter_set(70); - Letter_set(71); - Letter_set(72); + case FrontWord::h_neun: + setLetter(69); + setLetter(70); + setLetter(71); + setLetter(72); break; - case h_zehn: - Letter_set(66); - Letter_set(67); - Letter_set(68); - Letter_set(69); + case FrontWord::h_zehn: + setLetter(66); + setLetter(67); + setLetter(68); + setLetter(69); break; - case h_elf: - Letter_set(88); - Letter_set(89); - Letter_set(90); + case FrontWord::h_elf: + setLetter(88); + setLetter(89); + setLetter(90); break; - case h_zwoelf: - Letter_set(63); - Letter_set(62); - Letter_set(61); - Letter_set(60); - Letter_set(59); + case FrontWord::h_zwoelf: + setLetter(63); + setLetter(62); + setLetter(61); + setLetter(60); + setLetter(59); break; - case h_droelf: - Letter_set(65); - Letter_set(64); - Letter_set(61); - Letter_set(60); - Letter_set(59); + case FrontWord::h_droelf: + setLetter(65); + setLetter(64); + setLetter(61); + setLetter(60); + setLetter(59); break; default: diff --git a/include/Uhrtypes/DE10x11.frame.hpp b/include/Uhrtypes/DE10x11.frame.hpp index 5cc5c7cf..48eabb16 100644 --- a/include/Uhrtypes/DE10x11.frame.hpp +++ b/include/Uhrtypes/DE10x11.frame.hpp @@ -93,171 +93,172 @@ class De10x11frame_t : public iUhrType { //------------------------------------------------------------------------------ - void show(uint8_t text) override { - switch (text) { - case es_ist: + void show(FrontWord word) override { + switch (word) { + + case FrontWord::es_ist: // Es - Letter_set(24); - Letter_set(23); + setLetter(24); + setLetter(23); // Ist - Letter_set(21); - Letter_set(20); - Letter_set(19); + setLetter(21); + setLetter(20); + setLetter(19); break; - case nach: - case v_nach: - Letter_set(55); - Letter_set(56); - Letter_set(57); - Letter_set(58); + case FrontWord::nach: + case FrontWord::v_nach: + setLetter(55); + setLetter(56); + setLetter(57); + setLetter(58); break; - case vor: - case v_vor: - Letter_set(59); - Letter_set(60); - Letter_set(61); - - case viertel: - Letter_set(40); - Letter_set(41); - Letter_set(42); - Letter_set(43); - Letter_set(44); - Letter_set(45); - Letter_set(46); + case FrontWord::vor: + case FrontWord::v_vor: + setLetter(59); + setLetter(60); + setLetter(61); + + case FrontWord::viertel: + setLetter(40); + setLetter(41); + setLetter(42); + setLetter(43); + setLetter(44); + setLetter(45); + setLetter(46); break; - case fuenf: - Letter_set(14); - Letter_set(15); - Letter_set(16); - Letter_set(17); + case FrontWord::fuenf: + setLetter(14); + setLetter(15); + setLetter(16); + setLetter(17); break; - case zehn: - Letter_set(27); - Letter_set(28); - Letter_set(29); - Letter_set(30); + case FrontWord::zehn: + setLetter(27); + setLetter(28); + setLetter(29); + setLetter(30); break; - case zwanzig: - Letter_set(31); - Letter_set(32); - Letter_set(33); - Letter_set(34); - Letter_set(35); - Letter_set(36); - Letter_set(37); + case FrontWord::zwanzig: + setLetter(31); + setLetter(32); + setLetter(33); + setLetter(34); + setLetter(35); + setLetter(36); + setLetter(37); break; - case halb: - Letter_set(73); - Letter_set(74); - Letter_set(75); - Letter_set(76); + case FrontWord::halb: + setLetter(73); + setLetter(74); + setLetter(75); + setLetter(76); break; - case eins: - Letter_set(81); - Letter_set(82); - Letter_set(83); - Letter_set(84); + case FrontWord::eins: + setLetter(81); + setLetter(82); + setLetter(83); + setLetter(84); break; - case uhr: - Letter_set(138); - Letter_set(139); - Letter_set(140); + case FrontWord::uhr: + setLetter(138); + setLetter(139); + setLetter(140); break; - case h_ein: - Letter_set(81); - Letter_set(82); - Letter_set(83); + case FrontWord::h_ein: + setLetter(81); + setLetter(82); + setLetter(83); break; - case h_zwei: - Letter_set(79); - Letter_set(80); - Letter_set(81); - Letter_set(82); + case FrontWord::h_zwei: + setLetter(79); + setLetter(80); + setLetter(81); + setLetter(82); break; - case h_drei: - Letter_set(98); - Letter_set(99); - Letter_set(100); - Letter_set(101); + case FrontWord::h_drei: + setLetter(98); + setLetter(99); + setLetter(100); + setLetter(101); break; - case h_vier: - Letter_set(112); - Letter_set(113); - Letter_set(114); - Letter_set(115); + case FrontWord::h_vier: + setLetter(112); + setLetter(113); + setLetter(114); + setLetter(115); break; - case h_fuenf: - Letter_set(92); - Letter_set(93); - Letter_set(94); - Letter_set(95); + case FrontWord::h_fuenf: + setLetter(92); + setLetter(93); + setLetter(94); + setLetter(95); break; - case h_sechs: - Letter_set(132); - Letter_set(133); - Letter_set(134); - Letter_set(135); - Letter_set(136); + case FrontWord::h_sechs: + setLetter(132); + setLetter(133); + setLetter(134); + setLetter(135); + setLetter(136); break; - case h_sieben: - Letter_set(84); - Letter_set(85); - Letter_set(86); - Letter_set(87); - Letter_set(88); - Letter_set(89); + case FrontWord::h_sieben: + setLetter(84); + setLetter(85); + setLetter(86); + setLetter(87); + setLetter(88); + setLetter(89); break; - case h_acht: - Letter_set(124); - Letter_set(125); - Letter_set(126); - Letter_set(127); + case FrontWord::h_acht: + setLetter(124); + setLetter(125); + setLetter(126); + setLetter(127); break; - case h_neun: - Letter_set(108); - Letter_set(109); - Letter_set(110); - Letter_set(111); + case FrontWord::h_neun: + setLetter(108); + setLetter(109); + setLetter(110); + setLetter(111); break; - case h_zehn: - Letter_set(120); - Letter_set(121); - Letter_set(122); - Letter_set(123); + case FrontWord::h_zehn: + setLetter(120); + setLetter(121); + setLetter(122); + setLetter(123); break; - case h_elf: - Letter_set(105); - Letter_set(106); - Letter_set(107); + case FrontWord::h_elf: + setLetter(105); + setLetter(106); + setLetter(107); break; - case h_zwoelf: - Letter_set(67); - Letter_set(68); - Letter_set(69); - Letter_set(70); - Letter_set(71); + case FrontWord::h_zwoelf: + setLetter(67); + setLetter(68); + setLetter(69); + setLetter(70); + setLetter(71); break; default: diff --git a/include/Uhrtypes/DE10x11.hpp b/include/Uhrtypes/DE10x11.hpp index d19cd171..a63d6ba5 100644 --- a/include/Uhrtypes/DE10x11.hpp +++ b/include/Uhrtypes/DE10x11.hpp @@ -29,19 +29,19 @@ class De10x11_t : public iUhrType { #if (LED_LAYOUT_REVERSE) - /* - * 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - * 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, - * 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - * 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, - * 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - * 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, - * 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - * 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, - * 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - * 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, - * 0, 1, 2, 3 - */ + /* + * 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + * 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, + * 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + * 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, + * 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + * 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, + * 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + * 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, + * 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + * 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, + * 0, 1, 2, 3 + */ #undef LED_MAP #define LED_MAP(x) \ (x > 109 ? x - 110 : 113 - (((x / 11) * 11) + (10 - (x % 11)))) @@ -83,231 +83,230 @@ class De10x11_t : public iUhrType { //------------------------------------------------------------------------------ - void show(uint8_t text) override { + void show(FrontWord word) override { + switch (word) { - switch (text) { - - case es_ist: + case FrontWord::es_ist: // Es - Letter_set(LED_MAP(0)); - Letter_set(LED_MAP(1)); + setLetter(LED_MAP(0)); + setLetter(LED_MAP(1)); // Ist - Letter_set(LED_MAP(3)); - Letter_set(LED_MAP(4)); - Letter_set(LED_MAP(5)); + setLetter(LED_MAP(3)); + setLetter(LED_MAP(4)); + setLetter(LED_MAP(5)); break; //------------------------------------------------------------------------------ - case nach: - case v_nach: - Letter_set(LED_MAP(38)); - Letter_set(LED_MAP(39)); - Letter_set(LED_MAP(40)); - Letter_set(LED_MAP(41)); + case FrontWord::nach: + case FrontWord::v_nach: + setLetter(LED_MAP(38)); + setLetter(LED_MAP(39)); + setLetter(LED_MAP(40)); + setLetter(LED_MAP(41)); break; //------------------------------------------------------------------------------ - case vor: - case v_vor: - Letter_set(LED_MAP(35)); - Letter_set(LED_MAP(36)); - Letter_set(LED_MAP(37)); + case FrontWord::vor: + case FrontWord::v_vor: + setLetter(LED_MAP(35)); + setLetter(LED_MAP(36)); + setLetter(LED_MAP(37)); break; //------------------------------------------------------------------------------ - case viertel: - Letter_set(LED_MAP(26)); - Letter_set(LED_MAP(27)); - Letter_set(LED_MAP(28)); - Letter_set(LED_MAP(29)); - Letter_set(LED_MAP(30)); - Letter_set(LED_MAP(31)); - Letter_set(LED_MAP(32)); + case FrontWord::viertel: + setLetter(LED_MAP(26)); + setLetter(LED_MAP(27)); + setLetter(LED_MAP(28)); + setLetter(LED_MAP(29)); + setLetter(LED_MAP(30)); + setLetter(LED_MAP(31)); + setLetter(LED_MAP(32)); break; //------------------------------------------------------------------------------ - case dreiviertel: - Letter_set(LED_MAP(22)); - Letter_set(LED_MAP(23)); - Letter_set(LED_MAP(24)); - Letter_set(LED_MAP(25)); - Letter_set(LED_MAP(26)); - Letter_set(LED_MAP(27)); - Letter_set(LED_MAP(28)); - Letter_set(LED_MAP(29)); - Letter_set(LED_MAP(30)); - Letter_set(LED_MAP(31)); - Letter_set(LED_MAP(32)); + case FrontWord::dreiviertel: + setLetter(LED_MAP(22)); + setLetter(LED_MAP(23)); + setLetter(LED_MAP(24)); + setLetter(LED_MAP(25)); + setLetter(LED_MAP(26)); + setLetter(LED_MAP(27)); + setLetter(LED_MAP(28)); + setLetter(LED_MAP(29)); + setLetter(LED_MAP(30)); + setLetter(LED_MAP(31)); + setLetter(LED_MAP(32)); break; //------------------------------------------------------------------------------ - case fuenf: - Letter_set(LED_MAP(7)); - Letter_set(LED_MAP(8)); - Letter_set(LED_MAP(9)); - Letter_set(LED_MAP(10)); + case FrontWord::fuenf: + setLetter(LED_MAP(7)); + setLetter(LED_MAP(8)); + setLetter(LED_MAP(9)); + setLetter(LED_MAP(10)); break; //------------------------------------------------------------------------------ - case zehn: - Letter_set(LED_MAP(18)); - Letter_set(LED_MAP(19)); - Letter_set(LED_MAP(20)); - Letter_set(LED_MAP(21)); + case FrontWord::zehn: + setLetter(LED_MAP(18)); + setLetter(LED_MAP(19)); + setLetter(LED_MAP(20)); + setLetter(LED_MAP(21)); break; //------------------------------------------------------------------------------ - case zwanzig: - Letter_set(LED_MAP(11)); - Letter_set(LED_MAP(12)); - Letter_set(LED_MAP(13)); - Letter_set(LED_MAP(14)); - Letter_set(LED_MAP(15)); - Letter_set(LED_MAP(16)); - Letter_set(LED_MAP(17)); + case FrontWord::zwanzig: + setLetter(LED_MAP(11)); + setLetter(LED_MAP(12)); + setLetter(LED_MAP(13)); + setLetter(LED_MAP(14)); + setLetter(LED_MAP(15)); + setLetter(LED_MAP(16)); + setLetter(LED_MAP(17)); break; //------------------------------------------------------------------------------ - case halb: - Letter_set(LED_MAP(44)); - Letter_set(LED_MAP(45)); - Letter_set(LED_MAP(46)); - Letter_set(LED_MAP(47)); + case FrontWord::halb: + setLetter(LED_MAP(44)); + setLetter(LED_MAP(45)); + setLetter(LED_MAP(46)); + setLetter(LED_MAP(47)); break; //------------------------------------------------------------------------------ - case eins: - Letter_set(LED_MAP(60)); - Letter_set(LED_MAP(61)); - Letter_set(LED_MAP(62)); - Letter_set(LED_MAP(63)); + case FrontWord::eins: + setLetter(LED_MAP(60)); + setLetter(LED_MAP(61)); + setLetter(LED_MAP(62)); + setLetter(LED_MAP(63)); break; //------------------------------------------------------------------------------ - case uhr: - Letter_set(LED_MAP(100)); - Letter_set(LED_MAP(101)); - Letter_set(LED_MAP(102)); + case FrontWord::uhr: + setLetter(LED_MAP(100)); + setLetter(LED_MAP(101)); + setLetter(LED_MAP(102)); break; //------------------------------------------------------------------------------ - case h_ein: - Letter_set(LED_MAP(61)); - Letter_set(LED_MAP(62)); - Letter_set(LED_MAP(63)); + case FrontWord::h_ein: + setLetter(LED_MAP(61)); + setLetter(LED_MAP(62)); + setLetter(LED_MAP(63)); break; //------------------------------------------------------------------------------ - case h_zwei: - Letter_set(LED_MAP(62)); - Letter_set(LED_MAP(63)); - Letter_set(LED_MAP(64)); - Letter_set(LED_MAP(65)); + case FrontWord::h_zwei: + setLetter(LED_MAP(62)); + setLetter(LED_MAP(63)); + setLetter(LED_MAP(64)); + setLetter(LED_MAP(65)); break; //------------------------------------------------------------------------------ - case h_drei: - Letter_set(LED_MAP(67)); - Letter_set(LED_MAP(68)); - Letter_set(LED_MAP(69)); - Letter_set(LED_MAP(70)); + case FrontWord::h_drei: + setLetter(LED_MAP(67)); + setLetter(LED_MAP(68)); + setLetter(LED_MAP(69)); + setLetter(LED_MAP(70)); break; //------------------------------------------------------------------------------ - case h_vier: - Letter_set(LED_MAP(77)); - Letter_set(LED_MAP(78)); - Letter_set(LED_MAP(79)); - Letter_set(LED_MAP(80)); + case FrontWord::h_vier: + setLetter(LED_MAP(77)); + setLetter(LED_MAP(78)); + setLetter(LED_MAP(79)); + setLetter(LED_MAP(80)); break; //------------------------------------------------------------------------------ - case h_fuenf: - Letter_set(LED_MAP(73)); - Letter_set(LED_MAP(74)); - Letter_set(LED_MAP(75)); - Letter_set(LED_MAP(76)); + case FrontWord::h_fuenf: + setLetter(LED_MAP(73)); + setLetter(LED_MAP(74)); + setLetter(LED_MAP(75)); + setLetter(LED_MAP(76)); break; //------------------------------------------------------------------------------ - case h_sechs: - Letter_set(LED_MAP(104)); - Letter_set(LED_MAP(105)); - Letter_set(LED_MAP(106)); - Letter_set(LED_MAP(107)); - Letter_set(LED_MAP(108)); + case FrontWord::h_sechs: + setLetter(LED_MAP(104)); + setLetter(LED_MAP(105)); + setLetter(LED_MAP(106)); + setLetter(LED_MAP(107)); + setLetter(LED_MAP(108)); break; //------------------------------------------------------------------------------ - case h_sieben: - Letter_set(LED_MAP(55)); - Letter_set(LED_MAP(56)); - Letter_set(LED_MAP(57)); - Letter_set(LED_MAP(58)); - Letter_set(LED_MAP(59)); - Letter_set(LED_MAP(60)); + case FrontWord::h_sieben: + setLetter(LED_MAP(55)); + setLetter(LED_MAP(56)); + setLetter(LED_MAP(57)); + setLetter(LED_MAP(58)); + setLetter(LED_MAP(59)); + setLetter(LED_MAP(60)); break; //------------------------------------------------------------------------------ - case h_acht: - Letter_set(LED_MAP(89)); - Letter_set(LED_MAP(90)); - Letter_set(LED_MAP(91)); - Letter_set(LED_MAP(92)); + case FrontWord::h_acht: + setLetter(LED_MAP(89)); + setLetter(LED_MAP(90)); + setLetter(LED_MAP(91)); + setLetter(LED_MAP(92)); break; //------------------------------------------------------------------------------ - case h_neun: - Letter_set(LED_MAP(81)); - Letter_set(LED_MAP(82)); - Letter_set(LED_MAP(83)); - Letter_set(LED_MAP(84)); + case FrontWord::h_neun: + setLetter(LED_MAP(81)); + setLetter(LED_MAP(82)); + setLetter(LED_MAP(83)); + setLetter(LED_MAP(84)); break; //------------------------------------------------------------------------------ - case h_zehn: - Letter_set(LED_MAP(93)); - Letter_set(LED_MAP(94)); - Letter_set(LED_MAP(95)); - Letter_set(LED_MAP(96)); + case FrontWord::h_zehn: + setLetter(LED_MAP(93)); + setLetter(LED_MAP(94)); + setLetter(LED_MAP(95)); + setLetter(LED_MAP(96)); break; //------------------------------------------------------------------------------ - case h_elf: - Letter_set(LED_MAP(85)); - Letter_set(LED_MAP(86)); - Letter_set(LED_MAP(87)); + case FrontWord::h_elf: + setLetter(LED_MAP(85)); + setLetter(LED_MAP(86)); + setLetter(LED_MAP(87)); break; //------------------------------------------------------------------------------ - case h_zwoelf: + case FrontWord::h_zwoelf: - Letter_set(LED_MAP(49)); - Letter_set(LED_MAP(50)); - Letter_set(LED_MAP(51)); - Letter_set(LED_MAP(52)); - Letter_set(LED_MAP(53)); + setLetter(LED_MAP(49)); + setLetter(LED_MAP(50)); + setLetter(LED_MAP(51)); + setLetter(LED_MAP(52)); + setLetter(LED_MAP(53)); break; default: diff --git a/include/Uhrtypes/DE11x11.hpp b/include/Uhrtypes/DE11x11.hpp index 00344d99..e33e0f5e 100644 --- a/include/Uhrtypes/DE11x11.hpp +++ b/include/Uhrtypes/DE11x11.hpp @@ -52,172 +52,172 @@ class De11x11_t : public iUhrType { //------------------------------------------------------------------------------ - void show(uint8_t text) override { - switch (text) { + void show(FrontWord word) override { + switch (word) { - case es_ist: + case FrontWord::es_ist: // Es - Letter_set(0); - Letter_set(1); + setLetter(0); + setLetter(1); // Ist - Letter_set(3); - Letter_set(4); - Letter_set(5); + setLetter(3); + setLetter(4); + setLetter(5); break; - case viertel: - Letter_set(26); - Letter_set(27); - Letter_set(28); - Letter_set(29); - Letter_set(30); - Letter_set(31); - Letter_set(32); + case FrontWord::viertel: + setLetter(26); + setLetter(27); + setLetter(28); + setLetter(29); + setLetter(30); + setLetter(31); + setLetter(32); break; - case fuenf: - Letter_set(7); - Letter_set(8); - Letter_set(9); - Letter_set(10); + case FrontWord::fuenf: + setLetter(7); + setLetter(8); + setLetter(9); + setLetter(10); break; - case zehn: - Letter_set(18); - Letter_set(19); - Letter_set(20); - Letter_set(21); + case FrontWord::zehn: + setLetter(18); + setLetter(19); + setLetter(20); + setLetter(21); break; - case zwanzig: - Letter_set(11); - Letter_set(12); - Letter_set(13); - Letter_set(14); - Letter_set(15); - Letter_set(16); - Letter_set(17); + case FrontWord::zwanzig: + setLetter(11); + setLetter(12); + setLetter(13); + setLetter(14); + setLetter(15); + setLetter(16); + setLetter(17); break; - case halb: - Letter_set(44); - Letter_set(45); - Letter_set(46); - Letter_set(47); + case FrontWord::halb: + setLetter(44); + setLetter(45); + setLetter(46); + setLetter(47); break; - case eins: - Letter_set(60); - Letter_set(61); - Letter_set(62); - Letter_set(63); + case FrontWord::eins: + setLetter(60); + setLetter(61); + setLetter(62); + setLetter(63); break; - case nach: - case v_nach: - Letter_set(38); - Letter_set(39); - Letter_set(40); - Letter_set(41); + case FrontWord::nach: + case FrontWord::v_nach: + setLetter(38); + setLetter(39); + setLetter(40); + setLetter(41); break; - case vor: - case v_vor: - Letter_set(35); - Letter_set(36); - Letter_set(37); + case FrontWord::vor: + case FrontWord::v_vor: + setLetter(35); + setLetter(36); + setLetter(37); - case uhr: - Letter_set(100); - Letter_set(101); - Letter_set(102); + case FrontWord::uhr: + setLetter(100); + setLetter(101); + setLetter(102); break; - case h_ein: - Letter_set(61); - Letter_set(62); - Letter_set(63); + case FrontWord::h_ein: + setLetter(61); + setLetter(62); + setLetter(63); break; - case h_zwei: - Letter_set(62); - Letter_set(63); - Letter_set(64); - Letter_set(65); + case FrontWord::h_zwei: + setLetter(62); + setLetter(63); + setLetter(64); + setLetter(65); break; - case h_drei: - Letter_set(67); - Letter_set(68); - Letter_set(69); - Letter_set(70); + case FrontWord::h_drei: + setLetter(67); + setLetter(68); + setLetter(69); + setLetter(70); break; - case h_vier: - Letter_set(77); - Letter_set(78); - Letter_set(79); - Letter_set(80); + case FrontWord::h_vier: + setLetter(77); + setLetter(78); + setLetter(79); + setLetter(80); break; - case h_fuenf: - Letter_set(73); - Letter_set(74); - Letter_set(75); - Letter_set(76); + case FrontWord::h_fuenf: + setLetter(73); + setLetter(74); + setLetter(75); + setLetter(76); break; - case h_sechs: - Letter_set(104); - Letter_set(105); - Letter_set(106); - Letter_set(107); - Letter_set(108); + case FrontWord::h_sechs: + setLetter(104); + setLetter(105); + setLetter(106); + setLetter(107); + setLetter(108); break; - case h_sieben: - Letter_set(55); - Letter_set(56); - Letter_set(57); - Letter_set(58); - Letter_set(59); - Letter_set(60); + case FrontWord::h_sieben: + setLetter(55); + setLetter(56); + setLetter(57); + setLetter(58); + setLetter(59); + setLetter(60); break; - case h_acht: - Letter_set(89); - Letter_set(90); - Letter_set(91); - Letter_set(92); + case FrontWord::h_acht: + setLetter(89); + setLetter(90); + setLetter(91); + setLetter(92); break; - case h_neun: - Letter_set(81); - Letter_set(82); - Letter_set(83); - Letter_set(84); + case FrontWord::h_neun: + setLetter(81); + setLetter(82); + setLetter(83); + setLetter(84); break; - case h_zehn: - Letter_set(93); - Letter_set(94); - Letter_set(95); - Letter_set(96); + case FrontWord::h_zehn: + setLetter(93); + setLetter(94); + setLetter(95); + setLetter(96); break; - case h_elf: - Letter_set(85); - Letter_set(86); - Letter_set(87); + case FrontWord::h_elf: + setLetter(85); + setLetter(86); + setLetter(87); break; - case h_zwoelf: - Letter_set(49); - Letter_set(50); - Letter_set(51); - Letter_set(52); - Letter_set(53); + case FrontWord::h_zwoelf: + setLetter(49); + setLetter(50); + setLetter(51); + setLetter(52); + setLetter(53); break; default: diff --git a/include/Uhrtypes/DE11x11.v2.hpp b/include/Uhrtypes/DE11x11.v2.hpp index da5dcb16..69570c5a 100644 --- a/include/Uhrtypes/DE11x11.v2.hpp +++ b/include/Uhrtypes/DE11x11.v2.hpp @@ -41,231 +41,185 @@ class De11x11V2_t : public iUhrType { //------------------------------------------------------------------------------ - void show(uint8_t text) override { + void show(FrontWord word) override { + switch (word) { - switch (text) { - - case es_ist: + case FrontWord::es_ist: // Es - Letter_set(0); - Letter_set(1); + setLetter(0); + setLetter(1); // Ist - Letter_set(3); - Letter_set(4); - Letter_set(5); + setLetter(3); + setLetter(4); + setLetter(5); break; - //------------------------------------------------------------------------------ - - case nach: - Letter_set(22); - Letter_set(23); - Letter_set(24); - Letter_set(25); + case FrontWord::nach: + setLetter(22); + setLetter(23); + setLetter(24); + setLetter(25); break; - //------------------------------------------------------------------------------ - - case vor: - Letter_set(12); - Letter_set(13); - Letter_set(14); + case FrontWord::vor: + setLetter(12); + setLetter(13); + setLetter(14); break; - //------------------------------------------------------------------------------ - - case viertel: - Letter_set(26); - Letter_set(27); - Letter_set(28); - Letter_set(29); - Letter_set(30); - Letter_set(31); - Letter_set(32); + case FrontWord::viertel: + setLetter(26); + setLetter(27); + setLetter(28); + setLetter(29); + setLetter(30); + setLetter(31); + setLetter(32); break; - //------------------------------------------------------------------------------ - - case fuenf: - Letter_set(7); - Letter_set(8); - Letter_set(9); - Letter_set(10); + case FrontWord::fuenf: + setLetter(7); + setLetter(8); + setLetter(9); + setLetter(10); break; - //------------------------------------------------------------------------------ - - case zehn: - Letter_set(18); - Letter_set(19); - Letter_set(20); - Letter_set(21); + case FrontWord::zehn: + setLetter(18); + setLetter(19); + setLetter(20); + setLetter(21); break; - //------------------------------------------------------------------------------ - case zwanzig: - Letter_set(11); - Letter_set(12); - Letter_set(13); - Letter_set(14); - Letter_set(15); - Letter_set(16); - Letter_set(17); + case FrontWord::zwanzig: + setLetter(11); + setLetter(12); + setLetter(13); + setLetter(14); + setLetter(15); + setLetter(16); + setLetter(17); break; - //------------------------------------------------------------------------------ - - case halb: - Letter_set(44); - Letter_set(45); - Letter_set(46); - Letter_set(47); + case FrontWord::halb: + setLetter(44); + setLetter(45); + setLetter(46); + setLetter(47); break; - //------------------------------------------------------------------------------ - - case eins: - Letter_set(44); - Letter_set(45); - Letter_set(46); - Letter_set(47); + case FrontWord::eins: + setLetter(44); + setLetter(45); + setLetter(46); + setLetter(47); break; - //------------------------------------------------------------------------------ - - case uhr: - Letter_set(120); - Letter_set(119); - Letter_set(118); + case FrontWord::uhr: + setLetter(120); + setLetter(119); + setLetter(118); break; - //------------------------------------------------------------------------------ - - case v_nach: - Letter_set(36); - Letter_set(35); - Letter_set(34); - Letter_set(33); + case FrontWord::v_nach: + setLetter(36); + setLetter(35); + setLetter(34); + setLetter(33); break; - //------------------------------------------------------------------------------ - - case v_vor: - Letter_set(39); - Letter_set(38); - Letter_set(37); + case FrontWord::v_vor: + setLetter(39); + setLetter(38); + setLetter(37); break; - //------------------------------------------------------------------------------ - - case h_ein: - Letter_set(44); - Letter_set(45); - Letter_set(46); + case FrontWord::h_ein: + setLetter(44); + setLetter(45); + setLetter(46); break; - //------------------------------------------------------------------------------ - - case h_zwei: - Letter_set(51); - Letter_set(52); - Letter_set(53); - Letter_set(54); + case FrontWord::h_zwei: + setLetter(51); + setLetter(52); + setLetter(53); + setLetter(54); break; - //------------------------------------------------------------------------------ - - case h_drei: - Letter_set(62); - Letter_set(63); - Letter_set(64); - Letter_set(65); + case FrontWord::h_drei: + setLetter(62); + setLetter(63); + setLetter(64); + setLetter(65); break; - //------------------------------------------------------------------------------ - - case h_vier: - Letter_set(55); - Letter_set(56); - Letter_set(57); - Letter_set(58); + case FrontWord::h_vier: + setLetter(55); + setLetter(56); + setLetter(57); + setLetter(58); break; - //------------------------------------------------------------------------------ - - case h_fuenf: - Letter_set(66); - Letter_set(67); - Letter_set(68); - Letter_set(69); + case FrontWord::h_fuenf: + setLetter(66); + setLetter(67); + setLetter(68); + setLetter(69); break; - //------------------------------------------------------------------------------ - - case h_sechs: - Letter_set(72); - Letter_set(73); - Letter_set(74); - Letter_set(75); - Letter_set(76); + case FrontWord::h_sechs: + setLetter(72); + setLetter(73); + setLetter(74); + setLetter(75); + setLetter(76); break; - //------------------------------------------------------------------------------ - - case h_sieben: - Letter_set(87); - Letter_set(86); - Letter_set(85); - Letter_set(84); - Letter_set(83); - Letter_set(82); + case FrontWord::h_sieben: + setLetter(87); + setLetter(86); + setLetter(85); + setLetter(84); + setLetter(83); + setLetter(82); break; - //------------------------------------------------------------------------------ - - case h_acht: - Letter_set(77); - Letter_set(78); - Letter_set(79); - Letter_set(80); + case FrontWord::h_acht: + setLetter(77); + setLetter(78); + setLetter(79); + setLetter(80); break; - //------------------------------------------------------------------------------ - - case h_neun: - Letter_set(89); - Letter_set(90); - Letter_set(91); - Letter_set(92); + case FrontWord::h_neun: + setLetter(89); + setLetter(90); + setLetter(91); + setLetter(92); break; - //------------------------------------------------------------------------------ - - case h_zehn: - Letter_set(95); - Letter_set(96); - Letter_set(97); - Letter_set(98); + case FrontWord::h_zehn: + setLetter(95); + setLetter(96); + setLetter(97); + setLetter(98); break; - //------------------------------------------------------------------------------ - - case h_elf: - Letter_set(99); - Letter_set(100); - Letter_set(101); + case FrontWord::h_elf: + setLetter(99); + setLetter(100); + setLetter(101); break; - //------------------------------------------------------------------------------ - - case h_zwoelf: + case FrontWord::h_zwoelf: - Letter_set(105); - Letter_set(106); - Letter_set(107); - Letter_set(108); - Letter_set(109); + setLetter(105); + setLetter(106); + setLetter(107); + setLetter(108); + setLetter(109); break; default: diff --git a/include/Uhrtypes/DE17x17.hpp b/include/Uhrtypes/DE17x17.hpp index 43231e9f..66996407 100644 --- a/include/Uhrtypes/DE17x17.hpp +++ b/include/Uhrtypes/DE17x17.hpp @@ -54,430 +54,429 @@ class De17x17_t : public iUhrType { //------------------------------------------------------------------------------ - void show(uint8_t displayingText) override { + void show(FrontWord word) override { + switch (word) { - switch (displayingText) // Minuten - { - case m_eine: - Letter_set(33); - Letter_set(32); - Letter_set(31); - Letter_set(30); // eine minute nach + case FrontWord::m_eine: + setLetter(33); + setLetter(32); + setLetter(31); + setLetter(30); // eine minute nach break; - case m_zwei: - Letter_set(67); - Letter_set(66); - Letter_set(65); - Letter_set(64); // zwei minuten nach + case FrontWord::m_zwei: + setLetter(67); + setLetter(66); + setLetter(65); + setLetter(64); // zwei minuten nach break; - case m_drei: - Letter_set(35); - Letter_set(34); - Letter_set(33); - Letter_set(32); // drei minuten nach + case FrontWord::m_drei: + setLetter(35); + setLetter(34); + setLetter(33); + setLetter(32); // drei minuten nach break; - case m_vier: - Letter_set(49); - Letter_set(48); - Letter_set(47); - Letter_set(46); // vier minuten nach + case FrontWord::m_vier: + setLetter(49); + setLetter(48); + setLetter(47); + setLetter(46); // vier minuten nach break; - case fuenf: - Letter_set(38); - Letter_set(39); - Letter_set(40); - Letter_set(41); // fünf minuten nach + case FrontWord::fuenf: + setLetter(38); + setLetter(39); + setLetter(40); + setLetter(41); // fünf minuten nach break; - case m_sechs: - Letter_set(24); - Letter_set(25); - Letter_set(26); - Letter_set(27); - Letter_set(28); // sechs minuten nach + case FrontWord::m_sechs: + setLetter(24); + setLetter(25); + setLetter(26); + setLetter(27); + setLetter(28); // sechs minuten nach break; - case m_sieben: - Letter_set(19); - Letter_set(20); - Letter_set(21); - Letter_set(22); - Letter_set(23); - Letter_set(24); // sieben minuten nach + case FrontWord::m_sieben: + setLetter(19); + setLetter(20); + setLetter(21); + setLetter(22); + setLetter(23); + setLetter(24); // sieben minuten nach break; - case m_acht: - Letter_set(53); - Letter_set(52); - Letter_set(51); - Letter_set(50); // acht minuten nach + case FrontWord::m_acht: + setLetter(53); + setLetter(52); + setLetter(51); + setLetter(50); // acht minuten nach break; - case m_neun: - Letter_set(42); - Letter_set(43); - Letter_set(44); - Letter_set(45); // neun minuten nach + case FrontWord::m_neun: + setLetter(42); + setLetter(43); + setLetter(44); + setLetter(45); // neun minuten nach break; - case zehn: - Letter_set(54); - Letter_set(55); - Letter_set(56); - Letter_set(57); // zehn minuten nach + case FrontWord::zehn: + setLetter(54); + setLetter(55); + setLetter(56); + setLetter(57); // zehn minuten nach break; - case m_elf: - Letter_set(36); - Letter_set(37); - Letter_set(37); // elf minuten nach + case FrontWord::m_elf: + setLetter(36); + setLetter(37); + setLetter(37); // elf minuten nach break; - case m_zwoelf: - Letter_set(58); - Letter_set(59); - Letter_set(60); - Letter_set(61); - Letter_set(62); // zwölf minuten nach + case FrontWord::m_zwoelf: + setLetter(58); + setLetter(59); + setLetter(60); + setLetter(61); + setLetter(62); // zwölf minuten nach break; - case m_dreizehn: - Letter_set(35); - Letter_set(34); - Letter_set(33); - Letter_set(32); - Letter_set(54); - Letter_set(55); - Letter_set(56); - Letter_set(57); // dreizehn minuten nach + case FrontWord::m_dreizehn: + setLetter(35); + setLetter(34); + setLetter(33); + setLetter(32); + setLetter(54); + setLetter(55); + setLetter(56); + setLetter(57); // dreizehn minuten nach break; - case m_vierzehn: - Letter_set(49); - Letter_set(48); - Letter_set(47); - Letter_set(46); - Letter_set(54); - Letter_set(55); - Letter_set(56); - Letter_set(57); // vierzehn minuten nach + case FrontWord::m_vierzehn: + setLetter(49); + setLetter(48); + setLetter(47); + setLetter(46); + setLetter(54); + setLetter(55); + setLetter(56); + setLetter(57); // vierzehn minuten nach break; // viertel nach - case m_sechzehn: - Letter_set(24); - Letter_set(25); - Letter_set(26); - Letter_set(54); - Letter_set(55); - Letter_set(56); - Letter_set(57); // sechzehn nach - break; - - case m_siebzehn: - Letter_set(19); - Letter_set(20); - Letter_set(21); - Letter_set(22); - Letter_set(54); - Letter_set(55); - Letter_set(56); - Letter_set(57); // siebzehn nach - break; - - case m_achtzehn: - Letter_set(53); - Letter_set(52); - Letter_set(51); - Letter_set(50); - Letter_set(54); - Letter_set(55); - Letter_set(56); - Letter_set(57); // achtzehn nach - break; - - case m_neunzehn: - Letter_set(42); - Letter_set(43); - Letter_set(44); - Letter_set(45); - Letter_set(53); - Letter_set(52); - Letter_set(51); - Letter_set(50); // neunzehn nach - break; - - case zwanzig: - Letter_set(76); - Letter_set(77); - Letter_set(78); - Letter_set(79); - Letter_set(80); - Letter_set(81); - Letter_set(82); // zwanzig nach - break; - - case minute: - Letter_set(108); - Letter_set(109); - Letter_set(110); - Letter_set(111); - Letter_set(112); - Letter_set(113); - break; - - case minuten: - Letter_set(108); - Letter_set(109); - Letter_set(110); - Letter_set(111); - Letter_set(112); - Letter_set(113); - Letter_set(114); + case FrontWord::m_sechzehn: + setLetter(24); + setLetter(25); + setLetter(26); + setLetter(54); + setLetter(55); + setLetter(56); + setLetter(57); // sechzehn nach + break; + + case FrontWord::m_siebzehn: + setLetter(19); + setLetter(20); + setLetter(21); + setLetter(22); + setLetter(54); + setLetter(55); + setLetter(56); + setLetter(57); // siebzehn nach + break; + + case FrontWord::m_achtzehn: + setLetter(53); + setLetter(52); + setLetter(51); + setLetter(50); + setLetter(54); + setLetter(55); + setLetter(56); + setLetter(57); // achtzehn nach + break; + + case FrontWord::m_neunzehn: + setLetter(42); + setLetter(43); + setLetter(44); + setLetter(45); + setLetter(53); + setLetter(52); + setLetter(51); + setLetter(50); // neunzehn nach + break; + + case FrontWord::zwanzig: + setLetter(76); + setLetter(77); + setLetter(78); + setLetter(79); + setLetter(80); + setLetter(81); + setLetter(82); // zwanzig nach + break; + + case FrontWord::minute: + setLetter(108); + setLetter(109); + setLetter(110); + setLetter(111); + setLetter(112); + setLetter(113); + break; + + case FrontWord::minuten: + setLetter(108); + setLetter(109); + setLetter(110); + setLetter(111); + setLetter(112); + setLetter(113); + setLetter(114); break; } - switch (displayingText) { - - case es_ist: - Letter_set(0); - Letter_set(1); - - Letter_set(3); - Letter_set(4); - Letter_set(5); - break; - - case nach: - case v_nach: - Letter_set(122); - Letter_set(123); - Letter_set(124); - Letter_set(125); - break; - - case vor: - case v_vor: - Letter_set(116); - Letter_set(117); - Letter_set(118); - break; - - case viertel: - Letter_set(7); - Letter_set(8); - Letter_set(9); - Letter_set(10); - Letter_set(11); - Letter_set(12); - Letter_set(13); - break; - - case dreiviertel: - Letter_set(140); - Letter_set(139); - Letter_set(138); - Letter_set(137); - Letter_set(136); - Letter_set(135); - Letter_set(134); - Letter_set(133); - Letter_set(132); - Letter_set(131); - Letter_set(130); + switch (word) { + + case FrontWord::es_ist: + setLetter(0); + setLetter(1); + + setLetter(3); + setLetter(4); + setLetter(5); + break; + + case FrontWord::nach: + case FrontWord::v_nach: + setLetter(122); + setLetter(123); + setLetter(124); + setLetter(125); + break; + + case FrontWord::vor: + case FrontWord::v_vor: + setLetter(116); + setLetter(117); + setLetter(118); + break; + + case FrontWord::viertel: + setLetter(7); + setLetter(8); + setLetter(9); + setLetter(10); + setLetter(11); + setLetter(12); + setLetter(13); + break; + + case FrontWord::dreiviertel: + setLetter(140); + setLetter(139); + setLetter(138); + setLetter(137); + setLetter(136); + setLetter(135); + setLetter(134); + setLetter(133); + setLetter(132); + setLetter(131); + setLetter(130); break; - case halb: - Letter_set(126); - Letter_set(127); - Letter_set(128); - Letter_set(129); + case FrontWord::halb: + setLetter(126); + setLetter(127); + setLetter(128); + setLetter(129); break; - case frueh: - Letter_set(227); - Letter_set(228); - Letter_set(229); - Letter_set(230); + case FrontWord::frueh: + setLetter(227); + setLetter(228); + setLetter(229); + setLetter(230); break; - case minuten_uhr: - Letter_set(232); - Letter_set(233); - Letter_set(234); + case FrontWord::minuten_uhr: + setLetter(232); + setLetter(233); + setLetter(234); break; - case minuten_extra: - Letter_set(235); - Letter_set(236); - Letter_set(237); - Letter_set(238); - Letter_set(239); - Letter_set(240); - Letter_set(241); + case FrontWord::minuten_extra: + setLetter(235); + setLetter(236); + setLetter(237); + setLetter(238); + setLetter(239); + setLetter(240); + setLetter(241); break; - case abends: - Letter_set(242); - Letter_set(243); - Letter_set(244); - Letter_set(245); - Letter_set(246); - Letter_set(247); + case FrontWord::abends: + setLetter(242); + setLetter(243); + setLetter(244); + setLetter(245); + setLetter(246); + setLetter(247); break; - case mitternacht: - Letter_set(248); - Letter_set(249); - Letter_set(250); - Letter_set(251); - Letter_set(252); - Letter_set(253); - Letter_set(254); - Letter_set(255); - Letter_set(256); - Letter_set(257); - Letter_set(258); - break; - - case mittags: - Letter_set(260); - Letter_set(261); - Letter_set(262); - Letter_set(263); - Letter_set(264); - Letter_set(265); - Letter_set(266); - break; - - case warm: - Letter_set(267); - Letter_set(268); - Letter_set(269); - Letter_set(270); - break; - - case morgens: - Letter_set(271); - Letter_set(272); - Letter_set(273); - Letter_set(274); - Letter_set(275); - Letter_set(276); - Letter_set(277); - break; - - case uhr: - Letter_set(87); - Letter_set(88); - Letter_set(89); - break; - - case und: - Letter_set(101); - Letter_set(102); - Letter_set(103); + case FrontWord::mitternacht: + setLetter(248); + setLetter(249); + setLetter(250); + setLetter(251); + setLetter(252); + setLetter(253); + setLetter(254); + setLetter(255); + setLetter(256); + setLetter(257); + setLetter(258); + break; + + case FrontWord::mittags: + setLetter(260); + setLetter(261); + setLetter(262); + setLetter(263); + setLetter(264); + setLetter(265); + setLetter(266); + break; + + case FrontWord::warm: + setLetter(267); + setLetter(268); + setLetter(269); + setLetter(270); + break; + + case FrontWord::morgens: + setLetter(271); + setLetter(272); + setLetter(273); + setLetter(274); + setLetter(275); + setLetter(276); + setLetter(277); + break; + + case FrontWord::uhr: + setLetter(87); + setLetter(88); + setLetter(89); + break; + + case FrontWord::und: + setLetter(101); + setLetter(102); + setLetter(103); break; // Stunden - case h_ein: - Letter_set(14); - Letter_set(15); - Letter_set(16); - Letter_set(17); + case FrontWord::h_ein: + setLetter(14); + setLetter(15); + setLetter(16); + setLetter(17); break; - case h_zwei: - Letter_set(64); - Letter_set(65); - Letter_set(66); - Letter_set(67); + case FrontWord::h_zwei: + setLetter(64); + setLetter(65); + setLetter(66); + setLetter(67); break; - case h_drei: - Letter_set(32); - Letter_set(33); - Letter_set(34); - Letter_set(35); + case FrontWord::h_drei: + setLetter(32); + setLetter(33); + setLetter(34); + setLetter(35); break; - case h_vier: - Letter_set(46); - Letter_set(47); - Letter_set(48); - Letter_set(49); + case FrontWord::h_vier: + setLetter(46); + setLetter(47); + setLetter(48); + setLetter(49); break; - case h_fuenf: - Letter_set(38); - Letter_set(39); - Letter_set(40); - Letter_set(41); + case FrontWord::h_fuenf: + setLetter(38); + setLetter(39); + setLetter(40); + setLetter(41); break; - case h_sechs: - Letter_set(24); - Letter_set(25); - Letter_set(26); - Letter_set(27); - Letter_set(28); + case FrontWord::h_sechs: + setLetter(24); + setLetter(25); + setLetter(26); + setLetter(27); + setLetter(28); break; - case h_sieben: - Letter_set(19); - Letter_set(20); - Letter_set(21); - Letter_set(22); - Letter_set(23); - Letter_set(24); + case FrontWord::h_sieben: + setLetter(19); + setLetter(20); + setLetter(21); + setLetter(22); + setLetter(23); + setLetter(24); break; - case h_acht: - Letter_set(50); - Letter_set(51); - Letter_set(52); - Letter_set(53); + case FrontWord::h_acht: + setLetter(50); + setLetter(51); + setLetter(52); + setLetter(53); break; - case h_neun: - Letter_set(42); - Letter_set(43); - Letter_set(44); - Letter_set(45); + case FrontWord::h_neun: + setLetter(42); + setLetter(43); + setLetter(44); + setLetter(45); break; - case h_zehn: - Letter_set(54); - Letter_set(55); - Letter_set(56); - Letter_set(57); + case FrontWord::h_zehn: + setLetter(54); + setLetter(55); + setLetter(56); + setLetter(57); break; - case h_elf: - Letter_set(36); - Letter_set(37); - Letter_set(38); + case FrontWord::h_elf: + setLetter(36); + setLetter(37); + setLetter(38); break; - case h_zwoelf: - Letter_set(58); - Letter_set(59); - Letter_set(60); - Letter_set(61); - Letter_set(62); + case FrontWord::h_zwoelf: + setLetter(58); + setLetter(59); + setLetter(60); + setLetter(61); + setLetter(62); break; - case h_dreizehn: - Letter_set(14); - Letter_set(15); - Letter_set(16); - Letter_set(17); + case FrontWord::h_dreizehn: + setLetter(14); + setLetter(15); + setLetter(16); + setLetter(17); break; default: diff --git a/include/Uhrtypes/DE21x11.weather.hpp b/include/Uhrtypes/DE21x11.weather.hpp index c33a68b7..f84ad8a4 100644 --- a/include/Uhrtypes/DE21x11.weather.hpp +++ b/include/Uhrtypes/DE21x11.weather.hpp @@ -64,17 +64,18 @@ class De21x11Weather_t : public iUhrType { //------------------------------------------------------------------------------ - void show(uint8_t text) override { - switch (text) { - case es_ist: + void show(FrontWord word) override { + switch (word) { + + case FrontWord::es_ist: // Es - Letter_set(0); - Letter_set(1); + setLetter(0); + setLetter(1); // Ist - Letter_set(3); - Letter_set(4); - Letter_set(5); + setLetter(3); + setLetter(4); + setLetter(5); #ifdef VERBOSE Serial.println(""); @@ -82,238 +83,238 @@ class De21x11Weather_t : public iUhrType { #endif break; - case viertel: - Letter_set(26); - Letter_set(27); - Letter_set(28); - Letter_set(29); - Letter_set(30); - Letter_set(31); - Letter_set(32); + case FrontWord::viertel: + setLetter(26); + setLetter(27); + setLetter(28); + setLetter(29); + setLetter(30); + setLetter(31); + setLetter(32); #ifdef VERBOSE Serial.print("viertel "); #endif break; - case fuenf: - Letter_set(7); - Letter_set(8); - Letter_set(9); - Letter_set(10); + case FrontWord::fuenf: + setLetter(7); + setLetter(8); + setLetter(9); + setLetter(10); #ifdef VERBOSE Serial.print("Fünf "); #endif break; - case zehn: - Letter_set(18); - Letter_set(19); - Letter_set(20); - Letter_set(21); + case FrontWord::zehn: + setLetter(18); + setLetter(19); + setLetter(20); + setLetter(21); #ifdef VERBOSE Serial.print("zehn "); #endif break; - case zwanzig: - Letter_set(11); - Letter_set(12); - Letter_set(13); - Letter_set(14); - Letter_set(15); - Letter_set(16); - Letter_set(17); + case FrontWord::zwanzig: + setLetter(11); + setLetter(12); + setLetter(13); + setLetter(14); + setLetter(15); + setLetter(16); + setLetter(17); #ifdef VERBOSE Serial.print("zwanzig "); #endif break; - case halb: - Letter_set(44); - Letter_set(45); - Letter_set(46); - Letter_set(47); + case FrontWord::halb: + setLetter(44); + setLetter(45); + setLetter(46); + setLetter(47); #ifdef VERBOSE Serial.print("halb "); #endif break; - case eins: - Letter_set(60); - Letter_set(61); - Letter_set(62); - Letter_set(63); + case FrontWord::eins: + setLetter(60); + setLetter(61); + setLetter(62); + setLetter(63); #ifdef VERBOSE Serial.print("Eins "); #endif break; - case nach: - case v_nach: - Letter_set(38); - Letter_set(39); - Letter_set(40); - Letter_set(41); + case FrontWord::nach: + case FrontWord::v_nach: + setLetter(38); + setLetter(39); + setLetter(40); + setLetter(41); #ifdef VERBOSE Serial.print("nach "); #endif break; - case vor: - case v_vor: - Letter_set(35); - Letter_set(36); - Letter_set(37); + case FrontWord::vor: + case FrontWord::v_vor: + setLetter(35); + setLetter(36); + setLetter(37); #ifdef VERBOSE Serial.print("vor "); #endif - case uhr: - Letter_set(100); - Letter_set(101); - Letter_set(102); + case FrontWord::uhr: + setLetter(100); + setLetter(101); + setLetter(102); #ifdef VERBOSE Serial.println("Uhr "); #endif break; - case h_ein: - Letter_set(61); - Letter_set(62); - Letter_set(63); + case FrontWord::h_ein: + setLetter(61); + setLetter(62); + setLetter(63); #ifdef VERBOSE Serial.println("Eins "); #endif break; - case h_zwei: - Letter_set(62); - Letter_set(63); - Letter_set(64); - Letter_set(65); + case FrontWord::h_zwei: + setLetter(62); + setLetter(63); + setLetter(64); + setLetter(65); #ifdef VERBOSE Serial.println("Zwei "); #endif break; - case h_drei: - Letter_set(67); - Letter_set(68); - Letter_set(69); - Letter_set(70); + case FrontWord::h_drei: + setLetter(67); + setLetter(68); + setLetter(69); + setLetter(70); #ifdef VERBOSE Serial.println("Drei "); #endif break; - case h_vier: - Letter_set(77); - Letter_set(78); - Letter_set(79); - Letter_set(80); + case FrontWord::h_vier: + setLetter(77); + setLetter(78); + setLetter(79); + setLetter(80); #ifdef VERBOSE Serial.println("Vier "); #endif break; - case h_fuenf: - Letter_set(73); - Letter_set(74); - Letter_set(75); - Letter_set(76); + case FrontWord::h_fuenf: + setLetter(73); + setLetter(74); + setLetter(75); + setLetter(76); #ifdef VERBOSE Serial.println("Fünf "); #endif break; - case h_sechs: - Letter_set(104); - Letter_set(105); - Letter_set(106); - Letter_set(107); - Letter_set(108); + case FrontWord::h_sechs: + setLetter(104); + setLetter(105); + setLetter(106); + setLetter(107); + setLetter(108); #ifdef VERBOSE Serial.println("Sechs "); #endif break; - case h_sieben: - Letter_set(55); - Letter_set(56); - Letter_set(57); - Letter_set(58); - Letter_set(59); - Letter_set(60); + case FrontWord::h_sieben: + setLetter(55); + setLetter(56); + setLetter(57); + setLetter(58); + setLetter(59); + setLetter(60); #ifdef VERBOSE Serial.println("Sieben "); #endif break; - case h_acht: - Letter_set(89); - Letter_set(90); - Letter_set(91); - Letter_set(92); + case FrontWord::h_acht: + setLetter(89); + setLetter(90); + setLetter(91); + setLetter(92); #ifdef VERBOSE Serial.println("Acht "); #endif break; - case h_neun: - Letter_set(81); - Letter_set(82); - Letter_set(83); - Letter_set(84); + case FrontWord::h_neun: + setLetter(81); + setLetter(82); + setLetter(83); + setLetter(84); #ifdef VERBOSE Serial.println("Neun "); #endif break; - case h_zehn: - Letter_set(93); - Letter_set(94); - Letter_set(95); - Letter_set(96); + case FrontWord::h_zehn: + setLetter(93); + setLetter(94); + setLetter(95); + setLetter(96); #ifdef VERBOSE Serial.println("Zehn "); #endif break; - case h_elf: - Letter_set(85); - Letter_set(86); - Letter_set(87); + case FrontWord::h_elf: + setLetter(85); + setLetter(86); + setLetter(87); #ifdef VERBOSE Serial.println("Elf "); #endif break; - case h_zwoelf: - Letter_set(49); - Letter_set(50); - Letter_set(51); - Letter_set(52); - Letter_set(53); + case FrontWord::h_zwoelf: + setLetter(49); + setLetter(50); + setLetter(51); + setLetter(52); + setLetter(53); #ifdef VERBOSE Serial.println("Zwölf "); @@ -324,254 +325,254 @@ class De21x11Weather_t : public iUhrType { // Wetter //------------------------------------------------------------------------------ - case w_morgen: - Letter_set(131); - Letter_set(130); - Letter_set(129); - Letter_set(128); - Letter_set(127); - Letter_set(126); + case FrontWord::w_morgen: + setLetter(131); + setLetter(130); + setLetter(129); + setLetter(128); + setLetter(127); + setLetter(126); #ifdef VERBOSE Serial.print("Morgen "); #endif break; - case w_frueh: - Letter_set(124); - Letter_set(123); - Letter_set(122); - Letter_set(121); + case FrontWord::w_frueh: + setLetter(124); + setLetter(123); + setLetter(122); + setLetter(121); #ifdef VERBOSE Serial.print("Früh "); #endif break; - case w_abend: - Letter_set(132); - Letter_set(133); - Letter_set(134); - Letter_set(135); - Letter_set(136); + case FrontWord::w_abend: + setLetter(132); + setLetter(133); + setLetter(134); + setLetter(135); + setLetter(136); #ifdef VERBOSE Serial.print("Abend "); #endif break; - case w_mittag: - Letter_set(137); - Letter_set(138); - Letter_set(139); - Letter_set(140); - Letter_set(141); - Letter_set(142); + case FrontWord::w_mittag: + setLetter(137); + setLetter(138); + setLetter(139); + setLetter(140); + setLetter(141); + setLetter(142); #ifdef VERBOSE Serial.print("Mittag "); #endif break; - case w_nacht: - Letter_set(153); - Letter_set(152); - Letter_set(151); - Letter_set(150); - Letter_set(149); + case FrontWord::w_nacht: + setLetter(153); + setLetter(152); + setLetter(151); + setLetter(150); + setLetter(149); #ifdef VERBOSE Serial.print("Nacht "); #endif break; - case w_schnee: - Letter_set(148); - Letter_set(147); - Letter_set(146); - Letter_set(145); - Letter_set(144); - Letter_set(143); + case FrontWord::w_schnee: + setLetter(148); + setLetter(147); + setLetter(146); + setLetter(145); + setLetter(144); + setLetter(143); #ifdef VERBOSE Serial.print("Schnee "); #endif break; - case w_klar: - Letter_set(154); - Letter_set(155); - Letter_set(156); - Letter_set(157); + case FrontWord::w_klar: + setLetter(154); + setLetter(155); + setLetter(156); + setLetter(157); #ifdef VERBOSE Serial.print("klar "); #endif break; - case w_warnung: - Letter_set(158); - Letter_set(159); - Letter_set(160); - Letter_set(161); - Letter_set(162); - Letter_set(163); - Letter_set(164); + case FrontWord::w_warnung: + setLetter(158); + setLetter(159); + setLetter(160); + setLetter(161); + setLetter(162); + setLetter(163); + setLetter(164); #ifdef VERBOSE Serial.print("Warnung "); #endif break; - case w_regen: - Letter_set(175); - Letter_set(174); - Letter_set(173); - Letter_set(172); - Letter_set(171); + case FrontWord::w_regen: + setLetter(175); + setLetter(174); + setLetter(173); + setLetter(172); + setLetter(171); #ifdef VERBOSE Serial.print("Regen "); #endif break; - case w_wolken: - Letter_set(170); - Letter_set(169); - Letter_set(168); - Letter_set(167); - Letter_set(166); - Letter_set(165); + case FrontWord::w_wolken: + setLetter(170); + setLetter(169); + setLetter(168); + setLetter(167); + setLetter(166); + setLetter(165); #ifdef VERBOSE Serial.print("Wolken "); #endif break; - case w_gewitter: - Letter_set(177); - Letter_set(178); - Letter_set(179); - Letter_set(180); - Letter_set(181); - Letter_set(182); - Letter_set(183); - Letter_set(184); + case FrontWord::w_gewitter: + setLetter(177); + setLetter(178); + setLetter(179); + setLetter(180); + setLetter(181); + setLetter(182); + setLetter(183); + setLetter(184); #ifdef VERBOSE Serial.print("Gewitter "); #endif break; - case w_unter: - Letter_set(197); - Letter_set(196); - Letter_set(195); - Letter_set(194); - Letter_set(193); + case FrontWord::w_unter: + setLetter(197); + setLetter(196); + setLetter(195); + setLetter(194); + setLetter(193); #ifdef VERBOSE Serial.print("unter "); #endif break; - case w_ueber: - Letter_set(191); - Letter_set(190); - Letter_set(189); - Letter_set(188); + case FrontWord::w_ueber: + setLetter(191); + setLetter(190); + setLetter(189); + setLetter(188); #ifdef VERBOSE Serial.print("über "); #endif break; - case w_minus: - Letter_set(199); - Letter_set(200); - Letter_set(201); - Letter_set(202); - Letter_set(203); + case FrontWord::w_minus: + setLetter(199); + setLetter(200); + setLetter(201); + setLetter(202); + setLetter(203); #ifdef VERBOSE Serial.print("minus "); #endif break; - case w_null: - Letter_set(205); - Letter_set(206); - Letter_set(207); - Letter_set(208); + case FrontWord::w_null: + setLetter(205); + setLetter(206); + setLetter(207); + setLetter(208); #ifdef VERBOSE Serial.print("Null "); #endif break; - case w_fuenf: - Letter_set(219); - Letter_set(218); - Letter_set(217); - Letter_set(216); + case FrontWord::w_fuenf: + setLetter(219); + setLetter(218); + setLetter(217); + setLetter(216); #ifdef VERBOSE Serial.print("Fünf "); #endif break; - case w_zehn: - Letter_set(215); - Letter_set(214); - Letter_set(213); - Letter_set(212); + case FrontWord::w_zehn: + setLetter(215); + setLetter(214); + setLetter(213); + setLetter(212); #ifdef VERBOSE Serial.print("Zehn "); #endif break; - case w_und: - Letter_set(211); - Letter_set(210); - Letter_set(209); + case FrontWord::w_und: + setLetter(211); + setLetter(210); + setLetter(209); #ifdef VERBOSE Serial.print("und "); #endif break; - case w_zwanzig: - Letter_set(222); - Letter_set(223); - Letter_set(224); - Letter_set(225); - Letter_set(226); - Letter_set(227); - Letter_set(228); + case FrontWord::w_zwanzig: + setLetter(222); + setLetter(223); + setLetter(224); + setLetter(225); + setLetter(226); + setLetter(227); + setLetter(228); #ifdef VERBOSE Serial.print("Zwanzig "); #endif break; - case w_dreissig: - Letter_set(241); - Letter_set(240); - Letter_set(239); - Letter_set(238); - Letter_set(237); - Letter_set(236); - Letter_set(235); + case FrontWord::w_dreissig: + setLetter(241); + setLetter(240); + setLetter(239); + setLetter(238); + setLetter(237); + setLetter(236); + setLetter(235); #ifdef VERBOSE Serial.print("Dreißig "); #endif break; - case w_grad: - Letter_set(233); - Letter_set(232); + case FrontWord::w_grad: + setLetter(233); + setLetter(232); #ifdef VERBOSE Serial.println("°C "); diff --git a/include/Uhrtypes/EN10x11.hpp b/include/Uhrtypes/EN10x11.hpp index e351a0b7..9adee7d8 100644 --- a/include/Uhrtypes/EN10x11.hpp +++ b/include/Uhrtypes/EN10x11.hpp @@ -34,188 +34,211 @@ class En10x11_t : public iUhrType { //------------------------------------------------------------------------------ - void show(uint8_t text) override { - switch (text) { - - case es_ist: - // Es - Letter_set(0); // I - Letter_set(1); // T - // Ist - Letter_set(3); // I - Letter_set(4); // S - break; - case h_ein: + void show(FrontWord word) override { + switch (word) { + + case FrontWord::es_ist: + // It + setLetter(0); + setLetter(1); + // is + setLetter(3); + setLetter(4); + break; + + case FrontWord::h_ein: // One - Letter_set(65); // O - Letter_set(64); // N - Letter_set(63); // E + setLetter(65); + setLetter(64); + setLetter(63); break; - case h_zwei: + + case FrontWord::h_zwei: // Two - Letter_set(74); // T - Letter_set(75); // W - Letter_set(76); // O + setLetter(74); + setLetter(75); + setLetter(76); break; - case h_drei: + + case FrontWord::h_drei: // Three - Letter_set(59); // T - Letter_set(58); // H - Letter_set(57); // R - Letter_set(56); // E - Letter_set(55); // E + setLetter(59); + setLetter(58); + setLetter(57); + setLetter(56); + setLetter(55); break; - case h_vier: + + case FrontWord::h_vier: // Four - Letter_set(66); // F - Letter_set(67); // O - Letter_set(68); // U - Letter_set(69); // R + setLetter(66); + setLetter(67); + setLetter(68); + setLetter(69); break; - case h_fuenf: + + case FrontWord::h_fuenf: // Five - Letter_set(70); // F - Letter_set(71); // I - Letter_set(72); // V - Letter_set(73); // E + setLetter(70); + setLetter(71); + setLetter(72); + setLetter(73); break; - case h_sechs: + + case FrontWord::h_sechs: // Six - Letter_set(62); // S - Letter_set(61); // I - Letter_set(60); // X + setLetter(62); + setLetter(61); + setLetter(60); break; - case h_sieben: + + case FrontWord::h_sieben: // Seven - Letter_set(88); // S - Letter_set(89); // E - Letter_set(90); // V - Letter_set(91); // E - Letter_set(92); // N + setLetter(88); + setLetter(89); + setLetter(90); + setLetter(91); + setLetter(92); break; - case h_acht: + + case FrontWord::h_acht: // Eight - Letter_set(87); // E - Letter_set(86); // I - Letter_set(85); // G - Letter_set(84); // H - Letter_set(83); // T + setLetter(87); + setLetter(86); + setLetter(85); + setLetter(84); + setLetter(83); break; - case h_neun: + + case FrontWord::h_neun: // Nine - Letter_set(51); // N - Letter_set(52); // I - Letter_set(53); // N - Letter_set(54); // E + setLetter(51); + setLetter(52); + setLetter(53); + setLetter(54); break; - case h_zehn: + + case FrontWord::h_zehn: // Ten - Letter_set(109); // T - Letter_set(108); // E - Letter_set(107); // N + setLetter(109); + setLetter(108); + setLetter(107); break; - case h_elf: + + case FrontWord::h_elf: // Eleven - Letter_set(82); // E - Letter_set(81); // L - Letter_set(80); // E - Letter_set(79); // V - Letter_set(78); // E - Letter_set(77); // N - break; - case h_zwoelf: + setLetter(82); + setLetter(81); + setLetter(80); + setLetter(79); + setLetter(78); + setLetter(77); + break; + + case FrontWord::h_zwoelf: // Twelve - Letter_set(93); // T - Letter_set(94); // W - Letter_set(95); // E - Letter_set(96); // L - Letter_set(97); // V - Letter_set(98); // E - break; - case fuenf: + setLetter(93); + setLetter(94); + setLetter(95); + setLetter(96); + setLetter(97); + setLetter(98); + break; + + case FrontWord::fuenf: // Five - Letter_set(28); // F - Letter_set(29); // I - Letter_set(30); // V - Letter_set(31); // E + setLetter(28); + setLetter(29); + setLetter(30); + setLetter(31); break; - case zehn: + + case FrontWord::zehn: // Ten - Letter_set(38); // T - Letter_set(37); // E - Letter_set(36); // N + setLetter(38); + setLetter(37); + setLetter(36); break; - case a_quarter: + + case FrontWord::a_quarter: // A Quater - Letter_set(21); // A - Letter_set(13); // Q - Letter_set(14); // U - Letter_set(15); // A - Letter_set(16); // R - Letter_set(17); // T - Letter_set(18); // E - Letter_set(19); // R - break; - case viertel: + setLetter(21); + setLetter(13); + setLetter(14); + setLetter(15); + setLetter(16); + setLetter(17); + setLetter(18); + setLetter(19); + break; + + case FrontWord::viertel: // Quater - Letter_set(13); // Q - Letter_set(14); // U - Letter_set(15); // A - Letter_set(16); // R - Letter_set(17); // T - Letter_set(18); // E - Letter_set(19); // R - break; - case zwanzig: + setLetter(13); + setLetter(14); + setLetter(15); + setLetter(16); + setLetter(17); + setLetter(18); + setLetter(19); + break; + + case FrontWord::zwanzig: // Twenty - Letter_set(22); // T - Letter_set(23); // W - Letter_set(24); // E - Letter_set(25); // N - Letter_set(26); // T - Letter_set(27); // Y - break; - case twentyfive: + setLetter(22); + setLetter(23); + setLetter(24); + setLetter(25); + setLetter(26); + setLetter(27); + break; + + case FrontWord::twentyfive: // Twentyfive - Letter_set(22); // T - Letter_set(23); // W - Letter_set(24); // E - Letter_set(25); // N - Letter_set(26); // T - Letter_set(27); // Y - Letter_set(28); // F - Letter_set(29); // I - Letter_set(30); // V - Letter_set(31); // E - break; - case halb: + setLetter(22); + setLetter(23); + setLetter(24); + setLetter(25); + setLetter(26); + setLetter(27); + setLetter(28); + setLetter(29); + setLetter(30); + setLetter(31); + break; + + case FrontWord::halb: // Half - Letter_set(43); // H - Letter_set(42); // A - Letter_set(41); // L - Letter_set(40); // F + setLetter(43); + setLetter(42); + setLetter(41); + setLetter(40); break; - case nach: + + case FrontWord::nach: // Past - Letter_set(44); // P - Letter_set(45); // A - Letter_set(46); // S - Letter_set(47); // T + setLetter(44); + setLetter(45); + setLetter(46); + setLetter(47); break; - case vor: + + case FrontWord::vor: // To - Letter_set(34); // T - Letter_set(33); // O + setLetter(34); + setLetter(33); break; - case uhr: + + case FrontWord::uhr: // O'Clock - Letter_set(104); // O' - Letter_set(103); // C - Letter_set(102); // L - Letter_set(101); // O - Letter_set(100); // C - Letter_set(99); // K + setLetter(104); + setLetter(103); + setLetter(102); + setLetter(101); + setLetter(100); + setLetter(99); break; + default: break; }; diff --git a/include/Uhrtypes/NL10x11.hpp b/include/Uhrtypes/NL10x11.hpp index 485c9200..e00f779d 100644 --- a/include/Uhrtypes/NL10x11.hpp +++ b/include/Uhrtypes/NL10x11.hpp @@ -22,168 +22,173 @@ class NL10x11_t : public iUhrType { return LanguageAbbreviation::NL; }; - case es_ist: + //------------------------------------------------------------------------------ + + void show(FrontWord word) override { + switch (word) { + + case FrontWord::es_ist: // Es - Letter_set(0); - Letter_set(1); - Letter_set(2); + setLetter(0); + setLetter(1); + setLetter(2); // Ist - Letter_set(4); - Letter_set(5); + setLetter(4); + setLetter(5); break; - case nach: - case v_nach: - Letter_set(37); - Letter_set(36); - Letter_set(35); - Letter_set(34); + case FrontWord::nach: + case FrontWord::v_nach: + setLetter(37); + setLetter(36); + setLetter(35); + setLetter(34); break; - case vor: - case v_vor: - Letter_set(43); - Letter_set(42); - Letter_set(41); - Letter_set(40); + case FrontWord::vor: + case FrontWord::v_vor: + setLetter(43); + setLetter(42); + setLetter(41); + setLetter(40); break; - case viertel: - Letter_set(28); - Letter_set(29); - Letter_set(30); - Letter_set(31); - Letter_set(32); + case FrontWord::viertel: + setLetter(28); + setLetter(29); + setLetter(30); + setLetter(31); + setLetter(32); break; - case fuenf: - Letter_set(22); - Letter_set(23); - Letter_set(24); - Letter_set(25); + case FrontWord::fuenf: + setLetter(22); + setLetter(23); + setLetter(24); + setLetter(25); break; - case zehn: - Letter_set(14); - Letter_set(13); - Letter_set(12); - Letter_set(11); + case FrontWord::zehn: + setLetter(14); + setLetter(13); + setLetter(12); + setLetter(11); break; - case halb: - Letter_set(44); - Letter_set(45); - Letter_set(46); - Letter_set(47); + case FrontWord::halb: + setLetter(44); + setLetter(45); + setLetter(46); + setLetter(47); break; - case h_ein: - Letter_set(51); - Letter_set(52); - Letter_set(53); + case FrontWord::h_ein: + setLetter(51); + setLetter(52); + setLetter(53); break; - case uhr: - Letter_set(109); - Letter_set(108); - Letter_set(107); + case FrontWord::uhr: + setLetter(109); + setLetter(108); + setLetter(107); break; - case h_zwei: - Letter_set(49); - Letter_set(50); - Letter_set(51); - Letter_set(52); + case FrontWord::h_zwei: + setLetter(49); + setLetter(50); + setLetter(51); + setLetter(52); break; - case h_drei: - Letter_set(61); - Letter_set(60); - Letter_set(59); - Letter_set(58); + case FrontWord::h_drei: + setLetter(61); + setLetter(60); + setLetter(59); + setLetter(58); break; - case h_vier: - Letter_set(88); - Letter_set(89); - Letter_set(90); - Letter_set(91); + case FrontWord::h_vier: + setLetter(88); + setLetter(89); + setLetter(90); + setLetter(91); break; - case h_fuenf: - Letter_set(92); - Letter_set(93); - Letter_set(94); - Letter_set(95); + case FrontWord::h_fuenf: + setLetter(92); + setLetter(93); + setLetter(94); + setLetter(95); break; - case h_sechs: - Letter_set(57); - Letter_set(56); - Letter_set(55); + case FrontWord::h_sechs: + setLetter(57); + setLetter(56); + setLetter(55); break; - case h_sieben: - Letter_set(66); - Letter_set(67); - Letter_set(68); - Letter_set(69); - Letter_set(70); + case FrontWord::h_sieben: + setLetter(66); + setLetter(67); + setLetter(68); + setLetter(69); + setLetter(70); break; - case h_acht: - Letter_set(65); - Letter_set(64); - Letter_set(63); - Letter_set(62); + case FrontWord::h_acht: + setLetter(65); + setLetter(64); + setLetter(63); + setLetter(62); break; - case h_neun: - Letter_set(70); - Letter_set(71); - Letter_set(72); - Letter_set(73); - Letter_set(74); + case FrontWord::h_neun: + setLetter(70); + setLetter(71); + setLetter(72); + setLetter(73); + setLetter(74); break; - case h_zehn: - Letter_set(80); - Letter_set(79); - Letter_set(78); - Letter_set(77); + case FrontWord::h_zehn: + setLetter(80); + setLetter(79); + setLetter(78); + setLetter(77); break; - case h_elf: - Letter_set(96); - Letter_set(97); - Letter_set(98); + case FrontWord::h_elf: + setLetter(96); + setLetter(97); + setLetter(98); break; - case h_zwoelf: - Letter_set(87); - Letter_set(86); - Letter_set(85); - Letter_set(84); - Letter_set(83); - Letter_set(82); + case FrontWord::h_zwoelf: + setLetter(87); + setLetter(86); + setLetter(85); + setLetter(84); + setLetter(83); + setLetter(82); break; - case nur: + case FrontWord::nur: // Nu - Letter_set(7); - Letter_set(8); + setLetter(7); + setLetter(8); break; - case gewesen: + case FrontWord::gewesen: // Geweest - Letter_set(105); - Letter_set(104); - Letter_set(103); - Letter_set(102); - Letter_set(101); - Letter_set(100); - Letter_set(99); + setLetter(105); + setLetter(104); + setLetter(103); + setLetter(102); + setLetter(101); + setLetter(100); + setLetter(99); break; default: diff --git a/include/Uhrtypes/Uhrtype.hpp b/include/Uhrtypes/Uhrtype.hpp index a1e778cb..b54f4707 100644 --- a/include/Uhrtypes/Uhrtype.hpp +++ b/include/Uhrtypes/Uhrtype.hpp @@ -2,98 +2,103 @@ enum class LanguageAbbreviation { EN, DE, NL }; - m_eine = 1, - m_zwei = 2, - m_drei = 3, - m_vier = 4, - fuenf = 5, - m_sechs = 6, - m_sieben = 7, - m_acht = 8, - m_neun = 9, - zehn = 10, - m_elf = 11, - m_zwoelf = 12, - m_dreizehn = 13, - m_vierzehn = 14, - m_sechzehn = 16, - m_siebzehn = 17, - m_achtzehn = 18, - m_neunzehn = 19, - zwanzig = 20, - twentyfive = 25, - - es_ist = 101, - nach = 102, - vor = 103, - viertel = 104, - dreiviertel = 105, - uhr = 106, - halb = 107, - eins = 111, - frueh = 112, - minute = 113, - minuten = 114, - minuten_extra = 115, - abends = 116, - mitternacht = 117, - mittags = 118, - warm = 119, - morgens = 120, - und = 121, - minuten_uhr = 122, - v_vor = 123, - v_nach = 124, - a_quarter = 125, - nur = 126, - beina = 127, - gewesen = 128, - - h_ein = 151, - h_zwei = 152, - h_drei = 153, - h_vier = 154, - h_fuenf = 155, - h_sechs = 156, - h_sieben = 157, - h_acht = 158, - h_neun = 159, - h_zehn = 160, - h_elf = 161, - h_zwoelf = 162, - h_dreizehn = 163, - - w_morgen = 200, - w_frueh = 201, - w_abend = 202, - w_mittag = 203, - w_nacht = 204, - w_schnee = 205, - w_klar = 206, - w_warnung = 207, - w_regen = 208, - w_wolken = 209, - w_gewitter = 210, - w_unter = 211, - w_ueber = 212, - w_minus = 213, - w_null = 214, - w_fuenf = 215, - w_zehn = 216, - w_und = 217, - w_zwanzig = 218, - w_dreissig = 219, - w_grad = 220, - - h_droelf = 240, - happy_birthday = 241 +enum class FrontWord { + error, + m_eine, + m_zwei, + m_drei, + m_vier, + fuenf, + m_sechs, + m_sieben, + m_acht, + m_neun, + zehn, + m_elf, + m_zwoelf, + m_dreizehn, + m_vierzehn, + m_sechzehn, + m_siebzehn, + m_achtzehn, + m_neunzehn, + zwanzig, + twentyfive, + + es_ist, + nach, + vor, + viertel, + dreiviertel, + uhr, + halb, + eins, + frueh, + minute, + minuten, + minuten_extra, + abends, + mitternacht, + mittags, + warm, + morgens, + und, + minuten_uhr, + v_vor, + v_nach, + a_quarter, + nur, + beina, + gewesen, + + h_ein, + h_zwei, + h_drei, + h_vier, + h_fuenf, + h_sechs, + h_sieben, + h_acht, + h_neun, + h_zehn, + h_elf, + h_zwoelf, + h_dreizehn, + + w_morgen, + w_frueh, + w_abend, + w_mittag, + w_nacht, + w_schnee, + w_klar, + w_warnung, + w_regen, + w_wolken, + w_gewitter, + w_unter, + w_ueber, + w_minus, + w_null, + w_fuenf, + w_zehn, + w_und, + w_zwanzig, + w_dreissig, + w_grad, + + h_droelf, + happy_birthday }; class iUhrType { +protected: + virtual void setLetter(const uint16_t index) { frontMatrix[index] = true; } + public: - virtual void Letter_set(const uint16_t index) { frontMatrix[index] = true; } + virtual void show(FrontWord word) = 0; - virtual void show(uint8_t text) = 0; + virtual LanguageAbbreviation usedLang() = 0; virtual inline const uint16_t NUM_PIXELS() { return 114; } diff --git a/include/clockWork.h b/include/clockWork.h index d75ff501..b86bb581 100644 --- a/include/clockWork.h +++ b/include/clockWork.h @@ -31,6 +31,7 @@ class ClockWork { void showMinute(uint8_t min); void showMinuteInWords(uint8_t min); uint8_t determineWhichMinuteVariant(); + FrontWord getFrontWordForNum(uint8_t min); public: ClockWork() = default; diff --git a/include/clockWork.hpp b/include/clockWork.hpp index 395a724d..3fe75581 100644 --- a/include/clockWork.hpp +++ b/include/clockWork.hpp @@ -165,47 +165,47 @@ void ClockWork::initBootWifiSignalStrength(int strength) { void ClockWork::setHour(const uint8_t hour, const bool fullHour) { switch (hour % 12) { case 0: - usedUhrType->show(h_zwoelf); + usedUhrType->show(FrontWord::h_zwoelf); break; case 1: if (fullHour || usedUhrType->usedLang() != LanguageAbbreviation::DE) { - usedUhrType->show(h_ein); + usedUhrType->show(FrontWord::h_ein); } else { - usedUhrType->show(eins); + usedUhrType->show(FrontWord::eins); } break; case 2: - usedUhrType->show(h_zwei); + usedUhrType->show(FrontWord::h_zwei); break; case 3: - usedUhrType->show(h_drei); + usedUhrType->show(FrontWord::h_drei); break; case 4: - usedUhrType->show(h_vier); + usedUhrType->show(FrontWord::h_vier); break; case 5: - usedUhrType->show(h_fuenf); + usedUhrType->show(FrontWord::h_fuenf); break; case 6: - usedUhrType->show(h_sechs); + usedUhrType->show(FrontWord::h_sechs); break; case 7: - usedUhrType->show(h_sieben); + usedUhrType->show(FrontWord::h_sieben); break; case 8: - usedUhrType->show(h_acht); + usedUhrType->show(FrontWord::h_acht); break; case 9: - usedUhrType->show(h_neun); + usedUhrType->show(FrontWord::h_neun); break; case 10: - usedUhrType->show(h_zehn); + usedUhrType->show(FrontWord::h_zehn); break; case 11: - usedUhrType->show(h_elf); + usedUhrType->show(FrontWord::h_elf); break; case 12: - usedUhrType->show(h_zwoelf); + usedUhrType->show(FrontWord::h_zwoelf); break; default: break; @@ -234,15 +234,15 @@ uint8_t ClockWork::determineWhichMinuteVariant() { void ClockWork::showMinuteInWords(uint8_t min) { switch (min) { case 0: - usedUhrType->show(nur); + usedUhrType->show(FrontWord::nur); break; case 1: case 2: - usedUhrType->show(gewesen); + usedUhrType->show(FrontWord::gewesen); break; case 3: case 4: - usedUhrType->show(beina); + usedUhrType->show(FrontWord::beina); break; default: break; @@ -251,6 +251,93 @@ void ClockWork::showMinuteInWords(uint8_t min) { //------------------------------------------------------------------------------ +FrontWord ClockWork::getFrontWordForNum(uint8_t min) { + switch (min) { + + case 1: + return FrontWord::m_eine; + break; + + case 2: + return FrontWord::m_zwei; + break; + + case 3: + return FrontWord::m_drei; + break; + + case 4: + return FrontWord::m_vier; + break; + + case 5: + return FrontWord::fuenf; + break; + + case 6: + return FrontWord::m_sechs; + break; + + case 7: + return FrontWord::m_sieben; + break; + + case 8: + return FrontWord::m_acht; + break; + + case 9: + return FrontWord::m_neun; + break; + + case 10: + return FrontWord::zehn; + break; + + case 11: + return FrontWord::m_elf; + break; + + case 12: + return FrontWord::m_zwoelf; + break; + + case 13: + return FrontWord::m_dreizehn; + break; + + case 14: + return FrontWord::m_vierzehn; + break; + + case 16: + return FrontWord::m_sechzehn; + break; + + case 17: + return FrontWord::m_siebzehn; + break; + + case 18: + return FrontWord::m_achtzehn; + break; + + case 19: + return FrontWord::m_neunzehn; + break; + + case 20: + return FrontWord::zwanzig; + + default: + break; + Serial.println("[Error] getFrontWordForNum() out of Bounds"); + } + return FrontWord::error; +} + +//------------------------------------------------------------------------------ + void ClockWork::showMinute(uint8_t min) { min %= 5; if (G.UhrtypeDef == Nl10x11 && G.minuteVariant == MinuteVariant::InWords) { @@ -277,13 +364,13 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour) { } switch (min) { case 0: // full hour - usedUhrType->show(uhr); + usedUhrType->show(FrontWord::uhr); fullHour = true; break; case 1: - usedUhrType->show(m_eine); - usedUhrType->show(minute); - usedUhrType->show(nach); + usedUhrType->show(FrontWord::m_eine); + usedUhrType->show(FrontWord::minute); + usedUhrType->show(FrontWord::nach); break; case 2: case 3: @@ -298,40 +385,40 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour) { case 12: case 13: case 14: - usedUhrType->show(min); - usedUhrType->show(minuten); - usedUhrType->show(nach); + usedUhrType->show(getFrontWordForNum(min)); + usedUhrType->show(FrontWord::minuten); + usedUhrType->show(FrontWord::nach); break; case 15: // quarter past if (G.languageVariant[ItIs15]) { - usedUhrType->show(viertel); + usedUhrType->show(FrontWord::viertel); offsetHour = 1; } else { // A Quarter past if (G.languageVariant[EN_ShowAQuarter]) { - usedUhrType->show(a_quarter); + usedUhrType->show(FrontWord::a_quarter); } else { - usedUhrType->show(viertel); + usedUhrType->show(FrontWord::viertel); } - usedUhrType->show(v_nach); + usedUhrType->show(FrontWord::v_nach); } break; case 16: case 17: case 18: case 19: - usedUhrType->show(min); - usedUhrType->show(nach); + usedUhrType->show(getFrontWordForNum(min)); + usedUhrType->show(FrontWord::nach); break; case 20: // 20 past if (!usedUhrType->hasZwanzig() || G.languageVariant[ItIs20]) { - usedUhrType->show(zehn); - usedUhrType->show(vor); - usedUhrType->show(halb); - offsetH = 1; + usedUhrType->show(FrontWord::zehn); + usedUhrType->show(FrontWord::vor); + usedUhrType->show(FrontWord::halb); + offsetHour = 1; } else { - usedUhrType->show(zwanzig); - usedUhrType->show(nach); + usedUhrType->show(FrontWord::zwanzig); + usedUhrType->show(FrontWord::nach); } break; case 21: @@ -340,44 +427,44 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour) { case 24: case 25: if (usedUhrType->hasTwentyfive()) { - usedUhrType->show(twentyfive); - usedUhrType->show(nach); + usedUhrType->show(FrontWord::twentyfive); + usedUhrType->show(FrontWord::nach); } else { - usedUhrType->show(fuenf); - usedUhrType->show(vor); - usedUhrType->show(halb); + usedUhrType->show(FrontWord::fuenf); + usedUhrType->show(FrontWord::vor); + usedUhrType->show(FrontWord::halb); offsetHour = 1; } break; case 26: case 27: case 28: - usedUhrType->show(30 - min); - usedUhrType->show(vor); - usedUhrType->show(halb); + usedUhrType->show(getFrontWordForNum(30 - min)); + usedUhrType->show(FrontWord::vor); + usedUhrType->show(FrontWord::halb); offsetHour = 1; break; case 29: - usedUhrType->show(m_eine); - usedUhrType->show(minute); - usedUhrType->show(vor); - usedUhrType->show(halb); + usedUhrType->show(FrontWord::m_eine); + usedUhrType->show(FrontWord::minute); + usedUhrType->show(FrontWord::vor); + usedUhrType->show(FrontWord::halb); offsetHour = 1; break; case 30: // half if (G.UhrtypeDef == Eng10x11) { - usedUhrType->show(halb); - usedUhrType->show(nach); + usedUhrType->show(FrontWord::halb); + usedUhrType->show(FrontWord::nach); } else { - usedUhrType->show(halb); + usedUhrType->show(FrontWord::halb); offsetHour = 1; } break; case 31: - usedUhrType->show(m_eine); - usedUhrType->show(minute); - usedUhrType->show(nach); - usedUhrType->show(halb); + usedUhrType->show(FrontWord::m_eine); + usedUhrType->show(FrontWord::minute); + usedUhrType->show(FrontWord::nach); + usedUhrType->show(FrontWord::halb); offsetHour = 1; break; case 32: @@ -385,12 +472,12 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour) { case 34: case 35: if (usedUhrType->hasTwentyfive()) { - usedUhrType->show(twentyfive); - usedUhrType->show(vor); + usedUhrType->show(FrontWord::twentyfive); + usedUhrType->show(FrontWord::vor); } else { - usedUhrType->show(fuenf); - usedUhrType->show(nach); - usedUhrType->show(halb); + usedUhrType->show(FrontWord::fuenf); + usedUhrType->show(FrontWord::nach); + usedUhrType->show(FrontWord::halb); } offsetHour = 1; break; @@ -398,19 +485,19 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour) { case 37: case 38: case 39: - usedUhrType->show(min - 30); - usedUhrType->show(nach); - usedUhrType->show(halb); + usedUhrType->show(getFrontWordForNum(min - 30)); + usedUhrType->show(FrontWord::nach); + usedUhrType->show(FrontWord::halb); offsetHour = 1; break; case 40: // 20 to if (!usedUhrType->hasZwanzig() || G.languageVariant[ItIs40]) { - usedUhrType->show(zehn); - usedUhrType->show(nach); - usedUhrType->show(halb); + usedUhrType->show(FrontWord::zehn); + usedUhrType->show(FrontWord::nach); + usedUhrType->show(FrontWord::halb); } else { - usedUhrType->show(zwanzig); - usedUhrType->show(vor); + usedUhrType->show(FrontWord::zwanzig); + usedUhrType->show(FrontWord::vor); } offsetHour = 1; break; @@ -418,24 +505,24 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour) { case 42: case 43: case 44: - usedUhrType->show(60 - min); - usedUhrType->show(vor); + usedUhrType->show(getFrontWordForNum(60 - min)); + usedUhrType->show(FrontWord::vor); offsetHour = 1; break; case 45: // quarter to if (usedUhrType->hasDreiviertel() && G.languageVariant[ItIs45]) { - usedUhrType->show(dreiviertel); + usedUhrType->show(FrontWord::dreiviertel); } else { // A Quarter to if (G.languageVariant[EN_ShowAQuarter]) { - usedUhrType->show(a_quarter); + usedUhrType->show(FrontWord::a_quarter); } else { - usedUhrType->show(viertel); + usedUhrType->show(FrontWord::viertel); } if (G.UhrtypeDef == Eng10x11) { - usedUhrType->show(vor); + usedUhrType->show(FrontWord::vor); } else { - usedUhrType->show(v_vor); + usedUhrType->show(FrontWord::v_vor); } } offsetHour = 1; @@ -450,22 +537,22 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour) { case 53: case 54: case 55: - usedUhrType->show(60 - min); - usedUhrType->show(vor); + usedUhrType->show(getFrontWordForNum(60 - min)); + usedUhrType->show(FrontWord::vor); offsetHour = 1; break; case 56: case 57: case 58: - usedUhrType->show(60 - min); - usedUhrType->show(minuten); - usedUhrType->show(vor); + usedUhrType->show(getFrontWordForNum(60 - min)); + usedUhrType->show(FrontWord::minuten); + usedUhrType->show(FrontWord::vor); offsetHour = 1; break; case 59: - usedUhrType->show(m_eine); - usedUhrType->show(minute); - usedUhrType->show(vor); + usedUhrType->show(FrontWord::m_eine); + usedUhrType->show(FrontWord::minute); + usedUhrType->show(FrontWord::vor); offsetHour = 1; break; default: @@ -479,34 +566,34 @@ static void countdownToMidnight() { Serial.printf("Count down: %d\n", 60 - _second); switch (_second) { case 50: - usedUhrType->show(zehn); + usedUhrType->show(FrontWord::zehn); break; case 51: - usedUhrType->show(h_neun); + usedUhrType->show(FrontWord::h_neun); break; case 52: - usedUhrType->show(h_acht); + usedUhrType->show(FrontWord::h_acht); break; case 53: - usedUhrType->show(h_sieben); + usedUhrType->show(FrontWord::h_sieben); break; case 54: - usedUhrType->show(h_sechs); + usedUhrType->show(FrontWord::h_sechs); break; case 55: - usedUhrType->show(fuenf); + usedUhrType->show(FrontWord::fuenf); break; case 56: - usedUhrType->show(h_vier); + usedUhrType->show(FrontWord::h_vier); break; case 57: - usedUhrType->show(h_drei); + usedUhrType->show(FrontWord::h_drei); break; case 58: - usedUhrType->show(h_zwei); + usedUhrType->show(FrontWord::h_zwei); break; case 59: - usedUhrType->show(eins); + usedUhrType->show(FrontWord::eins); break; default: break; @@ -517,7 +604,7 @@ static void countdownToMidnight() { void ClockWork::setClock() { if (!G.languageVariant[NotShowItIs]) { - usedUhrType->show(es_ist); + usedUhrType->show(FrontWord::es_ist); } uint8_t offsetHour = 0; diff --git a/include/openwmap.h b/include/openwmap.h index 23f3180a..202399c5 100644 --- a/include/openwmap.h +++ b/include/openwmap.h @@ -319,119 +319,119 @@ class OpenWMap { case 1: { switch (wHour) { case 1: - usedUhrType->show(w_mittag); + usedUhrType->show(FrontWord::w_mittag); break; case 2: - usedUhrType->show(w_abend); + usedUhrType->show(FrontWord::w_abend); break; case 3: - usedUhrType->show(w_nacht); + usedUhrType->show(FrontWord::w_nacht); break; case 4: { - usedUhrType->show(w_morgen); - usedUhrType->show(w_frueh); + usedUhrType->show(FrontWord::w_morgen); + usedUhrType->show(FrontWord::w_frueh); } break; } switch (wTemp6) { case 30: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_dreissig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_dreissig); + usedUhrType->show(FrontWord::w_grad); } break; case 25: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_und); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_und); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; case 20: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; case 15: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case 10: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case 5: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_grad); } break; case 1: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_null); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_null); + usedUhrType->show(FrontWord::w_grad); } break; case -1: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_null); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_null); + usedUhrType->show(FrontWord::w_grad); } break; case -5: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_grad); } break; case -10: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case -15: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case -20: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; case -25: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_und); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_und); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; } switch (wWeather6) { case 200: - usedUhrType->show(w_gewitter); + usedUhrType->show(FrontWord::w_gewitter); break; case 300: - usedUhrType->show(w_regen); + usedUhrType->show(FrontWord::w_regen); break; case 500: - usedUhrType->show(w_regen); + usedUhrType->show(FrontWord::w_regen); break; case 600: - usedUhrType->show(w_schnee); + usedUhrType->show(FrontWord::w_schnee); break; case 700: - usedUhrType->show(w_warnung); + usedUhrType->show(FrontWord::w_warnung); break; case 800: - usedUhrType->show(w_klar); + usedUhrType->show(FrontWord::w_klar); break; case 801: - usedUhrType->show(w_wolken); + usedUhrType->show(FrontWord::w_wolken); break; } } break; @@ -439,120 +439,120 @@ class OpenWMap { case 2: { switch (wHour) { case 1: - usedUhrType->show(w_abend); + usedUhrType->show(FrontWord::w_abend); break; case 2: - usedUhrType->show(w_nacht); + usedUhrType->show(FrontWord::w_nacht); break; case 3: { - usedUhrType->show(w_morgen); - usedUhrType->show(w_frueh); + usedUhrType->show(FrontWord::w_morgen); + usedUhrType->show(FrontWord::w_frueh); } break; case 4: { - usedUhrType->show(w_morgen); - usedUhrType->show(w_mittag); + usedUhrType->show(FrontWord::w_morgen); + usedUhrType->show(FrontWord::w_mittag); } break; } switch (wTemp12) { case 30: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_dreissig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_dreissig); + usedUhrType->show(FrontWord::w_grad); } break; case 25: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_und); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_und); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; case 20: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; case 15: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case 10: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case 5: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_grad); } break; case 1: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_null); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_null); + usedUhrType->show(FrontWord::w_grad); } break; case -1: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_null); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_null); + usedUhrType->show(FrontWord::w_grad); } break; case -5: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_grad); } break; case -10: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case -15: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case -20: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; case -25: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_und); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_und); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; } switch (wWeather12) { case 200: - usedUhrType->show(w_gewitter); + usedUhrType->show(FrontWord::w_gewitter); break; case 300: - usedUhrType->show(w_regen); + usedUhrType->show(FrontWord::w_regen); break; case 500: - usedUhrType->show(w_regen); + usedUhrType->show(FrontWord::w_regen); break; case 600: - usedUhrType->show(w_schnee); + usedUhrType->show(FrontWord::w_schnee); break; case 700: - usedUhrType->show(w_warnung); + usedUhrType->show(FrontWord::w_warnung); break; case 800: - usedUhrType->show(w_klar); + usedUhrType->show(FrontWord::w_klar); break; case 801: - usedUhrType->show(w_wolken); + usedUhrType->show(FrontWord::w_wolken); break; } @@ -561,121 +561,121 @@ class OpenWMap { case 3: { switch (wHour) { case 1: - usedUhrType->show(w_nacht); + usedUhrType->show(FrontWord::w_nacht); break; case 2: { - usedUhrType->show(w_morgen); - usedUhrType->show(w_frueh); + usedUhrType->show(FrontWord::w_morgen); + usedUhrType->show(FrontWord::w_frueh); } break; case 3: { - usedUhrType->show(w_morgen); - usedUhrType->show(w_mittag); + usedUhrType->show(FrontWord::w_morgen); + usedUhrType->show(FrontWord::w_mittag); } break; case 4: { - usedUhrType->show(w_morgen); - usedUhrType->show(w_abend); + usedUhrType->show(FrontWord::w_morgen); + usedUhrType->show(FrontWord::w_abend); } break; } switch (wTemp18) { case 30: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_dreissig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_dreissig); + usedUhrType->show(FrontWord::w_grad); } break; case 25: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_und); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_und); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; case 20: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; case 15: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case 10: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case 5: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_grad); } break; case 1: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_null); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_null); + usedUhrType->show(FrontWord::w_grad); } break; case -1: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_null); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_null); + usedUhrType->show(FrontWord::w_grad); } break; case -5: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_grad); } break; case -10: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case -15: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case -20: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; case -25: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_und); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_und); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; } switch (wWeather18) { case 200: - usedUhrType->show(w_gewitter); + usedUhrType->show(FrontWord::w_gewitter); break; case 300: - usedUhrType->show(w_regen); + usedUhrType->show(FrontWord::w_regen); break; case 500: - usedUhrType->show(w_regen); + usedUhrType->show(FrontWord::w_regen); break; case 600: - usedUhrType->show(w_schnee); + usedUhrType->show(FrontWord::w_schnee); break; case 700: - usedUhrType->show(w_warnung); + usedUhrType->show(FrontWord::w_warnung); break; case 800: - usedUhrType->show(w_klar); + usedUhrType->show(FrontWord::w_klar); break; case 801: - usedUhrType->show(w_wolken); + usedUhrType->show(FrontWord::w_wolken); break; } @@ -684,122 +684,122 @@ class OpenWMap { case 4: { switch (wHour) { case 1: { - usedUhrType->show(w_morgen); - usedUhrType->show(w_frueh); + usedUhrType->show(FrontWord::w_morgen); + usedUhrType->show(FrontWord::w_frueh); } break; case 2: { - usedUhrType->show(w_morgen); - usedUhrType->show(w_mittag); + usedUhrType->show(FrontWord::w_morgen); + usedUhrType->show(FrontWord::w_mittag); } break; case 3: { - usedUhrType->show(w_morgen); - usedUhrType->show(w_abend); + usedUhrType->show(FrontWord::w_morgen); + usedUhrType->show(FrontWord::w_abend); } break; case 4: { - usedUhrType->show(w_morgen); - usedUhrType->show(w_nacht); + usedUhrType->show(FrontWord::w_morgen); + usedUhrType->show(FrontWord::w_nacht); } break; } switch (wTemp24) { case 30: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_dreissig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_dreissig); + usedUhrType->show(FrontWord::w_grad); } break; case 25: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_und); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_und); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; case 20: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; case 15: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case 10: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case 5: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_grad); } break; case 1: { - usedUhrType->show(w_ueber); - usedUhrType->show(w_null); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_ueber); + usedUhrType->show(FrontWord::w_null); + usedUhrType->show(FrontWord::w_grad); } break; case -1: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_null); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_null); + usedUhrType->show(FrontWord::w_grad); } break; case -5: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_grad); } break; case -10: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case -15: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_zehn); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_zehn); + usedUhrType->show(FrontWord::w_grad); } break; case -20: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; case -25: { - usedUhrType->show(w_unter); - usedUhrType->show(w_minus); - usedUhrType->show(w_fuenf); - usedUhrType->show(w_und); - usedUhrType->show(w_zwanzig); - usedUhrType->show(w_grad); + usedUhrType->show(FrontWord::w_unter); + usedUhrType->show(FrontWord::w_minus); + usedUhrType->show(FrontWord::w_fuenf); + usedUhrType->show(FrontWord::w_und); + usedUhrType->show(FrontWord::w_zwanzig); + usedUhrType->show(FrontWord::w_grad); } break; } switch (wWeather24) { case 200: - usedUhrType->show(w_gewitter); + usedUhrType->show(FrontWord::w_gewitter); break; case 300: - usedUhrType->show(w_regen); + usedUhrType->show(FrontWord::w_regen); break; case 500: - usedUhrType->show(w_regen); + usedUhrType->show(FrontWord::w_regen); break; case 600: - usedUhrType->show(w_schnee); + usedUhrType->show(FrontWord::w_schnee); break; case 700: - usedUhrType->show(w_warnung); + usedUhrType->show(FrontWord::w_warnung); break; case 800: - usedUhrType->show(w_klar); + usedUhrType->show(FrontWord::w_klar); break; case 801: - usedUhrType->show(w_wolken); + usedUhrType->show(FrontWord::w_wolken); break; } From ee620d31ea0ab49b4e8f08864625feac193b2747 Mon Sep 17 00:00:00 2001 From: David Panusch Date: Fri, 27 Jan 2023 20:58:30 +0100 Subject: [PATCH 11/37] Added countdownToMidnight func to class Changes to be committed: modified: include/clockWork.h modified: include/clockWork.hpp --- include/clockWork.h | 1 + include/clockWork.hpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/clockWork.h b/include/clockWork.h index b86bb581..eebbfa13 100644 --- a/include/clockWork.h +++ b/include/clockWork.h @@ -23,6 +23,7 @@ class ClockWork { bool changesInClockface(); void copyClockface(const bool source[], bool destination[]); void calcClockface(); + void countdownToMidnight(); void setClock(); void setHour(const uint8_t std, const bool fullHour); diff --git a/include/clockWork.hpp b/include/clockWork.hpp index 3fe75581..7ca44630 100644 --- a/include/clockWork.hpp +++ b/include/clockWork.hpp @@ -562,7 +562,7 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour) { //------------------------------------------------------------------------------ -static void countdownToMidnight() { +void ClockWork::countdownToMidnight() { Serial.printf("Count down: %d\n", 60 - _second); switch (_second) { case 50: From 0f03ed6d65a4270df9e78de2f49bbc034a741397 Mon Sep 17 00:00:00 2001 From: David Panusch Date: Fri, 27 Jan 2023 21:01:03 +0100 Subject: [PATCH 12/37] Resolved an error which do not show "viertel" after a quarter was set and then uhrtype changed. Changes to be committed: modified: include/clockWork.hpp --- include/clockWork.hpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/include/clockWork.hpp b/include/clockWork.hpp index 7ca44630..5f0933d0 100644 --- a/include/clockWork.hpp +++ b/include/clockWork.hpp @@ -397,9 +397,8 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour) { // A Quarter past if (G.languageVariant[EN_ShowAQuarter]) { usedUhrType->show(FrontWord::a_quarter); - } else { - usedUhrType->show(FrontWord::viertel); } + usedUhrType->show(FrontWord::viertel); usedUhrType->show(FrontWord::v_nach); } break; @@ -516,9 +515,8 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour) { // A Quarter to if (G.languageVariant[EN_ShowAQuarter]) { usedUhrType->show(FrontWord::a_quarter); - } else { - usedUhrType->show(FrontWord::viertel); } + usedUhrType->show(FrontWord::viertel); if (G.UhrtypeDef == Eng10x11) { usedUhrType->show(FrontWord::vor); } else { From 11f7033928f011781c0cce14a2e685bb39bb4c47 Mon Sep 17 00:00:00 2001 From: David Panusch Date: Tue, 31 Jan 2023 13:28:48 +0100 Subject: [PATCH 13/37] Added missing Zwanzig declaration to NL Layout --- include/Uhrtypes/NL10x11.hpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/Uhrtypes/NL10x11.hpp b/include/Uhrtypes/NL10x11.hpp index e00f779d..3c8c9825 100644 --- a/include/Uhrtypes/NL10x11.hpp +++ b/include/Uhrtypes/NL10x11.hpp @@ -76,6 +76,16 @@ class NL10x11_t : public iUhrType { setLetter(11); break; + case FrontWord::zwanzig: + setLetter(21); + setLetter(20); + setLetter(19); + setLetter(18); + setLetter(17); + setLetter(16); + setLetter(15); + break; + case FrontWord::halb: setLetter(44); setLetter(45); From 8e805fe0783c07dc695e050904fac127cceb2cf6 Mon Sep 17 00:00:00 2001 From: David Panusch Date: Tue, 31 Jan 2023 13:31:10 +0100 Subject: [PATCH 14/37] Removed "Beina" Word in NL Layout --- include/Uhrtypes/Uhrtype.hpp | 1 - include/clockWork.hpp | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/include/Uhrtypes/Uhrtype.hpp b/include/Uhrtypes/Uhrtype.hpp index b54f4707..a4b8902f 100644 --- a/include/Uhrtypes/Uhrtype.hpp +++ b/include/Uhrtypes/Uhrtype.hpp @@ -48,7 +48,6 @@ enum class FrontWord { v_nach, a_quarter, nur, - beina, gewesen, h_ein, diff --git a/include/clockWork.hpp b/include/clockWork.hpp index 5f0933d0..a91418bc 100644 --- a/include/clockWork.hpp +++ b/include/clockWork.hpp @@ -236,14 +236,14 @@ void ClockWork::showMinuteInWords(uint8_t min) { case 0: usedUhrType->show(FrontWord::nur); break; + case 1: case 2: - usedUhrType->show(FrontWord::gewesen); - break; case 3: case 4: - usedUhrType->show(FrontWord::beina); + usedUhrType->show(FrontWord::gewesen); break; + default: break; } From 1657b4655833f1105ba54115bee0d8f0dbb60842 Mon Sep 17 00:00:00 2001 From: David Panusch Date: Tue, 31 Jan 2023 13:31:50 +0100 Subject: [PATCH 15/37] Refinements in EN Layout --- include/Uhrtypes/EN10x11.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/Uhrtypes/EN10x11.hpp b/include/Uhrtypes/EN10x11.hpp index 9adee7d8..a5aaa1a5 100644 --- a/include/Uhrtypes/EN10x11.hpp +++ b/include/Uhrtypes/EN10x11.hpp @@ -216,6 +216,7 @@ class En10x11_t : public iUhrType { break; case FrontWord::nach: + case FrontWord::v_nach: // Past setLetter(44); setLetter(45); @@ -224,6 +225,7 @@ class En10x11_t : public iUhrType { break; case FrontWord::vor: + case FrontWord::v_vor: // To setLetter(34); setLetter(33); From 15b5ba4cf5c43e589a1c4604d85f62bfef99a43b Mon Sep 17 00:00:00 2001 From: David Panusch Date: Tue, 31 Jan 2023 13:36:12 +0100 Subject: [PATCH 16/37] Refinements for case 45 in minute --- include/clockWork.hpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/include/clockWork.hpp b/include/clockWork.hpp index a91418bc..cc07bd53 100644 --- a/include/clockWork.hpp +++ b/include/clockWork.hpp @@ -517,11 +517,7 @@ void ClockWork::setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour) { usedUhrType->show(FrontWord::a_quarter); } usedUhrType->show(FrontWord::viertel); - if (G.UhrtypeDef == Eng10x11) { - usedUhrType->show(FrontWord::vor); - } else { - usedUhrType->show(FrontWord::v_vor); - } + usedUhrType->show(FrontWord::v_vor); } offsetHour = 1; break; From e58a18880a8c43f8c67122b66820ed2ad3754758 Mon Sep 17 00:00:00 2001 From: David Panusch Date: Tue, 31 Jan 2023 15:29:39 +0100 Subject: [PATCH 17/37] Added Purist Mode to show It is only to full Hour --- include/Uhr.h | 5 +++-- include/clockWork.h | 1 + include/clockWork.hpp | 15 +++++++++++---- webpage/index.html | 9 ++++++++- webpage/script.js | 8 +++++--- 5 files changed, 28 insertions(+), 10 deletions(-) diff --git a/include/Uhr.h b/include/Uhr.h index 826e967b..fd32118d 100644 --- a/include/Uhr.h +++ b/include/Uhr.h @@ -71,7 +71,7 @@ struct GLOBAL { uint8_t client_nr; uint8_t secondVariant; MinuteVariant minuteVariant; - bool languageVariant[6]; + bool languageVariant[7]; bool layoutVariant[1]; char timeserver[PAYLOAD_LENGTH]; char hostname[PAYLOAD_LENGTH]; @@ -151,7 +151,8 @@ enum LanguageDialects { ItIs40 = 2, ItIs45 = 3, NotShowItIs = 4, - EN_ShowAQuarter = 5, + NotShowPuristMode = 5, + EN_ShowAQuarter = 6, }; enum LayoutVariants { diff --git a/include/clockWork.h b/include/clockWork.h index eebbfa13..ba23cc32 100644 --- a/include/clockWork.h +++ b/include/clockWork.h @@ -26,6 +26,7 @@ class ClockWork { void countdownToMidnight(); void setClock(); + void setItIs(const uint8_t min); void setHour(const uint8_t std, const bool fullHour); void setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour); diff --git a/include/clockWork.hpp b/include/clockWork.hpp index cc07bd53..1f30f934 100644 --- a/include/clockWork.hpp +++ b/include/clockWork.hpp @@ -162,6 +162,16 @@ void ClockWork::initBootWifiSignalStrength(int strength) { //------------------------------------------------------------------------------ +void ClockWork::setItIs(const uint8_t min) { + if (!G.languageVariant[NotShowItIs]) { + usedUhrType->show(FrontWord::es_ist); + } else if (!G.languageVariant[NotShowPuristMode] && min % 30 == 0) { + usedUhrType->show(FrontWord::es_ist); + } +} + +//------------------------------------------------------------------------------ + void ClockWork::setHour(const uint8_t hour, const bool fullHour) { switch (hour % 12) { case 0: @@ -597,13 +607,10 @@ void ClockWork::countdownToMidnight() { //------------------------------------------------------------------------------ void ClockWork::setClock() { - if (!G.languageVariant[NotShowItIs]) { - usedUhrType->show(FrontWord::es_ist); - } - uint8_t offsetHour = 0; bool fullHour = 0; + setItIs(_minute); setMinute(_minute, offsetHour, fullHour); setHour(_hour + offsetHour, fullHour); } diff --git a/webpage/index.html b/webpage/index.html index 856cb1a7..cb6bf207 100644 --- a/webpage/index.html +++ b/webpage/index.html @@ -256,7 +256,14 @@

Sprachoptionen

- + + +
+
+

+
+
+
+
+
+
+
+
+
+
diff --git a/webpage/script.js b/webpage/script.js index fde72477..60b60294 100644 --- a/webpage/script.js +++ b/webpage/script.js @@ -263,6 +263,20 @@ function removeSpecificOption(cls, val, bool) { } } +// handle click events on the swatch + +var swatchGrid = document.getElementById("swatch-grid"); + +swatchGrid.addEventListener("click", function(ext) { + var clickTarget = ext.target; + // read data-color attribute + if (clickTarget.dataset.color) { + // update the color picker + colorPicker.color.set(clickTarget.dataset.color); + changeColor(colorPicker.color); + } +}); + function initWebsocket() { websocket = new WebSocket(ipEsp); diff --git a/webpage/style.css b/webpage/style.css index 0b39e230..9e401f97 100644 --- a/webpage/style.css +++ b/webpage/style.css @@ -607,4 +607,21 @@ input[type=range]::-moz-range-thumb { .slider.round:before { border-radius: 50%; + } + + .swatch-grid { + display: grid; + grid-template-columns: repeat(4, 50px); + grid-template-rows: repeat(2, 50px); + grid-gap: 10px; + margin-top: 1em; + margin-bottom: 1em; + justify-content: center; + } + + .swatch { + border: 2px solid gray; + border-width: 1px; + border-radius: 20px; + cursor: pointer; } \ No newline at end of file From 27fa93b9cc1fd93d7399ec35885e9c8d16446771 Mon Sep 17 00:00:00 2001 From: David Panusch Date: Wed, 1 Feb 2023 22:37:09 +0100 Subject: [PATCH 20/37] Refined Verbose condition from Bool to #if --- include/clockWork.hpp | 10 +++++----- include/config.h | 2 +- src/Wortuhr.cpp | 14 +++++++------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/include/clockWork.hpp b/include/clockWork.hpp index 1f30f934..86908d6a 100644 --- a/include/clockWork.hpp +++ b/include/clockWork.hpp @@ -751,11 +751,11 @@ void ClockWork::loop(struct tm &tm) { //------------------------------------------------ if (lastSecond != _second) { - if (DEBUG == true) { - char currentTime[80]; - strftime(currentTime, sizeof(currentTime), "%F %T (%z)\n", &tm); - Serial.printf(currentTime); - } +#if GENERAL_VERBOSE + char currentTime[80]; + strftime(currentTime, sizeof(currentTime), "%F %T (%z)\n", &tm); + Serial.printf(currentTime); +#endif //-------------------------------------------- // Weather Loop diff --git a/include/config.h b/include/config.h index c78cc91b..586dd194 100644 --- a/include/config.h +++ b/include/config.h @@ -40,7 +40,7 @@ // Seriennummer eintragen! #define SERNR 70 -bool DEBUG = true; // DEBUG ON|OFF wenn auskommentiert +#define GENERAL_VERBOSE true //#define VERBOSE // DEBUG VERBOSE Openweathermap #define MANUAL_WIFI_SETTINGS false diff --git a/src/Wortuhr.cpp b/src/Wortuhr.cpp index 202f2b04..014298c9 100644 --- a/src/Wortuhr.cpp +++ b/src/Wortuhr.cpp @@ -115,13 +115,13 @@ void setup() { //------------------------------------- // Start serial interface if required //------------------------------------- - if (DEBUG == true) { - Serial.begin(115200); - Serial.println(""); - Serial.println("--------------------------------------"); - Serial.println("Begin Setup"); - Serial.println("--------------------------------------"); - } +#if GENERAL_VERBOSE + Serial.begin(115200); + Serial.println(""); + Serial.println("--------------------------------------"); + Serial.println("Begin Setup"); + Serial.println("--------------------------------------"); +#endif //------------------------------------- // Read / initialize EEPROM //------------------------------------- From 19a74d38ef90475deaf663e723b01c86c63360a1 Mon Sep 17 00:00:00 2001 From: David Panusch Date: Wed, 1 Feb 2023 22:40:39 +0100 Subject: [PATCH 21/37] Changed VERBOSE setting for weather clock --- include/Uhrtypes/DE21x11.weather.hpp | 86 ++++++++++++++-------------- include/config.h | 3 +- 2 files changed, 44 insertions(+), 45 deletions(-) diff --git a/include/Uhrtypes/DE21x11.weather.hpp b/include/Uhrtypes/DE21x11.weather.hpp index f84ad8a4..40de8d26 100644 --- a/include/Uhrtypes/DE21x11.weather.hpp +++ b/include/Uhrtypes/DE21x11.weather.hpp @@ -77,7 +77,7 @@ class De21x11Weather_t : public iUhrType { setLetter(4); setLetter(5); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println(""); Serial.print("Es ist "); #endif @@ -92,7 +92,7 @@ class De21x11Weather_t : public iUhrType { setLetter(31); setLetter(32); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("viertel "); #endif break; @@ -103,7 +103,7 @@ class De21x11Weather_t : public iUhrType { setLetter(9); setLetter(10); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Fünf "); #endif break; @@ -114,7 +114,7 @@ class De21x11Weather_t : public iUhrType { setLetter(20); setLetter(21); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("zehn "); #endif break; @@ -128,7 +128,7 @@ class De21x11Weather_t : public iUhrType { setLetter(16); setLetter(17); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("zwanzig "); #endif break; @@ -139,7 +139,7 @@ class De21x11Weather_t : public iUhrType { setLetter(46); setLetter(47); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("halb "); #endif break; @@ -150,7 +150,7 @@ class De21x11Weather_t : public iUhrType { setLetter(62); setLetter(63); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Eins "); #endif break; @@ -162,7 +162,7 @@ class De21x11Weather_t : public iUhrType { setLetter(40); setLetter(41); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("nach "); #endif break; @@ -173,7 +173,7 @@ class De21x11Weather_t : public iUhrType { setLetter(36); setLetter(37); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("vor "); #endif @@ -182,7 +182,7 @@ class De21x11Weather_t : public iUhrType { setLetter(101); setLetter(102); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println("Uhr "); #endif break; @@ -192,7 +192,7 @@ class De21x11Weather_t : public iUhrType { setLetter(62); setLetter(63); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println("Eins "); #endif break; @@ -203,7 +203,7 @@ class De21x11Weather_t : public iUhrType { setLetter(64); setLetter(65); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println("Zwei "); #endif break; @@ -214,7 +214,7 @@ class De21x11Weather_t : public iUhrType { setLetter(69); setLetter(70); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println("Drei "); #endif break; @@ -225,7 +225,7 @@ class De21x11Weather_t : public iUhrType { setLetter(79); setLetter(80); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println("Vier "); #endif break; @@ -236,7 +236,7 @@ class De21x11Weather_t : public iUhrType { setLetter(75); setLetter(76); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println("Fünf "); #endif break; @@ -248,7 +248,7 @@ class De21x11Weather_t : public iUhrType { setLetter(107); setLetter(108); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println("Sechs "); #endif break; @@ -261,7 +261,7 @@ class De21x11Weather_t : public iUhrType { setLetter(59); setLetter(60); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println("Sieben "); #endif break; @@ -272,7 +272,7 @@ class De21x11Weather_t : public iUhrType { setLetter(91); setLetter(92); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println("Acht "); #endif break; @@ -283,7 +283,7 @@ class De21x11Weather_t : public iUhrType { setLetter(83); setLetter(84); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println("Neun "); #endif break; @@ -294,7 +294,7 @@ class De21x11Weather_t : public iUhrType { setLetter(95); setLetter(96); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println("Zehn "); #endif break; @@ -304,7 +304,7 @@ class De21x11Weather_t : public iUhrType { setLetter(86); setLetter(87); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println("Elf "); #endif break; @@ -316,7 +316,7 @@ class De21x11Weather_t : public iUhrType { setLetter(52); setLetter(53); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println("Zwölf "); #endif break; @@ -333,7 +333,7 @@ class De21x11Weather_t : public iUhrType { setLetter(127); setLetter(126); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Morgen "); #endif break; @@ -344,7 +344,7 @@ class De21x11Weather_t : public iUhrType { setLetter(122); setLetter(121); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Früh "); #endif break; @@ -356,7 +356,7 @@ class De21x11Weather_t : public iUhrType { setLetter(135); setLetter(136); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Abend "); #endif break; @@ -369,7 +369,7 @@ class De21x11Weather_t : public iUhrType { setLetter(141); setLetter(142); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Mittag "); #endif break; @@ -381,7 +381,7 @@ class De21x11Weather_t : public iUhrType { setLetter(150); setLetter(149); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Nacht "); #endif break; @@ -394,7 +394,7 @@ class De21x11Weather_t : public iUhrType { setLetter(144); setLetter(143); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Schnee "); #endif break; @@ -405,7 +405,7 @@ class De21x11Weather_t : public iUhrType { setLetter(156); setLetter(157); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("klar "); #endif break; @@ -419,7 +419,7 @@ class De21x11Weather_t : public iUhrType { setLetter(163); setLetter(164); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Warnung "); #endif break; @@ -431,7 +431,7 @@ class De21x11Weather_t : public iUhrType { setLetter(172); setLetter(171); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Regen "); #endif break; @@ -444,7 +444,7 @@ class De21x11Weather_t : public iUhrType { setLetter(166); setLetter(165); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Wolken "); #endif break; @@ -459,7 +459,7 @@ class De21x11Weather_t : public iUhrType { setLetter(183); setLetter(184); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Gewitter "); #endif break; @@ -471,7 +471,7 @@ class De21x11Weather_t : public iUhrType { setLetter(194); setLetter(193); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("unter "); #endif break; @@ -482,7 +482,7 @@ class De21x11Weather_t : public iUhrType { setLetter(189); setLetter(188); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("über "); #endif break; @@ -494,7 +494,7 @@ class De21x11Weather_t : public iUhrType { setLetter(202); setLetter(203); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("minus "); #endif break; @@ -505,7 +505,7 @@ class De21x11Weather_t : public iUhrType { setLetter(207); setLetter(208); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Null "); #endif break; @@ -516,7 +516,7 @@ class De21x11Weather_t : public iUhrType { setLetter(217); setLetter(216); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Fünf "); #endif break; @@ -527,7 +527,7 @@ class De21x11Weather_t : public iUhrType { setLetter(213); setLetter(212); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Zehn "); #endif break; @@ -537,7 +537,7 @@ class De21x11Weather_t : public iUhrType { setLetter(210); setLetter(209); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("und "); #endif break; @@ -551,7 +551,7 @@ class De21x11Weather_t : public iUhrType { setLetter(227); setLetter(228); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Zwanzig "); #endif break; @@ -565,7 +565,7 @@ class De21x11Weather_t : public iUhrType { setLetter(236); setLetter(235); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.print("Dreißig "); #endif break; @@ -574,7 +574,7 @@ class De21x11Weather_t : public iUhrType { setLetter(233); setLetter(232); -#ifdef VERBOSE +#if WEATHER_VERBOSE Serial.println("°C "); #endif break; diff --git a/include/config.h b/include/config.h index 586dd194..814d965e 100644 --- a/include/config.h +++ b/include/config.h @@ -41,8 +41,7 @@ #define SERNR 70 #define GENERAL_VERBOSE true -//#define VERBOSE // DEBUG VERBOSE Openweathermap - +//#define WEATHER_VERBOSE true #define MANUAL_WIFI_SETTINGS false #define WIFI_SSID "Wifi-SSID" #define WIFI_PASSWORD "Wifi-Pwd" From 68763062d4f9c65d833084ea713112458bb3e95f Mon Sep 17 00:00:00 2001 From: David Panusch Date: Wed, 1 Feb 2023 22:45:37 +0100 Subject: [PATCH 22/37] Revised config.h --- include/config.h | 138 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 99 insertions(+), 39 deletions(-) diff --git a/include/config.h b/include/config.h index 814d965e..8bab3c2a 100644 --- a/include/config.h +++ b/include/config.h @@ -1,52 +1,112 @@ /* - * Standard Wortuhr Konfiguration. Kann später in den Einstellungen auf der - * Webseite geändert werden. + * This is the default word clock configuration. You can also change it later in + * the settings menu on the clock's hosted website. */ -// Layout der Frontplatte: -// - Ger10x11 -// 10 Reihen, jeweils 11 LED's pro Reihe + 4 LED's für Minuten -// - Ger10x11Alternative -// 10 Reihen, jeweils 11 LED's pro Reihe + 4 LED's für Minuten, mit geändertem -// Layout für extra Wörter in der Matrix -// - Ger10x11Clock -// 10 Reihen, jeweils 11 LED's pro Reihe + 4 LED's für Minuten, mit dem Layout -// vom orginal Hersteller -// - Nl10x11 -// 10 Reihen, jeweils 11 LED's pro Reihe + 4 LED's für Minuten, mit geändertem -// Layout für die niederländische Sprache -// - Eng10x11 -// 10 Reihen, jeweils 11 LED's pro Reihe + 4 LED's für Minuten, mit geändertem -// Layout für die englische Sprache -// - Ger11x11 -// 11 Reihen, jeweils 11 LED's pro Reihe + 4 LED's für Minuten -// - Ger10x11Frame -// mit zusätzlichen LED's um den Rahmen seitlich zu beleuchten -// - Ger21x11Weather -// Uhr mit Wettervorhersage 242 LED's -// - Ger17x17 -// Uhr mit 24 Stunden Anzeige 18x16 -#define DEFAULT_LAYOUT Ger10x11Alternative +//-------------------------------------------------------------------------- +// Front panel layout +//-------------------------------------------------------------------------- +/**********************/ +/* German */ +/**********************/ +// +#define DEFAULT_LAYOUT Ger10x11 +// 10 rows, 11 LEDs per row + 4 LEDs for minutes +// +// #define DEFAULT_LAYOUT Ger10x11Alternative +// 10 rows, each 11 LED's per row + 4 LED's for minutes, with modified +// layout for extra words in the matrix +// +// #define DEFAULT_LAYOUT Ger10x11Clock +// 10 rows, each 11 LED's per row + 4 LED's for minutes, with the layout +// from the original manufacturer +// +// #define DEFAULT_LAYOUT Ger11x11 +// 11 rows, each 11 LED's per row + 4 LED's for minutes +// +// #define DEFAULT_LAYOUT Ger10x11Frame +// with additional LED's to illuminate the frame from the side +// +// #define DEFAULT_LAYOUT Ger21x11Weather +// clock with weather forecast 242 LED's +// +// #define DEFAULT_LAYOUT Ger17x17 +// Clock with 24 hours display 18x16 +// +/**********************/ +/* Dutch */ +/**********************/ +// +// #define DEFAULT_LAYOUT Nl10x11 +// 10 rows, each 11 LED's per row + 4 LED's for minutes, with changed +// layout for Dutch language +// +/**********************/ +/* English */ +/**********************/ +// +// #define DEFAULT_LAYOUT Eng10x11 +// 10 rows, 11 LED's per row + 4 LED's for minutes, with modified +// layout for the English language -// Typ der LEDs: -// - Brg, Grb, Rgb, Rbg (WS2812b) -// - Grbw (SK6812) +//-------------------------------------------------------------------------- +// Define LED Type +//-------------------------------------------------------------------------- +/* + * Currently only WS2812 or SK6812 LEDs are supported. + * Different manufacturers use different layout, so you can change it + * accordingly. + * + * Valid values [Brg, Grb, Rgb, Rbg, Grbw] + */ #define DEFAULT_LEDTYPE Brg -// External Realtime Clock: RTC_DS1307, RTC_PCF8523 oder RTC_DS3231 +//-------------------------------------------------------------------------- +// Define External Realtime Clock +//-------------------------------------------------------------------------- +/* + * If you want to use an external RTC it must be defined here, for examle for + * Wifi less Operation of the clock. + * However, one must always be defined, even if none is installed. + * + * Valid values [RTC_DS1307, RTC_PCF8523, RTC_DS3231] + */ #define RTC_Type RTC_DS3231 -// um das eeprom zu löschen, bzw. zu initialisieren, hier eine andere -// Seriennummer eintragen! +//-------------------------------------------------------------------------- +// Serial Number +//-------------------------------------------------------------------------- +/* + * To delete or initialize the EEPROM, enter another serial number here. + * + * Valid values [0 ... 255] + */ #define SERNR 70 +//-------------------------------------------------------------------------- +// Toggle Serial DEBUG Output +//-------------------------------------------------------------------------- +/* + * To delete or initialize the EEPROM, enter another serial number here. + * + * Valid values [true, false] + */ #define GENERAL_VERBOSE true -//#define WEATHER_VERBOSE true -#define MANUAL_WIFI_SETTINGS false -#define WIFI_SSID "Wifi-SSID" -#define WIFI_PASSWORD "Wifi-Pwd" +#define WEATHER_VERBOSE false -/*-------------------------------------------------------------------------- - * ENDE Hardware Konfiguration. Ab hier nichts mehr aendern!!! - *-------------------------------------------------------------------------- +//-------------------------------------------------------------------------- +// Manual Wifi settings +//-------------------------------------------------------------------------- +/* + * Here you can set the WiFi connection settings manually. The clock can be + * paired with a new WiFi, but the setting made here is set again when the + * clock is restarted. + * + * Valid values MANUAL_WIFI_SETTINGS [true, false] + * Valid values WIFI_SSID [up to 64 Alphanumeric Letters] + * Valid values WIFI_PASSWORD [up to 64 Alphanumeric Letters] + * */ +#define MANUAL_WIFI_SETTINGS true +#define WIFI_SSID "WIFI SSID" +#define WIFI_PASSWORD "WIFI PWD" From 9a0cd0ad209ddbc07a7573bca062897accedf0c6 Mon Sep 17 00:00:00 2001 From: David Panusch Date: Wed, 1 Feb 2023 22:52:46 +0100 Subject: [PATCH 23/37] Added option to set Bootsequence in config.h --- include/config.h | 13 +++++++++++++ src/Wortuhr.cpp | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/include/config.h b/include/config.h index 8bab3c2a..3f9903a8 100644 --- a/include/config.h +++ b/include/config.h @@ -110,3 +110,16 @@ #define MANUAL_WIFI_SETTINGS true #define WIFI_SSID "WIFI SSID" #define WIFI_PASSWORD "WIFI PWD" + +//-------------------------------------------------------------------------- +// Settings for Boot sequence +//-------------------------------------------------------------------------- +/* + * Show Ip Adress of clock on boot, with BOOT_SHOWIP + * Light up LEDs on boot, with BOOT_LEDSWEEP + * + * Valid values BOOT_SHOWIP [true, false] + * Valid values BOOT_LEDSWEEP [true, false] + */ +#define BOOT_SHOWIP true +#define BOOT_LEDSWEEP false \ No newline at end of file diff --git a/src/Wortuhr.cpp b/src/Wortuhr.cpp index 014298c9..e4bc070f 100644 --- a/src/Wortuhr.cpp +++ b/src/Wortuhr.cpp @@ -193,9 +193,9 @@ void setup() { G.UhrtypeDef = DEFAULT_LAYOUT; G.Colortype = DEFAULT_LEDTYPE; G.bootLedBlink = false; - G.bootLedSweep = false; + G.bootLedSweep = BOOT_LEDSWEEP; G.bootShowWifi = true; - G.bootShowIP = false; + G.bootShowIP = BOOT_SHOWIP; G.autoLdrEnabled = 0; G.autoLdrBright = 100; From 0f9cf12c0200849c705b6f80489b65056c62471f Mon Sep 17 00:00:00 2001 From: David Panusch Date: Wed, 1 Feb 2023 22:56:56 +0100 Subject: [PATCH 24/37] Changed default hostname --- src/Wortuhr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Wortuhr.cpp b/src/Wortuhr.cpp index e4bc070f..26f08aad 100644 --- a/src/Wortuhr.cpp +++ b/src/Wortuhr.cpp @@ -161,7 +161,7 @@ void setup() { strcpy(G.openWeatherMap.cityid, ""); strcpy(G.openWeatherMap.apikey, ""); strcpy(G.timeserver, "europe.pool.ntp.org"); - strcpy(G.hostname, "uhr"); + strcpy(G.hostname, "ESPWordclock"); strcpy(G.scrollingText, "HELLO WORLD "); G.hh = 100; From e289965794e93e804da88ffb92e83a7d35e09a1e Mon Sep 17 00:00:00 2001 From: David Panusch Date: Wed, 1 Feb 2023 22:58:42 +0100 Subject: [PATCH 25/37] Fixed manual Wifi setting in config.h --- include/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/config.h b/include/config.h index 3f9903a8..b7a1a580 100644 --- a/include/config.h +++ b/include/config.h @@ -107,7 +107,7 @@ * Valid values WIFI_PASSWORD [up to 64 Alphanumeric Letters] * */ -#define MANUAL_WIFI_SETTINGS true +#define MANUAL_WIFI_SETTINGS false #define WIFI_SSID "WIFI SSID" #define WIFI_PASSWORD "WIFI PWD" From 5c50366d08a619ebccec4a10a7291eab9ede239b Mon Sep 17 00:00:00 2001 From: David Panusch Date: Thu, 2 Feb 2023 10:45:06 +0100 Subject: [PATCH 26/37] Revert "Added Purist Mode to show It is only to full Hour" This reverts commit e58a18880a8c43f8c67122b66820ed2ad3754758. --- include/Uhr.h | 5 ++--- include/clockWork.h | 1 - include/clockWork.hpp | 15 ++++----------- webpage/index.html | 9 +-------- webpage/script.js | 8 +++----- 5 files changed, 10 insertions(+), 28 deletions(-) diff --git a/include/Uhr.h b/include/Uhr.h index fd32118d..826e967b 100644 --- a/include/Uhr.h +++ b/include/Uhr.h @@ -71,7 +71,7 @@ struct GLOBAL { uint8_t client_nr; uint8_t secondVariant; MinuteVariant minuteVariant; - bool languageVariant[7]; + bool languageVariant[6]; bool layoutVariant[1]; char timeserver[PAYLOAD_LENGTH]; char hostname[PAYLOAD_LENGTH]; @@ -151,8 +151,7 @@ enum LanguageDialects { ItIs40 = 2, ItIs45 = 3, NotShowItIs = 4, - NotShowPuristMode = 5, - EN_ShowAQuarter = 6, + EN_ShowAQuarter = 5, }; enum LayoutVariants { diff --git a/include/clockWork.h b/include/clockWork.h index ba23cc32..eebbfa13 100644 --- a/include/clockWork.h +++ b/include/clockWork.h @@ -26,7 +26,6 @@ class ClockWork { void countdownToMidnight(); void setClock(); - void setItIs(const uint8_t min); void setHour(const uint8_t std, const bool fullHour); void setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour); diff --git a/include/clockWork.hpp b/include/clockWork.hpp index 86908d6a..1f77c394 100644 --- a/include/clockWork.hpp +++ b/include/clockWork.hpp @@ -162,16 +162,6 @@ void ClockWork::initBootWifiSignalStrength(int strength) { //------------------------------------------------------------------------------ -void ClockWork::setItIs(const uint8_t min) { - if (!G.languageVariant[NotShowItIs]) { - usedUhrType->show(FrontWord::es_ist); - } else if (!G.languageVariant[NotShowPuristMode] && min % 30 == 0) { - usedUhrType->show(FrontWord::es_ist); - } -} - -//------------------------------------------------------------------------------ - void ClockWork::setHour(const uint8_t hour, const bool fullHour) { switch (hour % 12) { case 0: @@ -607,10 +597,13 @@ void ClockWork::countdownToMidnight() { //------------------------------------------------------------------------------ void ClockWork::setClock() { + if (!G.languageVariant[NotShowItIs]) { + usedUhrType->show(FrontWord::es_ist); + } + uint8_t offsetHour = 0; bool fullHour = 0; - setItIs(_minute); setMinute(_minute, offsetHour, fullHour); setHour(_hour + offsetHour, fullHour); } diff --git a/webpage/index.html b/webpage/index.html index 49be532a..81df71ac 100644 --- a/webpage/index.html +++ b/webpage/index.html @@ -266,14 +266,7 @@

Sprachoptionen

- - -
-
- +