TapHome

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.

1
HSVTORGB(hue, saturation, value)
NázovTypPopis
huečísloUhol farby v stupňoch, 0 – 360 (0 červená, 120 zelená, 240 modrá).
saturationčíslo0 – 1. 0 je biela alebo sivá, 1 plná farba.
valuečísloJas, 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: 255

Prí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.

1
RGBTOHSV(red, green, blue)
NázovTypPopis
red, green, bluečíslo0 – 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: 30
VAR hsv := RGBTOHSV(255, 128, 0);
ROUND(hsv.SATURATION * 100) / 100;
# Result: 1

Hodnoty rgbcolor a hsvcolor

rgbcolor a hsvcolor sú typy hodnôt, ktoré vracajú farebné funkcie; ich vlastnosti sa dajú čítať aj zapisovať.

TypVlastnosťRozsahPoznámka
rgbcolorRED, GREEN, BLUE0 – 255Zápis uloží bajt: hodnoty nad 255 pretečú.
hsvcolorHUE0 – 360Zápis uloží bajt, takže odtieň nad 255 pretečie — hsv.HUE := 300 dá 44. Odtieň radšej odovzdajte funkcii HSVTORGB.
hsvcolorSATURATION, VALUE0 – 1Desatinné čísla.

Oba názvy typov sa dajú použiť aj na deklaráciu premennej:

rgbcolor colour := HSVTORGB(240, 1, 0.5);
colour.BLUE;
# Result: 128

Pozrite aj — Dátové typy, Premenné a konštanty.