From 98941a00fee1b1d491cc767ab891f3601d089f2d Mon Sep 17 00:00:00 2001 From: Markus Zehnder Date: Sun, 24 Aug 2025 17:12:59 +0200 Subject: [PATCH] feat: Initial support for fan-, progress-, & pointer-sensors (#8) * feat: support progress, fan, pointer sensor types Initial implementation, not yet fully working. * only use one rendering layer per sensor type instead one per sensor Each layer uses > 1 MB and a panel can contain easily over 20 sensors! * support custom panels with --panels cli argument This includes one or more additional custom panels into the base configuration. Multiple --panels arguments are supported * update docs --- README.md | 64 +-- cfg/monitor.json | 24 +- cfg/progress1.png | Bin 0 -> 830 bytes cfg/progress2.png | Bin 0 -> 849 bytes doc/README.md | 37 ++ doc/asterctl.md | 124 +++++ doc/img/mode4_pic.png | Bin 0 -> 3052 bytes doc/img/progress.png | Bin 0 -> 849 bytes doc/img/progress_circle.png | Bin 0 -> 20944 bytes doc/img/sensor_mode1.png | Bin 0 -> 82580 bytes doc/img/sensor_mode1_background.png | Bin 0 -> 79077 bytes doc/img/sensor_mode2.jpg | Bin 0 -> 28869 bytes doc/img/sensor_mode2_background.jpg | Bin 0 -> 28566 bytes doc/img/sensor_mode3.png | Bin 0 -> 58803 bytes doc/img/sensor_mode3_background.png | Bin 0 -> 43278 bytes doc/img/sensor_mode4.png | Bin 0 -> 37988 bytes doc/img/sensor_mode4_background.png | Bin 0 -> 38519 bytes doc/sensor_custom_panel.md | 33 ++ doc/sensor_data_shell.md | 29 ++ doc/sensor_data_sysinfo.md | 49 ++ doc/sensor_data_txt_file.md | 57 +++ doc/sensor_mode1_text.md | 98 ++++ doc/sensor_mode2_fan.md | 74 +++ doc/sensor_mode3_progress.md | 112 +++++ doc/sensor_mode4_pointer.md | 71 +++ doc/sensor_panels.md | 160 +----- src/cfg.rs | 145 +++++- src/display.rs | 7 +- src/font.rs | 7 + src/img.rs | 204 +++++++- src/main.rs | 244 +++------- src/render.rs | 726 ++++++++++++++++++++++++++++ 32 files changed, 1830 insertions(+), 435 deletions(-) create mode 100644 cfg/progress1.png create mode 100644 cfg/progress2.png create mode 100644 doc/README.md create mode 100644 doc/asterctl.md create mode 100644 doc/img/mode4_pic.png create mode 100644 doc/img/progress.png create mode 100644 doc/img/progress_circle.png create mode 100644 doc/img/sensor_mode1.png create mode 100644 doc/img/sensor_mode1_background.png create mode 100644 doc/img/sensor_mode2.jpg create mode 100644 doc/img/sensor_mode2_background.jpg create mode 100644 doc/img/sensor_mode3.png create mode 100644 doc/img/sensor_mode3_background.png create mode 100644 doc/img/sensor_mode4.png create mode 100644 doc/img/sensor_mode4_background.png create mode 100644 doc/sensor_custom_panel.md create mode 100644 doc/sensor_data_shell.md create mode 100644 doc/sensor_data_sysinfo.md create mode 100644 doc/sensor_data_txt_file.md create mode 100644 doc/sensor_mode1_text.md create mode 100644 doc/sensor_mode2_fan.md create mode 100644 doc/sensor_mode3_progress.md create mode 100644 doc/sensor_mode4_pointer.md create mode 100644 src/render.rs diff --git a/README.md b/README.md index 2bdaab4..eb61424 100644 --- a/README.md +++ b/README.md @@ -99,68 +99,9 @@ The `--bins` option builds the main `asterctl` app and all other tools. See [Linux systemd Service](linux/) on how to automatically switch off the LCD at boot up. -## Demo App Usage +## Usage -Currently, the project includes a proof-of-concept demo application that loads an image, draws rectangles, and writes -text over the image. - -By default, the original LCD USB UART device `416:90A1` is used. See optional parameters to specify a different device. - -```shell -cargo run --release -- --demo --config monitor.json -``` - -The `--config` parameter is optional. It loads the official configuration file and displays the defined sensors in the -first panel. - -### Parameters - -- `--device /dev/ttyACM0` — Specify the serial device. -- `--usb 0403:6001` — Specify the USB UART device by USB **VID:PID** (hexadecimal, as shown by `lsusb`). -- `--help` — Show all options. - - -### Sensor Panel - -```shell -asterctl --config monitor.json -``` - -See [sensor panels](doc/sensor_panels.md) for more information. - -### Control Commands - -> Aster: Greek for star and similar to AOOSTAR. - -Besides demo mode, the following control commands have been implemented. - -The `asterctl` binary is built in `./target/release`. -Alternatively, use `cargo run --release --` to build and run automatically, for example: - -```shell -cargo run --release -- --off -``` - -**Switch display on:** - -```shell -asterctl --on -``` - -**Switch display off:** - -```shell -asterctl --off -``` - -**Load and display an image:** - -```shell -asterctl --image img/aybabtu.png -``` - -This expects a 960 × 376 image (other sizes are automatically scaled and the aspect ratio is ignored). -See Rust image crate for [supported image formats](https://github.com/image-rs/image?tab=readme-ov-file#supported-image-formats). +See [asterctl documentation](doc/README.md) for more information or run `asterctl --help` for available command line options. ## Contributing @@ -177,4 +118,3 @@ Licensed under either of - MIT License ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option. - diff --git a/cfg/monitor.json b/cfg/monitor.json index c1df70e..5cfd7ae 100644 --- a/cfg/monitor.json +++ b/cfg/monitor.json @@ -337,7 +337,7 @@ "height": 0, "textDirection": 0, "direction": 1, - "value": "7", + "value": "25", "fontFamily": "HarmonyOS_Sans_SC_Bold", "fontSize": 24, "fontColor": -1, @@ -365,7 +365,7 @@ "height": 0, "textDirection": 0, "direction": 1, - "value": "7", + "value": "5", "fontFamily": "HarmonyOS_Sans_SC_Bold", "fontSize": 24, "fontColor": -1, @@ -421,7 +421,7 @@ "height": 0, "textDirection": 0, "direction": 1, - "value": "7", + "value": "15", "fontFamily": "HarmonyOS_Sans_SC_Bold", "fontSize": 24, "fontColor": -1, @@ -477,7 +477,7 @@ "height": 0, "textDirection": 0, "direction": 1, - "value": "7", + "value": "25", "fontFamily": "HarmonyOS_Sans_SC_Bold", "fontSize": 24, "fontColor": -1, @@ -533,7 +533,7 @@ "height": 0, "textDirection": 0, "direction": 1, - "value": "7", + "value": "35", "fontFamily": "HarmonyOS_Sans_SC_Bold", "fontSize": 24, "fontColor": -1, @@ -589,7 +589,7 @@ "height": 0, "textDirection": 0, "direction": 1, - "value": "7", + "value": "40", "fontFamily": "HarmonyOS_Sans_SC_Bold", "fontSize": 24, "fontColor": -1, @@ -645,7 +645,7 @@ "height": 0, "textDirection": 0, "direction": 1, - "value": "7", + "value": "45", "fontFamily": "HarmonyOS_Sans_SC_Bold", "fontSize": 24, "fontColor": -1, @@ -701,7 +701,7 @@ "height": 0, "textDirection": 0, "direction": 1, - "value": "7", + "value": "55", "fontFamily": "HarmonyOS_Sans_SC_Bold", "fontSize": 24, "fontColor": -1, @@ -757,7 +757,7 @@ "height": 0, "textDirection": 0, "direction": 1, - "value": "7", + "value": "65", "fontFamily": "HarmonyOS_Sans_SC_Bold", "fontSize": 24, "fontColor": -1, @@ -813,7 +813,7 @@ "height": 0, "textDirection": 0, "direction": 1, - "value": "7", + "value": "75", "fontFamily": "HarmonyOS_Sans_SC_Bold", "fontSize": 24, "fontColor": -1, @@ -869,7 +869,7 @@ "height": 0, "textDirection": 0, "direction": 1, - "value": "7", + "value": "85", "fontFamily": "HarmonyOS_Sans_SC_Bold", "fontSize": 24, "fontColor": -1, @@ -925,7 +925,7 @@ "height": 0, "textDirection": 0, "direction": 1, - "value": "7", + "value": "95", "fontFamily": "HarmonyOS_Sans_SC_Bold", "fontSize": 24, "fontColor": -1, diff --git a/cfg/progress1.png b/cfg/progress1.png new file mode 100644 index 0000000000000000000000000000000000000000..66ec6570678160ed446613980d97eedea58db264 GIT binary patch literal 830 zcmV-E1Ht@>P)mJ;hh1&1u za+#ThXO|z(%)EzMyC< z=y*yEn_*xvIvPpJr4DBWI4dJ;(sP+5VBGRbYT^g5-0pc!yRey!pz*Deq*i`M;9PrK z)hcWr0)t0Mk}jQjex1Pp%ZhCZ*9cD=eub&mvbY6~pFf4BnHZ zG7Lwq{1rCo!+Faqsbuqc6O)I{BfA<&6-c@Am_pdhS!GETxy+X=UUNUN%91LQ2KkMo zu$i&Kk}5Wn#ZsPs>gNYP2cdWFeirvYa2PLTwMl%=2lGF!7u2&(#4 zV%VGlYgSrPN!B7)E;UZX{0w}v(vo_#8+mf2F>LCcMH`NWFN8W=l-`1m34v znpRsV@0CNCWQ} zSZ#IN)TrCANovvIEC6>0z2ee3PmvbUc&(>!knEVRSH??ViiD z(refhjl{m;X*=Jsc!M?Me^2_Sq;WFo%~Bd~ca*P1)ALn5P%{ zThnRimy-)~XF7dnXJ-_o4;TZcfKgxsxDNCK14X@wRFPxg1o#OY0QBK-ht0Na=O^}CHRtb)_P!?+qsI$tGMfz57K%Wh(v02Yl<$`qn}1MGD2 z5p@z{0xSTt&Opj#9asTQ^Zan$7>9u;u7*;_!Ya88e7op{d14#~o&iJ7LF&pOumtS3 zd+|jv-Ugn>?FmWU3)>=iyWM5z${v8U0jgJs1y5MMax9Hhbw#;#iK z$7jX(2)OACq{4-+9=AGZs~FR(X(aW=-Pl>%7{l^8?*OEpn{WPewK>LzZed8J7>d2s zHO3hJxtwzjQfcNISI5Q}@4Jm5l`8c1AbrE;7$udf-d!5wSi8+gNj)=~Uh|#Cc*oCL zs!XlFG{!0CAXTQ;UmD{r=O9(4)?X4&t$GcrRGrY@KoV~pmQ=0b#8pxHCk!TT^h^JQ z{&qJPODa(kzYaiBwN65eM-D-%+)#=sr8q} zxaAzA%G91-mB#qlIY^cHL_>^w@!^k>%C#T+`{Pdk4Tm6=?tS`(jWNFS0syI0Cs{Fu z)2nOFLMqK#oE3K*BoQG0N|}dkb3TI?5(cVT^r#<&PQh<^~}ds zCrq<$p?VE`cNS9NzQ?})k`-fEK3{pws#K_>*wt~XgSNZ5IBZ0|bh|?;#7XRFFY90z zJ<~rJ2cG$KDyeJX%;^%a+wK5)VkCZp+>`Wc$R*_#R>I{x_YLQbk@zR=0x;_wq+Hg4 z72q__4|ft{Y64hvm6S4t)$k3l)5%BFO^mhI0n_oxt41lE+lyD#YyusJ)oqN8CV?5? zUh^}`r7Iw8Q+$Y<_}iEHb&H6xeyn)rbuvD4ZUndiTr*Pr2SRkefFHm?ybm$N7tWAg bJ|f^ZEexV5v2MnP00000NkvXXu0mjf?1qzQ literal 0 HcmV?d00001 diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 0000000..3911e53 --- /dev/null +++ b/doc/README.md @@ -0,0 +1,37 @@ +# AOOSTAR WTR MAX Screen Control + +- [asterctl usage](asterctl.md) +- [Linux shell control commands](shell_commands.md) without using asterctl + +## Sensor Panels + +- [Sensor panels](sensor_panels.md) +- [Custom sensor panels](sensor_custom_panel.md) + +### Sensor Modes + +Different sensor modes are supported: + +- [Sensor mode 1: Text](sensor_mode1_text.md) +- [Sensor mode 2: Circular Progress](sensor_mode2_fan.md) +- [Sensor mode 3: Progress](sensor_mode3_progress.md) +- [Sensor mode 4: Pointer](sensor_mode4_pointer.md) + +### Sensor Data Sources + +The sensor value reading is separated from the `asterctl` tool. + +Sensor values are provided in separate text files and are automatically read when the file changes. +Only the file data source is supported at the moment, other sources like pipes, sockets etc. might be supported later. + +- [Text file data source](sensor_data_txt_file.md) + +### Sensor Data Providers + +- Proof of concept [Linux shell scripts](sensor_data_shell.md) +- [sysinfo tool](sensor_data_sysinfo.md) + +## Development + +- [LCD Protocol](lcd_protocol.md) + diff --git a/doc/asterctl.md b/doc/asterctl.md new file mode 100644 index 0000000..f13e0eb --- /dev/null +++ b/doc/asterctl.md @@ -0,0 +1,124 @@ +# asterctl Documentation + +> Aster: Greek for star and similar to AOOSTAR. + +Currently, the project includes a proof-of-concept demo application that loads an image, draws rectangles, and writes +text over the image. + +A work-in-progress "panel-mode" mimics the AOOSTAR-X software and uses the same configuration files for rendering sensor +panels with dynamic sensor values. + +By default, the original LCD USB UART device `416:90A1` is used. See optional parameters to specify a different device. + +``` +./asterctl --help +AOOSTAR WTR MAX and GEM12+ PRO screen control + +Usage: asterctl [OPTIONS] + +Options: + -d, --device + Serial device, for example "/dev/cu.usbserial-AB0KOHLS". Takes priority over --usb option + + -u, --usb + USB serial UART "vid:pid" in hex notation (lsusb output). Default: 416:90A1 + + --on + Switch display on and exit. This will show the last displayed image + + --off + Switch display off and exit + + -i, --image + Image to display, other sizes than 960x376 will be scaled + + -c, --config + AOOSTAR-X json configuration file to parse. + + The configuration file will be loaded from the `config_dir` directory if no full path is specified. + + -p, --panels + Include one or more additional custom panels into the base configuration. + + Specify the path to the panel directory containing panel.json and fonts / img subdirectories. + + --config-dir + Configuration directory containing configuration files and background images specified in the `config` file. Default: `./cfg` + + --font-dir + Font directory for fonts specified in the `config` file. Default: `./fonts` + + --sensor-path + Single sensor value input file or directory for multiple sensor input files. Default: `./cfg/sensors` + + --demo + Run a demo + + -o, --off-after + Switch off display n seconds after loading image or running demo + + -w, --write-only + Test mode: only write to the display without checking response + + -s, --save + Test mode: save changed images in ./out folder + + --simulate + Simulate serial port for testing and development, `--device` and `--usb` options are ignored + + -h, --help + Print help (see a summary with '-h') + + -V, --version + Print version +``` + +## Demo Mode + +```shell +cargo run --release -- --demo --config monitor.json +``` + +The `--config` parameter is optional. It loads the official configuration file and displays the defined sensors in the +first panel. + +### Parameters + +- `--device /dev/ttyACM0` — Specify the serial device. +- `--usb 0403:6001` — Specify the USB UART device by USB **VID:PID** (hexadecimal, as shown by `lsusb`). +- `--help` — Show all options. + +## Sensor Panel Mode + +```shell +asterctl --config monitor.json +``` + +## Control Commands + +The following control commands are available to switch the display off or display a static image. + +**Switch display on:** + +```shell +asterctl --on +``` +This will display the last image that was shown before the display was switched off. +This image is stored in the display firmware and not sent by `asterctl`. + +**Switch display off:** + +```shell +asterctl --off +``` + +Switching the display off is also possible with pure [shell commands](shell_commands.md). + +**Display an image:** + +```shell +asterctl --image img/aybabtu.png +``` + +This expects a 960 × 376 image (other sizes are automatically scaled and the aspect ratio is ignored). +See Rust image crate for [supported image formats](https://github.com/image-rs/image?tab=readme-ov-file#supported-image-formats). diff --git a/doc/img/mode4_pic.png b/doc/img/mode4_pic.png new file mode 100644 index 0000000000000000000000000000000000000000..d14666af461d9ff6cf7340f159674d3943ec9dfd GIT binary patch literal 3052 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 literal 0 HcmV?d00001 diff --git a/doc/img/progress.png b/doc/img/progress.png new file mode 100644 index 0000000000000000000000000000000000000000..6c8eadd06325ffc8f850f3b2235f02f2ba8ab8c2 GIT binary patch literal 849 zcmV-X1FrmuP)5P%{ zThnRimy-)~XF7dnXJ-_o4;TZcfKgxsxDNCK14X@wRFPxg1o#OY0QBK-ht0Na=O^}CHRtb)_P!?+qsI$tGMfz57K%Wh(v02Yl<$`qn}1MGD2 z5p@z{0xSTt&Opj#9asTQ^Zan$7>9u;u7*;_!Ya88e7op{d14#~o&iJ7LF&pOumtS3 zd+|jv-Ugn>?FmWU3)>=iyWM5z${v8U0jgJs1y5MMax9Hhbw#;#iK z$7jX(2)OACq{4-+9=AGZs~FR(X(aW=-Pl>%7{l^8?*OEpn{WPewK>LzZed8J7>d2s zHO3hJxtwzjQfcNISI5Q}@4Jm5l`8c1AbrE;7$udf-d!5wSi8+gNj)=~Uh|#Cc*oCL zs!XlFG{!0CAXTQ;UmD{r=O9(4)?X4&t$GcrRGrY@KoV~pmQ=0b#8pxHCk!TT^h^JQ z{&qJPODa(kzYaiBwN65eM-D-%+)#=sr8q} zxaAzA%G91-mB#qlIY^cHL_>^w@!^k>%C#T+`{Pdk4Tm6=?tS`(jWNFS0syI0Cs{Fu z)2nOFLMqK#oE3K*BoQG0N|}dkb3TI?5(cVT^r#<&PQh<^~}ds zCrq<$p?VE`cNS9NzQ?})k`-fEK3{pws#K_>*wt~XgSNZ5IBZ0|bh|?;#7XRFFY90z zJ<~rJ2cG$KDyeJX%;^%a+wK5)VkCZp+>`Wc$R*_#R>I{x_YLQbk@zR=0x;_wq+Hg4 z72q__4|ft{Y64hvm6S4t)$k3l)5%BFO^mhI0n_oxt41lE+lyD#YyusJ)oqN8CV?5? zUh^}`r7Iw8Q+$Y<_}iEHb&H6xeyn)rbuvD4ZUndiTr*Pr2SRkefFHm?ybm$N7tWAg bJ|f^ZEexV5v2MnP00000NkvXXu0mjf?1qzQ literal 0 HcmV?d00001 diff --git a/doc/img/progress_circle.png b/doc/img/progress_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..9d85c913684ab79a397fbb9a53aa43e0f156fec5 GIT binary patch literal 20944 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 literal 0 HcmV?d00001 diff --git a/doc/img/sensor_mode1.png b/doc/img/sensor_mode1.png new file mode 100644 index 0000000000000000000000000000000000000000..bb4f384174cb49ce9906daac9f67a854856ee2c1 GIT binary patch literal 82580 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 W?6&IRd>(}W00005D-v9JnV-N_&;hB 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 DY{8{8 literal 0 HcmV?d00001 diff --git a/doc/img/sensor_mode2.jpg b/doc/img/sensor_mode2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2d3e8218cbc1b0bff60e981f153d59469d64fa34 GIT binary patch literal 28869 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 U9l&DCult{a{C|Bv`e){U0aj&l0{{R3 literal 0 HcmV?d00001 diff --git a/doc/img/sensor_mode3.png b/doc/img/sensor_mode3.png new file mode 100644 index 0000000000000000000000000000000000000000..223fd53f9648a69c95c56cc64ce0f8313d348593 GIT binary patch literal 58803 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 literal 0 HcmV?d00001 diff --git a/doc/img/sensor_mode4.png b/doc/img/sensor_mode4.png new file mode 100644 index 0000000000000000000000000000000000000000..4e4228d01226086cac5da11b1a6cbe352ac0d50f GIT binary patch literal 37988 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

^}!J9CJ62~xOE560A9 z&|2QnB+sYvwd6Fi97d9@+J>dVC?7Kl%j1Ivo5(JMR#OSASMT--I|q zBUPAxd30pvj4Opf*{m4nX?RP@)&}U(g|#w%|A@{OSjPZ72J#NZVK}WHer=hj zaa-k1&wkZ$yFAh)#5GEdtrp)GSDq)yqj7Xif701e{E-W6CcQ()hCnWz7%~yK` zx3+Zhgb~XdS0^E8e^ANn)AIa?wZwm0rO@~5#4jMFWMO0ylp605OEj&dJMlMQz%Zmf zEC-ZeZ8LTzHchJ4JUY~;OfC6wB8T~c1*&duBE6;yE$)}^!C$JkEyND$tR}du+QKZC zf1#hvI#-t*#4*NjQdZFP&pmBy{aplC^u!S9w0y0EVad7ECActyNFSg)>T3hmJ7_R` zEkQC?m$t-gFE+-l=wT-tL#@sq{9D{1_}p*pPXGB6@kauNzAS4;^oJORMiw}D{p55* zUhcGea`RjCb6)T3c!61?T4ZoCsqxIKvS+au!nfj{9g$VDg{JNv&OCVtL{EHqrH!Ft z_$D-rOcS2uCqD-S?XQhziniD7{zrIK0a#UP5;Qg(*xk-|&OZ$%9>$EK8Y<(g!cy*x z#Nx&D{x10SIXOii_Mk@fFdXykM~38V+B=Vq27 zcRFm<7ub+qu@xeJ9(Vk4H0>z)mu;g78YXDv;9%a1O``68N1F$ABd%74m$tZdA7V#g zn)E6MG$6IT%Jjs56LkmYR?8LIt)XjZoez{%r(I+|fRhC(cdWNIFx`4vwM6<;$+LL2 zI)<%|?d*i_0Sc_gbVZ!#6`k>du)#3V0B=CCQ?noz-Sk8JthY-5O!k`LNXg$}ToMKp)(05=$HLMG`v zbV0x6F@sPSsMJ0@on`*{Yd0ugY}UrqG3q?!=x+vvBqd;*l$s8!%J`ao45u<>i+2T;Khgh^u0WtzsM(1xpszr?uA4^8GmesCQ&fDW!=Gv*p2!&*on#OH-S>V4Ao9AQa~_rZuTKeMq%C ztA8@LG)vkrjQWT=hdto_X97-b0 z%k!4)R~!FWxnra-vN#UxwGlQncI}vWe}Dg7BVRD>R8=XWE5Q_us2s##2rL?*!umr=&Fyp(AMFE9My?K2Rqs5Soy`a+i=Wd&koYBGoDH=;nd6abeJi-I%3 zpWrbZy&SxuPu&^cakJfD$0^S|Xa@s4Y*f4+Tvv=;xz#iVo2D=77TsRl>NaJK}G!mpr!K#c&7U@dVs zIX(6N>aUeDUZ02YE7!8ZWF&`yE8?&9f@f3ks4FlkpyJINPEfJ`P`z`YuOH)ONJ#M& zDXiBKtjJ_z5m*^9i2`3}dgvOdWMVM6*Kr!H%20?>$LQsP`5a=?3j$y@NY&n*d9J!p z>!C8eI{DA1yStNdvCoxh2n!*DDC0gScQVk)8_i;a0E2~0;8cikxZUp@Jk+P}w!J#;krk(Ji|)+gAKuziL)a>VBfU#-G#fX zAnyj%rI|>?_J&*E_hV{mQagQe`YrCwgkAuI>#EyXT9oKMqCig+pxcp{H9T3o@Xf?A z#WD*GtS^J%sJrAaaHXdNQWFc;HB1vJYEgHfSwG?IzBe@nAxF_GY&~72y-~O#aarW; zgZp-*Z>u({o>B*ToBDTHAIQnBvX{{eCGMJ~cjlj;p5;yv#A^3Ov#yEHxXpVW7iM7-aPOHtJoVnf{1fJ*BQ1Q7h3s+OxZypOuucjO0{CZu_n zOulirq9@R@+1zOSa8SqSyUHn8b|R>ubUR|d1QM;G!=l)#)jv5r>^3d|tso8@Dr zqw}Q-jAfz{B9S!`>b@nS7!d{5rGVf#B7!$g@a@W*FXu1C150xqSd8FWh;b~JdE!7} z8hr)(c1n~`gxU$OAK0lR!o&a=h;jVNp>pQq>4VrAiG72}vQrwJ-)$7G?07VHXWzkr z!~w_0`BBJiqj6g~6Q!(hs4|Q5aWzA;ro0PhCXRy+0`KSnklU)XXr&h2L=?EP6cC~g z#^5m3nc1nY`EUCvGvmfE>f?d{NJ~u3C>)DQk=tzn=5*V%{omIQ#j+X1We?EJ@Nr|1 z6BRIG+MfP9EGLT|q6c%CteC(#q0g#wH|4mmIVY>H&zELengJ)KS`XdQBMKi;pjQfn z;34-B7k_lFbIP}Bmpn!KGmZ)$;N9Qg^Vb$ zoB~2D39OR6@pN%|@;~TrD>1#`Bp_gQ&RfE<4|@mFzrEW_8lOsvTc{}y#rFAWY+&{RJau(Rqw7ZWX46Y?7g@gUG*(rYn-aSy-=JDm0w8$RG^97 zuJec@L=@82Xp6(b5AQJ@nAAeMxv6Xqmow+*!MnM*%0Pb;}Z%*7H}UQqww^xK1aDUO3x zT(RhVcQt)yY#5nHmAF%JI=qtz>F{CcD->`ryL~vmuVLdjcgH|^arM}{Fkz_HSQ)Eo z?z!p*vkRBd!w52Q(AvCuphh!l^f#hFPZS8f_vmT_=?QM6srASb2^CSmlc1fllVmJfSQUgW%_kXy&0X9T)ESvhCdaWDb(WBwmrJ&X&QQKP>R1ulyMgeo8emc(}11aP3eHg)`4#z`ff zPGBU*-AoDEMQ+`2b}&{MJiS?|A+oPNVeC1O9E9N7_|*ZfLNOIGIJ|66YuzVU)^MTBI1SS_ z8mH&qs#eSE#)<+&6u7n&0KY$9JoO{(f~px1usEdxBS8YJ%Znl#gH^`#ORxu(mCq** z;FJnjaYBhDk`&lmD!dl6Sq9hE2N{JrI*xzaoLK4asbW*yT4FY;GAQ0 zO`mhlER?XxQ}?MvF(L|FT?zo1fvxjGU@_o~YPrIkb7tSEI6xUrQ69tbba8)S)^%V-CQVf3ToNUCM3^otsf>yJK zLI9;MTrGJ1v+e+5o_e!Zh+9b{1C$*>A2_)M z#k z{2OZZ?P^X*L*(il5o7HDeRaj?c12q4aFruoCWf4`TZOt~@TQb8=%ScNh%bSBDOB4d zu1L4#^VI5uF!VK)r0bQ=%)e2u)lpg*DfIkWnL_j?qQKUm03ZnN$1mXdPW94{^a<>~ zWC|ZWus1G&43-u5YZN&QDTJ7arqq3&vHG~Odv9ih{!@rdF^+Wvxa*+3wxf>VMyb$6 z@Yk}eyf$KBNR9oam;eGVVs-73Avg9G;l&vs&-HaLrpJxx#smr}l49;_)vp;p`WsQ; z8d3l(3RuVm0Mpg^*Odt+7K;lBiBh%HTimyB+qtx2QU!xaiB)ia15#G;4*321lq@`w zgsqv%Fmvk!jAd{QMKC)ORoynQV>r97QlE3N-3vRHwo5KsXnWP+fkI!t#xgJ{+P-B9K9r17)!?2!jWS2qcJ* z7#`LicachSr9Cto$DQ)&zg zUx8NoJ+xh`@-qSgNiDb{5==ogoPpO+_qcgACJy8f<{qlI!tJRo;f_#|nFFFuC8$~2$1N?lb1~(x8G%IhaM?1o*i_?#iTN`kp{50GwQ_Y% zGq7~a95=yY(V1lGl|B-v@f>ug4tuvIF5+55Y9YH~qGqel8d9QkRV#lLH zhmeTK0!ANvU4~5tUiL~l7@|meEtp^#s==YOWW4pRWpWs3x6F85DV3@v zL}dpPW{m=Lk?eZeM&Ba}TzLurRxkq5?|?9aZ=Q0dF=xk>1P>qQ)yfjAy!g<1yW|Fd z1WI9Rl2TOFxu~>?v!ToWPBp7zHivdzTaM2D|q{SBir>A);a0+i`v1pDnr~+Uu zbhSrZQXt$StlONV#lf_wj~~Dl#Gmpflm>%}MYA1B)1FN96j5NSP#~0@QpN_#+4}T} zcuCcD!*w;`JPcvzVf7lAy3?35tj3}aOluNlDg2z!3BZ4-;$&;8hvllkAWd4GuXfa7 z#Q@jd`nsX)7(5WubB^yyk=;4=DsQF#6BfqmJYWRgnw5t#? zdc9>R0Ps*|3U35isLAreQ?*mr6eXc0d_~8I5f?2_?ReT?4axzI&j~(}IyjK)M-(A| zg#x-F{<7plV^S<08_Mrb7#X+<_n@qzdh}Wpp2fnQ*^im=z;LRKX*fj*-C@ycwOU8A zqNve}hyvG!0^zu{X>Xytaos7?*3y>cVzoNXY^Dy$eTbpSF42uQQd}Sqt`eTxxLF_C zlO0A1+$EGM>N0FHv1PBQ2FsvM$#oiaT{l&=>y-yEcjJV0E+GveDU5Edn zHeWY!xCbw8za|c#S)Rf&xQ42!Wu%NC;kq`o;~u0dhP|8tW-Ty~Rt+^#b;@UE-mF(( zwUWbNmIDF0?1`3_K6;KQa5X4^A!|#jP-`S6UMZe=xqjaCl^7I8F$$$Mx2Mto;tkco zJ{7yoe#L^2hW7+*O)IZua18@&>)$<;-%DSA?2Fv}2BmUOM=ax^QtZQ6r6)|QUawGJ zSd^=r4`zOmHXKqt`m;qTK)E6@DhddO#s7|7FIm1~#iWU*h14GK0#p>8s;`iuH(=EUI4f`ovB`h`7!Nzge>n&m1?XYhu!;v=Jsac|T zTZsZ3kfJ;SKs<*IyiGyYm`U0}HjY)RcnPF<+=FSw_>#fH3y>!6!SW(0`G{XcgMB%u zHb(5^U_2voK=-f=n@nW+E1(EEtlLnWdV}ZU@qoPLVVb$G`d5~QDuVC9_t4Ud;0RQed&0 zQp2j`Te{*pLD9zMz>H7Gc9=A21CI;=fg0DcbUkF2(m{fE8^6Su6cJ%@!YQr_2GUdI zsamZnQs_{Kji(%ij3{s|C;+CV#z+uJAmJ%cPS$58-IAf{ok>?W021MQq9H zsj+0jfG;x_%|%y4fg6VcKu0{Ef;hqmr~-cDvGjEH+{O8mko(aUQQ$_RK(SVOcHv~rt0yq|dO2noNM&r@ zqHAu&PBySZk|~612f(($l?E^kBVL%AaNsi6yyKUGxywrcQ>X{n-_7;xpi;8|{w`CA zf=3kC@)VfyN@dmId33_X06g9UUQkPzhanhYTu#;KbPQ3~apJWdt|A`nOsX$V7U&;WnnS*Gd1w-SeMK{bx9hyphf1w6&oJtJ?{sx0y43{kp6UmM7g%eoW({cS?d!*`_69Z39zhFXk8KyQ+XT*Y47w#6S z9aL);_BEpeZ-;An(x#66*mz=(P{G+@tOoQBiM79ip-R}QV6BR#T-!+#J>4i2z;bXG zzK3G>LGAw*qRIN9I6Wly# zTh?Ll;>sQ-b)z&YV5Tx=bPp9#LS+QvfKfo4#j3s)5Hj z9nwRQ#mWG>M)(-M21?Aqjr4Y0o>)6v6(wn9VpbMw3tHI}KNRCaq2gi?)$=b@+S&Z-J^8(bli`}4znxotoi zqGN@8FXLwFy^yNJI|jfr@q<~t73t|EmAMiN0Gy-tCttIVB7&it= zm7v#-B!@LaF0fgiQX5>M_r{EvhRsR?Y!*d;^^kWM%MVN=hE+wUF1)u;nh%%vEYCf9 zjwo;)Qvl$^mT0d}ojF~dN}34>Cm^VY;VT5P+=!y)*f^&7=E9ClJlPTSZE%&8^BwH} zfKCEF62dUu{X`D+c-dc|yD@}Wm|aeXysqQ6ii#dl09@@WzbRcjUti!BFx|^lNkYJt z>Z~xvVmn3MRTFyW4bs{ngsECxhgkRF04a`h=E{KXm2t#ihk>Q-Dz<)Mk;GmWkv<$T z_zgt?DF9<84lRaRmQ@4lRvmY)UUf{qK*Av=eJyNkHXL};r*TD;Hn;-bRG~#DA%6Ll z62GTQMub@yNr}{YN+pUEQDAFR!1ZC672A0Wq+Bkm!|NC}S_sQdwQhqe0&uL%0W&TD zoIve4dy!w@d67d?C&EYXZWIdOkQ?|36DGn#L87Ls%1LA*qS%}}fa%IuWrMWkaK&MB zVwx1Whw$zp`zFqXwG3TP$Bv?_3Pph<3T#yh0IA_o7s5>fI&Ifi%d9Kx!8rTEz&72T zt~R*#fXq&5;vI*nA~j$i4ii1pV3mZU*AWG_6a`=##(!cMd70%B?t{R-XDn{Ty*$Y_ zxI*)V4lIIDAzmJK!_O_rj2M`{UHZ7;G@^hJ1+E7QU@3Rt``A+rcp<0vtVu3GB9_&x zg1#kzC=c5R#8m>9b+tubtpt~qLlilpz_p`5lcnWx8@-o9PJALhCSv$2t;C(uYlExw zDsC2{Q}7MHgEox+;oHQ?TWP`Sz2n(%u2H~<0#}g&QkIIL-W8an>}(5euTC3Wxi8b= zvFOx?F?jAtzGI_g&Lf3!(PczfZKr$mbOTWU%pT&1qOSWDY(NV1=r&z+mF3MATc>P)2ZHVa3!>^#3j?g zN?Twar$s`tUWrtrG$IOYMGDaSPb?3|UtB#DQHo^5m1xAG9(px)y4v810HHh-&dTz! zQ>=B~ArXW?H-Qr98qQx|Cw%ldqQLb^0q!u2U4mO?)n4jBluL<5l~%{97_MOLbhW{i zE=aHpYwZ)Ry^dq43PVAlkvO^{3f!<1FaTE^{3d5XA@I5vPEF+#>v9BKv2W5wq$|+X z6pY>Hxk_^YuIM{f`53*9C~)0V0Mb=&y7>0ySR_Fw34swTH0z~rmJ+C4^aVH|rzSS< zm-|ulWamQi=p=X?CV?6vwbl77%{;n~C~#d1%>KF*HBdB$BA5vyP@WW~x=EX2bx>ZTR9xp`;@Yg0R1vDpg_ zJ2!0R=2n zS-l6mh?yY7jp+vbir$_-TdY<(qP`ujiZVTaVYYl8t7BEQxm(OCD`nTDqy|OU7bk6O z>)(@3=BOTbzvt7MSwtTr3S46fz?_RCak8$dG$0mTh&5`X9dWj1NyXMLUZCn}-BLXJ zwT08JyD?>Wt}<1uOmoi|W()}{PVZPVvyLByQJB-d^`eVeq>f>tmk|Z7YYI@-8G5}^ zcgqc&2Zgh0db=Q3A>O#D8joN1u+KOrhSpbx6==eSY6?eR098z%_D}-OxWYj~#p$x1 zU9+)WTSrB_hm@lz5e2pm1!&Y!m87fdbxxDY{m@ztiCvUa%$4$>92jV!4x75Riivr- zGK>iyD8D>XM~3uKq%nq8%jxYR>S;qxVnMuD>f%fd8igo{#Y&MTI3|uS#G#U2y@r+T-J&keTyh? z9Z|sJL6O)^0+{9cGb*uNbGtl~6~}D^y5?GbNw4F!>2}dZi}s`ea~uM#T9#oFX6P@v z7p+L1g@#mCgPQMJW@a$CO-SjsjH8E$0@pnSRAnfc-5=k^QK#bapc%|y_8?%1bKO%K zs$wdsw5{S?IpTih)ehG{Yt+4&;_13u({wXXu;(bfqE<#*`wixQxTq%x8csQ(XZCD6 z%+1DycD;7Q=xaoQ>xlw^awt1;Z+g36b}@m|bPMXL7KAwlt{w!m;aFO^fdf`IB3-e4 zzY<)UJ5zNkx{j^M2~-rNtGq=N48kE$b<@=ArG{5A3=7jjy{PrwW*vo(C~(y%fU#cA zHxhFVo`?*raRps3OpZ}2P?k{QfuTJ+|L(gp7g&W(uxppD0%QSTZV_#PSa>JTlIw~D zV(JMg!yc{k>`5FiZ7t8Js|2IK5e2p&1$<4ZHSAiYjtNVg$c#xCirF5l$LJqyEr2aTYbHiw6EyCP+{jYiSK^-qERRQ4;Qccsi&$!S0_<%*V` z_P~cr61*HV$5Yc8+t34>=P`GXtpxGXO8~QCS3K3$^jJ83+QaA>F`*Y==o?^OsFpSd zwrBU_G>@fOMfVW}u6GLL&D7|esW>oGo4eDKIc2>S`Wzt5!J1& z2jK%%i{YOaobzW+`E$q$t5*O2_P#qv(&M`CixYP?-`?)!2oUKINHBo}0}KibB56~m zZ83=Y!z5j-l4+~#5-8bL6;1s?t7KcUERwcdG)Y*2DwAN5M4%7|1_Osc;D7_}aJU>c zr`gG0^6%F@^WE(1%=Xns z<9&VC>^FMzn(#oRM-%v!TcMHqNQWZSf@_o!b9<6L&(Mj6nn78_uChOnr?U&=C1;K| zsf*OC;tJ2G8o;s*Cl6D1-HPpWr4!wv4vo(;Bl(uaR8kn&z!;E(D(RM=;3i1YxV^{e zfhO!2Je7{;U1bqppPD{Dl|RcUOIjzq zB*BO%7`|!H1-eqGz!|!!aTxJ3q6|%yRT#L`7@+KtZ3V^Q52!6&K-BgoLE4 zLpygFLpnDqx`x?nBw;Ojc;=aJzPw)E^zB*FZ!56ecyrfv-nksDAI6b3FO1|*>hUJw_$YB#61-fRtd0ZyfR zplP9oQXOs6G+WQHShc3K*sP!bRqiY=iv_e6JlDvs3`$N{M9)rH@mQLx*H%?qBTLK+ z)WETsgek`lN@ft>lH8k0W~5#Lj;&WPT0>HA6b3c|2B4pY48#a#h_-S|Z1{lJThI~n z1u8HFEJPbs;${2Wl$jvXG{f=-QUykEsTQd&l@~)>#I9&bo?(Y;)ogB5L-ZE<+(|IF0UTzNWX#@(h$ z^h(%7n}DQiu5f*fl`2KU?%LeH1NCa-S<>`MFx7j7fy;sc+HTP>_y=ZKLBM^ft~c8w zV9^p-RY$-kSXFt5j@|~*z5G*fsW*&=<_=HIPYQ1ZNVFQ4EFSP8o)LYL?+sVWX*QTV ziO{0}Q4{ji1cbcDqI5B&Mc;TTUerP%%s8%VRN|GcEr~rw3JY@-#gxP(<|CO^p9%vT z6a#gFj&48b<-Wwwfl42CM_n6o5Iz!~&&b^L`dwxt2TV`);qnk%PdKate`K_Ludn-H*TMMK;oj{+D&x3%m8)L_9<+nTqXaHm7#cErPmr^Tl)sL1h#M zHVOu6JVr$`(1xwda3Q6Y%bq33T(WVqbb@lF?2n|b z$@FFbzorH)I@PMV=n%RDfI{+gS0xEGWD|lAEpWQRB;)`Cl8#mU=la#zoF2v{Kx`ZNqUtgbQ&0~-nhl6SC- z+uAj7r@39Pcsa9rW3n{Tptm8-x9T|<3vdt*7zL2WKWM_xd#97`xKcIV@E9D!sc5W*5^c}|neTvvwGc}B=H`s3RZskrQoC?=VLVPNB7KnPd*Et%IPhi@tN`X&P2!$pFgOm#%gjyHU*AB*s&s6OCoQ`h6rc}?So z&ao5OQSOq6MJR#PSF6h}W))Nx>M0d+QE9d~Rxq=cmB8^=2uJ}%be&3j^ZVFYkG@c% z<%`NLWILiq1$j5$YmRK~+bf_+{aga9>y*kW3~VS2@T?0LuW;?XJ8^9)Z)LqAJtDAe z0~tt1B*8AVrD?0a^WctH0}Ee#6E|j{ zv_gJ%Tj>@0voom0UsscP(G50m#L#xGoElInXMDu^mI*+o>2-?OGShsGP#U#=`(_ zVD-AJyY=0DPCN@%fPPu?k!ZiSh(!#Fhv$?w`m(M#b&b(E?*XI2(`sys1Y{+ zU&MG~n^ZgzoK3KrHadRx!rW2Yio=sx+@uaMOQ;=mm#l6Yj#e>Csgd-4%SI=q7;os6 z`l>Lnp)f$VzTKIvx0g2y?+Dm)!32wVr=9NNf;oiUX3Pn&V-WOf@$qEwq5LteghR7c zmcw5uR+}oXi<+#iPFax8DF}7HSkBEb6@{1r-KXhXD|2T>D^p?;9)qd81s$aW`m&dgLf5&~?c_x?bVJ7nWD! zq&0V>FoxT#s0WL;%XhSq9J9fH2Xn#9wRcm9%RKb3C(Ou>blq?QZg{#HBCllXY-20NFS)hcw&_dQBip?*f{A*3|#ZH2@#aMVqEIzIV=J4!CY0oV{w zZS5L9sLwRAYyG>6dEcL0IN{kPOGofw=*egiYwh;xUW5YU7kHDQV4(K{fUReC^u8gH zpi&{6rmFJ;)%%V_cU@DjhinJ)_v>NUmv0OpPm-wk2c8xCAf(q@dbfYvxmI(_S)%{} z2@TUE3q%%I7#ZUr!QAA!T0H)oK64>AEq#jG9CTYOhpvy!;vTz`@J2L(7(feO#kT4$ z?uQVqV#k(uJ-g=C^mSVXcX2(;%~$E<1Wv7<*I8WmYWc>6hKc#N8h!3+8TLjPCxr&} zQv4$|iogs(%J}W%t-ZO_q*Z{G6*?!J1?Z*UfeHx8%vdqnK#(}A=YH;-@{2AehxSuj zEC(&USaL@TuOw43+ekz6riAP$G31&CA7@Njfa-VY{k!{a!cst@Nr+c0jjIUjsD&%O z66S5BD}ESP;s9z&DL9fFs~AGy-7v88H!5$?78WXIC8ozLnqP6thS(;JI7Y5_4bwu% z2qS(xRXmtKNp6U;f7=$ja;EWv3$w4~yfK@hDrhtoA>bnR7hH-N3ykW~yzHBvQ_%*D z?R`B1boL0R0N^S5rdHIhY}oR|j7S@{hp+372{}Y!gatPUGTJ}ye(T6WV!{Hu(iI7> zdCXP#Bu2#pmR(T8^rTu;drQG);^uF9Zl;2s}euf)u*J*flznLc0&?~rPE=uqEof~G6;Q70I_GDo^` zdX0spBtlYZQvYz*&DYPQ7xV(OU|4lcddi!gxH<~frpVnkV5)_;k^M94{PXjtu@%bg zl^VIX1Fc_SH0CL<;*UPkYycS{Gst&ZC27Jp*LVJ5W2=#ROE>M=0@x znMgjapVM*`1R3R`FACSU#jZ4#K@ZUU`T6|m>@&VqN%#rIXymaX3Uq9}$T8y2GLwba z`+*T0tdAXIp8G*<7Z(G0v3<$gdwaV81d+tCXh5{7W#Cltss1PotSttrRv+QCknlf{ zyzWi8%_Y6$8{8=g1~u_thITCau@vK3v()Z2zw28TuJ$GWjYj}dNBKn6n28h z+u}hv(6)+-OyXM_Pd#P94L&;7)6}-M6+UdF+%f_S)e&{D+H=D z;|jW6L29*+O?JgxA?&q41SP3< zcJjzXa3p5gCgRQ17@03xo6DBNAuYt%cP{6Pxn1^~_KjReK^+-O%eA21DGaoM0mJG~ zej;{YcrKAO;UUbUGxX|-n5q>JI|5cJ1o+m1en0Ie^>4c`7G|>q2Iu3dfQ?4xZL+H{ zZL=K;c}V$Ows>;pS>Elg#e`VrV=-ZbC0V-7#AZ3 z18ao=Y}Wk4-kU#O-dhgJB{<7^-1+bs0x?>Gppi@gPKQHL!n0#$_s`R#-(NTkcVld0 z%B3U2Hbn#6?rKx)&`{ioWAqTBL2!2Jm1*y_xP}-`RAr%vW5R&tiKQYY9)iUIK-!wU zf>+pY-*(%!_u#NT6cLVx|5s;$+SiB;sNxC(br`5I35lwfCxi8D?)yFCj$}SDYnOw- z^$lEb42Q$W?m&PEkwzJ0f^p1EFz=+aZ)%6iGdVOPj7(BwM`o5br7Oo8N>MrRY&Lfy z`z)?(ws2)L&DH26WG|R3vWbYcZiH|`SW~zX>%~&3vOo2fokKgINN~MQ1^eQTt~v@^ zM|djR2?m4_h!v5kNf&UG@x|_U-InbxYWZ^Dz@GsgJM<(F=fxs510@*ch5wV8Aj779 zks7~${xFWRg@jydHxl4>r7M9_+pSADoN#>d`C08$((Lv<9D%EH6lG+@gyjJ)^}vc8 zFmdFt>@IYbhi=;RPCE(T5%PaH1=3AyaW^71rHU&I5CejuAXm8g$$ysr{w=rsoAT}D zVr9}ST9yT7gIuNjfI=KOVgCf{UOMRYI7vMf`E40g6QnaF4eI~b% zKbd<98h*m;!bBv13Y9nn-(H5t^8^!$EoI#^i?}gpfBbC+w!fA8x()mv@@{*;RVjsm z1`N<7Dyb;IE)B$t-#yg-#rPe`Ib+T&kwt0yq+rEeGaoq=SM7obMQeQqjCErC#To5XTu;{S;E<^-2-)fe9=r*9^vq-ZWB+0H;c~VpUx|X9e?*W}plto zn??rzd+a0W>G%a}hQ5Q`_3&KWWZ?DPR(XX1fdPbr0Ok8`zj<%p`woov=G^&m9G4>EtTh9kpo|GSk+^BG?gVTE z;b1VIgu`4Z-V=Y zf}SB`k-4}b(V}w*I1Hkt2^rE_2w^Ii*sBfnfgt5|>ECdlD^2InGM0MP*t{)3wfQ*0 z+O-8lY8GzA^X>9*_g=G-bo4UL1yS9nn-%`b)hw70C5f}8Yu6BRh*Xrr4-fk~V$MLS z_F3D4SmAW;1a3RP9X(<%2l_Ggu!Y1WiY0LQHH5dmnKmgnQYV^{d-yQSM1mO>4y$8v zA!pU_Ntg)>Bh&O@eSuc_hKllQ!^2i}*Yr6E3fe6wPAFxhDzOa316{vy=bpa|KGZX3 zpHEELTFk~pQzXwtX~}~{Zy{O0KiJbiGaz%KR2Y?$xVY6weW&Zy|1$oBi|Bz!bm3hC z;#@tuQmO$bv!%(duGHrEbr7b$R^drLB+geD2@uAO*{JL)IUWZE5prT6zRj_7V{>D) zun~(GJdYQ!dBWvaWM0RKcofU~RgSR%4hgN6>hrZ{{M+hzeVL{C&T1`%)A%6D}R4x66DGX%fqPyxk6U9utK2~USm?h^i|Pboj#beM{zkiCT|{|NB6Nrki#LN zb-+%5%vxn5pVs@|Jn;T)BU|tlYYNC#{tzG}&H_~rjTQR2cCRlBAxe2DKUXu9W#I5v zYDTqTqfOr~?TjoI)~YYiCWQJbo##n{Otc`;u7uDn@W%1A0sAYNd)_&{ZC;;TFnybj z5D=|G0!L}gqHyJ0MkSKdf(GMDmlqFWiT@Kja&Yz($x|f322nt_D7z}@%8u6H;zF)` zIhW2@Bgr=~KtCd?a^?Ywpn2ejBTMr?O5AFl+TR)o3d-s;{1L##UvVuDw!eC

$W` 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 I4M*tz08H&R{Qv*} literal 0 HcmV?d00001 diff --git a/doc/img/sensor_mode4_background.png b/doc/img/sensor_mode4_background.png new file mode 100644 index 0000000000000000000000000000000000000000..0f3414b5252e7157a42215ac77d04739c639348e GIT binary patch literal 38519 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 literal 0 HcmV?d00001 diff --git a/doc/sensor_custom_panel.md b/doc/sensor_custom_panel.md new file mode 100644 index 0000000..564a045 --- /dev/null +++ b/doc/sensor_custom_panel.md @@ -0,0 +1,33 @@ +# Custom Panels + +By default, the defined panels in the main configuration file are loaded and rendered. + +Additional custom panels can be included with the `--panels` command line parameter. + +A custom panel consists of: +- a `panel.json` file with just the json object of the `diy` array of the main configuration file. +- `img` subdirectory containing the referenced images in `panel.json` +- `fonts` subdirectory containing the referenced fonts in `panel.json` + +Example: +``` +. +├── fonts +│   ├── HarmonyOS_Sans_SC_Bold.ttf +│   └── ROGFontsv.ttf +├── img +│   ├── 6ae90fde-d0a1-44ec-9e15-7b6af14e3b7b.jpg +│   ├── 95f38f70-9e0c-4b54-80a9-6bd7b0b4475c_1744449208_1746941971.png +│   ├── f1c3d74c-0157-4b77-82a6-f07e565fe439_1744447224_1746941971.png +│   └── f5d534e5-4527-4ca0-a0e9-69e8eef86f62_1744447151_1746941971.png +└── panel.json +``` + +There are lots of custom panel configurations available online. +AOOSTAR support sent the following link: , look for a file called [`有线网卡 windows驱动.rar`](http://pan.sztbkj.com:5244/WTR%20MAX%206+5%E7%9B%98%E4%BD%8D/%E9%A9%B1%E5%8A%A8/%E6%9C%89%E7%BA%BF%E7%BD%91%E5%8D%A1%20windows%E9%A9%B1%E5%8A%A8.rar) +in the `WTR MAX 6+5盘位/驱动/` subfolder. + +Example: +```shell +asterctl --config monitor.json --panels cfg/01_custom --panels cfg/02_custom +``` diff --git a/doc/sensor_data_shell.md b/doc/sensor_data_shell.md new file mode 100644 index 0000000..7a5f749 --- /dev/null +++ b/doc/sensor_data_shell.md @@ -0,0 +1,29 @@ +# Sensor Data Provider Shell Scripts + +The [/linux/scripts](../linux/scripts) directory contains some proof-of-concept Linux shell scripts. + +CPU and memory usage are written into a sensor data source text file that can be used by `asterctl`. + +``` +./cpu_usage.sh -h +Simple PoC script to periodically write the CPU usage into a sensor text file. + +Usage: +./cpu_usage.sh [-r REFRESH] [-s SENSOR_FILE] [-t TEMP_DIR] + + -r REFRESH refresh in seconds. Default: 1 + -s SENSOR_FILE output sensor file. Default: /tmp/sensors/cpu.txt + -t TEMP_DIR temporary directory. Default: /tmp +``` + +``` +./mem_usage.sh -h +Simple PoC script to periodically write the memory usage into a sensor text file. + +Usage: +./mem_usage.sh [-r REFRESH] [-s SENSOR_FILE] [-t TEMP_DIR] + + -r REFRESH refresh in seconds. Default: 5 + -s SENSOR_FILE output sensor file. Default: /tmp/sensors/mem.txt + -t TEMP_DIR temporary directory. Default: /tmp +``` diff --git a/doc/sensor_data_sysinfo.md b/doc/sensor_data_sysinfo.md new file mode 100644 index 0000000..4709098 --- /dev/null +++ b/doc/sensor_data_sysinfo.md @@ -0,0 +1,49 @@ +# sysinfo Tool + +The Rust based [/src/bin/sysinfo.rs](../src/bin/sysinfo.rs) tool gathers many more system sensor values with the help of +the [sysinfo](https://github.com/GuillaumeGomez/sysinfo) crate. + +It supports FreeBSD, Linux, macOS, Windows and other OSes, but it has only been tested on Linux so far. + +``` +Proof of concept sensor value collection for the asterctl screen control tool + +Usage: sysinfo [OPTIONS] + +Options: + -o, --out + Output sensor file + + -t, --temp-dir + Temporary directory for preparing the output sensor file. + + The system temp directory is used if not specified. + The temp directory must be on the same file system for atomic rename operation! + + --console + Print values in console + + -r, --refresh + System sensor refresh interval in seconds + + --disk-refresh + Enable individual disk refresh logic as used in AOOSTAR-X. Refresh interval in seconds + + --smartctl + Retrieve drive temperature if `disk-update` option is enabled. + + Requires smartctl and password-less sudo! +``` + +Single test run with printing all sensors on the console: +```shell +sysinfo --console +``` + +Normal mode providing sensor values for `asterctl` in `/tmp/sensors/sysinfo.txt`: + +```shell +sysinfo --refresh 3 --out /tmp/sensor/sysinfo.txt +``` + +Note: the lower the refresh rate, the more resources are used! diff --git a/doc/sensor_data_txt_file.md b/doc/sensor_data_txt_file.md new file mode 100644 index 0000000..878fe7f --- /dev/null +++ b/doc/sensor_data_txt_file.md @@ -0,0 +1,57 @@ +# Text File Data Source + +- Text file with ending: `.txt` +- Simple key / value pairs, separated by a colon `:`. Example: `foo: bar` +- Line based: one key / value per line. +- Key and value are trimmed. Any whitespace will be removed. +- Empty lines and comments are ignored. +- Comments start with `#` at the beginning of the line. +- Support for special keys: if key ends with `#unit` then the value is the unit for the corresponding key before the suffix + - Example: `net_download_speed#unit: M/S` is the unit value for `net_download_speed`. + - This can be used for dynamic unit values if they sensor value provider cannot add the unit to the corresponding value. +- File contents will automatically be read when updated. + - This requires the sensor value provider to use atomic file updates! + - Best practice is to use a temporary file on the same filesystem and use a move or rename operation after all values have been written. +- One or multiple sensor text files are supported. + - Either a single file can be specified, or a directory path. + - If a directory is specified, all children matching the sensor file naming pattern will be read and monitored. + - Any subdirectories are ignored (no recursive support). + +Example text file for the [cfg/monitor.json](../cfg/monitor.json) panel configuration: + +``` +cpu_temperature: 65 +cpu_percent: 98 +memory_usage: 77 +memory_Temperature: 48 +net_ip_address: 146.56.182.244 +gpu_core: 98 +gpu_temperature: 78 +net_upload_speed: 100 +net_upload_speed#unit: K/S +net_download_speed: 120 +net_download_speed#unit: M/S +motherboard_temperature: 38 +storage_ssd[0]['temperature']: 31 +storage_ssd[0]['used']: 17 +storage_ssd[1]['temperature']: 32 +storage_ssd[1]['used']: 27 +storage_ssd[2]['temperature']: 33 +storage_ssd[2]['used']: 37 +storage_ssd[3]['temperature']: 34 +storage_ssd[3]['used']: 47 +storage_ssd[4]['temperature']: 35 +storage_ssd[4]['used']: 57 +storage_hdd[0]['temperature']: 36 +storage_hdd[0]['used']: 17 +storage_hdd[1]['temperature']: 37 +storage_hdd[1]['used']: 27 +storage_hdd[2]['temperature']: 38 +storage_hdd[2]['used']: 37 +storage_hdd[3]['temperature']: 39 +storage_hdd[3]['used']: 47 +storage_hdd[4]['temperature']: 40 +storage_hdd[4]['used']: 57 +storage_hdd[5]['temperature']: 10 +storage_hdd[5]['used']: 67 +``` diff --git a/doc/sensor_mode1_text.md b/doc/sensor_mode1_text.md new file mode 100644 index 0000000..d429afb --- /dev/null +++ b/doc/sensor_mode1_text.md @@ -0,0 +1,98 @@ +# Sensor Mode 1 Text + +A text sensor renders a text label with a sensor value and an optional unit text on the panel. +The value can be formatted as a fixed point decimal number or as an integer. + +Text sensor configuration fields: +- `mode`: 1 (for text) +- `label`: label identifier, also used as sensor value data source identifier +- `direction`: 1 = left to right, 2 = right to left, 3 = top to bottom, 4 = bottom to top +- `label`: data source id to retrieve the current value from +- `unit`: optional unit label, appended after the sensor value +- `x`, `y`: position on the panel +- `fontFamily`: Font name matching font filename without file extension. + - Fonts are loaded from the configured font directory, or from the custom panel's `fonts` directory. + - An absolute file path can also be used. +- `fontSize`: Font size +- `fontColor`: Font color in `#RRGGBB` notation, or `-1` if not set. + - Examples: `#ffffff` = white, `#ff0000` = red. Default: `#ffffff` +- `textAlign`: Text alignment: `left`, `center`, `right` +- `integerDigits`: number of integer digits: -1 or missing field = all digits, > 0 prefix with `0` and set to `9` if overflown +- `decimalDigits`: number fixed point digits: -1 = auto, 0 = integer number without decimal digits, > 0 fixed number of decimal digits + +## Value Formatting + +The sensor value can be formatted with the `unit` and `integerDigits` & `decimalDigits` options. + +- The unit value is simply appended to the value, without whitespace. +- Example formatting for the value `123.456` with `integerDigits` & `decimalDigits`: + +| integer | decimal | output | +|---------|---------|----------| +| 5 | 2 | 00123.46 | +| 5 | 1 | 00123.5 | +| 5 | 0 | 00123 | +| -1 | 2 | 123.46 | +| -1 | 1 | 123.5 | +| -1 | 0 | 123 | +| 2 | 0 | 99 | + + +## Example + +Example `panel.json` with two "text" indicator sensors and the following (partial) background image in `img`: + +sensor mode 1 background image example + +The background image and sensor definitions are taken from the default system panel configuration in the AOOSTAR-X app. + +```json +{ + "name": "Text test panel", + "img": "background.png", + "sensor": [ + { + "mode": 1, + "type": 1, + "name": "CPU temp", + "label": "cpu_temperature", + "x": 195, + "y": 110, + "value": "65", + "fontFamily": "HarmonyOS_Sans_SC_Bold", + "fontSize": 120, + "fontColor": -1, + "textAlign": "center", + "decimalDigits": 0 + }, + { + "mode": 1, + "type": 1, + "name": "CPU usage", + "label": "cpu_percent", + "unit": "%", + "x": 200, + "y": 285, + "value": "47.4", + "fontFamily": "HarmonyOS_Sans_SC_Bold", + "fontSize": 60, + "fontColor": -1, + "textAlign": "center", + "decimalDigits": 0 + } + ] +} +``` + +The following graphic is rendered for the two text fields defined above: + +sensor mode 1 example + +## Known Issues + +Text sensor formatting has been reverse engineered from the AOOSTAR-X app. Not all options are supported + +- Text position and font size calculation doesn't always match AOOSTAR-X. + - Needs investigation if value is in pixel or points. + - Might also need dpi adjustments. +- `fontWeight` not yet supported. diff --git a/doc/sensor_mode2_fan.md b/doc/sensor_mode2_fan.md new file mode 100644 index 0000000..5119875 --- /dev/null +++ b/doc/sensor_mode2_fan.md @@ -0,0 +1,74 @@ +# Sensor Mode 2 Circular Progress + +A circular progress sensor (known as `fan` in the AOOSTAR-X software) masks a progress bar image for a certain angular +range based on the corresponding sensor value. The masked image is alpha-blended with the panel image. + +Sensor configuration fields: +- `mode`: 2 (for fan) +- `direction`: 1 = clockwise, 2 = counter-clockwise +- `label`: label identifier, also used as sensor value data source identifier +- `x`, `y`: position on the panel +- `width`, `height`: size of the circular progress element (not yet used) +- `pic`: circular progress image to overlay. Should match `width`, `height` +- `minAngle`, `maxAngle`: range of the masked image +- `minValue`, `maxValue`: clamp sensor value to this range +- `xz_x`, `xz_y` + +## Example + +The following configuration and graphics are taken from the `仪表盘_windows` panel configuration in `有线网卡 windows驱动.rar`. + +Example `panel.json` with a single "fan" indicator sensor and the following (partial) background image in `img`: + +sensor mode 2 background image example + +```json +{ + "name": "Fan test panel", + "img": "background.jpg", + "sensor": [ + { + "id": "29d9ef2d-30b4-459d-b2b0-43cb6d4d6b41", + "itemName": "CPU usage", + "mode": 2, + "type": 1, + "direction": 1, + "label": "cpu_percent", + "value": "47.7", + "x": 168, + "y": 184, + "width": 237, + "height": 237, + "fontColor": "#ffffff", + "fontSize": 14, + "fontFamily": "default_font", + "textAlign": "left", + "minAngle": -160, + "maxAngle": 30, + "minValue": 0, + "maxValue": 80, + "xz_x": 0, + "xz_y": 0, + "pic": "progress_circle.png" + } + ] +} +``` + +Progress image `"pic": "progress_circle.png"`: + +![progress graphic](img/progress_circle.png) + +The following graphic is rendered for progress example above: + +sensor mode 2 example + + +## Known Issues + +Fan sensor rendering has been reverse engineered from the AOOSTAR-X app. Not all options are supported. + +- Work in progress, not yet fully tested +- `direction: 2` doesn't seem to work +- `widht`, `height` should be considered and auto-resized as for mode 4 + diff --git a/doc/sensor_mode3_progress.md b/doc/sensor_mode3_progress.md new file mode 100644 index 0000000..0fafaad --- /dev/null +++ b/doc/sensor_mode3_progress.md @@ -0,0 +1,112 @@ +# Sensor Mode 3 Progress + +A progress sensor crops a progress image based on the corresponding sensor value and alpha-blends it with the panel image. + +Sensor configuration fields: +- `mode`: 3 (for progress) +- `label`: label identifier, also used as sensor value data source identifier +- `direction`: 1 = left to right, 2 = right to left, 3 = top to bottom, 4 = bottom to top +- `x`, `y`: position on the panel +- `pic`: progress image to crop and overlay +- `minValue`, `maxValue`: clamp sensor value to this range + +## Example + +Example `panel.json` with two "progress" indicator sensor and the following (partial) background image in `img`: + +sensor mode 3 background image example + +The background image and sensor definitions are taken from the default system panel configuration in the AOOSTAR-X app. + +```json +{ + "name": "Progress test panel", + "img": "background.png", + "sensor": [ + { + "mode": 3, + "type": 2, + "name": "SSD 4 usage", + "label": "storage_ssd4_usage", + "x": 400, + "y": 45, + "direction": 1, + "value": "35", + "fontFamily": "HarmonyOS_Sans_SC_Bold", + "fontSize": 24, + "fontColor": -1, + "textAlign": "center", + "minValue": 0, + "maxValue": 100, + "pic": "progress.png" + }, + { + "mode": 3, + "type": 2, + "name": "SSD 5 usage", + "label": "storage_ssd5_usage", + "x": 400, + "y": 106, + "direction": 1, + "value": "80", + "fontFamily": "HarmonyOS_Sans_SC_Bold", + "fontSize": 24, + "fontColor": -1, + "textAlign": "center", + "minValue": 0, + "maxValue": 100, + "pic": "progress.png" + }, + { + "mode": 1, + "type": 2, + "name": "SSD 4 temp", + "label": "storage_ssd4_temperature", + "x": 580, + "y": 70, + "direction": 1, + "value": "34", + "fontFamily": "HarmonyOS_Sans_SC_Bold", + "fontSize": 24, + "fontColor": -1, + "textAlign": "center", + "integerDigits": -1, + "decimalDigits": 0, + "unit": " ℃" + }, + { + "mode": 1, + "type": 2, + "name": "SSD 5 temp", + "label": "storage_ssd5_temperature", + "x": 580, + "y": 130, + "direction": 1, + "value": "35", + "fontFamily": "HarmonyOS_Sans_SC_Bold", + "fontSize": 24, + "fontColor": -1, + "textAlign": "center", + "integerDigits": -1, + "decimalDigits": 0, + "unit": " ℃" + } + ] +} +``` + +Progress image `"pic": "progress.png"`: + +![progress graphic](img/progress.png) + +The following graphic is rendered for progress example above: + +sensor mode 3 example + + +## Known Issues + +Progress sensor rendering has been reverse engineered from the AOOSTAR-X app. Not all options are supported. + +- Work in progress, not yet fully tested +- `widht`, `height` should be considered and auto-resized as for mode 4 diff --git a/doc/sensor_mode4_pointer.md b/doc/sensor_mode4_pointer.md new file mode 100644 index 0000000..ac07e47 --- /dev/null +++ b/doc/sensor_mode4_pointer.md @@ -0,0 +1,71 @@ +# Sensor Mode 4 Pointer + +A pointer sensor rotates an image at a certain angle calculated from the current sensor value and alpha-blends it with +the panel image. + +Sensor configuration fields: +- `mode`: 4 (for pointer) +- `direction`: 1 = clockwise, 2 = counter-clockwise +- `label`: label identifier, also used as sensor value data source identifier +- `x`, `y`: position on the panel +- `width`, `height`: size of the pointer +- `pic`: pointer image to overlay. Should match `width`, `height`, otherwise it will be resized +- `minAngle`, `maxAngle`: range of the rotated image +- `minValue`, `maxValue`: scaling range to apply on the value for `minAngle` .. `maxAngle` (to be verified) +- `xz_x`, `xz_y` + +## Example + +The following configuration and graphics are taken from the `三环_windows` panel configuration in `有线网卡 windows驱动.rar`. + +Example `panel.json` with a single "pointer" indicator sensor and the following (partial) background image in `img`: + +sensor mode 4 background image example + +```json +{ + "name": "Pointer test panel", + "img": "background.jpg", + "sensor": [ + { + "id": "a9d4acac-2af9-4fe0-9f69-86cd09f25696", + "itemName": "CPU dial", + "mode": 4, + "type": 1, + "direction": 1, + "label": "cpu_percent", + "value": "47.7", + "x": 160, + "y": 208, + "width": 302, + "height": 302, + "fontColor": "#ffffff", + "fontSize": 14, + "fontFamily": "", + "fontWeight": "normal", + "textAlign": "left", + "minAngle": -110, + "maxAngle": 110, + "minValue": 0, + "maxValue": 90, + "xz_x": 0, + "xz_y": 0, + "pic": "pointer.png" + } + ] +} +``` + +Pointer image `"pic": "pointer.png"`: + +![pointer graphic](img/mode4_pic.png) + +The following graphic is rendered for a sensor value of `47.7`: + +sensor mode 4 example + +## Known Issues + +Pointer sensor rendering has been reverse engineered from the AOOSTAR-X app. Not all options are supported. + +- Work in progress, not yet fully tested diff --git a/doc/sensor_panels.md b/doc/sensor_panels.md index fc602fe..cf923b4 100644 --- a/doc/sensor_panels.md +++ b/doc/sensor_panels.md @@ -16,8 +16,8 @@ Example panels from the AOOSTAR-X software, rendered with `asterctl` using dummy - One or multiple panels rotating in configurable interval (configuration value `setup.switchTime`). - Each panel can be configured with multiple sensor fields. - - Only text sensor value fields are supported (`sensor.mode: 1`). - - Fan (2), progress (3) and pointer (4) sensors are not supported. + - Text sensor value fields are supported (`sensor.mode: 1`), but there are still some text size and positioning issues. + - Fan (2), progress (3) and pointer (4) sensor modes are being worked on and not all configuration options are working yet. - Each sensor field can be customized with an individual font, size, color and text alignment. - Panels are redrawn at a configurable interval (configuration value `setup.refresh`). - Only the updated areas of the image are sent to the display for faster updates. @@ -32,7 +32,7 @@ asterctl --config monitor.json - The configuration file is loaded from the configuration directory if not an absolute path is specified. - The default configuration directory is `./cfg` and can be changed with the `--config-dir` command line option. -The original AOOSTAR-X json configuration file format is used, but only use a subset of the configuration is supported: +The original AOOSTAR-X json configuration file format is used, but only a subset of the configuration is supported: - Setup object fields: - `switchTime`: Optional switch time between panels in seconds, string value interpreted as float and converted to milliseconds. Default: 5 @@ -51,6 +51,13 @@ The original AOOSTAR-X json configuration file format is used, but only use a su - `fontSize`: Font size - `fontColor`: Font color in `#RRGGBB` notation, or `-1` if not set. Examples: `#ffffff` = white, `#ff0000` = red. Default: `#ffffff` - `textAlign`: Text alignment: `left`, `right`, `center` + - Fields used for the fan (2), progress (3) and pointer (4) sensor modes: + - `min_value` and `max_value` + - `width` and `height` + - `direction` + - `pic`: progress image, loaded from the specified configuration directory if not an absolute path is specified. + - `min_angle` and `max_angle` + - `xz_x` and `xz_y` Example configuration file: [cfg/monitor.json](../cfg/monitor.json). @@ -58,149 +65,4 @@ Sensor values are not read from the configuration file (the `sensor.value` field More options might be supported later. -## Sensor Data Sources - -Sensor values are provided in separate text files and are automatically read when the file changes. -Only the file data source is supported at the moment, other sources like pipes, sockets etc. might be supported later. - -### Text File Data Source - -- Text file with ending: `.txt` -- Simple key / value pairs, separated by a colon `:`. Example: `foo: bar` -- Line based: one key / value per line. -- Key and value are trimmed. Any whitespace will be removed. -- Empty lines and comments are ignored. -- Comments start with `#` at the beginning of the line. -- Support for special keys: if key ends with `#unit` then the value is the unit for the corresponding key before the suffix - - Example: `net_download_speed#unit: M/S` is the unit value for `net_download_speed`. - - This can be used for dynamic unit values if they sensor value provider cannot add the unit to the corresponding value. -- File contents will automatically be read when updated. - - This requires the sensor value provider to use atomic file updates! - - Best practice is to use a temporary file on the same filesystem and use a move or rename operation after all values have been written. -- One or multiple sensor text files are supported. - - Either a single file can be specified, or a directory path. - - If a directory is specified, all children matching the sensor file naming pattern will be read and monitored. - - Any subdirectories are ignored (no recursive support). - -Example text file for the [cfg/monitor.json](../cfg/monitor.json) panel configuration: - -

- -``` -cpu_temperature: 65 -cpu_percent: 98 -memory_usage: 77 -memory_Temperature: 48 -net_ip_address: 146.56.182.244 -gpu_core: 98 -gpu_temperature: 78 -net_upload_speed: 100 -net_upload_speed#unit: K/S -net_download_speed: 120 -net_download_speed#unit: M/S -motherboard_temperature: 38 -storage_ssd[0]['temperature']: 31 -storage_ssd[0]['used']: 17 -storage_ssd[1]['temperature']: 32 -storage_ssd[1]['used']: 27 -storage_ssd[2]['temperature']: 33 -storage_ssd[2]['used']: 37 -storage_ssd[3]['temperature']: 34 -storage_ssd[3]['used']: 47 -storage_ssd[4]['temperature']: 35 -storage_ssd[4]['used']: 57 -storage_hdd[0]['temperature']: 36 -storage_hdd[0]['used']: 17 -storage_hdd[1]['temperature']: 37 -storage_hdd[1]['used']: 27 -storage_hdd[2]['temperature']: 38 -storage_hdd[2]['used']: 37 -storage_hdd[3]['temperature']: 39 -storage_hdd[3]['used']: 47 -storage_hdd[4]['temperature']: 40 -storage_hdd[4]['used']: 57 -storage_hdd[5]['temperature']: 10 -storage_hdd[5]['used']: 67 -``` - -
- -### Shell Scripts - -The [/linux/scripts](../linux/scripts) directory contains some proof-of-concept Linux shell scripts. - -CPU and memory usage are written into a sensor data source text file that can be used by `asterctl`. - -``` -./cpu_usage.sh -h -Simple PoC script to periodically write the CPU usage into a sensor text file. - -Usage: -./cpu_usage.sh [-r REFRESH] [-s SENSOR_FILE] [-t TEMP_DIR] - - -r REFRESH refresh in seconds. Default: 1 - -s SENSOR_FILE output sensor file. Default: /tmp/sensors/cpu.txt - -t TEMP_DIR temporary directory. Default: /tmp -``` - -``` -./mem_usage.sh -h -Simple PoC script to periodically write the memory usage into a sensor text file. - -Usage: -./mem_usage.sh [-r REFRESH] [-s SENSOR_FILE] [-t TEMP_DIR] - - -r REFRESH refresh in seconds. Default: 5 - -s SENSOR_FILE output sensor file. Default: /tmp/sensors/mem.txt - -t TEMP_DIR temporary directory. Default: /tmp -``` - -### sysinfo Tool - -The Rust based [/src/bin/sysinfo.rs](../src/bin/sysinfo.rs) tool gathers many more system sensor values with the help of -the [sysinfo](https://github.com/GuillaumeGomez/sysinfo) crate. - -It supports FreeBSD, Linux, macOS, Windows and other OSes, but it has only been tested on Linux so far. - -``` -Proof of concept sensor value collection for the asterctl screen control tool - -Usage: sysinfo [OPTIONS] - -Options: - -o, --out - Output sensor file - - -t, --temp-dir - Temporary directory for preparing the output sensor file. - - The system temp directory is used if not specified. - The temp directory must be on the same file system for atomic rename operation! - - --console - Print values in console - - -r, --refresh - System sensor refresh interval in seconds - - --disk-refresh - Enable individual disk refresh logic as used in AOOSTAR-X. Refresh interval in seconds - - --smartctl - Retrieve drive temperature if `disk-update` option is enabled. - - Requires smartctl and password-less sudo! -``` - -Single test run with printing all sensors on the console: -```shell -sysinfo --console -``` - -Normal mode providing sensor values for `asterctl` in `/tmp/sensors/sysinfo.txt`: - -```shell -sysinfo --refresh 3 --out /tmp/sensor/sysinfo.txt -``` - -Note: the lower the refresh rate, the more resources are used! +See [custom sensor panels](sensor_custom_panel.md) for including custom panels. diff --git a/src/cfg.rs b/src/cfg.rs index 67aebc4..8540db7 100644 --- a/src/cfg.rs +++ b/src/cfg.rs @@ -7,16 +7,16 @@ //! Likely not fully compatible with files created with the original editor. use anyhow::Context; -use image::Rgb; +use image::{Rgb, Rgba}; use imageproc::definitions::HasWhite; -use log::warn; +use log::{info, warn}; use serde::de::Visitor; use serde::{Deserialize, Deserializer, Serialize, Serializer}; use serde_repr::{Deserialize_repr, Serialize_repr}; use std::io::BufReader; use std::num::ParseIntError; use std::ops::Deref; -use std::path::Path; +use std::path::{Path, PathBuf}; use std::{fmt, fs}; pub fn load_cfg>(path: P) -> anyhow::Result { @@ -54,6 +54,51 @@ pub fn load_cfg>(path: P) -> anyhow::Result { Ok(config) } +/// Load a custom panel configuration. +/// +/// The distributed panel ZIP file must be extracted and contain: +/// - `panel.json` configuration file +/// - `img` subdirectory containing the referenced images in panel.json +/// - `fonts` subdirectory containing the referenced fonts in panel.json +/// +/// # Arguments +/// +/// * `path`: directory path of the extracted custom panel. +/// +/// returns: Result +pub fn load_custom_panel>(path: P) -> anyhow::Result { + let path = path.as_ref(); + let panel_file = path.join("panel.json"); + + info!("Loading custom panel {panel_file:?}"); + + let file = fs::File::open(&panel_file) + .with_context(|| format!("Failed to load custom panel {panel_file:?}"))?; + let reader = BufReader::new(file); + let mut panel: Panel = serde_json::from_reader(reader)?; + + // adjust font and image file paths + let img_path = fs::canonicalize(path.join("img"))?; + let font_path = fs::canonicalize(path.join("fonts"))?; + if let Some(img) = &panel.img + && !Path::new(img).is_absolute() + { + panel.img = Some(img_path.join(img).display().to_string()); + } + for sensor in panel.sensor.iter_mut() { + if let Some(pic) = &sensor.pic + && !Path::new(pic).is_absolute() + { + sensor.pic = Some(img_path.join(pic).display().to_string()); + } + if !sensor.font_family.is_empty() && !Path::new(&sensor.font_family).is_absolute() { + sensor.font_family = font_path.join(&sensor.font_family).display().to_string(); + } + } + + Ok(panel) +} + /// AOOSTAR-X monitor json configuration file #[derive(Debug, Serialize, Deserialize)] pub struct MonitorConfig { @@ -97,6 +142,11 @@ impl MonitorConfig { None } + + pub fn include_custom_panel(&mut self, panel: Panel) { + self.panels.push(panel); + self.active_panels.push(self.panels.len() as u32); + } } /// Web-app user login @@ -153,7 +203,7 @@ pub struct Setup { /// Language setting. /// /// Not used, part of AOOSTAR-X json configuration file. -#[derive(Debug, Serialize_repr, Deserialize_repr, PartialEq)] +#[derive(Debug, Copy, Clone, Serialize_repr, Deserialize_repr, PartialEq)] #[repr(u8)] #[allow(dead_code)] pub enum Language { @@ -163,7 +213,7 @@ pub enum Language { } /// Not used, part of AOOSTAR-X json configuration file. -#[derive(Debug, Serialize_repr, Deserialize_repr, PartialEq)] +#[derive(Debug, Copy, Clone, Serialize_repr, Deserialize_repr, PartialEq)] #[repr(i16)] #[allow(dead_code)] pub enum OperationMode { @@ -176,6 +226,17 @@ pub enum OperationMode { Custom10W = 5, } +#[derive(Debug, Copy, Clone, Serialize_repr, Deserialize_repr, PartialEq)] +#[repr(u8)] +pub enum SensorDirection { + /// Also used for clockwise in circular/arc progress & rotating pointer/dial indicator + LeftToRight = 1, + /// Also used for counter-clockwise in circular/arc & rotating pointer/dial progress indicator + RightToLeft = 2, + TopToBottom = 3, + BottomToTop = 4, +} + /// Custom DIY panel definition #[derive(Debug, Serialize, Deserialize)] pub struct Panel { @@ -197,6 +258,25 @@ pub struct Panel { pub sensor: Vec, } +impl Panel { + pub fn friendly_name(&self) -> String { + self.name + .clone() + .or_else(|| self.id.clone()) + .or_else(|| { + if let Some(img_file) = &self.img { + let img_file = PathBuf::from(img_file); + img_file + .file_stem() + .map(|s| s.to_string_lossy().to_string()) + } else { + None + } + }) + .unwrap_or_else(|| "panel".into()) + } +} + /// One Data Display Unit #[derive(Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] @@ -223,21 +303,27 @@ pub struct Sensor { /// Sensor value. Ignored: value is used from a sensor source #[serde(deserialize_with = "empty_string_as_none")] pub value: Option, // "" or numbers, so Option + + /// Image for progress, fan and pointer indicators + pub min_value: Option, + /// Image for progress, fan and pointer indicators + pub max_value: Option, + /// Optional unit text to print after the value #[serde(deserialize_with = "empty_string_as_none")] pub unit: Option, /// x-position. Custom panel coordinates are stored as float! + // TODO use i32 and round from f32 in deserialization pub x: f32, /// y-position. + // TODO use i32 and round from f32 in deserialization pub y: f32, - /// _Not (yet) used_ + /// Used for pointer type pub width: Option, - /// _Not (yet) used_ + /// Used for pointer type pub height: Option, - /// _Not (yet) used_ - pub text_direction: i32, // layout direction - /// _Not (yet) used_ - pub direction: i32, // sensor orientation, 0/1 + /// Sensor graphic orientation + pub direction: Option, /// Font name matching font filename without file extension. pub font_family: String, @@ -257,23 +343,25 @@ pub struct Sensor { // -1 ≈ unset ⇒ Option #[serde(deserialize_with = "option_none_if_minus_one")] pub decimal_digits: Option, - /* - // The following fields of the AOOSTAR-X json configuration file are NOT used in `asterctl` - pub min_angle: i32, - pub max_angle: i32, - pub min_value: i32, - pub max_value: i32, - - /// TODO determine meaning of: pic - render picture? + /// Image for progress, fan and pointer indicators #[serde(deserialize_with = "empty_string_as_none")] - pub pic: Option, // "" when unused + pub pic: Option, + + /// Used for fan & pointer sensors + pub min_angle: Option, + /// Used for fan & pointer sensors + pub max_angle: Option, + /// Pivot x #[serde(rename = "xz_x")] pub xz_x: Option, /// Pivot y #[serde(rename = "xz_y")] pub xz_y: Option, - + /* + // The following fields of the AOOSTAR-X json configuration file are NOT used in `asterctl` + /// _Not (yet) used_ + pub text_direction: i32, // layout direction /// For type = 6 pub url: Option, /// For type = 6 @@ -283,12 +371,17 @@ pub struct Sensor { */ } -#[derive(Debug, Serialize_repr, Deserialize_repr, PartialEq)] +/// Sensor element type. Name is based on AOOSTAR-X web configuration +#[derive(Debug, Clone, Copy, Serialize_repr, Deserialize_repr, Eq, Hash, PartialEq)] #[repr(u8)] pub enum SensorMode { + /// Text element Text = 1, + /// Circular/arc progress indicator Fan = 2, + /// Horizontal or vertical progress indicator Progress = 3, + /// Rotating pointer/dial indicator Pointer = 4, } @@ -385,7 +478,7 @@ impl TryFrom<&str> for FontColor { type Error = ParseIntError; fn try_from(value: &str) -> Result { - if value.len() != 7 || value.starts_with('#') { + if value.len() != 7 || !value.starts_with('#') { warn!("Invalid font color: {value}"); Ok(FontColor::default()) } else { @@ -410,6 +503,12 @@ impl From for Rgb { } } +impl From for Rgba { + fn from(val: FontColor) -> Self { + Rgba([val.0[0], val.0[1], val.0[2], 255]) + } +} + impl Serialize for FontColor { fn serialize(&self, serializer: S) -> Result where diff --git a/src/display.rs b/src/display.rs index 043c551..bbd6a2f 100644 --- a/src/display.rs +++ b/src/display.rs @@ -2,10 +2,9 @@ // SPDX-FileCopyrightText: Copyright (c) 2025 Markus Zehnder use crate::dummy_serialport::DummySerialPort; -use crate::img::rgb888_to_565; +use crate::img::ToRgb565; use anyhow::{Context, anyhow}; use bytes::{BufMut, BytesMut}; -use image::RgbImage; use log::{debug, error, info, warn}; use serialport::{SerialPort, SerialPortType}; use std::io::{Read, Write}; @@ -178,8 +177,8 @@ impl AooScreen { .with_context(|| "Failed to send display off") } - pub fn send_image(&mut self, rgb_img: &RgbImage) -> anyhow::Result<()> { - let img_rgb565 = rgb888_to_565(rgb_img)?; + pub fn send_image(&mut self, image: impl ToRgb565) -> anyhow::Result<()> { + let img_rgb565 = image.to_rgb565_le(); debug!( "Start sending image (size {}) {} cache... ", img_rgb565.len(), diff --git a/src/font.rs b/src/font.rs index 2b38014..44ec4b3 100644 --- a/src/font.rs +++ b/src/font.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 // SPDX-FileCopyrightText: Copyright (c) 2025 Markus Zehnder +//! Font handling and caching. + use ab_glyph::{FontArc, FontRef, FontVec}; use anyhow::{Context, anyhow}; use log::warn; @@ -61,4 +63,9 @@ impl FontHandler { Ok(font) } + + #[allow(dead_code)] + pub fn clear(&mut self) { + self.ttf_cache.clear(); + } } diff --git a/src/img.rs b/src/img.rs index a8929ac..5b42507 100644 --- a/src/img.rs +++ b/src/img.rs @@ -1,13 +1,21 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 // SPDX-FileCopyrightText: Copyright (c) 2025 Markus Zehnder +//! Image helper functions. + use bytes::{BufMut, BytesMut}; use image::imageops::FilterType; -use image::{GenericImageView, ImageReader, RgbImage}; +use image::{DynamicImage, GenericImageView, ImageBuffer, ImageReader, RgbImage, Rgba, RgbaImage}; +use imageproc::geometric_transformations::{Interpolation, rotate}; use log::{debug, warn}; -use std::path::Path; +use std::collections::HashMap; +use std::f32::consts::PI; +use std::path::{Path, PathBuf}; -pub fn load_image

(path: P, size: (u32, u32)) -> anyhow::Result +/// Width, height type +pub type Size = (u32, u32); + +pub fn load_image

(path: P, size: Option) -> anyhow::Result where P: AsRef, { @@ -18,30 +26,190 @@ where img.color() ); - if img.dimensions() != size { + if let Some(size) = size + && img.dimensions() != size + { warn!( "Resizing invalid image dimensions {:?} to expected size {:?}, ignoring aspect ratio", img.dimensions(), size ); - Ok(img - .resize_exact(size.0, size.1, FilterType::Lanczos3) - .to_rgb8()) + Ok(img.resize_exact(size.0, size.1, FilterType::Lanczos3)) } else { - Ok(img.to_rgb8()) + Ok(img) } } -pub fn rgb888_to_565(rgb_img: &RgbImage) -> anyhow::Result { - let mut img_rgb565 = - BytesMut::with_capacity(rgb_img.width() as usize * rgb_img.height() as usize * 2); +/// Trait definition to get a RGB 565 representation from a source image. +pub trait ToRgb565 { + /// Get an RGB 565 representation of the image in little endian format. + fn to_rgb565_le(&self) -> BytesMut; - for (_x, _y, pixel) in rgb_img.enumerate_pixels() { - img_rgb565.put_u16_le( - ((pixel.0[0] & 248) as u16) << 8 - | ((pixel.0[1] & 252) as u16) << 3 - | ((pixel.0[2] as u16) >> 3), - ); + /// Convert a single RGB 888 pixel to 16 bit RGB 565 format. + fn convert_rgb(&self, r: u8, g: u8, b: u8) -> u16 { + ((r & 248) as u16) << 8 | ((g & 252) as u16) << 3 | ((b as u16) >> 3) } - Ok(img_rgb565) +} + +// TODO quick & dirty approach for converting RgbImage & RgbaImage to RGB 565. +// There should be a more generic way, maybe with PixelEnumerator... +impl ToRgb565 for &RgbImage { + fn to_rgb565_le(&self) -> BytesMut { + let mut img_rgb565 = + BytesMut::with_capacity(self.width() as usize * self.height() as usize * 2); + + for (_x, _y, pixel) in self.enumerate_pixels() { + img_rgb565.put_u16_le(self.convert_rgb(pixel.0[0], pixel.0[1], pixel.0[2])); + } + + img_rgb565 + } +} + +impl ToRgb565 for &RgbaImage { + fn to_rgb565_le(&self) -> BytesMut { + let mut img_rgb565 = + BytesMut::with_capacity(self.width() as usize * self.height() as usize * 2); + + for (_x, _y, pixel) in self.enumerate_pixels() { + img_rgb565.put_u16_le(self.convert_rgb(pixel.0[0], pixel.0[1], pixel.0[2])); + } + + img_rgb565 + } +} + +/// Cache for loaded images to avoid repeated file I/O +pub struct ImageCache { + img_path: PathBuf, + cache: HashMap>, +} + +impl ImageCache { + pub fn new(img_path: impl Into) -> Self { + Self { + img_path: img_path.into(), + cache: HashMap::new(), + } + } + + /// Load and cache an image, returns None if loading fails + pub fn get>(&mut self, path: P, size: Option) -> Option<&RgbaImage> { + let path = path.as_ref(); + let path = if path.is_absolute() { + path.to_path_buf() + } else { + self.img_path.join(path) + }; + + if !self.cache.contains_key(&path) { + let image_result = match load_image(&path, size) { + Ok(img) => Some(img.to_rgba8()), + Err(e) => { + warn!("Failed to load image {:?}: {:?}", path, e); + None + } + }; + + self.cache.insert(path.clone(), image_result); + } + + self.cache.get(&path).and_then(|opt| opt.as_ref()) + } + + #[allow(dead_code)] + pub fn clear(&mut self) { + self.cache.clear(); + } +} + +/// Quality settings for rotation +#[derive(Debug, Clone, Copy)] +#[allow(dead_code)] +pub enum RotationQuality { + /// Nearest neighbor + Fast, + /// Bilinear + Good, + /// Bicubic + Best, +} + +/// Rotate image by specified angle in degrees +pub fn rotate_image(image: &RgbaImage, angle_degrees: i32) -> RgbaImage { + match angle_degrees { + 0 => image.clone(), + 90 => rotate_90_degrees(image, true), + 270 => rotate_90_degrees(image, false), + 180 => rotate_180_degrees(image), + angle => { + let angle_radians = angle as f32 * PI / 180.0; + // TODO check Bilinear vs Bicubic + rotate_about_center(image, angle_radians, RotationQuality::Good) + } + } +} + +/// Rotate image about its center, maintaining original dimensions +fn rotate_about_center( + image: &RgbaImage, + angle_radians: f32, + interpolation: RotationQuality, +) -> RgbaImage { + let (width, height) = image.dimensions(); + let center_x = width as f32 / 2.0; + let center_y = height as f32 / 2.0; + + let interp_method = match interpolation { + RotationQuality::Fast => Interpolation::Nearest, + RotationQuality::Good => Interpolation::Bilinear, + RotationQuality::Best => Interpolation::Bicubic, + }; + + rotate( + image, + (center_x, center_y), + angle_radians, + interp_method, + Rgba([0, 0, 0, 0]), // Transparent background for areas outside original image + ) +} + +/// Fast 90-degree rotations (optimized for common cases) +pub fn rotate_90_degrees(image: &RgbaImage, clockwise: bool) -> RgbaImage { + let (width, height) = image.dimensions(); + let mut rotated = ImageBuffer::new(height, width); // Swap dimensions + + if clockwise { + for y in 0..height { + for x in 0..width { + let pixel = *image.get_pixel(x, y); + rotated.put_pixel(height - 1 - y, x, pixel); + } + } + } else { + for y in 0..height { + for x in 0..width { + let pixel = *image.get_pixel(x, y); + rotated.put_pixel(y, width - 1 - x, pixel); + } + } + } + + rotated +} + +/// Rotate by 180 degrees (optimized) +pub fn rotate_180_degrees(image: &RgbaImage) -> RgbaImage { + let (width, height) = image.dimensions(); + let mut rotated = ImageBuffer::new(width, height); + + for y in 0..height { + for x in 0..width { + let pixel = *image.get_pixel(x, y); + rotated.put_pixel(width - 1 - x, height - 1 - y, pixel); + } + } + + rotated } diff --git a/src/main.rs b/src/main.rs index 7a261f3..287373c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,20 +7,21 @@ mod dummy_serialport; mod font; mod format_value; mod img; +mod render; mod sensors; -use crate::cfg::{MonitorConfig, Panel, SensorMode, TextAlign}; +use crate::cfg::{MonitorConfig, Panel, load_custom_panel}; use crate::display::{AooScreen, AooScreenBuilder, DISPLAY_SIZE}; use crate::font::FontHandler; -use crate::format_value::format_value; +use crate::render::PanelRenderer; use crate::sensors::start_file_slurper; -use ab_glyph::{Font, PxScale}; +use ab_glyph::PxScale; use anyhow::anyhow; use clap::Parser; use env_logger::Env; use image::imageops::FilterType; use image::{ImageReader, Rgb, RgbImage}; -use imageproc::drawing::{draw_line_segment_mut, draw_text_mut, text_size}; +use imageproc::drawing::{draw_line_segment_mut, draw_text_mut}; use log::{debug, error, info}; use std::collections::HashMap; use std::fs; @@ -62,6 +63,12 @@ struct Args { #[arg(short, long)] config: Option, + /// Include one or more additional custom panels into the base configuration. + /// + /// Specify the path to the panel directory containing panel.json and fonts / img subdirectories. + #[arg(short, long)] + panels: Option>, + /// Configuration directory containing configuration files and background images /// specified in the `config` file. Default: `./cfg` #[arg(long)] @@ -140,7 +147,7 @@ fn main() -> anyhow::Result<()> { }; let cfg_dir = args.config_dir.unwrap_or_else(|| "cfg".into()); - let cfg = load_configuration(&config, &cfg_dir)?; + let cfg = load_configuration(&config, &cfg_dir, args.panels)?; run_sensor_panel( &mut screen, cfg, @@ -154,7 +161,7 @@ fn main() -> anyhow::Result<()> { if let Some(image) = args.image { info!("Loading and displaying background image {image}..."); - let rgb_img = img::load_image(&image, DISPLAY_SIZE)?; + let rgb_img = img::load_image(&image, Some(DISPLAY_SIZE))?.to_rgb8(); let timestamp = Instant::now(); screen.send_image(&rgb_img)?; debug!("Image sent in {}ms", timestamp.elapsed().as_millis()); @@ -182,31 +189,50 @@ fn main() -> anyhow::Result<()> { Ok(()) } -fn load_configuration>(config: P, config_dir: P) -> anyhow::Result { +fn load_configuration>( + config: P, + config_dir: P, + panels: Option>, +) -> anyhow::Result { let config = config.as_ref(); let config_dir = config_dir.as_ref(); - if config.is_absolute() { - cfg::load_cfg(config) + let mut cfg = if config.is_absolute() { + cfg::load_cfg(config)? } else { - cfg::load_cfg(config_dir.join(config)) + cfg::load_cfg(config_dir.join(config))? + }; + + if let Some(panels) = panels { + for panel in panels { + cfg.include_custom_panel(load_custom_panel(panel)?); + } } + + Ok(cfg) } -fn run_sensor_panel, B: Into>( +fn run_sensor_panel>( screen: &mut AooScreen, mut cfg: MonitorConfig, config_dir: B, font_dir: B, sensor_path: B, - img_save_path: Option

, + img_save_path: Option, ) -> anyhow::Result<()> { + let font_dir = font_dir.into(); let config_dir = config_dir.into(); - let sensor_values: Arc>> = Arc::new(RwLock::new(HashMap::new())); - let mut fh = FontHandler::new(font_dir); + let img_save_path = img_save_path.map(|p| p.into()); - let mut rgb_img; - let mut save_img_name; + let mut renderer = PanelRenderer::new(DISPLAY_SIZE, &font_dir, &config_dir); + if let Some(img_save_path) = &img_save_path { + renderer.set_img_save_path(img_save_path); + renderer.set_save_render_img(true); + // renderer.set_save_processed_pic(true); + // renderer.set_save_progress_layer(true); + } + + let sensor_values: Arc>> = Arc::new(RwLock::new(HashMap::new())); start_file_slurper(sensor_path, sensor_values.clone())?; @@ -226,23 +252,6 @@ fn run_sensor_panel, B: Into>( .get_next_active_panel() .ok_or(anyhow!("No active panel"))?; - if let Some(img_file) = &panel.img { - let img_file = PathBuf::from(img_file); - save_img_name = img_file - .file_stem() - .map(|s| s.to_string_lossy().to_string()); - let file = if img_file.is_absolute() { - img_file - } else { - config_dir.join(img_file) - }; - info!("Loading panel image {file:?}..."); - rgb_img = img::load_image(&file, DISPLAY_SIZE)?; - } else { - save_img_name = None; - rgb_img = RgbImage::new(DISPLAY_SIZE.0, DISPLAY_SIZE.1); - } - let panel_switch_time = Instant::now(); // active panel refresh loop @@ -250,24 +259,14 @@ fn run_sensor_panel, B: Into>( loop { let upd_start_time = Instant::now(); - let out_filename = if let Some(save_path) = &img_save_path { - let save_path = save_path.as_ref(); - Some(save_path.join(format!( - "{}-{refresh_count:02}.png", - save_img_name.as_deref().unwrap_or("panel") - ))) - } else { - None - }; + if img_save_path.is_some() { + renderer.set_img_suffix(format!("-{refresh_count:02}")); + } - update_panel( - screen, - &rgb_img, - &mut fh, - panel, - sensor_values.clone(), - out_filename, - )?; + // Keeping the read lock during panel rendering should be ok, otherwise we could always clone the HashMap + let values = sensor_values.read().expect("RwLock is poisoned"); + update_panel(screen, &mut renderer, panel, &values)?; + drop(values); let elapsed = upd_start_time.elapsed(); if refresh > elapsed { @@ -284,6 +283,28 @@ fn run_sensor_panel, B: Into>( } } +fn update_panel( + screen: &mut AooScreen, + renderer: &mut PanelRenderer, + panel: &Panel, + values: &HashMap, +) -> anyhow::Result<()> { + debug!( + "Displaying panel {}...", + panel + .name + .as_deref() + .unwrap_or_else(|| panel.id.as_deref().unwrap_or_default()) + ); + + match renderer.render(panel, values) { + Ok(image) => screen.send_image(&image)?, + Err(e) => error!("Error rendering panel: {e:?}"), + } + + Ok(()) +} + fn run_demo( screen: &mut AooScreen, config: Option<&Path>, @@ -301,7 +322,7 @@ fn run_demo( demo_text(screen, &rgb_img, save_images)?; if let Some(config) = config { - let mut cfg = load_configuration(config, &config_dir)?; + let mut cfg = load_configuration(config, &config_dir, None)?; if let Some(panel) = cfg.get_next_active_panel() { info!("Displaying demo panel..."); @@ -315,22 +336,12 @@ fn run_demo( ); } - let mut fh = FontHandler::new(font_dir); - let out_filename = if save_images { - fs::create_dir_all("out")?; - Some("out/demo_panel.png") - } else { - None - }; + let mut renderer = PanelRenderer::new(DISPLAY_SIZE, &font_dir, &config_dir); + renderer.set_save_render_img(save_images); + renderer.set_save_processed_pic(save_images); + renderer.set_save_progress_layer(save_images); - update_panel( - screen, - &rgb_img, - &mut fh, - panel, - Arc::new(RwLock::new(demo_values)), - out_filename, - )?; + update_panel(screen, &mut renderer, panel, &demo_values)?; } else { error!("No active panel found"); } @@ -417,13 +428,6 @@ fn demo_blinds( for y in 0..DISPLAY_SIZE.1 { let color = *rgb_img.get_pixel(width + 1, y); - // draw_antialiased_line_segment_mut( - // &mut rgb_img, - // (0, y as i32), - // (width as i32, y as i32), - // color, - // interpolate, - // ); draw_line_segment_mut( &mut rgb_img, (0.0, y as f32), @@ -431,13 +435,6 @@ fn demo_blinds( color, ); let color = *rgb_img.get_pixel(DISPLAY_SIZE.0 - width - 1, y); - // draw_antialiased_line_segment_mut( - // &mut rgb_img, - // ((DISPLAY_SIZE.0 - width) as i32, y as i32), - // (DISPLAY_SIZE.0 as i32, y as i32), - // color, - // interpolate, - // ); draw_line_segment_mut( &mut rgb_img, ((DISPLAY_SIZE.0 - width) as f32, y as f32), @@ -459,90 +456,3 @@ fn demo_blinds( Ok(rgb_img) } - -fn update_panel>( - screen: &mut AooScreen, - background: &RgbImage, - fh: &mut FontHandler, - panel: &Panel, - values: Arc>>, - img_save_path: Option

, -) -> anyhow::Result<()> { - debug!( - "Displaying panel {}...", - panel - .name - .as_deref() - .unwrap_or_else(|| panel.id.as_deref().unwrap_or_default()) - ); - - let mut rgb_img = background.clone(); - - for sensor in &panel.sensor { - if sensor.mode != SensorMode::Text { - debug!( - "Skipping sensor {}: unsupported sensor mode {:?}", - sensor.label, sensor.mode - ); - continue; - } - - let values = values.read().expect("RwLock is poisoned"); - let value = values.get(&sensor.label).cloned(); - let unit = values - .get(&format!("{}#unit", sensor.label)) - .cloned() - .or_else(|| sensor.unit.clone()) - .unwrap_or_default(); - drop(values); - - if let Some(value) = value { - let font = fh.get_ttf_font_or_default(&sensor.font_family); - // TODO verify pixel scaling! Is font_size point size or pixel size? - // This is still a bit off compared to the original AOOSTAR-X. Only tested with HarmonyOS_Sans_SC_Bold! - let adjustment_hack = 0.7; - let scale = font - .pt_to_px_scale(sensor.font_size as f32 * adjustment_hack) - .unwrap(); - - let text = format_value( - &value, - sensor.integer_digits.into(), - sensor.decimal_digits.unwrap_or_default() as usize, - &unit, - ); - let size = text_size(scale, &font, &text); - // TODO verify x & y-coordinate handling - let x = match sensor.text_align { - TextAlign::Left => sensor.x as i32, - TextAlign::Center => sensor.x as i32 - (size.0 / 2) as i32, - TextAlign::Right => sensor.x as i32 - size.0 as i32, - }; - let y = (sensor.y - scale.y / 2f32) as i32; - // let y = sensor.y as i32 - (size.1 / 2) as i32; - - debug!( - "Sensor({:03},{:03}), pixel({x:03},{y:03}), size{size:?}: {text}", - sensor.x, sensor.y - ); - - draw_text_mut( - &mut rgb_img, - sensor.font_color.into(), - x, - y, - scale, - &font, - &text, - ); - } - } - - screen.send_image(&rgb_img)?; - - if let Some(path) = img_save_path { - rgb_img.save_with_format(path, image::ImageFormat::Png)?; - } - - Ok(()) -} diff --git a/src/render.rs b/src/render.rs new file mode 100644 index 0000000..94493a7 --- /dev/null +++ b/src/render.rs @@ -0,0 +1,726 @@ +// SPDX-License-Identifier: MIT OR Apache-2.0 +// SPDX-FileCopyrightText: Copyright (c) 2025 Markus Zehnder + +//! Sensor panel rendering logic. Create an RGBa image from a panel configuration and sensor values. + +use crate::cfg::{Panel, Sensor, SensorDirection, SensorMode, TextAlign}; +use crate::font::FontHandler; +use crate::format_value::format_value; +use crate::img::{ImageCache, Size, rotate_image}; +use ab_glyph::Font; +use image::{ImageBuffer, Rgba, RgbaImage}; +use imageproc::drawing::{draw_text_mut, text_size}; +use log::{debug, error}; +use std::collections::HashMap; +use std::f32::consts::PI; +use std::fs; +use std::path::PathBuf; +use std::time::Instant; + +/// Error type for image processing operations +#[derive(Debug)] +#[allow(dead_code)] +pub enum ImageProcessingError { + ImageLoadError(String), + InvalidMode(i32), + InvalidDirection(SensorDirection), + MathError(String), + IoError(std::io::Error), +} + +impl From for ImageProcessingError { + fn from(error: std::io::Error) -> Self { + ImageProcessingError::IoError(error) + } +} + +/// Sensor panel renderer. +/// +/// Renders a final display image from a sensor panel configuration and current sensor values. +/// All defined fonts and images of a sensor panel are cached after first use. +pub struct PanelRenderer { + size: Size, + composite_layer_map: HashMap, + font_handler: FontHandler, + image_cache: ImageCache, + // for debugging: save images for inspection + save_render_img: bool, + save_processed_pic: bool, + save_progress_layer: bool, + img_save_path: PathBuf, + img_suffix: Option, +} + +impl PanelRenderer { + /// Create a new image processor instance for a given display size. + /// + /// # Arguments + /// + /// * `size`: display size, used to render a panel image. + /// * `font_dir`: font directory to load TTF fonts specified in a sensor configuration. + /// * `img_dir`: image directory to load background and sensor images from. + /// + /// returns: PanelRenderer + pub fn new(size: Size, font_dir: impl Into, img_dir: impl Into) -> Self { + Self { + size, + composite_layer_map: HashMap::new(), + font_handler: FontHandler::new(font_dir), + image_cache: ImageCache::new(img_dir), + save_render_img: false, + save_processed_pic: false, + save_progress_layer: false, + img_save_path: PathBuf::from("out"), + img_suffix: None, + } + } + + /// For debugging: save rendered panel image as .PNG graphic for inspection. + pub fn set_save_render_img(&mut self, save: bool) { + self.save_render_img = save; + self.create_img_save_path(); + } + /// For debugging: save all processed sensor pic images as .PNG graphics for inspection. + pub fn set_save_processed_pic(&mut self, save: bool) { + self.save_processed_pic = save; + self.create_img_save_path(); + } + /// For debugging: save all progress layer images as .PNG graphics for inspection. + pub fn set_save_progress_layer(&mut self, save: bool) { + self.save_progress_layer = save; + self.create_img_save_path(); + } + /// Set output directory path for saving images. + /// + /// Default output directory is `./out` in the current working directory. + pub fn set_img_save_path(&mut self, img_dir: impl Into) { + self.img_save_path = img_dir.into(); + self.create_img_save_path(); + } + /// Set an optional image name suffix for saving a .PNG graphic file. + /// + /// This function needs to be called before [render()] if a different suffix should be used for each rendered panel. + pub fn set_img_suffix(&mut self, img_suffix: impl Into) { + self.img_suffix = Some(img_suffix.into()); + } + + /// Render a sensor panel with the given values and return the final panel image. + /// + /// # Arguments + /// + /// * `panel`: the panel configuration + /// * `values`: current values for the defined panel sensors in a shared HashMap + /// + /// returns: a rendered panel image in [RgbaImage] format, or an [ImageProcessingError] in case of an error. + pub fn render( + &mut self, + panel: &Panel, + values: &HashMap, + ) -> Result { + debug!( + "Rendering panel {}...", + panel + .name + .as_deref() + .unwrap_or_else(|| panel.id.as_deref().unwrap_or_default()) + ); + + let now = Instant::now(); + let background = if let Some(img) = &panel.img + && let Some(background) = self.image_cache.get(img, Some(self.size)) + { + background.clone() + } else { + RgbaImage::new(self.size.0, self.size.1) + }; + self.composite_layer_map.clear(); + + let final_image = self.render_all_sensors(panel, values, background)?; + + debug!("Rendered panel in {}ms", now.elapsed().as_millis()); + + if self.save_render_img { + let name = format!( + "render_{}{}.png", + panel.friendly_name(), + self.img_suffix.as_deref().unwrap_or_default() + ); + if let Err(e) = final_image.save(self.img_save_path.join(name)) { + error!("Error saving rendered panel image: {e}"); + } + } + + Ok(final_image) + } + + /// Render all panel sensors with the given values on a background image + pub fn render_all_sensors( + &mut self, + panel: &Panel, + values: &HashMap, + mut background: RgbaImage, + ) -> Result { + for sensor in &panel.sensor { + let value = values.get(&sensor.label).cloned(); + let unit = values + .get(&format!("{}#unit", sensor.label)) + .cloned() + .or_else(|| sensor.unit.clone()) + .unwrap_or_default(); + + if let Some(value) = value { + self.render_sensor(&mut background, sensor, &value, &unit)?; + } + } + + // Final compositing + self.composite_layers(&mut background); + + Ok(background) + } + + /// Render a single sensor element based on its mode + fn render_sensor( + &mut self, + background: &mut RgbaImage, + sensor: &Sensor, + value: &str, + unit: &str, + ) -> Result<(), ImageProcessingError> { + let direction = sensor.direction.unwrap_or(SensorDirection::LeftToRight); + + match sensor.mode { + SensorMode::Text => self.render_text(background, sensor, value, unit), + SensorMode::Fan => self.render_fan(sensor, value, direction), + SensorMode::Progress => self.render_progress(sensor, value, direction), + SensorMode::Pointer => self.render_pointer(sensor, value, direction), + } + } + + /// Mode 1 - Text + fn render_text( + &mut self, + background: &mut RgbaImage, + sensor: &Sensor, + value: &str, + unit: &str, + ) -> Result<(), ImageProcessingError> { + let font = self + .font_handler + .get_ttf_font_or_default(&sensor.font_family); + // TODO verify pixel scaling! Is font_size point size or pixel size? + // This is still a bit off compared to the original AOOSTAR-X. Only tested with HarmonyOS_Sans_SC_Bold! + let adjustment_hack = 0.7; + let scale = font + .pt_to_px_scale(sensor.font_size as f32 * adjustment_hack) + .unwrap(); + + let text = format_value( + value, + sensor.integer_digits.into(), + sensor.decimal_digits.unwrap_or_default() as usize, + unit, + ); + let size = text_size(scale, &font, &text); + // TODO verify x & y-coordinate handling + let x = match sensor.text_align { + TextAlign::Left => sensor.x as i32, + TextAlign::Center => sensor.x as i32 - (size.0 / 2) as i32, + TextAlign::Right => sensor.x as i32 - size.0 as i32, + }; + let y = (sensor.y - scale.y / 2f32) as i32; + // let y = sensor.y as i32 - (size.1 / 2) as i32; + + debug!( + "Sensor({:03},{:03}), pixel({x:03},{y:03}), size{size:?}: {text}", + sensor.x, sensor.y + ); + + let font_color = sensor.font_color.into(); + draw_text_mut(background, font_color, x, y, scale, &font, &text); + + Ok(()) + } + + /// Mode 2 - Circular/Arc progress indicator + /// TODO needs testing + fn render_fan( + &mut self, + sensor: &Sensor, + value: &str, + direction: SensorDirection, + ) -> Result<(), ImageProcessingError> { + if !matches!( + direction, + SensorDirection::LeftToRight | SensorDirection::RightToLeft + ) { + return Err(ImageProcessingError::InvalidDirection(direction)); + } + + let pos_x = sensor.x as i32; + let pos_y = sensor.y as i32; + + let pic_path = sensor.pic.as_ref().ok_or_else(|| { + ImageProcessingError::ImageLoadError("No picture specified".to_string()) + })?; + + let target_image = self + .image_cache + .get(pic_path, None) + .ok_or_else(|| { + ImageProcessingError::ImageLoadError(format!("Failed to load: {:?}", pic_path)) + })? + .clone(); + + let min_angle = sensor.min_angle.unwrap_or(0) as f32; + let max_angle = sensor.max_angle.unwrap_or(180) as f32; + let min_value = sensor.min_value.unwrap_or(0.0); + let max_value = sensor.max_value.unwrap_or(100.0); + + let current_value = value + .parse::() + .map_err(|_| ImageProcessingError::MathError("Invalid value".to_string()))?; + + if current_value <= min_value { + return Ok(()); + } + + let progress = if current_value >= max_value { + 1.0 + } else { + (current_value - min_value) / (max_value - min_value) + }; + + let (start_angle, end_angle) = if direction == SensorDirection::LeftToRight { + // Clockwise + let start = min_angle - 90.0; + let end = min_angle + (max_angle - min_angle) * progress - 90.0; + (start, end) + } else { + // Counter-clockwise + // FIXME SensorDirection::RightToLeft does not yet work. Might also be related to certain minAngle / maxAngle values + let start = 360.0 - min_angle - (max_angle - min_angle) * progress - 90.0; + let end = 360.0 - min_angle - 90.0; + (start, end) + }; + + if let Some(sector_layer) = self.get_layer(SensorMode::Fan) { + PanelRenderer::draw_pie_slice( + sector_layer, + &target_image, + pos_x, + pos_y, + start_angle, + end_angle, + ); + } + + Ok(()) + } + + /// Mode 3 - render progress graphic based on percentage value. + /// + /// The progress graphic must show the 100% value and is cut based on the actual value. + fn render_progress( + &mut self, + sensor: &Sensor, + value: &str, + direction: SensorDirection, + ) -> Result<(), ImageProcessingError> { + let pic_path = sensor.pic.as_ref().ok_or_else(|| { + ImageProcessingError::ImageLoadError("No picture specified".to_string()) + })?; + + let mut processed_img = self + .image_cache + .get(pic_path, None) + .ok_or_else(|| { + ImageProcessingError::ImageLoadError(format!("Failed to load: {:?}", pic_path)) + })? + .clone(); + + let min_val = sensor.min_value.unwrap_or(0.0); + let max_val = sensor.max_value.unwrap_or(100.0); + + let current_value = value + .parse::() + .map_err(|_| ImageProcessingError::MathError("Invalid value".to_string()))?; + + let clamped_value = current_value.clamp(min_val, max_val); + let progress = ((clamped_value - min_val) / (max_val - min_val)).clamp(0.0, 1.0); + + let (img_w, img_h) = processed_img.dimensions(); + + // Create progress mask based on direction + let crop_rect = match direction { + SensorDirection::LeftToRight => { + let crop_w = (img_w as f32 * progress).round() as u32; + (0, 0, crop_w, img_h) + } + SensorDirection::RightToLeft => { + let crop_w = (img_w as f32 * progress).round() as u32; + (img_w - crop_w, 0, img_w, img_h) + } + SensorDirection::TopToBottom => { + let crop_h = (img_h as f32 * progress).round() as u32; + (0, 0, img_w, crop_h) + } + SensorDirection::BottomToTop => { + let crop_h = (img_h as f32 * progress).round() as u32; + (0, img_h - crop_h, img_w, img_h) + } + }; + + // Apply crop mask to image + self.apply_progress_mask(&mut processed_img, crop_rect, direction); + + if self.save_processed_pic { + let name = format!( + "processed_img-{}{}.png", + sensor.label, + self.img_suffix.as_deref().unwrap_or_default() + ); + if let Err(e) = processed_img.save(self.img_save_path.join(name)) { + error!("Error saving processed image: {e}"); + } + } + + let pos_x = sensor.x as i32; + let pos_y = sensor.y as i32; + + if let Some(progress_layer) = self.get_layer(SensorMode::Progress) { + PanelRenderer::paste_image(progress_layer, &processed_img, pos_x, pos_y); + + if self.save_progress_layer { + let name = format!( + "progress_layer-{}{}.png", + sensor.label, + self.img_suffix.as_deref().unwrap_or_default() + ); + if let Err(e) = processed_img.save(self.img_save_path.join(name)) { + error!("Error saving progress layer image: {e}"); + } + } + } + Ok(()) + } + + /// Mode 4 - Rotating pointer/dial indicator + /// TODO needs testing + fn render_pointer( + &mut self, + sensor: &Sensor, + value: &str, + direction: SensorDirection, + ) -> Result<(), ImageProcessingError> { + if !matches!( + direction, + SensorDirection::LeftToRight | SensorDirection::RightToLeft + ) { + return Err(ImageProcessingError::InvalidDirection(direction)); + } + + let x_center = sensor.x as i32; + let y_center = sensor.y as i32; + let xz_x = sensor.xz_x.unwrap_or(0); + let xz_y = sensor.xz_y.unwrap_or(0); + + let pic_path = sensor.pic.as_ref().ok_or_else(|| { + ImageProcessingError::ImageLoadError("No picture specified".to_string()) + })?; + + let mut pic = self + .image_cache + .get(pic_path, None) + .ok_or_else(|| { + ImageProcessingError::ImageLoadError(format!("Failed to load: {:?}", pic_path)) + })? + .clone(); + + // Resize if dimensions specified + if let (Some(width), Some(height)) = (sensor.width, sensor.height) { + let item_width = width as u32; + let item_height = height as u32; + pic = image::imageops::resize( + &pic, + item_width, + item_height, + image::imageops::FilterType::Lanczos3, + ); + } + + let min_val = sensor.min_value.unwrap_or(0.0); + let max_val = sensor.max_value.unwrap_or(100.0); + let current_value = value + .parse::() + .map_err(|_| ImageProcessingError::MathError("Invalid value".to_string()))?; + + let clamped_value = current_value.clamp(min_val, max_val); + + // Calculate progress + let progress = if (max_val - min_val).abs() < f32::EPSILON { + 0.0 + } else { + (clamped_value - min_val) / (max_val - min_val) + }; + + let mut min_angle = sensor.min_angle.unwrap_or(0) as f32; + let mut max_angle = sensor.max_angle.unwrap_or(360) as f32; + + // Adjust angles for counter-clockwise + if direction == SensorDirection::RightToLeft { + min_angle = -min_angle; + max_angle = -max_angle; + } + + let angle = min_angle + progress * (max_angle - min_angle); + let angle_rad = angle.to_radians(); + + // Calculate offset based on rotation + let offset_x = (xz_x as f32 * angle_rad.cos() - xz_y as f32 * angle_rad.sin()) as i32; + let offset_y = (xz_x as f32 * angle_rad.sin() + xz_y as f32 * angle_rad.cos()) as i32; + + // Rotate the image + let angle = angle.round() as i32; + let rotated_pic = rotate_image(&pic, -angle); + + // Calculate final position + let final_x = x_center + offset_x - (rotated_pic.width() / 2) as i32; + let final_y = y_center + offset_y - (rotated_pic.height() / 2) as i32; + + if let Some(pointer_layer) = self.get_layer(SensorMode::Pointer) { + PanelRenderer::paste_image(pointer_layer, &rotated_pic, final_x, final_y); + } + Ok(()) + } + + /// Draws a pie‐slice sector of `source` into `layer`, centered at (center_x, center_y), + /// from `start_deg` to `end_deg` (both in degrees), blending with alpha. + fn draw_pie_slice( + layer: &mut RgbaImage, + source: &RgbaImage, + center_x: i32, + center_y: i32, + start_deg: f32, + end_deg: f32, + ) { + let (src_w, src_h) = source.dimensions(); + // Radius is half the smaller dimension + let radius = (src_w.min(src_h) as f32) / 2.0; + // Convert angles to radians and normalize + let start = start_deg.to_radians(); + let end = end_deg.to_radians(); + // Helper: check if angle t is between start and end (clockwise) + let in_sector = |t: f32| { + let mut a = t; + if a < 0.0 { + a += 2.0 * PI; + } + let mut s = start; + let mut e = end; + if s < 0.0 { + s += 2.0 * PI; + } + if e < 0.0 { + e += 2.0 * PI; + } + if e < s { + // wrap + a >= s || a <= e + } else { + a >= s && a <= e + } + }; + + for sy in 0..src_h { + for sx in 0..src_w { + // Coordinates relative to center of source + let dx = sx as f32 - src_w as f32 / 2.0; + let dy = sy as f32 - src_h as f32 / 2.0; + let dist = (dx * dx + dy * dy).sqrt(); + if dist <= radius { + // Polar angle (atan2 returns [-PI, PI], 0 at +x axis) + let angle = dy.atan2(dx); + if in_sector(angle) { + // Pixel is inside the slice: blend it into layer + let dest_x = center_x + sx as i32 - src_w as i32 / 2; + let dest_y = center_y + sy as i32 - src_h as i32 / 2; + if dest_x >= 0 && dest_y >= 0 { + let (lw, lh) = layer.dimensions(); + if (dest_x as u32) < lw && (dest_y as u32) < lh { + let src_px = source.get_pixel(sx, sy); + let dst_px = layer.get_pixel_mut(dest_x as u32, dest_y as u32); + // alpha‐blend: out = src.a*src + (1−src.a)*dst + let alpha = src_px[3] as f32 / 255.0; + for i in 0..3 { + dst_px[i] = ((src_px[i] as f32 * alpha) + + (dst_px[i] as f32 * (1.0 - alpha))) + .round() + as u8; + } + for i in 0..4 { + dst_px[i] = ((src_px[i] as f32 * alpha) + + (dst_px[i] as f32 * (1.0 - alpha))) + .round() + as u8; + } + } + } + } + } + } + } + } + + /// Apply progress mask to image based on crop rectangle and direction + fn apply_progress_mask( + &self, + image: &mut RgbaImage, + crop_rect: (u32, u32, u32, u32), + direction: SensorDirection, + ) { + let (crop_x, crop_y, crop_w, crop_h) = crop_rect; + let (img_w, img_h) = image.dimensions(); + + // Create mask - set alpha to 0 outside crop area + for y in 0..img_h { + for x in 0..img_w { + let should_keep = match direction { + SensorDirection::LeftToRight => x < crop_w, + SensorDirection::RightToLeft => x >= crop_x, + SensorDirection::TopToBottom => y < crop_h, + SensorDirection::BottomToTop => y >= crop_y, + }; + + if !should_keep { + let pixel = image.get_pixel_mut(x, y); + pixel[3] = 0; // Set alpha to 0 (transparent) + } + } + } + } + + /// Paste an image onto another image at specified position + fn paste_image(target: &mut RgbaImage, source: &RgbaImage, x: i32, y: i32) { + let (target_w, target_h) = target.dimensions(); + let (source_w, source_h) = source.dimensions(); + + for sy in 0..source_h { + for sx in 0..source_w { + let target_x = x + sx as i32; + let target_y = y + sy as i32; + + if target_x >= 0 + && target_y >= 0 + && (target_x as u32) < target_w + && (target_y as u32) < target_h + { + let source_pixel = *source.get_pixel(sx, sy); + let target_pixel = target.get_pixel_mut(target_x as u32, target_y as u32); + + // Alpha blending + let alpha = source_pixel[3] as f32 / 255.0; + let inv_alpha = 1.0 - alpha; + + for i in 0..3 { + target_pixel[i] = ((source_pixel[i] as f32 * alpha) + + (target_pixel[i] as f32 * inv_alpha)) + as u8; + } + target_pixel[3] = ((source_pixel[3] as f32 * alpha) + + (target_pixel[3] as f32 * inv_alpha)) + as u8; + } + } + } + } + + fn create_img_save_path(&mut self) { + if (self.save_render_img || self.save_processed_pic || self.save_progress_layer) + && let Err(e) = fs::create_dir_all(&self.img_save_path) + { + error!( + "Error creating image output path {:?}: {e}", + self.img_save_path + ); + } + } + + fn get_layer(&mut self, mode: SensorMode) -> Option<&mut RgbaImage> { + if !self.composite_layer_map.contains_key(&mode) { + self.composite_layer_map.insert(mode, self.create_layer()); + } + + self.composite_layer_map.get_mut(&mode) + } + + /// Create an overlay image buffer with the same dimensions as the panel + fn create_layer(&self) -> RgbaImage { + ImageBuffer::from_fn(self.size.0, self.size.1, |_, _| Rgba([0, 0, 0, 0])) + } + + /// Composite all layers into final image + fn composite_layers(&mut self, background: &mut RgbaImage) { + // quick and dirty, this should be an ordered enum variant list + let modes = [SensorMode::Fan, SensorMode::Progress, SensorMode::Pointer]; + for mode in modes { + if let Some(layer) = self.composite_layer_map.get(&mode) { + // Find bounding box of non-transparent pixels + let bbox = PanelRenderer::get_bounding_box(layer); + + if let Some((min_x, min_y, max_x, max_y)) = bbox { + // Composite the layer onto final image + for y in min_y..=max_y { + for x in min_x..=max_x { + let layer_pixel = *layer.get_pixel(x, y); + if layer_pixel[3] > 0 { + // If not fully transparent + let final_pixel = background.get_pixel_mut(x, y); + + // Alpha compositing + let alpha = layer_pixel[3] as f32 / 255.0; + let inv_alpha = 1.0 - alpha; + + for i in 0..4 { + final_pixel[i] = ((layer_pixel[i] as f32 * alpha) + + (final_pixel[i] as f32 * inv_alpha)) + as u8; + } + } + } + } + } + } + } + } + + /// Get bounding box of non-transparent pixels + fn get_bounding_box(image: &RgbaImage) -> Option<(u32, u32, u32, u32)> { + let (width, height) = image.dimensions(); + let mut min_x = width; + let mut min_y = height; + let mut max_x = 0; + let mut max_y = 0; + let mut found_pixel = false; + + for y in 0..height { + for x in 0..width { + let pixel = image.get_pixel(x, y); + if pixel[3] > 0 { + // Non-transparent + found_pixel = true; + min_x = min_x.min(x); + min_y = min_y.min(y); + max_x = max_x.max(x); + max_y = max_y.max(y); + } + } + } + + if found_pixel { + Some((min_x, min_y, max_x, max_y)) + } else { + None + } + } +}