Skip to content

Pomoćne funkcije

Ova funkcija služi za preuzimanje podataka o bojama sa canvas-a. Prima X,Y poziciju relativnu u odnosu na pixel bafer uređaja na canvas-u i vraća [R,G,B] niz boje na tom pikselu.

ParametarTipOpisPrimer
XIntInt vrednost koja predstavlja X koordinatu unutar pixel bafera uređaja5
YIntInt vrednost koja predstavlja Y koordinatu unutar pixel bafera uređaja3
  • Napomena: Poslate X,Y koordinate moraju biti unutar pixel bafera definisanog Size() exportom.
PovratakTipOpisPrimer
ColorArray1D ArrayNiz dužine 3 koji sadrži koordinisane [R, G, B] vrednosti u opsegu 0-255 (HEX 00-FF)[128,158,255]

U nastavku je pojednostavljen primer funkcije u tipičnoj primeni.

for(var iIdx = 0; iIdx < vLedPositions.length; iIdx++) //For each Led on the device
{
var iPxX = vLedPositions[iIdx][0]; //Get the X and Y values from the [X,Y] array
var iPxY = vLedPositions[iIdx][1];
var col; // create a variable to contain the [R.G.B] array data
if(shutdown){ // Check for some settings that can override the Device.color() call
col = hexToRgb(shutdownColor)
}else if (LightingMode == "Forced") {
col = hexToRgb(forcedColor)
}else{
col = device.color(iPxX, iPxY); //Calling Device.color with the X and Y values
}
//Saving the Color data in order into a larger Array of all the LED's data
RGBdata[iIdx*3] = col[0]; // Red Channel
RGBdata[iIdx*3+1] = col[1]; //Green Channel
RGBdata[iIdx*3+2] = col[2]; //Blue Channel
TotalLedCount += 1;
}

Vraća trenutni nivo osvetljenosti uređaja u SignalRGBu. Ova vrednost je već primenjena na sve boje koje vraćaju device.color() ili slične funkcije.

PovratakTipOpisPrimer
BrightnessintTrenutna osvetljenost u opsegu 0-10042

Vraća WMI naziv matične ploče trenutnog sistema.

PovratakTipOpisPrimer
MotherboardNamestringNaziv matične ploče sistemaB550 Aorus Elite

Ova funkcija pokušava da pauzira nit uređaja za navedeno trajanje. Ove pauze nisu garantovano tačne zbog načina na koji operativni sistem upravlja pauzama niti.

ParametarTipOpisPrimer
DurationIntZahtevano trajanje pauze u milisekundama1
  • Napomena: Windows ima minimalno vreme spavanja od 1-2 ms i postaje netačniji pri dužim vrednostima spavanja. Stoga ne koristite ovu funkciju za precizno tajmiranje.
packet[89] = CalculateCrc(packet);
device.send_report(packet, 91);
device.pause(1); // We need a pause here (between packets), otherwise the ornata can't keep up.

Ova funkcija menja aktivni endpoint za sve komande čitanja i pisanja. Ovo je korisno za uređaje koji imaju više otvorenih endpointa za različite komande. Uobičajen primer su Logitech uređaji koji imaju endpoint za RGB podatke i endpoint sistemskih komandi za stvari poput DPI podešavanja.

ParametarTipOpisPrimer
interfaceHEX0x-hex vrednost koja predstavlja interfejs endpointa koji treba otvoriti0x0002
usageHEX0x-hex vrednost koja predstavlja Usage endpointa koji treba otvoriti0x0006
usage_pageHEX0x-hex vrednost koja predstavlja Usage-Page endpointa koji treba otvoriti0x0080
collectionHEX0x-hex vrednost koja predstavlja Collection endpointa koji treba otvoriti0x0001
function Apply()
{
var packet = [];
packet[0] = 0x11;
packet[1] = 0xFF;
packet[2] = 0x0C;
packet[3] = 0x5E;
device.set_endpoint(1, 0x0602, 0xff43); // System Interface
device.write(packet, 20);
}

Ova funkcija je verzija console.log za pluginove. Prima string, broj, objekat ili niz i beleži ga u konzoli uređaja radi debagovanja i informisanja korisnika. Ovo može biti posebno korisno za prikazivanje stvari poput promena DPI-ja, grešaka ili tokom razvoja strukture paketa ili unosa iz komandi čitanja.

  • Napomena: Ova funkcija pokušava da konvertuje JavaScript promenljive u stringove gde je moguće. Beleženje JavaScript Template Literals sa parseInt(), toString() ili JSON.stringify daje vam više kontrole nad konverzijom i formatiranjem.
ParametarTipOpisPrimerPodrazumevano
ItemJavascript ValueString, broj, niz ili druga JavaScript vrednost za beleženje
OptionsJavaScript ObjectJavaScript objekat sa parametrima podešavanja{hex: True}{}
OpcijeOpisTipPodrazumevano
HexOdređuje da li se celi brojevi ispisuju u decimalnom ili hex formatuBooleanFalse
toFileOdređuje da li ispisane stavke treba da se pojave u debug logovima ili samo u konzoli uređajaBooleanFalse
let ImportantData = "i have really important info here";
device.log(ImportantData, {toFile: true})

Obaveštenja se mogu koristiti za vidljivo upozoravanje korisnika na problem sa njihovim uređajem. Treba ih koristiti štedljivo i rezervisati za ozbiljne probleme, kao što su uređaji koji nisu ispravno konfigurisani.

Kreira novo obaveštenje za korisnika. Povratna vrednost se može koristiti za selektivno uklanjanje obaveštenja, što treba uraditi kada korisnik reši prijavljeni problem.

Prioritet obaveštenjaOpisVrednost
InfoNormalno obaveštenje0
ImportantKritično (istaknuto) obaveštenje1
ParametarTipOpisPrimer
TitleStringNaslov obaveštenjaFirmware Incompatible
DescriptionStringOpis obaveštenjaFirmware Version must be >= 2.0.0
PriorityIntPrioritet obaveštenja0 | 1
PovratakTipOpis
AlertIdStringId string kreiranog obaveštenja
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);

Uklanja navedeno obaveštenje, ako postoji.

ParametarTipOpis
AlertIdStringAlertId koji je vratio device.notify
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);
// Do stuff and recheck if the alerted issue is fixed
device.denotify(AlertId);

Poruke uređaja pružaju način za prenošenje važnih, ali ne kritičnih informacija korisniku. Ove poruke se pojavljuju samo na stranici uređaja.

Dodaje novu poruku uređaja sa navedenim messageId.

ParametarTipOpisPrimer
messageIdstringMessageId koji je povezan sa porukom uređaja”mymessage”
messagestringTekst poruke koji treba prikazati”The message”
tooltipstringDodatni tekst koji se prikazuje pri hover-u”Some more info”
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");

Uklanja poruku kreiranu sa navedenim messageId, ako postoji.

ParametarTipOpis
messageIdstringMessageId koji treba ukloniti
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");
// message is no longer relevant
device.removeMessage("message1");