Boje
Funkcije za boje u skripti TapHome — HSVTORGB i RGBTOHSV — te tipovi vrijednosti rgbcolor i hsvcolor za upravljanje RGB svjetlima iz skripti Packet parsera i Modbusa.
Funkcije za boje pretvaraju između modela HSV — nijansa, zasićenost i vrijednost (svjetlina) — i modela RGB s crvenim, zelenim i plavim kanalom. Svjetlo u boji u sustavu TapHome radi s nijansom i zasićenošću; mnogi uređaji kojima se upravlja iz skripti Packet parsera ili Modbusa umjesto toga očekuju crvenu, zelenu i plavu. Obje funkcije rade u svakoj skripti i zahtijevaju Core 2023.1 ili noviji (na kanalu Next Core 2022.3, build 27019).
HSVTORGB
HSVTORGB pretvara boju zadanu nijansom, zasićenošću i vrijednošću u vrijednost rgbcolor s crvenim, zelenim i plavim kanalom od 0 do 255.
| |
| Naziv | Tip | Opis |
|---|---|---|
hue | broj | Kut boje u stupnjevima, 0 – 360 (0 crvena, 120 zelena, 240 plava). |
saturation | broj | 0 – 1. 0 je bijela ili siva, 1 puna boja. |
value | broj | Svjetlina, 0 – 1. |
Vraća — rgbcolor sa svojstvima RED, GREEN i BLUE, svako zaokruženo na cijeli broj 0 – 255.
Napomene — Ulazi nisu ograničeni na svoj raspon. Držite saturation i value između 0 i 1, inače kanali prelaze raspon 0 – 255.
Primjer
VAR green := HSVTORGB(120, 1, 1);
green.GREEN;
# Result: 255Primjer — skripta za pisanje RGB svjetla preko HTTP-a
U skripti za pisanje svjetla u boji predajte vrijednosti nijanse (Hd) i zasićenosti (Sa) svjetla, a svjetlinu držite odvojeno. Ovdje su to lokalne varijable, pa primjer radi samostalno:
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"Vidi također — RGBTOHSV, SENDHTTPREQUEST.
RGBTOHSV
RGBTOHSV pretvara crveni, zeleni i plavi kanal (0 – 255) u vrijednost hsvcolor s nijansom u stupnjevima te zasićenošću i vrijednošću od 0 do 1.
| |
| Naziv | Tip | Opis |
|---|---|---|
red, green, blue | broj | 0 – 255. Svaki se pretvara u cijeli broj u tom rasponu. |
Vraća — hsvcolor sa svojstvima HUE (0 – 360, s decimalnim dijelom), SATURATION (0 – 1) i VALUE (0 – 1). Za sive boje, kod kojih su svi kanali jednaki, HUE i SATURATION su 0.
Primjer — čitanje nijanse svjetla koje javlja crvenu, zelenu i plavu
VAR hsv := RGBTOHSV(255, 128, 0);
ROUND(hsv.HUE);
# Result: 30VAR hsv := RGBTOHSV(255, 128, 0);
ROUND(hsv.SATURATION * 100) / 100;
# Result: 1Vrijednosti rgbcolor i hsvcolor
rgbcolor i hsvcolor su tipovi vrijednosti koje vraćaju funkcije za boje; njihova se svojstva mogu čitati i zapisivati.
| Tip | Svojstvo | Raspon | Napomena |
|---|---|---|---|
rgbcolor | RED, GREEN, BLUE | 0 – 255 | Zapis sprema bajt: vrijednosti iznad 255 kreću ispočetka. |
hsvcolor | HUE | 0 – 360 | Zapis sprema bajt, pa nijansa iznad 255 kreće ispočetka — hsv.HUE := 300 daje 44. Umjesto toga predajte nijansu funkciji HSVTORGB. |
hsvcolor | SATURATION, VALUE | 0 – 1 | Decimalni brojevi. |
Oba naziva tipa mogu deklarirati varijablu:
rgbcolor colour := HSVTORGB(240, 1, 0.5);
colour.BLUE;
# Result: 128Vidi također — Tipovi podataka, Varijable i konstante.