Textfarbsteuerung (anpassbare Firmware-exklusiv) bietetGlobale Textfarbe Massen-Einstellungen SchnittstelleEine Rückruffunktion, die die Textfarbe aller Textklasse-Steuerelemente des Bildschirms dynamisch ändert, ohne eine Konfiguration zu haben. Typische Szenarien sind Tag / Nacht-Modus - Umschaltungen - helle Hintergründe mit dunklem Text, dunkle Hintergründe mit hellen Text, eine Variable steuert das globale Thema.
1. Unterstützt Massen-Kontrollen
Nicht alle Steuerelemente können mit dieser Schnittstelle farbiert werden, nur mitprogrammierbarer Textfarbe / Vordergrundfarbe Attributsind beteiligt:
| Steuertyp | Erläuterung |
|---|---|
| Statischer Text | Direktes Wirkungsobjekt |
| Bit-Status - Anzeige / Multi-Status - Anzeige | Texte, die mit dem Thema verfärben |
| Bit-Einstellungen Taste / Wort-Einstellungen Taste / Funktionstaste | Taste Text |
| Dropdown-Auswahlfeld / Rollrad-Selektor | Auswahl Text |
| RTC | Zeitanzeige |

2. Vorkonfiguration (zwei Schritte, eins fehlt)
Schritt 1: Aktivieren Sie die Funktion der Kontrollgruppe global.Pfad: Entwurfseigenschaften → Steuerungsgruppen → Aktivieren Wenn dies nicht aktiviert ist, ignorieren alle Kontrollen zur Laufzeit die Gruppe-bezogenen Eigenschaften - auch wenn Sie eine Gruppe-ID haben.
Schritt 2: Weist dem Control eine gültige Gruppen-Identifikation zu.Legen Sie für jedes Steuerelement, das Sie in das Farbmanagement einbeziehen möchten, die Steuereigenschaften-Bedienfeld- Steuerungs-ID fest., muss ≠ 0 sein (0 ist ein ungültiger Standardwert und bedeutet "nicht gruppiert"). Die Aufrufe on _ wgt _ text _ color unterscheiden die Steuerelemente durch diese ID.
3. API: on_wgt_text_color(Bildschirm, Steuerung)
Steuerung Textfarbe dynamisch zurückrufen. Das System ruft es auf, wenn es ein Steuerelement aktualisiert, und erhält den zurückgegebenen Wert als Textfarbe für das Steuerelement.
| Parameter | Typ | Beschreibt |
|---|---|---|
| screen | number | die aktuelle Bildschirm-ID, um das gleichnamige Steuerelement |
| control | number | von der Ziel-Steuerelement - ID auf mehreren Seiten zu unterscheiden.Rückruf nur dann, wenn control ≠ 0 ausgelöst wird |
Rückgabewert:color(number), ein 16 - Bit-Farbwert im RGB565 - Format. Die gesamte Farb-Thema - Logik ist in dieser Funktion.
4. Anwendungsbeispiel: Mehrzustand-Licht - Thema-Schalter
Bildschirm-Layout: einMulti-Zustand - Indikator-LampeMachen Sie einen Farbschalter (Zustand 0 ~ 4 entspricht 5 Themenfarben), Bild-ID auf 0 gesetzt; unten legen Sie eine Reihe von Steuerelementen (Text, Taste, Anzeigelampe, Dropdown-Box, Rollrad, RTC), einheitliche Einstellung Steuerelement ID auf 5.
Lua liest den Wert des Registers LW3000 als Farbeindex in einem Rückruf und gibt den entsprechenden RGB565 - Farbwert zurück:
function on_wgt_text_color(screen, control)
local color = 0x001f -- 默认蓝色
if screen == 0 then
if control == 5 then
local val = get_uint16(VT_LW, 0x3000) -- 颜色索引
if val == 0 then
color = 0x00FF -- 蓝
elseif val == 1 then
color = 0x0562 -- 绿
elseif val == 2 then
color = 0x0429 -- 深绿
elseif val == 3 then
color = 0x0177 -- 青
elseif val == 4 then
color = 0xF800 -- 红
end
end
end
print(string.format("on_wgt_text_color(%d,%d,%04X)", screen, control, color))
return color
endFühren Sie einen virtuellen Bildschirm aus, tippen Sie auf die Farbschaltsteuerelemente, und alle UI-Elemente mit der Steuerungs-ID 5 werden synchronisiert, um die Textfarbe zu aktualisieren - das ist der Effekt des "One-Klick - Themes-Schaltens".
Aus dem VisualHMI-Entwicklungsdokument von Guangzhou Dacai Technology (hmi-doc.gz-dc.com) LUA-Tutorial "Text-Farbsteuerung" zusammengestellt, das Urheberrecht liegt bei Dacai Technology.
Antwort veröffentlichen