TapHome

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.

1
HSVTORGB(hue, saturation, value)
NévTípusLeírás
hueszámSzínszög fokban, 0 – 360 (0 vörös, 120 zöld, 240 kék).
saturationszám0 – 1. A 0 fehér vagy szürke, az 1 a telített szín.
valueszámFé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: 255

Pé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.

1
RGBTOHSV(red, green, blue)
NévTípusLeírás
red, green, blueszám0 – 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: 30
VAR hsv := RGBTOHSV(255, 128, 0);
ROUND(hsv.SATURATION * 100) / 100;
# Result: 1

rgbcolor é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ípusTulajdonságTartományMegjegyzés
rgbcolorRED, GREEN, BLUE0 – 255Íráskor egy bájt tárolódik: a 255 feletti értékek körbefordulnak.
hsvcolorHUE0 – 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.
hsvcolorSATURATION, VALUE0 – 1Tizedes 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: 128

Lásd még — Adattípusok, Változók és konstansok.