TapHome

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.

1
HSVTORGB(hue, saturation, value)
NazivTipOpis
huebrojKut boje u stupnjevima, 0 – 360 (0 crvena, 120 zelena, 240 plava).
saturationbroj0 – 1. 0 je bijela ili siva, 1 puna boja.
valuebrojSvjetlina, 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: 255

Primjer — 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.

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

Vrijednosti rgbcolor i hsvcolor

rgbcolor i hsvcolor su tipovi vrijednosti koje vraćaju funkcije za boje; njihova se svojstva mogu čitati i zapisivati.

TipSvojstvoRasponNapomena
rgbcolorRED, GREEN, BLUE0 – 255Zapis sprema bajt: vrijednosti iznad 255 kreću ispočetka.
hsvcolorHUE0 – 360Zapis sprema bajt, pa nijansa iznad 255 kreće ispočetka — hsv.HUE := 300 daje 44. Umjesto toga predajte nijansu funkciji HSVTORGB.
hsvcolorSATURATION, VALUE0 – 1Decimalni brojevi.

Oba naziva tipa mogu deklarirati varijablu:

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

Vidi također — Tipovi podataka, Varijable i konstante.