From ac7996d0f983eda7144e4c9221b9852f348b2369 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 20:44:18 +0000 Subject: [PATCH 1/7] contrib-readme-action has updated readme --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9d82b4b..7f4ea06 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Thanks to these great people for supporting this project. miccgn
- miccgn + Miccgn
@@ -58,14 +58,14 @@ Thanks to these great people for supporting this project. hamster65
- hamster65 + Hamster65
rozza-m
- rozza-m + Rozza-m
From c23825456f07ad19e5c11c78e97731d70e262ad2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 28 Apr 2022 15:36:12 +0000 Subject: [PATCH 2/7] contrib-readme-action has updated readme --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4205776..e179755 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,13 @@ Thanks to these great people for supporting this project. Fab!an + + + rozza-m +
+ Rozza-m +
+ hermannbach @@ -62,13 +69,6 @@ Thanks to these great people for supporting this project.
Hamster65
- - - - rozza-m -
- Rozza-m -
From 7bbd61c5afd8667fd9fbe37a78f4b44999cbb31c Mon Sep 17 00:00:00 2001 From: rozza-m Date: Sun, 1 May 2022 19:55:27 +0100 Subject: [PATCH 3/7] Provide option for big clock (and date) font --- src/PixelIt.ino | 110 +++++++++++++++++++++++++++--------- src/PixelItFont.h | 40 +++++++++++++ webui/src/views/Options.vue | 3 +- 3 files changed, 125 insertions(+), 28 deletions(-) diff --git a/src/PixelIt.ino b/src/PixelIt.ino index e122c00..27f8ab6 100644 --- a/src/PixelIt.ino +++ b/src/PixelIt.ino @@ -232,6 +232,7 @@ uint8_t clockColorR = 255, clockColorG = 255, clockColorB = 255; uint clockAutoFallbackTime = 30; bool forceClock = false; bool clockBlinkAnimated = true; +bool clockFatFont = false; // Scrolltext Vars bool scrollTextAktivLoop = false; @@ -328,6 +329,7 @@ void SaveConfig() json["clockDateDayMonth"] = clockDateDayMonth; json["clockDayOfWeekFirstMonday"] = clockDayOfWeekFirstMonday; json["clockBlinkAnimated"] = clockBlinkAnimated; + json["clockFatFont"] = clockFatFont; json["scrollTextDefaultDelay"] = scrollTextDefaultDelay; json["bootScreenAktiv"] = bootScreenAktiv; json["mqttAktiv"] = mqttAktiv; @@ -552,6 +554,11 @@ void SetConfigVariables(JsonObject &json) clockDayOfWeekFirstMonday = json["clockDayOfWeekFirstMonday"].as(); } + if (json.containsKey("clockFatFont")) + { + clockFatFont = json["clockFatFont"].as(); + } + if (json.containsKey("scrollTextDefaultDelay")) { scrollTextDefaultDelay = json["scrollTextDefaultDelay"].as(); @@ -1221,6 +1228,7 @@ void CreateFrames(JsonObject &json) clockWithSeconds = json["clock"]["withSeconds"]; clockBlinkAnimated = json["clock"]["blinkAnimated"]; + clockFatFont = json["clock"]["fatFont"]; if (json["clock"]["color"]["r"].as() != NULL) { @@ -1650,29 +1658,31 @@ String GetButtons() ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// -void DrawText(String text, bool bigFont, int colorRed, int colorGreen, int colorBlue, int posX, int posY) +void DrawText(String text, int bigFont, int colorRed, int colorGreen, int colorBlue, int posX, int posY) { DrawTextHelper(text, bigFont, false, false, false, false, false, NULL, colorRed, colorGreen, colorBlue, posX, posY); } -void DrawTextCenter(String text, bool bigFont, bool withBMP, int colorRed, int colorGreen, int colorBlue) +void DrawTextCenter(String text, int bigFont, bool withBMP, int colorRed, int colorGreen, int colorBlue) { DrawTextHelper(text, bigFont, true, false, false, withBMP, false, NULL, colorRed, colorGreen, colorBlue, 0, 1); } -void DrawTextScrolled(String text, bool bigFont, bool withBMP, bool fadeInRequired, uint16_t bmpArray[64], int colorRed, int colorGreen, int colorBlue) +void DrawTextScrolled(String text, int bigFont, bool withBMP, bool fadeInRequired, uint16_t bmpArray[64], int colorRed, int colorGreen, int colorBlue) { DrawTextHelper(text, bigFont, false, true, false, withBMP, fadeInRequired, bmpArray, colorRed, colorGreen, colorBlue, 0, 1); } -void DrawAutoTextScrolled(String text, bool bigFont, bool withBMP, bool fadeInRequired, uint16_t bmpArray[64], int colorRed, int colorGreen, int colorBlue) +void DrawAutoTextScrolled(String text, int bigFont, bool withBMP, bool fadeInRequired, uint16_t bmpArray[64], int colorRed, int colorGreen, int colorBlue) { DrawTextHelper(text, bigFont, false, false, true, withBMP, fadeInRequired, bmpArray, colorRed, colorGreen, colorBlue, 0, 1); } -void DrawTextHelper(String text, bool bigFont, bool centerText, bool scrollText, bool autoScrollText, bool withBMP, bool fadeInRequired, uint16_t bmpArray[64], int colorRed, int colorGreen, int colorBlue, int posX, int posY) +void DrawTextHelper(String text, int bigFont, bool centerText, bool scrollText, bool autoScrollText, bool withBMP, bool fadeInRequired, uint16_t bmpArray[64], int colorRed, int colorGreen, int colorBlue, int posX, int posY) { uint16_t xPixelText, xPixel; + int16_t boundsx1, boundsy1; + uint16_t boundsw, boundsh; text = Utf8ToAscii(text); @@ -1688,7 +1698,7 @@ void DrawTextHelper(String text, bool bigFont, bool centerText, bool scrollText, xPixel = 32; } - if (bigFont) + if (bigFont == 1) { // Grosse Schrift setzten matrix->setFont(); @@ -1696,6 +1706,17 @@ void DrawTextHelper(String text, bool bigFont, bool centerText, bool scrollText, // Positions Korrektur posY = posY - 1; } + else if (bigFont == 2) // very large font, only to be used for time display / sehr große Schrift, nür für die Zeitanzeige + { + // Sehr grosse Schrift setzten + matrix->setFont(&FatPixels); + + matrix->getTextBounds(text, 0, 0, &boundsx1, &boundsy1, &boundsw, &boundsh); + xPixelText = boundsw; + + // Positions Korrektur + posY = posY + 6; + } else { // Kleine Schrift setzten @@ -1930,7 +1951,7 @@ void DrawClock(bool fromJSON) sprintf_P(date, PSTR("%02d/%02d"), month(), day()); } - if (clock24Hours && clockWithSeconds) + if (clock24Hours && clockWithSeconds && !clockFatFont) { xPosTime = 2; sprintf_P(time, PSTR("%02d:%02d:%02d"), hour(), minute(), second()); @@ -1976,23 +1997,40 @@ void DrawClock(bool fromJSON) if (clockCounterClock > clockSwitchSec) { clockCounterDate = 0; - - int counter = 0; - while (counter <= 6) + + if (clockFatFont) //fade rather than vertical animate purely because DrawTextCenter doesnt have a Y argument... { - counter++; + DrawTextCenter(String(time), 2, false, clockColorR, clockColorG, clockColorB); + FadeOut(30); matrix->clear(); - DrawText(String(time), false, clockColorR, clockColorG, clockColorB, xPosTime, (1 + counter)); - DrawText(String(date), false, clockColorR, clockColorG, clockColorB, 7, (-6 + counter)); - matrix->drawLine(0, 7, 33, 7, 0); - DrawWeekDay(); - matrix->show(); - delay(35); + DrawTextCenter(String(date), 2, false, clockColorR, clockColorG, clockColorB); + FadeIn(30); + } + else + { + int counter = 0; + while (counter <= 6) //vertical animate + { + counter++; + matrix->clear(); + DrawText(String(time), false, clockColorR, clockColorG, clockColorB, xPosTime, (1 + counter)); + DrawText(String(date), false, clockColorR, clockColorG, clockColorB, 7, (-6 + counter)); + matrix->drawLine(0, 7, 33, 7, 0); + DrawWeekDay(); + matrix->show(); + delay(35); + } } } + else if (clockFatFont) + { + + DrawTextCenter(String(time), 2, false, clockColorR, clockColorG, clockColorB); + } else { DrawText(String(time), false, clockColorR, clockColorG, clockColorB, xPosTime, 1); + xPosTime = 3; } } else @@ -2003,26 +2041,44 @@ void DrawClock(bool fromJSON) { clockCounterClock = 0; - int counter = 0; - while (counter <= 6) + if (clockFatFont) //fade rather than vertical animate purely because DrawTextCenter doesnt have a Y argument... { - counter++; + DrawTextCenter(String(date), 2, false, clockColorR, clockColorG, clockColorB); + FadeOut(30); matrix->clear(); - DrawText(String(date), false, clockColorR, clockColorG, clockColorB, 7, (1 + counter)); - DrawText(String(time), false, clockColorR, clockColorG, clockColorB, xPosTime, (-6 + counter)); - matrix->drawLine(0, 7, 33, 7, 0); - DrawWeekDay(); - matrix->show(); - delay(35); + DrawTextCenter(String(time), 2, false, clockColorR, clockColorG, clockColorB); + FadeIn(30); + } + else + { + int counter = 0; + while (counter <= 6) //vertical animate + { + counter++; + matrix->clear(); + DrawText(String(date), false, clockColorR, clockColorG, clockColorB, 7, (1 + counter)); + DrawText(String(time), false, clockColorR, clockColorG, clockColorB, xPosTime, (-6 + counter)); + matrix->drawLine(0, 7, 33, 7, 0); + DrawWeekDay(); + matrix->show(); + delay(35); + } } } + else if (clockFatFont) + { + DrawTextCenter(String(date), 2, false, clockColorR, clockColorG, clockColorB); + } else { DrawText(String(date), false, clockColorR, clockColorG, clockColorB, 7, 1); } } - DrawWeekDay(); + if (!clockFatFont) + { + DrawWeekDay(); + } // Wenn der Aufruf nicht über JSON sondern über den Loop kommt // muss ich mich selbst ums Show kümmern. diff --git a/src/PixelItFont.h b/src/PixelItFont.h index a7ea713..573d96f 100644 --- a/src/PixelItFont.h +++ b/src/PixelItFont.h @@ -473,3 +473,43 @@ const GFXglyph PixelItGlyphs[] PROGMEM = { }; const GFXfont PixelItFont PROGMEM = {(uint8_t *)PixelItBitmaps, (GFXglyph *)PixelItGlyphs, 0x20, 0xE8, 6}; + +const uint8_t FatPixels_Bitmaps[] PROGMEM = { + 0x00, 0x80, 0x77, 0xF7, 0xBD, 0xEF, 0xEE, 0x7F, 0xB6, 0xDB, 0x77, 0xF6, + 0x77, 0x73, 0xFF, 0x77, 0xF6, 0x73, 0xEF, 0xEE, 0x19, 0xDF, 0xBF, 0xFC, + 0x63, 0xFF, 0xF1, 0xE3, 0xEF, 0xEE, 0x77, 0xF1, 0xEF, 0xEF, 0xEE, 0xFF, + 0xC6, 0x31, 0x8C, 0x63, 0x77, 0xF6, 0xEF, 0xEF, 0xEE, 0x77, 0xF7, 0xF7, + 0x8F, 0xEE, 0x90 +}; + +const GFXglyph FatPixels_Glyphs[] PROGMEM = { + { 0, 1, 1, 2, 0, -5 }, // 0x20 ' ' + { 0, 0, 0, 0, 0, 0 }, // 0x21 '!' + { 0, 0, 0, 0, 0, 0 }, // 0x22 '"' + { 0, 0, 0, 0, 0, 0 }, // 0x23 '#' + { 0, 0, 0, 0, 0, 0 }, // 0x24 '$' + { 0, 0, 0, 0, 0, 0 }, // 0x25 '%' + { 0, 0, 0, 0, 0, 0 }, // 0x26 '&' + { 0, 0, 0, 0, 0, 0 }, // 0x27 ''' + { 0, 0, 0, 0, 0, 0 }, // 0x28 '(' + { 0, 0, 0, 0, 0, 0 }, // 0x29 ')' + { 0, 0, 0, 0, 0, 0 }, // 0x2A '*' + { 0, 0, 0, 0, 0, 0 }, // 0x2B '+' + { 0, 0, 0, 0, 0, 0 }, // 0x2C ',' + { 0, 0, 0, 0, 0, 0 }, // 0x2D '-' + { 1, 1, 1, 2, 0, 0 }, // 0x2E '.' + { 0, 0, 0, 0, 0, 0 }, // 0x2F '/' + { 2, 5, 8, 6, 0, -7 }, // 0x30 '0' + { 7, 3, 8, 4, 0, -7 }, // 0x31 '1' + { 10, 5, 8, 6, 0, -7 }, // 0x32 '2' + { 15, 5, 8, 6, 0, -7 }, // 0x33 '3' + { 20, 5, 8, 6, 0, -7 }, // 0x34 '4' + { 25, 5, 8, 6, 0, -7 }, // 0x35 '5' + { 30, 5, 8, 6, 0, -7 }, // 0x36 '6' + { 35, 5, 8, 6, 0, -7 }, // 0x37 '7' + { 40, 5, 8, 6, 0, -7 }, // 0x38 '8' + { 45, 5, 8, 6, 0, -7 }, // 0x39 '9' + { 50, 1, 4, 2, 0, -5 } // 0x3A ':' +}; + +const GFXfont FatPixels PROGMEM = {(uint8_t *) FatPixels_Bitmaps, (GFXglyph *)FatPixels_Glyphs, 0x20, 0x3A, 8}; \ No newline at end of file diff --git a/webui/src/views/Options.vue b/webui/src/views/Options.vue index 41edd90..1b0d52d 100644 --- a/webui/src/views/Options.vue +++ b/webui/src/views/Options.vue @@ -67,7 +67,8 @@ - + + From 894aeb688d64baba225927072692da51387126f7 Mon Sep 17 00:00:00 2001 From: rozza-m Date: Sun, 1 May 2022 20:18:06 +0100 Subject: [PATCH 4/7] Updated FatFont "5" to look nicer --- src/PixelItFont.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/PixelItFont.h b/src/PixelItFont.h index 573d96f..bb38b43 100644 --- a/src/PixelItFont.h +++ b/src/PixelItFont.h @@ -477,7 +477,7 @@ const GFXfont PixelItFont PROGMEM = {(uint8_t *)PixelItBitmaps, (GFXglyph *)Pixe const uint8_t FatPixels_Bitmaps[] PROGMEM = { 0x00, 0x80, 0x77, 0xF7, 0xBD, 0xEF, 0xEE, 0x7F, 0xB6, 0xDB, 0x77, 0xF6, 0x77, 0x73, 0xFF, 0x77, 0xF6, 0x73, 0xEF, 0xEE, 0x19, 0xDF, 0xBF, 0xFC, - 0x63, 0xFF, 0xF1, 0xE3, 0xEF, 0xEE, 0x77, 0xF1, 0xEF, 0xEF, 0xEE, 0xFF, + 0x63, 0xFF, 0xF1, 0xEF, 0x8F, 0xEE, 0x77, 0xF1, 0xEF, 0xEF, 0xEE, 0xFF, 0xC6, 0x31, 0x8C, 0x63, 0x77, 0xF6, 0xEF, 0xEF, 0xEE, 0x77, 0xF7, 0xF7, 0x8F, 0xEE, 0x90 }; @@ -512,4 +512,4 @@ const GFXglyph FatPixels_Glyphs[] PROGMEM = { { 50, 1, 4, 2, 0, -5 } // 0x3A ':' }; -const GFXfont FatPixels PROGMEM = {(uint8_t *) FatPixels_Bitmaps, (GFXglyph *)FatPixels_Glyphs, 0x20, 0x3A, 8}; \ No newline at end of file +const GFXfont FatPixels PROGMEM = {(uint8_t *) FatPixels_Bitmaps, (GFXglyph *)FatPixels_Glyphs, 0x20, 0x3A, 8}; From dcbf878de6cbeefb2a028a69eddc27d758554ee5 Mon Sep 17 00:00:00 2001 From: rozza-m Date: Tue, 3 May 2022 10:12:04 +0100 Subject: [PATCH 5/7] Remove trailing space in 12H format Although the characters "A" and "P" aren't rendered, the space (" ") is, which nudges the text over making it misaligned. This change fixes that. --- src/PixelIt.ino | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/PixelIt.ino b/src/PixelIt.ino index 27f8ab6..648f14c 100644 --- a/src/PixelIt.ino +++ b/src/PixelIt.ino @@ -1963,12 +1963,26 @@ void DrawClock(bool fromJSON) if (clockBlink && clockBlinkAnimated) { clockBlink = false; - sprintf_P(time, PSTR("%2d %02d %s"), hourFormat12(), minute(), isAM() ? "AM" : "PM"); + if(!clockFatFont) + { + sprintf_P(time, PSTR("%2d %02d %s"), hourFormat12(), minute(), isAM() ? "AM" : "PM"); + } + else + { + sprintf_P(time, PSTR("%2d %02d"), hourFormat12(), minute()); + } } else { clockBlink = !clockBlink; - sprintf_P(time, PSTR("%2d:%02d %s"), hourFormat12(), minute(), isAM() ? "AM" : "PM"); + if(!clockFatFont) + { + sprintf_P(time, PSTR("%2d:%02d %s"), hourFormat12(), minute(), isAM() ? "AM" : "PM"); + } + else + { + sprintf_P(time, PSTR("%2d:%02d"), hourFormat12(), minute()); + } } } else From a5a503846c88b5e81060e7c2102937ac3eed775e Mon Sep 17 00:00:00 2001 From: Dennis Hinzpeter Date: Fri, 6 May 2022 20:11:26 +0200 Subject: [PATCH 6/7] fix Options.vue --- webui/src/views/Options.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webui/src/views/Options.vue b/webui/src/views/Options.vue index 1b0d52d..f7eb5ca 100644 --- a/webui/src/views/Options.vue +++ b/webui/src/views/Options.vue @@ -68,7 +68,7 @@ - + From a7186b7915dd8d0bc4fc089c460a883c9b64f20e Mon Sep 17 00:00:00 2001 From: Dennis Hinzpeter Date: Fri, 6 May 2022 20:31:41 +0200 Subject: [PATCH 7/7] fix clockFatFont over json --- src/PixelIt.ino | 50 ++++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/src/PixelIt.ino b/src/PixelIt.ino index 648f14c..6e1025f 100644 --- a/src/PixelIt.ino +++ b/src/PixelIt.ino @@ -1228,7 +1228,11 @@ void CreateFrames(JsonObject &json) clockWithSeconds = json["clock"]["withSeconds"]; clockBlinkAnimated = json["clock"]["blinkAnimated"]; - clockFatFont = json["clock"]["fatFont"]; + + if (json["clock"]["fatFont"]) + { + clockFatFont = json["clock"]["fatFont"]; + } if (json["clock"]["color"]["r"].as() != NULL) { @@ -1681,7 +1685,7 @@ void DrawAutoTextScrolled(String text, int bigFont, bool withBMP, bool fadeInReq void DrawTextHelper(String text, int bigFont, bool centerText, bool scrollText, bool autoScrollText, bool withBMP, bool fadeInRequired, uint16_t bmpArray[64], int colorRed, int colorGreen, int colorBlue, int posX, int posY) { uint16_t xPixelText, xPixel; - int16_t boundsx1, boundsy1; + int16_t boundsx1, boundsy1; uint16_t boundsw, boundsh; text = Utf8ToAscii(text); @@ -1963,26 +1967,26 @@ void DrawClock(bool fromJSON) if (clockBlink && clockBlinkAnimated) { clockBlink = false; - if(!clockFatFont) - { - sprintf_P(time, PSTR("%2d %02d %s"), hourFormat12(), minute(), isAM() ? "AM" : "PM"); - } + if (!clockFatFont) + { + sprintf_P(time, PSTR("%2d %02d %s"), hourFormat12(), minute(), isAM() ? "AM" : "PM"); + } else - { - sprintf_P(time, PSTR("%2d %02d"), hourFormat12(), minute()); - } + { + sprintf_P(time, PSTR("%2d %02d"), hourFormat12(), minute()); + } } else { clockBlink = !clockBlink; - if(!clockFatFont) - { - sprintf_P(time, PSTR("%2d:%02d %s"), hourFormat12(), minute(), isAM() ? "AM" : "PM"); - } + if (!clockFatFont) + { + sprintf_P(time, PSTR("%2d:%02d %s"), hourFormat12(), minute(), isAM() ? "AM" : "PM"); + } else - { - sprintf_P(time, PSTR("%2d:%02d"), hourFormat12(), minute()); - } + { + sprintf_P(time, PSTR("%2d:%02d"), hourFormat12(), minute()); + } } } else @@ -2011,8 +2015,8 @@ void DrawClock(bool fromJSON) if (clockCounterClock > clockSwitchSec) { clockCounterDate = 0; - - if (clockFatFont) //fade rather than vertical animate purely because DrawTextCenter doesnt have a Y argument... + + if (clockFatFont) // fade rather than vertical animate purely because DrawTextCenter doesnt have a Y argument... { DrawTextCenter(String(time), 2, false, clockColorR, clockColorG, clockColorB); FadeOut(30); @@ -2023,7 +2027,7 @@ void DrawClock(bool fromJSON) else { int counter = 0; - while (counter <= 6) //vertical animate + while (counter <= 6) // vertical animate { counter++; matrix->clear(); @@ -2038,7 +2042,7 @@ void DrawClock(bool fromJSON) } else if (clockFatFont) { - + DrawTextCenter(String(time), 2, false, clockColorR, clockColorG, clockColorB); } else @@ -2055,7 +2059,7 @@ void DrawClock(bool fromJSON) { clockCounterClock = 0; - if (clockFatFont) //fade rather than vertical animate purely because DrawTextCenter doesnt have a Y argument... + if (clockFatFont) // fade rather than vertical animate purely because DrawTextCenter doesnt have a Y argument... { DrawTextCenter(String(date), 2, false, clockColorR, clockColorG, clockColorB); FadeOut(30); @@ -2064,9 +2068,9 @@ void DrawClock(bool fromJSON) FadeIn(30); } else - { + { int counter = 0; - while (counter <= 6) //vertical animate + while (counter <= 6) // vertical animate { counter++; matrix->clear();