Funkcije komponenti
Funkcije uređaja
Section titled “Funkcije uređaja”Ove funkcije služe za pravljenje uređaja kompatibilnim sa sistemom komponenti.
device.SetLedLimit()
Section titled “device.SetLedLimit()”Ova funkcija prima Int vrednost i postavlja gornju granicu LED dioda za sve kanale komponenti uređaja. Koristi se za provere bezbednosti u backend-u i sprečava korisnike da opterete svoje uređaje sa više potrošnje struje nego što mogu da podnesu. Treba je postaviti na isti maksimalni vrednosti koji proizvođač navodi za uređaj.
| Parametar | Opis | Tip | Primer |
|---|---|---|---|
| LedLimit | Željeno ograničenje LED dioda za sve kanale uređaja | Int | 80 |
const DeviceMaxLedLimit = 233; device.SetLedLimit(DeviceMaxLedLimit);device.getLedCount()
Section titled “device.getLedCount()”Ova funkcija vraća trenutni kombinovani broj LED dioda svih komponenti na svim kanalima uređaja. Glavna upotreba je provera da li su komponente odabrane, jer 0 LED dioda je isto što i 0 komponenti.
| Povratak | Opis | Tip | Primer |
|---|---|---|---|
| LedCount | Trenutni broj LED dioda svih kanala | Int | 64 |
let ColorData = [] if(LightingMode == "Forced"){ // do stuff }else if(device.getLedCount() == 0){ // do stuff }else{ // do stuff }device.addChannel()
Section titled “device.addChannel()”Ova funkcija dodaje novi kanal komponenti uređaju. Kada se doda prvi kanal, UI za konfiguraciju komponenti pojavljuje se na stranici uređaja. Funkcija prima opciono, ali preporučeno LedLimit za upozoravanje korisnika kada prekorači sigurna ograničenja LED dioda uređaja. Ovo ograničenje se koristi na više mesta, pa se preporučuje njegovo postavljanje.
| Parametar | Opis | Tip | Primer |
|---|---|---|---|
| ChannelName | ChannelName koji se koristi za referenciranje ovog kanala | String | ”Channel 1” |
| LedLimit | Sigurno operativno ograničenje LED dioda kanala | Int | 204 |
//Channel Name, Led Limitvar ChannelArray = [ ["Channel 1", 204], ["Channel 2", 204],]
function SetupChannels(){ device.SetLedLimit(DeviceMaxLedLimit); for(let i = 0; i < ChannelArray.length; i++){ device.addChannel(ChannelArray[i][0],ChannelArray[i][1]); }}device.removeChannel()
Section titled “device.removeChannel()”Ova funkcija uklanja kanal sa uređaja. U normalnim okolnostima, ova funkcija ne bi trebala biti potrebna, jer se kanali čiste pri zatvaranju SignalRGBa. Međutim, pošto kanali ostaju između ponovnih učitavanja datoteke plugina, možda ćete ih želeti očistiti u funkciji inicijalizacije ako imate problema tokom razvoja plugina.
| Parametar | Opis | Tip | Primer |
|---|---|---|---|
| ChannelName | ChannelName koji treba ukloniti | String | ”Channel 1” |
device.createChannel("Channel1") // Do stuff device.removeChannel("Channel1")device.getChannelNames()
Section titled “device.getChannelNames()”Ova funkcija vraća nazive svih kanala trenutno prisutnih na uređaju. Glavna upotreba je u svrhe debagovanja, jer nazivi kanala treba da budu pohranjeni unutar logike plugina sa indeksom kanala za pakete uređaja. Međutim, može se koristiti i za iteriranje kroz sve kanale uređaja uz mali gubitak performansi.
| Povratak | Opis | Tip | Primer |
|---|---|---|---|
| Channel Names | Lista svih naziva kanala na uređaju | 1D Array | [“Channel 1”,“Channel 2”] |
let channels = device.getChannelNames();device.channel()
Section titled “device.channel()”Ovo je vaša ulazna tačka za interakciju sa ComponentChannel-ima. Vraća referencu na sam ComponentChannel kada jedan odgovara navedenom ChannelName; u suprotnom vraća null.
| Parametar | Opis | Tip | Primer |
|---|---|---|---|
| ChannelName | ChannelName za koji treba dohvatiti referencu | String | ”Channel 1” |
| Povratak | Opis | Tip |
|---|---|---|
| ComponentChannel | ComponentChannel objekat | ComponentChannel | Null |
let components = device.channel("Channel 1").getComponentNames();ComponentChannel
Section titled “ComponentChannel”Ove funkcije se koriste za kontrolu i interakciju sa određenom referencom ComponentChannel-a.
channel.SetLedLimit()
Section titled “channel.SetLedLimit()”Kao i slična funkcija device.ledLimit(), ova funkcija postavlja maksimalno sigurno ograničenje LED dioda za ovaj ComponentChannel.
| Parametar | Opis | Tip | Primer |
|---|---|---|---|
| LedLimit | Željeno ograničenje LED dioda za kanal | Int | 16 |
device.channel("Channel 1").SetLedLimit(204);channel.LedCount()
Section titled “channel.LedCount()”Vraća broj LED dioda koje je korisnik konfigurisao na ovom ComponentChannel-u.
| Povratak | Opis | Tip | Primer |
|---|---|---|---|
| LedCount | Trenutni broj LED dioda kanala | Int | 16 |
let ChannelLedCount = device.channel("Channel 1").LedCount();channel.getColors()
Section titled “channel.getColors()”Ova funkcija vraća niz RGB podataka o boji zasnovan na LED mapi i koordinatama uređaja. Povratna vrednost ove funkcije u velikoj meri zavisi od postavljanja ispravnih argumenata.
| Parametar | Opis | Tip | Primer | Podrazumevano |
|---|---|---|---|---|
| ArrayOrder | Željeni format niza | String | ”Inline" | "Seperate” |
| ColorOrder | Željeni redosled boja | String | ”RGB" | "RGB” |
| Array Order | Opis | Tip | Primer |
|---|---|---|---|
| Inline | Formatira podatke o bojama u ravni niz u ispravnom redosledu | 1D Array | [R,G,B,R,G,B] |
| Seperate | Formatira podatke o bojama u 3 odvojena kanala | 2D Array | [[R,R], [G,G], [B,B]] |
ColorOrder je 3-slovna kombinacija “RGB”, npr. “BGR”, “GBR”, “RBG”. Određuje redosled boja pri korišćenju Inline ArrayOrder. Neważeće vrednosti se resetuju na “RGB”.
| Povratak | Opis | Tip | Primer |
|---|---|---|---|
| RGB Data | Vraćeni RGB podaci o boji u željenom formatu | Array | Pogledajte tabelu Array Order |
RGBData = device.channel("Channel 1").getColors("Inline", "GRB");channel.shouldPulseColors()
Section titled “channel.shouldPulseColors()”Ova funkcija vraća boolean vrednost koja označava da li ovaj kanal uređaja treba da “pulsira”. Ovo se može tražiti kada nisu odabrane komponente ili kada se prikazuje UI za onboarding postavljanja komponenti.
device.getChannelPulseColor() se može koristiti za dohvatanje očekivane boje pulsa.
| Povratak | Tip | Opis |
|---|---|---|
| ShouldPulse | boolean | Da li ovaj kanal treba da pulsira |