e32c654b8d4e317241d61a9620437e3c72b347ac
Die erweiterte Messung war eindeutig: "1 Bereich, 100 % der Fläche" - LVGL zeichnete bei jeder Zustandsmeldung den kompletten Bildschirm neu, also einmal pro Sekunde 240-300 ms lang. Kein Rendering-Tempoproblem, sondern massiv zu viel Invalidierung. lv_label_set_text invalidiert den Label-Bereich unbedingt, auch bei identischem Text; lv_obj_set_style_text_color ebenso. Auf dem Dashboard wurden pro Sekunde Werte quer über den Bildschirm gesetzt (Uhr oben, Temperaturen Mitte, Bezugswerte unten) - LVGL joint die Bereiche, und die Bounding-Box ist die ganze Fläche. - Neue Helfer label_fmt_if_changed() und label_color_if_changed() neben dem vorhandenen label_set_if_changed(). - Alle 13 zyklischen Textzuweisungen und alle 10 Farbzuweisungen in ui_update darauf umgestellt. Da sich Temperaturen selten um ein Zehntelgrad ändern und Sollwerte praktisch nie, entfallen die meisten Neuzeichnungen ganz. Beide Panel-Varianten mit arduino-cli gegengebaut. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
Dual-PID / Siebträgermaschinen-Steuerung, entworfen für die QuickMill Silvano
654 MiB
Languages
C
85.6%
C++
14.2%
Python
0.1%