From 29589bc5b0336007a186399b9b6807f319fd6bdb Mon Sep 17 00:00:00 2001 From: Nic Limper Date: Fri, 5 Jan 2024 13:59:31 +0100 Subject: [PATCH] content template redesign / textbox / various - Added Signika-SB.ttf and some small bitmap fonts - Removed calibrib50/60/80/100/120/150 bitmap fonts, as they can be better rendered using truetype. Fallback is in place to auto translate to Signika-SB.ttf with the right size in case it is still used in a json template - Renamed confusing tag type names to 'M2 + size' and 'M3 + size'. Because the universal firmware, there is no need to tell every subtile type change apart anymore. - added `textbox` to json templates (https://github.com/jjwbruijn/OpenEPaperLink/wiki/Json-template#paragraph-text) - redesign of count days/hours - redesign of RSS feed - designed Buienradar for more tag sizes - on a scheduled or user initiated reboot, 'REBOOTING' is sent to the error channel of the websockets just before the connection is dropped - phased out "hwtype": [] in content_cards.json (new location is in the tagtype json, which contains a list of valid content types) In case of problems using this commit: keep in mind the heavy caching of the tagtypes in the browser. You might still unknowingly use the old contents. --- ESP32_AP-Flasher/data/fonts/REFSAN12.vlw | Bin 0 -> 29707 bytes ESP32_AP-Flasher/data/fonts/Signika-SB.ttf | Bin 0 -> 184568 bytes ESP32_AP-Flasher/data/fonts/calibrib100.vlw | Bin 29281 -> 0 bytes ESP32_AP-Flasher/data/fonts/calibrib120.vlw | Bin 43807 -> 0 bytes ESP32_AP-Flasher/data/fonts/calibrib150.vlw | Bin 67207 -> 0 bytes ESP32_AP-Flasher/data/fonts/calibrib16.vlw | Bin 0 -> 57655 bytes ESP32_AP-Flasher/data/fonts/calibrib50.vlw | Bin 53060 -> 0 bytes ESP32_AP-Flasher/data/fonts/calibrib60.vlw | Bin 75051 -> 0 bytes ESP32_AP-Flasher/data/fonts/calibrib80.vlw | Bin 19260 -> 0 bytes ESP32_AP-Flasher/data/tagtypes/00.json | 12 +- ESP32_AP-Flasher/data/tagtypes/01.json | 24 +- ESP32_AP-Flasher/data/tagtypes/02.json | 30 +-- ESP32_AP-Flasher/data/tagtypes/05.json | 30 +-- ESP32_AP-Flasher/data/tagtypes/11.json | 2 +- ESP32_AP-Flasher/data/tagtypes/2E.json | 23 +- ESP32_AP-Flasher/data/tagtypes/2F.json | 23 +- ESP32_AP-Flasher/data/tagtypes/30.json | 18 ++ ESP32_AP-Flasher/data/tagtypes/31.json | 30 +-- ESP32_AP-Flasher/data/tagtypes/33.json | 32 ++- ESP32_AP-Flasher/data/tagtypes/34.json | 18 ++ ESP32_AP-Flasher/data/tagtypes/35.json | 31 ++- ESP32_AP-Flasher/data/tagtypes/36.json | 4 +- ESP32_AP-Flasher/data/tagtypes/60.json | 2 +- ESP32_AP-Flasher/data/tagtypes/61.json | 2 +- ESP32_AP-Flasher/data/tagtypes/62.json | 2 +- ESP32_AP-Flasher/data/tagtypes/E0.json | 2 +- ESP32_AP-Flasher/data/update_actions.json | 20 +- .../data/www/content_cards.json.gz | Bin 3388 -> 3223 bytes ESP32_AP-Flasher/data/www/index.html.gz | Bin 5080 -> 5092 bytes ESP32_AP-Flasher/data/www/main.js.gz | Bin 10990 -> 11955 bytes ESP32_AP-Flasher/include/contentmanager.h | 1 + ESP32_AP-Flasher/platformio.ini | 2 +- ESP32_AP-Flasher/src/contentmanager.cpp | 239 +++++++++++++----- ESP32_AP-Flasher/src/ota.cpp | 2 - ESP32_AP-Flasher/src/web.cpp | 6 +- ESP32_AP-Flasher/wwwroot/content_cards.json | 43 +--- ESP32_AP-Flasher/wwwroot/main.js | 3 +- 37 files changed, 400 insertions(+), 201 deletions(-) create mode 100644 ESP32_AP-Flasher/data/fonts/REFSAN12.vlw create mode 100644 ESP32_AP-Flasher/data/fonts/Signika-SB.ttf delete mode 100644 ESP32_AP-Flasher/data/fonts/calibrib100.vlw delete mode 100644 ESP32_AP-Flasher/data/fonts/calibrib120.vlw delete mode 100644 ESP32_AP-Flasher/data/fonts/calibrib150.vlw create mode 100644 ESP32_AP-Flasher/data/fonts/calibrib16.vlw delete mode 100644 ESP32_AP-Flasher/data/fonts/calibrib50.vlw delete mode 100644 ESP32_AP-Flasher/data/fonts/calibrib60.vlw delete mode 100644 ESP32_AP-Flasher/data/fonts/calibrib80.vlw create mode 100644 ESP32_AP-Flasher/data/tagtypes/30.json create mode 100644 ESP32_AP-Flasher/data/tagtypes/34.json diff --git a/ESP32_AP-Flasher/data/fonts/REFSAN12.vlw b/ESP32_AP-Flasher/data/fonts/REFSAN12.vlw new file mode 100644 index 0000000000000000000000000000000000000000..958faba1f08a6d0fd71c98afcc9a142f2915d1ca GIT binary patch literal 29707 zcmcIp2iGiFRef#3grcHg9&*k(=gbi1k@GOTfgubqLr%JuYxx8G1z=WGz%1q*K}5`1 zR1^hsB6@bZb-KE$UVq)$`eok;k}kJ)c?6XVvpL^?-vqjGNR0-sjeXd^9RNbJKdz2b|#H-K=t`g_r9( z4t8_z!9h*eyhZKd1+`eams{2z{gB5QI(DlK?AERaXYTVhmAj4~_&^+=x2+g=f_usu z>~^k09=ceA-M(UQun#YHeTT~74B+Gp6>{9MW_ZYb_ItULv77-|H1E8@yUPZ4S7SJH z-bK!Ew+-IiH?VtbVE5d>?zMs4yRf_$oF8${ejoF&50*3B*R`mhzuWs&4&S3-xbyJt z?|d+1;qX$+V-$^`p#~pi+_qgZWb%h)ct{JsU@BJah;-zaobOU?XhUUW? z7Tuih5gVG1+`t}XEWgd}^U=ogTLG5wm7dAc$5OV0{9o>4P2mw3;tJihCB?|2tE`?HMUw}J;)#t4`ni>d zKF|K?8Wm?euLArXz!NTFjLYl6xpD@?@%j9U;VoD{!xfcBE&K!Tycg7djd#wq(d@h{ z&BGb-^m}<>?fYGK-iurt&F=FmV>lDuMaN!T``q=s-%DJJ^PyMgy|nG;nlE#GzH8m* z)yCqpV=v#pUQyWE*@MdG37wj#C;eAIBHPL*lW9)I? zH>{uFf7FWcwt8@e^g|rYZ><=AlX9P_tJIlqs|Wif?Ax6W*5BWEn1>v^LL=ilE5N

0X2V&<6Iyh2cAZCth&37(Y@E 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

{5O&NXaYDl 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%0A<;d~IU(=o^Xt^GmPbn8R9wK^X?9sK&;h5&5) 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

!s1viZIYxvAS^SoSKBl4zO1B=~c`^q>%~I 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

  • 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 Aq(7)rSIR1^Fzwq-sKUKamPK!hE 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 E0U&ATGynhq diff --git a/ESP32_AP-Flasher/data/fonts/calibrib16.vlw b/ESP32_AP-Flasher/data/fonts/calibrib16.vlw new file mode 100644 index 0000000000000000000000000000000000000000..3d00ad00cede1a34e70254194b21cdad37d08cee GIT binary patch literal 57655 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 Odq4V}9?0(D+WkLr3vhA( literal 0 HcmV?d00001 diff --git a/ESP32_AP-Flasher/data/fonts/calibrib50.vlw b/ESP32_AP-Flasher/data/fonts/calibrib50.vlw deleted file mode 100644 index 312ac2e785bf8bd54d4ff6ad41bb6dc8ab8d7e1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53060 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 bsp{|dhyV4D(SQBV-~NC2|0wsZ$^GWv@$Hs_ diff --git a/ESP32_AP-Flasher/data/tagtypes/00.json b/ESP32_AP-Flasher/data/tagtypes/00.json index 55d068cd..af150aac 100644 --- a/ESP32_AP-Flasher/data/tagtypes/00.json +++ b/ESP32_AP-Flasher/data/tagtypes/00.json @@ -1,5 +1,5 @@ { - "name": "ST‐GR16000 1.54\"", + "name": "M2 1.54\"", "width": 152, "height": 152, "rotatebuffer": 0, @@ -16,13 +16,13 @@ "contentids": [ 0, 1, 2, 3, 4, 5, 7, 10, 14, 15, 17, 18, 19, 20, 21], "template": { "1": { - "weekday": [ 76, 10, "fonts/calibrib30" ], + "weekday": [ 76, 9, "fonts/calibrib30" ], "month": [ 76, 120, "fonts/calibrib30" ], - "day": [ 76, 42, "fonts/calibrib100" ] + "day": [ 76, 13, "Signika-SB.ttf", 100 ] }, "2": { - "fonts": [ "fonts/calibrib120", "fonts/calibrib80", "fonts/calibrib50", "fonts/calibrib50" ], - "xy": [ 76, 83 ] + "fonts": [ "Signika-SB.ttf", 150, 110, 80, 60, 50, 40 ], + "xy": [ 76, 65 ] }, "4": { "location": [ 10, 145, "t0_14b_tf" ], @@ -33,7 +33,7 @@ "umbrella": [ 125, 110, 30 ] }, "10": { - "title": [ 10, 15, "t0_14b_tf" ], + "title": [ 76, 15, "t0_14b_tf" ], "pos": [ 76, 20 ] }, "21": [ diff --git a/ESP32_AP-Flasher/data/tagtypes/01.json b/ESP32_AP-Flasher/data/tagtypes/01.json index 56233a4c..cd23367d 100644 --- a/ESP32_AP-Flasher/data/tagtypes/01.json +++ b/ESP32_AP-Flasher/data/tagtypes/01.json @@ -1,5 +1,5 @@ { - "name": "ST‐GR29000 2.9\"", + "name": "M2 2.9\"", "width": 296, "height": 128, "rotatebuffer": 1, @@ -16,8 +16,12 @@ "contentids": [ 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19, 20, 21 ], "template": { "1": { - "weekday": [148, 10, "fonts/calibrib60"], - "date": [148, 73, "fonts/calibrib50"] + "weekday": [ 148, -3, "Signika-SB.ttf", 60 ], + "date": [ 148, 65, "Signika-SB.ttf", 48 ] + }, + "2": { + "fonts": [ "Signika-SB.ttf", 150, 150, 150, 120, 100, 80 ], + "xy": [ 148, 53 ] }, "16": { "location": [ 5, 5, "fonts/bahnschrift30" ], @@ -25,10 +29,6 @@ "cols": [ 1, 125, 12, "glasstown_nbp_tf" ], "bars": [ 5, 111, 10 ] }, - "2": { - "fonts": ["fonts/calibrib150", "fonts/calibrib150", "fonts/calibrib120", "fonts/calibrib100"], - "xy": [148, 74] - }, "4": { "location": [5, 5, "fonts/bahnschrift30"], "wind": [280, 5, "fonts/bahnschrift30"], @@ -46,14 +46,14 @@ "line": [20, 128] }, "9": { - "title": [5, 3, "fonts/bahnschrift20"], + "title": [ 2, 0, "bahnschrift20.vlw", 25 ], "items": 8, - "line": [5, 34, 13], - "font": "glasstown_nbp_tf" + "line": [ 1, 25, "REFSAN12.vlw" ], + "desc": [ 0, 5, "", 1 ] }, "10": { - "title": [10, 5, "fonts/bahnschrift20"], - "pos": [149, 25] + "title": [149, 5, "fonts/bahnschrift20"], + "pos": [149, 27] }, "11": { "title": [5, 2, "fonts/bahnschrift20"], diff --git a/ESP32_AP-Flasher/data/tagtypes/02.json b/ESP32_AP-Flasher/data/tagtypes/02.json index ccbaac71..011c2897 100644 --- a/ESP32_AP-Flasher/data/tagtypes/02.json +++ b/ESP32_AP-Flasher/data/tagtypes/02.json @@ -1,5 +1,5 @@ { - "name": "ST‐GR420B3N2 4.2\"", + "name": "M2 4.2\"", "width": 400, "height": 300, "rotatebuffer": 0, @@ -13,21 +13,17 @@ }, "shortlut": 1, "options": ["button"], - "contentids": [ 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 17, 18, 19, 20, 21], + "contentids": [ 0, 1, 4, 5, 7, 8, 9, 10, 11, 17, 18, 19, 20], "template": { "1": { - "weekday": [ 200, 25, "fonts/calibrib60" ], - "month": [ 200, 225, "fonts/calibrib60" ], - "day": [ 200, 95, "fonts/calibrib150" ] - }, - "2": { - "fonts": [ "fonts/calibrib150", "fonts/calibrib150", "fonts/calibrib150", "fonts/calibrib120" ], - "xy": [ 200, 148 ] + "weekday": [ 200, 0, "Signika-SB.ttf", 70 ], + "month": [ 200, 210, "Signika-SB.ttf", 70 ], + "day": [ 200, 45, "Signika-SB.ttf", 170 ] }, "4": { "location": [ 20, 20, "fonts/calibrib30" ], - "wind": [ 90, 83, "fonts/calibrib60" ], - "temp": [ 20, 170, "fonts/calibrib150" ], + "wind": [ 90, 83, "fonts/calibrib50" ], + "temp": [ 20, 170, "fonts/calibrib100" ], "icon": [ 385, 0, 100, 2 ], "dir": [ 40, 50, 80 ], "umbrella": [ 325, 155, 78 ] @@ -42,14 +38,14 @@ "line": [ 50, 300 ] }, "9": { - "title": [ 10, 10, "fonts/calibrib30" ], - "items": 12, - "line": [ 10, 60, 20 ], - "font": "7x14_tf" + "title": [ 6, 0, "Signika-SB.ttf", 25 ], + "items": 4, + "line": [ 9, 40, "calibrib16.vlw" ], + "desc": [ 2, 8, "REFSAN12.vlw", 1.2 ] }, "10": { - "title": [ 10, 10, "fonts/bahnschrift20" ], - "pos": [ 200, 30 ] + "title": [ 200, 10, "fonts/bahnschrift20" ], + "pos": [ 200, 35 ] }, "11": { "title": [ 10, 10, "fonts/bahnschrift30" ], diff --git a/ESP32_AP-Flasher/data/tagtypes/05.json b/ESP32_AP-Flasher/data/tagtypes/05.json index 7a6299b1..85fac766 100644 --- a/ESP32_AP-Flasher/data/tagtypes/05.json +++ b/ESP32_AP-Flasher/data/tagtypes/05.json @@ -1,5 +1,5 @@ { - "name": "ST‐GR750BN 7.4\"", + "name": "M2 7.4\"", "width": 640, "height": 384, "rotatebuffer": 0, @@ -13,21 +13,17 @@ }, "shortlut": 1, "options": [], - "contentids": [ 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 17, 18, 19, 20], + "contentids": [ 0, 1, 4, 5, 7, 8, 9, 10, 11, 17, 18, 19, 20], "template": { "1": { - "weekday": [ 200, 25, "fonts/calibrib60" ], - "month": [ 200, 225, "fonts/calibrib60" ], - "day": [ 200, 95, "fonts/calibrib150" ] - }, - "2": { - "fonts": [ "fonts/calibrib150", "fonts/calibrib150", "fonts/calibrib150", "fonts/calibrib120" ], - "xy": [ 200, 148 ] + "weekday": [ 320, -5, "Signika-SB.ttf", 100 ], + "month": [ 320, 265, "Signika-SB.ttf", 100 ], + "day": [ 320, 60, "Signika-SB.ttf", 220 ] }, "4": { "location": [ 20, 20, "fonts/calibrib30" ], - "wind": [ 90, 83, "fonts/calibrib60" ], - "temp": [ 20, 170, "fonts/calibrib150" ], + "wind": [ 90, 83, "fonts/calibrib30" ], + "temp": [ 20, 170, "fonts/calibrib30" ], "icon": [ 385, 0, 100, 2 ], "dir": [ 40, 50, 80 ], "umbrella": [ 325, 155, 78 ] @@ -42,14 +38,14 @@ "line": [ 50, 300 ] }, "9": { - "title": [ 10, 10, "fonts/calibrib30" ], - "items": 12, - "line": [ 10, 60, 20 ], - "font": "7x14_tf" + "title": [ 6, 0, "Signika-SB.ttf", 32 ], + "items": 5, + "line": [ 9, 40, "calibrib16.vlw" ], + "desc": [ 2, 8, "REFSAN12.vlw", 1.2 ] }, "10": { - "title": [ 10, 10, "fonts/bahnschrift20" ], - "pos": [ 200, 30 ] + "title": [ 320, 10, "fonts/bahnschrift20" ], + "pos": [ 320, 40 ] }, "11": { "title": [ 10, 10, "fonts/bahnschrift30" ], diff --git a/ESP32_AP-Flasher/data/tagtypes/11.json b/ESP32_AP-Flasher/data/tagtypes/11.json index bd337b4d..f0a88ef2 100644 --- a/ESP32_AP-Flasher/data/tagtypes/11.json +++ b/ESP32_AP-Flasher/data/tagtypes/11.json @@ -1,5 +1,5 @@ { - "name": "ST-GR2900L 2.9\" (UC8151)", + "name": "M2 2.9\" (UC8151)", "width": 296, "height": 128, "rotatebuffer": 1, diff --git a/ESP32_AP-Flasher/data/tagtypes/2E.json b/ESP32_AP-Flasher/data/tagtypes/2E.json index be66cd34..9e909d2f 100644 --- a/ESP32_AP-Flasher/data/tagtypes/2E.json +++ b/ESP32_AP-Flasher/data/tagtypes/2E.json @@ -1,5 +1,5 @@ { - "name": "EL097H2WRN 9.7\"", + "name": "M3 9.7\"", "width": 960, "height": 672, "rotatebuffer": 0, @@ -13,6 +13,23 @@ }, "shortlut": 0, "options": ["button"], - "contentids": [ 0, 1, 2, 3, 4, 8, 16, 9, 7, 19, 10, 11, 21 ], - "usetemplate": 1 + "contentids": [ 0, 1, 5, 8, 9, 7, 19, 10, 11 ], + "usetemplate": 1, + "template": { + "1": { + "weekday": [ 480, -5, "Signika-SB.ttf", 160 ], + "month": [ 480, 480, "Signika-SB.ttf", 160 ], + "day": [ 480, 110, "Signika-SB.ttf", 380 ] + }, + "9": { + "title": [ 6, 0, "Signika-SB.ttf", 32 ], + "items": 12, + "line": [ 9, 40, "calibrib16.vlw" ], + "desc": [ 2, 8, "REFSAN12.vlw", 1.2 ] + }, + "10": { + "title": [ 480, 0, "Signika-SB.ttf", 50 ], + "pos": [ 480, 70 ] + } + } } \ No newline at end of file diff --git a/ESP32_AP-Flasher/data/tagtypes/2F.json b/ESP32_AP-Flasher/data/tagtypes/2F.json index 897f16df..9ffc93e8 100644 --- a/ESP32_AP-Flasher/data/tagtypes/2F.json +++ b/ESP32_AP-Flasher/data/tagtypes/2F.json @@ -1,5 +1,5 @@ { - "name": "EL043H3WRA 4.3\"", + "name": "M3 4.3\"", "width": 522, "height": 152, "rotatebuffer": 1, @@ -13,6 +13,23 @@ }, "shortlut": 0, "options": ["button"], - "contentids": [ 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 17, 18, 19, 20], - "usetemplate": 1 + "contentids": [ 0, 1, 2, 3, 4, 5, 7, 8, 9, 11, 17, 18, 19, 20], + "usetemplate": 1, + "template": { + "1": { + "weekday": [ 160, 5, "Signika-SB.ttf", 60 ], + "month": [ 160, 75, "Signika-SB.ttf", 60 ], + "day": [ 422, -27, "Signika-SB.ttf", 170 ] + }, + "2": { + "fonts": [ "Signika-SB.ttf", 170, 170, 170, 170, 170, 170 ], + "xy": [ 261, 63 ] + }, + "9": { + "title": [ 6, 0, "Signika-SB.ttf", 25 ], + "items": 1, + "line": [ 9, 40, "calibrib16.vlw" ], + "desc": [ 2, 8, "REFSAN12.vlw", 1.2 ] + } + } } diff --git a/ESP32_AP-Flasher/data/tagtypes/30.json b/ESP32_AP-Flasher/data/tagtypes/30.json new file mode 100644 index 00000000..9a6106c3 --- /dev/null +++ b/ESP32_AP-Flasher/data/tagtypes/30.json @@ -0,0 +1,18 @@ +{ + "name": "M3 1.6\"", + "width": 200, + "height": 200, + "rotatebuffer": 0, + "bpp": 2, + "colors": 3, + "colortable": { + "white": [255, 255, 255], + "black": [0, 0, 0], + "red": [255, 0, 0], + "gray": [150, 150, 150] + }, + "shortlut": 0, + "options": ["button"], + "contentids": [ 0, 1, 2, 3, 4, 8, 7, 19, 10, 11, 21 ], + "usetemplate": 0 +} \ No newline at end of file diff --git a/ESP32_AP-Flasher/data/tagtypes/31.json b/ESP32_AP-Flasher/data/tagtypes/31.json index 148f7201..f7f7890f 100644 --- a/ESP32_AP-Flasher/data/tagtypes/31.json +++ b/ESP32_AP-Flasher/data/tagtypes/31.json @@ -1,5 +1,5 @@ { - "name": "EL022H3BRA 2.2\"", + "name": "M3 2.2\"", "width": 296, "height": 160, "rotatebuffer": 1, @@ -13,21 +13,21 @@ }, "shortlut": 0, "options": ["button", "led"], - "contentids": [ 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 17, 18, 19, 20], + "contentids": [ 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 16, 17, 18, 19, 20], "template": { "1": { - "weekday": [148, 10, "fonts/calibrib60"], - "date": [148, 73, "fonts/calibrib50"] + "weekday": [148, 5, "Signika-SB.ttf", 60], + "date": [148, 75, "Signika-SB.ttf", 50] + }, + "2": { + "fonts": [ "Signika-SB.ttf", 150, 150, 110, 80, 60, 50 ], + "xy": [ 76, 68 ] }, "16": { "location": [ 5, 5, "fonts/bahnschrift30" ], "title": [ 247, 11, "glasstown_nbp_tf" ], - "cols": [ 1, 125, 12, "glasstown_nbp_tf" ], - "bars": [ 5, 111, 10 ] - }, - "2": { - "fonts": ["fonts/calibrib150", "fonts/calibrib150", "fonts/calibrib120", "fonts/calibrib100"], - "xy": [148, 74] + "cols": [ 1, 155, 12, "glasstown_nbp_tf" ], + "bars": [ 5, 141, 10 ] }, "4": { "location": [5, 5, "fonts/bahnschrift30"], @@ -46,14 +46,14 @@ "line": [20, 128] }, "9": { - "title": [5, 3, "fonts/bahnschrift20"], + "title": [ 5, 4, "bahnschrift20.vlw", 25 ], "items": 8, - "line": [5, 34, 13], - "font": "glasstown_nbp_tf" + "line": [ 4, 25, "REFSAN12.vlw" ], + "desc": [ 0, 5, "", 1 ] }, "10": { - "title": [10, 5, "fonts/bahnschrift20"], - "pos": [149, 25] + "title": [149, 5, "fonts/bahnschrift20"], + "pos": [149, 30] }, "11": { "title": [5, 2, "fonts/bahnschrift20"], diff --git a/ESP32_AP-Flasher/data/tagtypes/33.json b/ESP32_AP-Flasher/data/tagtypes/33.json index 871ef0e4..77fac9f7 100644 --- a/ESP32_AP-Flasher/data/tagtypes/33.json +++ b/ESP32_AP-Flasher/data/tagtypes/33.json @@ -1,5 +1,5 @@ { - "name": "EL029H3WRA 2.9\"", + "name": "M3 2.9\"", "width": 384, "height": 168, "rotatebuffer": 1, @@ -13,6 +13,32 @@ }, "shortlut": 0, "options": ["button", "led"], - "contentids": [ 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 17, 18, 19, 20], - "usetemplate": 1 + "contentids": [ 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 16, 17, 18, 19, 20], + "usetemplate": 1, + "template": { + "1": { + "weekday": [ 192, 0, "Signika-SB.ttf", 70 ], + "date": [ 192, 85, "Signika-SB.ttf", 60 ] + }, + "2": { + "fonts": [ "Signika-SB.ttf", 150, 150, 110, 80, 60, 50 ], + "xy": [ 76, 72 ] + }, + "16": { + "location": [ 5, 5, "fonts/bahnschrift30" ], + "title": [ 335, 11, "glasstown_nbp_tf" ], + "cols": [ 1, 157, 16, "glasstown_nbp_tf" ], + "bars": [ 5, 141, 14 ] + }, + "9": { + "title": [ 5, 4, "bahnschrift20.vlw", 25 ], + "items": 8, + "line": [ 4, 25, "REFSAN12.vlw" ], + "desc": [ 0, 5, "", 1 ] + }, + "10": { + "title": [ 192, 5, "fonts/bahnschrift20" ], + "pos": [ 192, 30 ] + } + } } diff --git a/ESP32_AP-Flasher/data/tagtypes/34.json b/ESP32_AP-Flasher/data/tagtypes/34.json new file mode 100644 index 00000000..e9d570bd --- /dev/null +++ b/ESP32_AP-Flasher/data/tagtypes/34.json @@ -0,0 +1,18 @@ +{ + "name": "M3 4.2\"", + "width": 400, + "height": 300, + "rotatebuffer": 0, + "bpp": 2, + "colors": 3, + "colortable": { + "white": [255, 255, 255], + "black": [0, 0, 0], + "red": [255, 0, 0], + "gray": [150, 150, 150] + }, + "shortlut": 1, + "options": ["led"], + "contentids": [ 0, 1, 4, 5, 7, 8, 9, 10, 11, 17, 18, 19, 20 ], + "usetemplate": 2 +} \ No newline at end of file diff --git a/ESP32_AP-Flasher/data/tagtypes/35.json b/ESP32_AP-Flasher/data/tagtypes/35.json index 97bdd96c..06f55d51 100644 --- a/ESP32_AP-Flasher/data/tagtypes/35.json +++ b/ESP32_AP-Flasher/data/tagtypes/35.json @@ -1,16 +1,33 @@ { - "name": "EL060H3WRA 6.0\"", + "name": "M3 6.0\"", "width": 600, "height": 448, "rotatebuffer": 0, "bpp": 2, "colors": 3, "colortable": { - "white": [255, 255, 255], - "black": [0, 0, 0], - "red": [255, 0, 0], - "gray": [150, 150, 150] + "white": [ 255, 255, 255 ], + "black": [ 0, 0, 0 ], + "red": [ 255, 0, 0 ], + "gray": [ 150, 150, 150 ] }, - "contentids": [ 0, 1, 2, 3, 4, 8, 16, 9, 7, 19, 10, 11, 21 ], - "usetemplate": 1 + "contentids": [ 0, 1, 4, 5, 8, 9, 7, 19, 10, 11 ], + "usetemplate": 1, + "template": { + "1": { + "weekday": [ 300, 0, "Signika-SB.ttf", 110 ], + "month": [ 300, 310, "Signika-SB.ttf", 110 ], + "day": [ 300, 75, "Signika-SB.ttf", 250 ] + }, + "10": { + "title": [ 300, 10, "fonts/bahnschrift30" ], + "pos": [ 300, 50 ] + }, + "9": { + "title": [ 6, 0, "Signika-SB.ttf", 32 ], + "items": 6, + "line": [ 9, 40, "calibrib16.vlw" ], + "desc": [ 2, 8, "REFSAN12.vlw", 1.2 ] + } + } } diff --git a/ESP32_AP-Flasher/data/tagtypes/36.json b/ESP32_AP-Flasher/data/tagtypes/36.json index b0aa0ed4..64b9d3c0 100644 --- a/ESP32_AP-Flasher/data/tagtypes/36.json +++ b/ESP32_AP-Flasher/data/tagtypes/36.json @@ -1,5 +1,5 @@ { - "name": "EL075H3BRA 7.5\"", + "name": "M3 7.5\"", "width": 800, "height": 480, "rotatebuffer": 0, @@ -13,6 +13,6 @@ }, "shortlut": 0, "options": ["button", "led"], - "contentids": [ 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 17, 18, 19, 20], + "contentids": [ 0, 1, 4, 5, 7, 8, 9, 10, 11, 17, 18, 19, 20], "usetemplate": 1 } diff --git a/ESP32_AP-Flasher/data/tagtypes/60.json b/ESP32_AP-Flasher/data/tagtypes/60.json index eb146858..be478c7f 100644 --- a/ESP32_AP-Flasher/data/tagtypes/60.json +++ b/ESP32_AP-Flasher/data/tagtypes/60.json @@ -13,6 +13,6 @@ }, "shortlut": 0, "options": ["led"], - "contentids": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 ], + "contentids": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 17, 18, 19, 20 ], "usetemplate": 1 } diff --git a/ESP32_AP-Flasher/data/tagtypes/61.json b/ESP32_AP-Flasher/data/tagtypes/61.json index 69a098a8..892bebe8 100644 --- a/ESP32_AP-Flasher/data/tagtypes/61.json +++ b/ESP32_AP-Flasher/data/tagtypes/61.json @@ -13,6 +13,6 @@ }, "shortlut": 0, "options": ["led"], - "contentids": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 ], + "contentids": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 17, 18, 19, 20 ], "usetemplate": 1 } diff --git a/ESP32_AP-Flasher/data/tagtypes/62.json b/ESP32_AP-Flasher/data/tagtypes/62.json index 03ce472b..7ef160d7 100644 --- a/ESP32_AP-Flasher/data/tagtypes/62.json +++ b/ESP32_AP-Flasher/data/tagtypes/62.json @@ -13,6 +13,6 @@ }, "shortlut": 0, "options": ["led"], - "contentids": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 ], + "contentids": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 17, 18, 19, 20 ], "usetemplate": 1 } diff --git a/ESP32_AP-Flasher/data/tagtypes/E0.json b/ESP32_AP-Flasher/data/tagtypes/E0.json index a53b2a48..9f1a3f37 100644 --- a/ESP32_AP-Flasher/data/tagtypes/E0.json +++ b/ESP32_AP-Flasher/data/tagtypes/E0.json @@ -13,7 +13,7 @@ }, "shortlut": 0, "options": [], - "contentids": [ 0, 1, 2, 3, 4, 8, 16, 9, 7, 19, 10, 11, 21 ], + "contentids": [ 0, 1, 2, 3, 4, 8, 7, 19, 10, 11, 21 ], "usetemplate": 1, "template": { "21": [ diff --git a/ESP32_AP-Flasher/data/update_actions.json b/ESP32_AP-Flasher/data/update_actions.json index c12ff5e3..b34d9ed0 100644 --- a/ESP32_AP-Flasher/data/update_actions.json +++ b/ESP32_AP-Flasher/data/update_actions.json @@ -1,19 +1,5 @@ { "deletefile": [ - "/fonts/calibrib62.vlw", - "/fonts/GillSC16.vlw", - "/fonts/GillSC20.vlw", - "/fonts/numbers1-1.vlw", - "/fonts/numbers1-2.vlw", - "/fonts/numbers2-1.vlw", - "/fonts/numbers2-2.vlw", - "/fonts/numbers3-1.vlw", - "/fonts/numbers3-2.vlw", - "/fonts/tw20.vlw", - "/fonts/twbold20.vlw", - "/alignment.jpg", - "/gradient.jpg", - "/demo_image_generator.py", "/www/content_cards.json", "/www/favicon.ico", "/www/index.html", @@ -27,6 +13,10 @@ "/www/upload-demo.html", "/fonts/weathericons30.vlw", "/fonts/weathericons70.vlw", - "/fonts/weathericons78.vlw" + "/fonts/weathericons78.vlw", + "/fonts/calibrib120.vlw", + "/fonts/calibrib150.vlw", + "/fonts/calibrib50.vlw", + "/fonts/calibrib60.vlw" ] } diff --git a/ESP32_AP-Flasher/data/www/content_cards.json.gz b/ESP32_AP-Flasher/data/www/content_cards.json.gz index 5a16696f95833782a7ccd77bb61a5070ce566258..e9760ed8b8566eeb8ed3ea566e847b1a5daeab41 100644 GIT binary patch literal 3223 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 J<1SV^005w!BbWdH literal 3388 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 SX1@OFr~d<`=u#NRL;wIis*h3t diff --git a/ESP32_AP-Flasher/data/www/index.html.gz b/ESP32_AP-Flasher/data/www/index.html.gz index 295994bda1dca55a90b16ff7d3e8886a8a9f09ab..0cc6ebe50d2a59048bb7ecb129fd81f60a758afb 100644 GIT binary patch delta 216 zcmV;}04M+0C*&uv6%&8zf=Uy+rTCoO!`jW7$M9Z~4U+Kkkq%h-d>ZdF{~v1Ubs2qD zPKmus?V9nJF`ysQ_z2JJapm#>X*OWvW{6vnkm*#=6@!S|*yq;4MgMHmZfW*JyFuFO zd%Yoi4r|~6NBWnOR{T7Ij@}v3K08o2C3LJWUghr$EuSb2-dxvQ@zp+%eKeD8M SdCC0Z*8c*K$TNqFO8@{?3~~$r delta 204 zcmV;-05kvOC)g*j6%&7^;xW8pWaAyYN2Fsbm-H zwQ)wUQog3CSmfqcnM}PtJ}F1?AT%1Ke+cT6-Udvw`MIRJ{k?NblHG GO8@}>7-!M| diff --git a/ESP32_AP-Flasher/data/www/main.js.gz b/ESP32_AP-Flasher/data/www/main.js.gz index a065db4aedfbf535c8f376d82d4559a4b8cae083..a492598ee34d81f5ef833e039da6ef35cd801e6b 100644 GIT binary patch literal 11955 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 F0064%IQjqp literal 10990 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 if (!util::isEmptyOrNull(filename) && !cfgobj["#fetched"].as()) { - File file = contentFS->open(filename, "r"); if (file) { if (file.find(" 30) { + font = "Signika-SB.ttf"; + size = calibriSize; + } + } switch (processFontPath(font)) { case 1: { // u8g2 font @@ -583,19 +591,71 @@ void drawString(TFT_eSprite &spr, String content, int16_t posx, int16_t posy, St truetype.setTextColor(spr.color16to8(color), spr.color16to8(color)); truetype.textDraw(posx, posy, content); truetype.end(); - // Serial.println("text: '" + content + "' " + String(millis() - t) + "ms"); } break; case 3: { // vlw bitmap font spr.setTextDatum(align); if (font != "") spr.loadFont(font.substring(1), *contentFS); spr.setTextColor(color, bgcolor); + spr.setTextWrap(true, false); spr.drawString(content, posx, posy); if (font != "") spr.unloadFont(); } } } +void drawTextBox(TFT_eSprite &spr, String &content, int16_t &posx, int16_t &posy, int16_t boxwidth, int16_t boxheight, String font, uint16_t color, uint16_t bgcolor, float lineheight) { + replaceVariables(content); + switch (processFontPath(font)) { + case 1: { + // u8g2 font + Serial.println("u8g2 font not implemented for drawStringBox"); + } break; + case 2: { + // truetype + Serial.println("truetype font not implemented for drawStringBox"); + } break; + case 3: { + // vlw bitmap font + // spr.drawRect(posx, posy, boxwidth, boxheight, TFT_BLACK); + spr.setTextDatum(TL_DATUM); + if (font != "") spr.loadFont(font.substring(1), *contentFS); + spr.setTextWrap(false, false); + spr.setTextColor(color, bgcolor); + + int length = content.length(); + int startPos = 0; + int startPosY = posy; + + while (startPos < length && posy + spr.gFont.yAdvance <= startPosY + boxheight) { + int endPos = startPos; + bool hasspace = false; + + while (endPos < length && spr.textWidth(content.substring(startPos, endPos + 1).c_str()) <= boxwidth && content.charAt(endPos) != '\n') { + // Serial.println("try: " + String(startPos) + "-" + String(endPos) + " " + content.substring(startPos, endPos + 1)); + if (content.charAt(endPos) == ' ' || content.charAt(endPos) == '-') hasspace = true; + endPos++; + } + while (endPos < length && endPos > startPos && hasspace == true && content.charAt(endPos - 1) != ' ' && content.charAt(endPos - 1) != '-' && content.charAt(endPos) != '\n') { + endPos--; + // Serial.println("backtrack: " + String(startPos) + "-" + String(endPos) + " " + content.substring(startPos, endPos)); + } + // Serial.println("result: " + String(startPos) + "-" + String(endPos) + " " + content.substring(startPos, endPos)); + // delay(1000); + spr.drawString(content.substring(startPos, endPos), posx, posy); + posy += spr.gFont.yAdvance * lineheight; + + if (content.charAt(endPos) == '\n') endPos++; + startPos = endPos; + while (startPos < length && content.charAt(startPos) == ' ') { + startPos++; + } + } + if (font != "") spr.unloadFont(); + } + } +} + void initSprite(TFT_eSprite &spr, int w, int h, imgParam &imageParams) { spr.setColorDepth(8); spr.createSprite(w, h); @@ -680,19 +740,18 @@ void drawNumber(String &filename, int32_t count, int32_t thresholdred, tagRecord getTemplate(loc, 2, taginfo->hwType); initSprite(spr, imageParams.width, imageParams.height, imageParams); - spr.setTextDatum(MC_DATUM); + uint16_t color = TFT_BLACK; if (countTemp > thresholdred) { - spr.setTextColor(TFT_RED, TFT_WHITE); - } else { - spr.setTextColor(TFT_BLACK, TFT_WHITE); + color = TFT_RED; } String font = loc["fonts"][0].as(); - if (count > 99) font = loc["fonts"][1].as(); - if (count > 999) font = loc["fonts"][2].as(); - if (count > 9999) font = loc["fonts"][3].as(); - spr.loadFont(font, *contentFS); - spr.drawString(String(count), loc["xy"][0].as(), loc["xy"][1].as()); - spr.unloadFont(); + uint8_t size = loc["fonts"][1].as(); + if (count > 9) size = loc["fonts"][2].as(); + if (count > 99) size = loc["fonts"][3].as(); + if (count > 999) size = loc["fonts"][4].as(); + if (count > 9999) size = loc["fonts"][5].as(); + if (count > 99999) size = loc["fonts"][6].as(); + drawString(spr, String(count), loc["xy"][0].as(), loc["xy"][1].as() - size / 1.8, font, TC_DATUM, color, size); spr2buffer(spr, filename, imageParams); spr.deleteSprite(); @@ -920,6 +979,39 @@ int getImgURL(String &filename, String URL, time_t fetched, imgParam &imageParam rssClass reader; #endif +void replaceHTMLentities(String &text) { + text.replace(">", ">"); + text.replace("<", "<"); + text.replace(""", "\""); + text.replace("'", "'"); + text.replace("&", "&"); +} + +void removeHTML(String &text) { + int len = text.length(); + bool insideTag = false; + int j = 0; + for (int i = 0; i < len; ++i) { + char c = text[i]; + if (c == '<') { + insideTag = true; + } else if (c == '>') { + insideTag = false; + } else if (!insideTag) { + text[j++] = c; + } + } + text.remove(j); +} + +void stampTime(TFT_eSprite &spr) { + time_t now; + time(&now); + char timeStr[24]; + strftime(timeStr, sizeof(timeStr), "%Y-%m-%d %H:%M:%S ", localtime(&now)); + drawString(spr, timeStr, spr.width() - 1, 12, "glasstown_nbp_tf", TR_DATUM, TFT_BLACK); +} + bool getRssFeed(String &filename, String URL, String title, tagRecord *&taginfo, imgParam &imageParams) { #ifdef CONTENT_RSS // https://github.com/garretlab/shoddyxml2 @@ -928,8 +1020,8 @@ bool getRssFeed(String &filename, String URL, String title, tagRecord *&taginfo, // https://www.nu.nl/rss/Algemeen const char *url = URL.c_str(); - constexpr const char *tag = "title"; - constexpr const int rssArticleSize = 128; + const int rssTitleSize = 255; + const int rssDescSize = 1000; TFT_eSprite spr = TFT_eSprite(&tft); U8g2_for_TFT_eSPI u8f; @@ -938,21 +1030,42 @@ bool getRssFeed(String &filename, String URL, String title, tagRecord *&taginfo, StaticJsonDocument<512> loc; getTemplate(loc, 9, taginfo->hwType); initSprite(spr, imageParams.width, imageParams.height, imageParams); + stampTime(spr); if (util::isEmptyOrNull(title)) title = "RSS feed"; - drawString(spr, title, loc["title"][0], loc["title"][1], loc["title"][2], TL_DATUM, TFT_BLACK); + drawString(spr, title, loc["title"][0], loc["title"][1], loc["title"][2], TL_DATUM, TFT_BLACK, loc["title"][3]); + int16_t posx = loc["line"][0]; + int16_t posy = loc["line"][1]; + int n = reader.getArticles(url, rssTitleSize, rssDescSize, loc["items"]); - setU8G2Font(loc["font"], u8f); - u8f.setFontMode(0); - u8f.setFontDirection(0); - u8f.setForegroundColor(TFT_BLACK); - u8f.setBackgroundColor(TFT_WHITE); - - int n = reader.getArticles(url, tag, rssArticleSize, loc["items"]); + float lineheight = loc["desc"][3].as(); for (int i = 0; i < n; i++) { - u8f.setCursor(loc["line"][0], loc["line"][1].as() + i * loc["line"][2].as()); - u8f.print(reader.itemData[i]); + // if (reader.titleData[i] != NULL && *reader.titleData[i] != NULL) { + if (reader.titleData[i] != NULL) { + String title = String(reader.titleData[i]); + replaceHTMLentities(title); + removeHTML(title); + + if (!util::isEmptyOrNull(title)) { + drawTextBox(spr, title, posx, posy, imageParams.width - 2 * posx, 100, loc["line"][2], TFT_BLACK); + } + } + // if (reader.descData[i] != NULL && *reader.descData[i] != NULL) { + if (reader.descData[i] != NULL && loc["desc"][2] != "") { + String desc = String(reader.descData[i]); + replaceHTMLentities(desc); + removeHTML(desc); + + if (!util::isEmptyOrNull(desc)) { + posy += loc["desc"][0].as(); + drawTextBox(spr, desc, posx, posy, imageParams.width - 2 * posx, 100, loc["desc"][2], TFT_BLACK, TFT_WHITE, lineheight); + posy += loc["desc"][1].as(); + } + } else { + posy += loc["desc"][1].as(); + } } + reader.clearItemData(); spr2buffer(spr, filename, imageParams); spr.deleteSprite(); @@ -1070,12 +1183,12 @@ void drawQR(String &filename, String qrcontent, String title, tagRecord *&taginf StaticJsonDocument<512> loc; getTemplate(loc, 10, taginfo->hwType); initSprite(spr, imageParams.width, imageParams.height, imageParams); - drawString(spr, title, loc["title"][0], loc["title"][1], loc["title"][2]); + drawString(spr, title, loc["title"][0], loc["title"][1], loc["title"][2], TC_DATUM, TFT_BLACK, loc["title"][3]); const int size = qrcode.size; const int dotsize = int((imageParams.height - loc["pos"][1].as()) / size); const int xpos = loc["pos"][0].as() - dotsize * size / 2; - const int ypos = loc["pos"][1]; + const int ypos = loc["pos"][1].as() + (imageParams.height - loc["pos"][1].as() - dotsize * size) / 2; for (int y = 0; y < size; y++) { for (int x = 0; x < size; x++) { @@ -1121,15 +1234,6 @@ uint8_t drawBuienradar(String &filename, JsonObject &cfgobj, tagRecord *&taginfo drawString(spr, cfgobj["location"], loc["location"][0], loc["location"][1], loc["location"][2]); - for (int i = 0; i < 295; i += 4) { - int yCoordinates[] = {110, 91, 82, 72, 62, 56, 52}; - for (int y : yCoordinates) { - spr.drawPixel(i, y, TFT_BLACK); - } - } - - drawString(spr, "Buienradar", loc["title"][0], loc["title"][1], loc["title"][2]); - const auto &bars = loc["bars"]; const auto &cols = loc["cols"]; const int cols0 = cols[0].as(); @@ -1139,6 +1243,18 @@ uint8_t drawBuienradar(String &filename, JsonObject &cfgobj, tagRecord *&taginfo const int bars0 = bars[0].as(); const int bars1 = bars[1].as(); const int bars2 = bars[2].as(); + + float factor = (float)bars1 / 111; + Serial.println(factor); + for (int i = 0; i < imageParams.width; i += 4) { + int yCoordinates[] = {1, 20, 29, 39, 49, 55, 59}; + for (int y : yCoordinates) { + spr.drawPixel(i, bars1 - (y * factor), TFT_BLACK); + } + } + + drawString(spr, "Buienradar", loc["title"][0], loc["title"][1], loc["title"][2]); + for (int i = 0; i < 24; i++) { const int startPos = i * 11; uint8_t value = response.substring(startPos, startPos + 3).toInt(); @@ -1156,8 +1272,9 @@ uint8_t drawBuienradar(String &filename, JsonObject &cfgobj, tagRecord *&taginfo refresh = 20; } } + value = value - 70; - spr.fillRect(i * cols2 + bars0, bars1 - (value - 70), bars2, (value - 70), (value > 130 ? TFT_RED : TFT_BLACK)); + spr.fillRect(i * cols2 + bars0, bars1 - (value * factor), bars2, value * factor, (value > 50 ? TFT_RED : TFT_BLACK)); if (minutes % 15 == 0) { drawString(spr, timestring, i * cols2 + cols0, cols1, cols3); @@ -1382,11 +1499,11 @@ int getJsonTemplateUrl(String &filename, String URL, time_t fetched, String MAC, } void drawJsonStream(Stream &stream, String &filename, tagRecord *&taginfo, imgParam &imageParams) { -TFT_eSprite spr = TFT_eSprite(&tft); + TFT_eSprite spr = TFT_eSprite(&tft); initSprite(spr, imageParams.width, imageParams.height, imageParams); uint8_t screenCurrentOrientation = 0; - //spr.setRotation(2); - //imageParams.rotatebuffer = imageParams.rotatebuffer + 1; + // spr.setRotation(2); + // imageParams.rotatebuffer = imageParams.rotatebuffer + 1; DynamicJsonDocument doc(500); if (stream.find("[")) { do { @@ -1405,36 +1522,36 @@ TFT_eSprite spr = TFT_eSprite(&tft); spr.deleteSprite(); } -void rotateBuffer(uint8_t rotation, uint8_t ¤tOrientation, TFT_eSprite &spr, imgParam &imageParams){ - rotation = rotation % 4; //First of all, let's be sure that the rotation have a valid value (0, 1, 2 or 3) - if(rotation != currentOrientation){ //If we have a rotation to do, let's do it - int stepToDo = currentOrientation - rotation; //rotation we have to do +void rotateBuffer(uint8_t rotation, uint8_t ¤tOrientation, TFT_eSprite &spr, imgParam &imageParams) { + rotation = rotation % 4; // First of all, let's be sure that the rotation have a valid value (0, 1, 2 or 3) + if (rotation != currentOrientation) { // If we have a rotation to do, let's do it + int stepToDo = currentOrientation - rotation; // rotation we have to do //-2, 2: upside down //-1, 3: 270° rotation //-3, 1: 90° rotation - - if(abs(stepToDo) == 2){ //If we have to do a 180° rotation: - TFT_eSprite sprCpy = TFT_eSprite(&tft); //We create a new sprite that will act as a buffer - initSprite(sprCpy, spr.width(), spr.height(), imageParams); //initialisation of the new sprite - spr.pushRotated(&sprCpy, 180, TFT_WHITE); //We fill the new sprite with the old one rotated by 180° - spr.fillSprite(TFT_WHITE); //We fill the old one in white as anything that's white will be ignored by the pushRotated function - sprCpy.pushRotated(&spr, 0, TFT_WHITE); //We copy the buffer sprite to the main one - sprCpy.deleteSprite(); //We delete the buffer sprite to avoid memory leak - }else{ + + if (abs(stepToDo) == 2) { // If we have to do a 180° rotation: + TFT_eSprite sprCpy = TFT_eSprite(&tft); // We create a new sprite that will act as a buffer + initSprite(sprCpy, spr.width(), spr.height(), imageParams); // initialisation of the new sprite + spr.pushRotated(&sprCpy, 180, TFT_WHITE); // We fill the new sprite with the old one rotated by 180° + spr.fillSprite(TFT_WHITE); // We fill the old one in white as anything that's white will be ignored by the pushRotated function + sprCpy.pushRotated(&spr, 0, TFT_WHITE); // We copy the buffer sprite to the main one + sprCpy.deleteSprite(); // We delete the buffer sprite to avoid memory leak + } else { int angle = 90; - if(stepToDo == -1 || stepToDo == 3){ + if (stepToDo == -1 || stepToDo == 3) { angle = 270; } TFT_eSprite sprCpy = TFT_eSprite(&tft); - initSprite(sprCpy, spr.height(), spr.width(), imageParams); + initSprite(sprCpy, spr.height(), spr.width(), imageParams); spr.pushRotated(&sprCpy, angle, TFT_WHITE); spr.deleteSprite(); initSprite(spr, sprCpy.width(), sprCpy.height(), imageParams); sprCpy.pushRotated(&spr, 0, TFT_WHITE); sprCpy.deleteSprite(); - if(imageParams.rotatebuffer==1){ + if (imageParams.rotatebuffer == 1) { imageParams.rotatebuffer = 0; - }else{ + } else { imageParams.rotatebuffer = 1; } } @@ -1450,6 +1567,14 @@ void drawElement(const JsonObject &element, TFT_eSprite &spr, imgParam &imagePar const String bgcolorstr = textArray[7].as(); const uint16_t bgcolor = (bgcolorstr.length() > 0) ? getColor(bgcolorstr) : TFT_WHITE; drawString(spr, textArray[2], textArray[0].as(), textArray[1].as(), textArray[3], align, getColor(textArray[4]), size, bgcolor); + } else if (element.containsKey("textbox")) { + const JsonArray &textArray = element["textbox"]; + float lineheight = textArray[7].as(); + if (lineheight == 0) lineheight = 1; + int16_t posx = textArray[0] | 0; + int16_t posy = textArray[1] | 0; + String text = textArray[4]; + drawTextBox(spr, text, posx, posy, textArray[2], textArray[3], textArray[5], getColor(textArray[6]), TFT_WHITE, lineheight); } else if (element.containsKey("box")) { const JsonArray &boxArray = element["box"]; spr.fillRect(boxArray[0].as(), boxArray[1].as(), boxArray[2].as(), boxArray[3].as(), getColor(boxArray[4])); @@ -1641,6 +1766,6 @@ void setU8G2Font(const String &title, U8g2_for_TFT_eSPI &u8f) { } else if (title == "7x14_tf") { u8f.setFont(u8g2_font_7x14_tf); } else if (title == "t0_14b_tf") { - u8f.setFont(u8g2_font_t0_14b_tf); + u8f.setFont(u8g2_font_t0_14b_tf); // not used } } diff --git a/ESP32_AP-Flasher/src/ota.cpp b/ESP32_AP-Flasher/src/ota.cpp index b81fdcd1..165ae87e 100644 --- a/ESP32_AP-Flasher/src/ota.cpp +++ b/ESP32_AP-Flasher/src/ota.cpp @@ -194,7 +194,6 @@ void updateFirmware(const char* url, const char* expectedMd5, const size_t size) wsSerial("Reboot system now"); wsSerial("[reboot]"); vTaskDelay(1000 / portTICK_PERIOD_MS); - // ESP.restart(); } else { wsSerial("Error updating firmware:"); wsSerial(Update.errorString()); @@ -225,7 +224,6 @@ void handleRollback(AsyncWebServerRequest* request) { wsSerial("Reboot system now"); wsSerial("[reboot]"); vTaskDelay(1000 / portTICK_PERIOD_MS); - // ESP.restart(); } else { wsSerial("Rollback failed"); request->send(400, "Rollback failed"); diff --git a/ESP32_AP-Flasher/src/web.cpp b/ESP32_AP-Flasher/src/web.cpp index 6b06aa5a..e3e0337e 100644 --- a/ESP32_AP-Flasher/src/web.cpp +++ b/ESP32_AP-Flasher/src/web.cpp @@ -108,6 +108,8 @@ void wsSendSysteminfo() { // reboot once at night if (timeinfo.tm_hour == 4 && timeinfo.tm_min == 0 && millis() > 2 * 3600 * 1000) { logLine("Nightly reboot"); + wsErr("REBOOTING"); + delay(100); ws.enable(false); refreshAllPending(); saveDB("/current/tagDB.json"); @@ -224,7 +226,9 @@ void init_web() { server.on("/reboot", HTTP_POST, [](AsyncWebServerRequest *request) { request->send(200, "text/plain", "OK Reboot"); + logLine("Reboot request by user"); wsErr("REBOOTING"); + delay(100); ws.enable(false); refreshAllPending(); saveDB("/current/tagDB.json"); @@ -304,7 +308,7 @@ void init_web() { // memset(taginfo->md5, 0, 16 * sizeof(uint8_t)); // memset(taginfo->md5pending, 0, 16 * sizeof(uint8_t)); wsSendTaginfo(mac, SYNC_USERCFG); - saveDB("/current/tagDB.json"); + // saveDB("/current/tagDB.json"); request->send(200, "text/plain", "Ok, saved"); } else { request->send(200, "text/plain", "Error while saving: mac not found"); diff --git a/ESP32_AP-Flasher/wwwroot/content_cards.json b/ESP32_AP-Flasher/wwwroot/content_cards.json index aa3ec7bc..b0aaed83 100644 --- a/ESP32_AP-Flasher/wwwroot/content_cards.json +++ b/ESP32_AP-Flasher/wwwroot/content_cards.json @@ -3,7 +3,6 @@ "id": 0, "name": "Static image", "desc": "Shows a static image, from file system, painter or external source. Make sure to resize the image to the correct resolution.", - "hwtype": [], "param": [ { "key": "filename", @@ -74,14 +73,12 @@ "id": 1, "name": "Current date", "desc": "Shows the current date", - "hwtype": [], "param": [] }, { "id": 2, "name": "Count days", "desc": "Counts days, starting with the value below. If the count value gets higher than the threshold, the number is displayed in red, otherwise it's black", - "hwtype": [], "param": [ { "key": "counter", @@ -93,8 +90,7 @@ "key": "thresholdred", "name": "Threshold", "desc": "Value is displayed in red if higher than the threshold", - "type": "int", - "hwtype": [] + "type": "int" } ] }, @@ -102,7 +98,6 @@ "id": 3, "name": "Count hours", "desc": "Counts hours, starting with the value below. If the count value gets higher than the threshold, the number is displayed in red, otherwise it's black", - "hwtype": [], "param": [ { "key": "counter", @@ -114,8 +109,7 @@ "key": "thresholdred", "name": "Threshold", "desc": "Value is displayed in red if higher than the threshold", - "type": "int", - "hwtype": [] + "type": "int" } ] }, @@ -123,7 +117,6 @@ "id": 4, "name": "Current weather", "desc": "Current weather. Weather data by Open-Meteo.com. Parameters Lat, Lon and Time Zone are filled automatically from the entered location. In case of an ambiguous location, you can alter those manually.", - "hwtype": [], "param": [ { "key": "location", @@ -145,19 +138,19 @@ "key": "#lat", "name": "Lat", "desc": "Latitude (set automatic when generating image)", - "type": "text" + "type": "ro" }, { "key": "#lon", "name": "Lon", "desc": "Longitude (set automatic when generating image)", - "type": "text" + "type": "ro" }, { "key": "#tz", "name": "Time zone", "desc": "Time zone (set automatic when generating image)", - "type": "text" + "type": "ro" } ] }, @@ -165,7 +158,6 @@ "id": 8, "name": "Weather forecast", "desc": "Weather forecast for the next five days. Weather data by Open-Meteo.com. Parameters Lat, Lon and Time Zone are filled automatically from the entered location. In case of an ambiguous location, you can alter those manually.", - "hwtype": [], "param": [ { "key": "location", @@ -187,19 +179,19 @@ "key": "#lat", "name": "Lat", "desc": "Latitude (set automatic when generating image)", - "type": "text" + "type": "ro" }, { "key": "#lon", "name": "Lon", "desc": "Longitude (set automatic when generating image)", - "type": "text" + "type": "ro" }, { "key": "#tz", "name": "Time zone", "desc": "Time zone (set automatic when generating image)", - "type": "text" + "type": "ro" } ] }, @@ -207,7 +199,6 @@ "id": 16, "name": "Buienradar", "desc": "Dutch rain predictions for the next two hours. Only works for locations in the Netherlands and Belgium.", - "hwtype": [], "param": [ { "key": "location", @@ -233,7 +224,6 @@ "id": 9, "name": "RSS feed", "desc": "Gets an RSS feed, and display the first few lines of it", - "hwtype": [], "param": [ { "key": "title", @@ -259,7 +249,6 @@ "id": 7, "name": "Image URL", "desc": "Gets an external image and displays it", - "hwtype": [], "param": [ { "key": "url", @@ -279,7 +268,6 @@ "id": 19, "name": "Json template", "desc": "Gets an external json template and displays it", - "hwtype": [], "param": [ { "key": "url", @@ -305,7 +293,6 @@ "id": 10, "name": "QR code", "desc": "Displayes a full screen QR code", - "hwtype": [], "param": [ { "key": "title", @@ -325,7 +312,6 @@ "id": 11, "name": "Google calendar", "desc": "Displays the current and upcoming appointments (next 24 hours) from a Google calendar. To let this work, you need a small Google Apps Script to interface with your calendar. See documentation on github how to do that", - "hwtype": [], "param": [ { "key": "title", @@ -351,7 +337,6 @@ "id": 5, "name": "Firmware update", "desc": "To update tag firmware. Make sure you send the right .bin file! You can brick your tag if you send a wrong file.", - "hwtype": [], "param": [ { "key": "filename", @@ -364,14 +349,12 @@ { "id": 12, "name": "Remote content", - "desc": "Content is generated by a different Access Point", - "hwtype": [] + "desc": "Content is generated by a different Access Point" }, { "id": 13, "name": "Set segments", "desc": "Used for debugging. Work in progress", - "hwtype": [], "param": [ { "key": "line1", @@ -397,7 +380,6 @@ "id": 14, "name": "Set NFC URL", "desc": "Send the URL to the NFC chip. The URL is transmitted to a NFC reader (like your phone) if you hold it next to the tag", - "hwtype": [], "capabilities": 64, "param": [ { @@ -412,7 +394,6 @@ "id": 15, "name": "Send custom LUT", "desc": "EXPERIMENTAL. Don't use. YOU RISK DAMAGING YOUR SCREEN.", - "hwtype": [], "capabilities": 4, "param": [ { @@ -427,7 +408,6 @@ "id": 17, "name": "Send Command", "desc": "Send a command to a tag to execute; only to be used for tests during development", - "hwtype": [], "param": [ { "key": "cmd", @@ -441,7 +421,6 @@ "id": 18, "name": "Set Tag Config", "desc": "Sets tag options. The options you see below are the default options. This may or may not match current tag settings", - "hwtype": [], "param": [ { "key": "fastboot", @@ -537,7 +516,6 @@ "id": 20, "name": "Display a copy", "desc": "Mirror the contents of a source tag to this destination tag, regardless of the content. The two tags should be of the same type. Ideally, the destination tag is local to the AP.", - "hwtype": [], "param": [ { "key": "mac", @@ -550,7 +528,6 @@ { "id": 21, "name": "Access point info", - "desc": "Displays information about the currently connected access point", - "hwtype": [] + "desc": "Displays information about the currently connected access point" } ] diff --git a/ESP32_AP-Flasher/wwwroot/main.js b/ESP32_AP-Flasher/wwwroot/main.js index 338b2d7b..413c6c48 100644 --- a/ESP32_AP-Flasher/wwwroot/main.js +++ b/ESP32_AP-Flasher/wwwroot/main.js @@ -843,8 +843,7 @@ function populateSelectTag(hwtype, capabilities) { let option; cardconfig.forEach(item => { const capcheck = item.capabilities ?? 0; - const hwtypeArray = item.hwtype ?? []; - if ((hwtypeArray.includes(hwtype) || tagTypes[hwtype].contentids.includes(item.id)) && (capabilities & capcheck || capcheck == 0)) { + if (tagTypes[hwtype].contentids.includes(item.id) && (capabilities & capcheck || capcheck == 0)) { option = document.createElement("option"); option.value = item.id; option.text = item.name;