Pomoćne funkcije
Pomoćne funkcije uređaja
Section titled “Pomoćne funkcije uređaja”device.color()
Section titled “device.color()”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.
| Parametar | Tip | Opis | Primer |
|---|---|---|---|
| X | Int | Int vrednost koja predstavlja X koordinatu unutar pixel bafera uređaja | 5 |
| Y | Int | Int vrednost koja predstavlja Y koordinatu unutar pixel bafera uređaja | 3 |
- Napomena: Poslate X,Y koordinate moraju biti unutar pixel bafera definisanog Size() exportom.
| Povratak | Tip | Opis | Primer |
|---|---|---|---|
| ColorArray | 1D Array | Niz 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; }device.getBrightness()
Section titled “device.getBrightness()”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.
| Povratak | Tip | Opis | Primer |
|---|---|---|---|
| Brightness | int | Trenutna osvetljenost u opsegu 0-100 | 42 |
device.getMotherboardName()
Section titled “device.getMotherboardName()”Vraća WMI naziv matične ploče trenutnog sistema.
| Povratak | Tip | Opis | Primer |
|---|---|---|---|
| MotherboardName | string | Naziv matične ploče sistema | B550 Aorus Elite |
device.pause()
Section titled “device.pause()”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.
| Parametar | Tip | Opis | Primer |
|---|---|---|---|
| Duration | Int | Zahtevano trajanje pauze u milisekundama | 1 |
- 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.device.set_endpoint()
Section titled “device.set_endpoint()”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.
| Parametar | Tip | Opis | Primer |
|---|---|---|---|
| interface | HEX | 0x-hex vrednost koja predstavlja interfejs endpointa koji treba otvoriti | 0x0002 |
| usage | HEX | 0x-hex vrednost koja predstavlja Usage endpointa koji treba otvoriti | 0x0006 |
| usage_page | HEX | 0x-hex vrednost koja predstavlja Usage-Page endpointa koji treba otvoriti | 0x0080 |
| collection | HEX | 0x-hex vrednost koja predstavlja Collection endpointa koji treba otvoriti | 0x0001 |
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);}device.log()
Section titled “device.log()”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.
| Parametar | Tip | Opis | Primer | Podrazumevano |
|---|---|---|---|---|
| Item | Javascript Value | String, broj, niz ili druga JavaScript vrednost za beleženje | ||
| Options | JavaScript Object | JavaScript objekat sa parametrima podešavanja | {hex: True} | {} |
| Opcije | Opis | Tip | Podrazumevano |
|---|---|---|---|
| Hex | Određuje da li se celi brojevi ispisuju u decimalnom ili hex formatu | Boolean | False |
| toFile | Određuje da li ispisane stavke treba da se pojave u debug logovima ili samo u konzoli uređaja | Boolean | False |
let ImportantData = "i have really important info here"; device.log(ImportantData, {toFile: true})Obaveštenja
Section titled “Obaveštenja”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.
device.notify()
Section titled “device.notify()”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štenja | Opis | Vrednost |
|---|---|---|
| Info | Normalno obaveštenje | 0 |
| Important | Kritično (istaknuto) obaveštenje | 1 |
| Parametar | Tip | Opis | Primer |
|---|---|---|---|
| Title | String | Naslov obaveštenja | Firmware Incompatible |
| Description | String | Opis obaveštenja | Firmware Version must be >= 2.0.0 |
| Priority | Int | Prioritet obaveštenja | 0 | 1 |
| Povratak | Tip | Opis |
|---|---|---|
| AlertId | String | Id string kreiranog obaveštenja |
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);device.denotify()
Section titled “device.denotify()”Uklanja navedeno obaveštenje, ako postoji.
| Parametar | Tip | Opis |
|---|---|---|
| AlertId | String | AlertId 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
Section titled “Poruke”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.

device.addMessage()
Section titled “device.addMessage()”Dodaje novu poruku uređaja sa navedenim messageId.
| Parametar | Tip | Opis | Primer |
|---|---|---|---|
| messageId | string | MessageId koji je povezan sa porukom uređaja | ”mymessage” |
| message | string | Tekst poruke koji treba prikazati | ”The message” |
| tooltip | string | Dodatni 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");device.removeMessage()
Section titled “device.removeMessage()”Uklanja poruku kreiranu sa navedenim messageId, ako postoji.
| Parametar | Tip | Opis |
|---|---|---|
| messageId | string | MessageId 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");