Farby
Farebné funkcie skriptu TapHome — HSVTORGB a RGBTOHSV — a typy hodnôt rgbcolor a hsvcolor na ovládanie RGB svetiel zo skriptov Packet parsera a Modbus.
Farebné funkcie prevádzajú farbu medzi modelom HSV — odtieň, sýtosť a hodnota (jas) — a modelom RGB s červeným, zeleným a modrým kanálom. Farebné svetlo TapHome pracuje s odtieňom a sýtosťou; mnohé zariadenia ovládané zo skriptov Packet parsera alebo Modbus však očakávajú červenú, zelenú a modrú zložku. Obe funkcie fungujú v každom skripte a potrebujú Core 2023.1 alebo novší (na kanáli Next Core 2022.3, build 27019).
HSVTORGB
HSVTORGB prevedie farbu zadanú odtieňom, sýtosťou a hodnotou na hodnotu rgbcolor s červeným, zeleným a modrým kanálom od 0 do 255.
| |
| Názov | Typ | Popis |
|---|---|---|
hue | číslo | Uhol farby v stupňoch, 0 – 360 (0 červená, 120 zelená, 240 modrá). |
saturation | číslo | 0 – 1. 0 je biela alebo sivá, 1 plná farba. |
value | číslo | Jas, 0 – 1. |
Návratová hodnota — rgbcolor s vlastnosťami RED, GREEN a BLUE, každá zaokrúhlená na celé číslo 0 – 255.
Poznámky — Vstupy nie sú obmedzené na svoj rozsah. saturation a value držte medzi 0 a 1, inak kanály pretečú rozsah 0 – 255.
Príklad
VAR green := HSVTORGB(120, 1, 1);
green.GREEN;
# Result: 255Príklad — skript na zápis RGB svetla cez HTTP
V skripte na zápis farebného svetla odovzdajte hodnoty odtieňa (Hd) a sýtosti (Sa) svetla a jas riešte zvlášť. Tu sú to lokálne premenné, aby príklad fungoval samostatne:
VAR hue := 30;
VAR saturation := 1;
VAR color := HSVTORGB(hue, saturation, 1);
"red=" + color.RED + "&green=" + color.GREEN + "&blue=" + color.BLUE;
# Result: "red=255&green=128&blue=0"Pozrite aj — RGBTOHSV, SENDHTTPREQUEST.
RGBTOHSV
RGBTOHSV prevedie červený, zelený a modrý kanál (0 – 255) na hodnotu hsvcolor s odtieňom v stupňoch a so sýtosťou a hodnotou od 0 do 1.
| |
| Názov | Typ | Popis |
|---|---|---|
red, green, blue | číslo | 0 – 255. Každý sa prevedie na celé číslo v tomto rozsahu. |
Návratová hodnota — hsvcolor s HUE (0 – 360, aj s desatinnou časťou), SATURATION (0 – 1) a VALUE (0 – 1). Pri sivých farbách, keď sú všetky kanály rovnaké, sú HUE aj SATURATION 0.
Príklad — odtieň svetla, ktoré hlási červenú, zelenú a modrú zložku
VAR hsv := RGBTOHSV(255, 128, 0);
ROUND(hsv.HUE);
# Result: 30VAR hsv := RGBTOHSV(255, 128, 0);
ROUND(hsv.SATURATION * 100) / 100;
# Result: 1Hodnoty rgbcolor a hsvcolor
rgbcolor a hsvcolor sú typy hodnôt, ktoré vracajú farebné funkcie; ich vlastnosti sa dajú čítať aj zapisovať.
| Typ | Vlastnosť | Rozsah | Poznámka |
|---|---|---|---|
rgbcolor | RED, GREEN, BLUE | 0 – 255 | Zápis uloží bajt: hodnoty nad 255 pretečú. |
hsvcolor | HUE | 0 – 360 | Zápis uloží bajt, takže odtieň nad 255 pretečie — hsv.HUE := 300 dá 44. Odtieň radšej odovzdajte funkcii HSVTORGB. |
hsvcolor | SATURATION, VALUE | 0 – 1 | Desatinné čísla. |
Oba názvy typov sa dajú použiť aj na deklaráciu premennej:
rgbcolor colour := HSVTORGB(240, 1, 0.5);
colour.BLUE;
# Result: 128Pozrite aj — Dátové typy, Premenné a konštanty.