Hjælpefunktioner
Enheds-hjælpefunktioner
Sektion kaldt “Enheds-hjælpefunktioner”device.color()
Sektion kaldt “device.color()”Denne funktion bruges til at hente farvedata fra canvas. Den tager en X,Y-position relativ til og inden for enhedens pixel-buffer på canvas og returnerer et [R,G,B]-array med farven ved den pågældende pixel.
| Parameter | Type | Beskrivelse | Eksempel |
|---|---|---|---|
| X | Int | En Int-værdi der repræsenterer X-koordinaten inden for enhedens pixel-buffer | 5 |
| Y | Int | En Int-værdi der repræsenterer Y-koordinaten inden for enhedens pixel-buffer | 3 |
- Bemærk: De sendte X,Y-koordinater skal ligge inden for den pixel-buffer der er fastsat af Size()-eksporten.
| Returnering | Type | Beskrivelse | Eksempel |
|---|---|---|---|
| ColorArray | 1D Array | Et array af længde 3 der indeholder de koordinerede [R, G, B]-værdier i området 0-255 (HEX 00-FF) | [128,158,255] |
Nedenfor er et forenklet eksempel på funktionen i en typisk anvendelse.
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()
Sektion kaldt “device.getBrightness()”Returnerer det aktuelle lysstyrkeniveau for enheden i SignalRGB. Denne værdi er allerede anvendt på alle farver returneret af device.color() eller lignende funktioner.
| Returnering | Type | Beskrivelse | Eksempel |
|---|---|---|---|
| Brightness | int | Aktuel lysstyrke i området 0-100 | 42 |
device.getMotherboardName()
Sektion kaldt “device.getMotherboardName()”Returnerer WMI-navnet på det aktuelle systems bundkort.
| Returnering | Type | Beskrivelse | Eksempel |
|---|---|---|---|
| MotherboardName | string | Navn på systemets bundkort | B550 Aorus Elite |
device.pause()
Sektion kaldt “device.pause()”Denne funktion forsøger at sætte enhedens tråd på pause i den angivne varighed. Disse pauser er ikke garanteret præcise på grund af den måde operativsystemet håndterer tråd-sleep.
| Parameter | Type | Beskrivelse | Eksempel |
|---|---|---|---|
| Duration | Int | Anmodet pausevarighed i millisekunder | 1 |
- Bemærk: Windows har en minimal sleep-tid på 1-2 ms og begynder at blive mere upræcis ved længere sleep-værdier. Brug derfor ikke denne funktion til præcis timing.
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()
Sektion kaldt “device.set_endpoint()”Denne funktion ændrer det aktive endepunkt for alle læse- og skrivekommandoer. Dette er nyttigt for enheder der har flere åbne endepunkter til forskellige kommandoer. Et almindeligt eksempel er Logitech-enheder der har et RGB-data-endepunkt og et systemkommando-endepunkt til ting som DPI-indstillinger.
| Parameter | Type | Beskrivelse | Eksempel |
|---|---|---|---|
| interface | HEX | En 0x-hex-værdi der repræsenterer interface’et for det endepunkt der skal åbnes | 0x0002 |
| usage | HEX | En 0x-hex-værdi der repræsenterer usage for det endepunkt der skal åbnes | 0x0006 |
| usage_page | HEX | En 0x-hex-værdi der repræsenterer usage-page for det endepunkt der skal åbnes | 0x0080 |
| collection | HEX | En 0x-hex-værdi der repræsenterer collection for det endepunkt der skal åbnes | 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()
Sektion kaldt “device.log()”Denne funktion er plugin-versionen af console.log. Den tager en streng, et tal, et objekt eller et array og logger det til enhedskonsollen til fejlfinding og brugerinformation. Dette kan være særligt nyttigt til at vise ting som DPI-ændringer, fejl eller under udvikling pakkestruturen eller input fra læsekommandoer.
- Bemærk: Denne funktion forsøger at konvertere JavaScript-variabler til strenge, hvor det er muligt. Logning af JavaScript Template Literals med parseInt(), toString() eller JSON.stringify giver dig mere kontrol over konvertering og formatering.
| Parameter | Type | Beskrivelse | Eksempel | Standard |
|---|---|---|---|---|
| Item | Javascript Value | En streng, et tal, et array eller en anden JavaScript-værdi der skal logges | ||
| Options | JavaScript Object | Et JavaScript-objekt med indstillingsparametre | {hex: True} | {} |
| Indstillinger | Beskrivelse | Type | Standard |
|---|---|---|---|
| Hex | Angiver om heltal skal udskrives i decimal- eller hex-format | Boolean | False |
| toFile | Angiver om de udskrevne elementer skal vises i debug-logs eller kun i enhedskonsollen | Boolean | False |
let ImportantData = "i have really important info here"; device.log(ImportantData, {toFile: true})Notifikationer
Sektion kaldt “Notifikationer”Notifikationer kan bruges til synligt at advare brugeren om et problem med sin enhed. De bør bruges sparsomt og reserveres til alvorlige problemer, såsom enheder der ikke er konfigureret korrekt.
device.notify()
Sektion kaldt “device.notify()”Opretter en ny notifikation til brugeren. Returværdien kan bruges til selektivt at fjerne notifikationen, hvilket bør gøres, når brugeren løser det rapporterede problem.
| Notifikationsprioritet | Beskrivelse | Værdi |
|---|---|---|
| Info | Normal notifikation | 0 |
| Important | Kritisk (fremhævet) notifikation | 1 |
| Parameter | Type | Beskrivelse | Eksempel |
|---|---|---|---|
| Title | String | Notifikationstitel | Firmware Incompatible |
| Description | String | Notifikationsbeskrivelse | Firmware Version must be >= 2.0.0 |
| Priority | Int | Notifikationsprioritet | 0 | 1 |
| Returnering | Type | Beskrivelse |
|---|---|---|
| AlertId | String | Id-strengen for den oprettede notifikation |
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);device.denotify()
Sektion kaldt “device.denotify()”Fjerner den angivne notifikation, hvis den er til stede.
| Parameter | Type | Beskrivelse |
|---|---|---|
| AlertId | String | AlertId returneret af 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);Meddelelser
Sektion kaldt “Meddelelser”Enhedsmeddelelser giver en måde at formidle vigtig men ikke kritisk information til brugeren. Disse meddelelser vises kun på enhedssiden.

device.addMessage()
Sektion kaldt “device.addMessage()”Tilføjer en ny enhedsmeddelelse med det angivne MessageId.
| Parameter | Type | Beskrivelse | Eksempel |
|---|---|---|---|
| messageId | string | MessageId tilknyttet enhedsmeddelelsen | ”mymessage” |
| message | string | Den meddelelsetekst der skal vises | ”The message” |
| tooltip | string | Yderligere tekst der vises ved hovering | ”Some more info” |
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");device.removeMessage()
Sektion kaldt “device.removeMessage()”Fjerner den meddelelse der er oprettet med det angivne MessageId, hvis en er til stede.
| Parameter | Type | Beskrivelse |
|---|---|---|
| messageId | string | Det MessageId der skal fjernes |
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");