Színek
TapHome szkript színfüggvények — HSVTORGB és RGBTOHSV —, valamint az rgbcolor és hsvcolor értéktípusok, amelyekkel RGB lámpákat vezérelhetsz Packet parser és Modbus szkriptekből.
A színfüggvények a HSV modell — színárnyalat (hue), telítettség (saturation) és érték (value, azaz fényerő) — és a vörös, zöld és kék csatornákból álló RGB modell között váltanak. A TapHome színes lámpája színárnyalattal és telítettséggel dolgozik; a Packet parser vagy Modbus szkriptekből vezérelt eszközök közül viszont sok vörös, zöld és kék értéket vár. Mindkét függvény minden szkriptben működik; szükséges verzió: Core 2023.1 vagy újabb.
HSVTORGB
A HSVTORGB a színárnyalattal, telítettséggel és értékkel megadott színt rgbcolor értékké alakítja, amelynek vörös, zöld és kék csatornája 0 és 255 között van.
| |
| Név | Típus | Leírás |
|---|---|---|
hue | szám | Színszög fokban, 0 – 360 (0 vörös, 120 zöld, 240 kék). |
saturation | szám | 0 – 1. A 0 fehér vagy szürke, az 1 a telített szín. |
value | szám | Fényerő, 0 – 1. |
Visszatérési érték — rgbcolor a RED, GREEN és BLUE tulajdonságokkal, mindegyik egész számra kerekítve 0 – 255 között.
Megjegyzések — A bemenetek nincsenek a tartományukra korlátozva. A saturation és a value értékét tartsd 0 és 1 között, különben a csatornák túllépik a 0 – 255 tartományt.
Példa
VAR green := HSVTORGB(120, 1, 1);
green.GREEN;
# Result: 255Példa — RGB lámpa író szkriptje HTTP-n keresztül
Színes lámpa író szkriptjében add át a lámpa színárnyalatát (Hd) és telítettségét (Sa), a fényerőt pedig kezeld külön. Itt helyi változók, hogy a példa önmagában is lefusson:
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"Lásd még — RGBTOHSV, SENDHTTPREQUEST.
RGBTOHSV
Az RGBTOHSV a vörös, zöld és kék csatornát (0 – 255) hsvcolor értékké alakítja, amelyben a színárnyalat fokban, a telítettség és az érték pedig 0 és 1 között van.
| |
| Név | Típus | Leírás |
|---|---|---|
red, green, blue | szám | 0 – 255. Mindegyik ebben a tartományban lévő egész számmá alakul. |
Visszatérési érték — hsvcolor a HUE (0 – 360, törtrésszel), SATURATION (0 – 1) és VALUE (0 – 1) tulajdonságokkal. Szürke színeknél, ahol minden csatorna egyenlő, a HUE és a SATURATION értéke 0.
Példa — vörös, zöld és kék értéket jelentő lámpa színárnyalatának kiolvasása
VAR hsv := RGBTOHSV(255, 128, 0);
ROUND(hsv.HUE);
# Result: 30VAR hsv := RGBTOHSV(255, 128, 0);
ROUND(hsv.SATURATION * 100) / 100;
# Result: 1rgbcolor és hsvcolor értékek
Az rgbcolor és a hsvcolor a színfüggvények által visszaadott értéktípusok; tulajdonságaik olvashatók és írhatók.
| Típus | Tulajdonság | Tartomány | Megjegyzés |
|---|---|---|---|
rgbcolor | RED, GREEN, BLUE | 0 – 255 | Íráskor egy bájt tárolódik: a 255 feletti értékek körbefordulnak. |
hsvcolor | HUE | 0 – 360 | Íráskor egy bájt tárolódik, így a 255 feletti színárnyalat körbefordul — a hsv.HUE := 300 eredménye 44. Helyette add át a színárnyalatot a HSVTORGB függvénynek. |
hsvcolor | SATURATION, VALUE | 0 – 1 | Tizedes számok. |
Mindkét típusnév használható változó deklarálására:
rgbcolor colour := HSVTORGB(240, 1, 0.5);
colour.BLUE;
# Result: 128Lásd még — Adattípusok, Változók és konstansok.