Hulpprogramma's
Apparaathulpprogramma’s
Section titled “Apparaathulpprogramma’s”device.color()
Section titled “device.color()”Deze functie is uw manier om kleurdata op te halen van het canvas. Het neemt een X,Y-positie relatief aan en binnen de pixelbuffer van het apparaat op het canvas, en retourneert een [R,G,B]-array van de kleur op dat pixel.
| Parameter | Type | Beschrijving | Voorbeeld |
|---|---|---|---|
| X | Int | Een Int-waarde die de X-coördinaat binnen de pixelbuffer van het apparaat vertegenwoordigt | 5 |
| Y | Int | Een Int-waarde die de Y-coördinaat binnen de pixelbuffer van het apparaat vertegenwoordigt | 3 |
- Opmerking: de opgegeven X,Y-coördinaten moeten binnen de pixelbuffer vallen die is ingesteld door de Size()-export.
| Retour | Type | Beschrijving | Voorbeeld |
|---|---|---|---|
| ColorArray | 1D-array | Een array van lengte 3 met de gecoördineerde [R, G, B]-waarden variërend van 0–255 (HEX 00–FF) | [128,158,255] |
Hieronder is een ingekort voorbeeld van de functie in een typische situatie.
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()”Retourneert het huidige helderheidsniveau van het apparaat in SignalRGB. Deze waarde is al toegepast op alle kleuren die worden geretourneerd door device.color() of vergelijkbare functies.
| Retour | Type | Beschrijving | Voorbeeld |
|---|---|---|---|
| Brightness | int | Huidige helderheid in het bereik 0–100 | 42 |
device.getMotherboardName()
Section titled “device.getMotherboardName()”Retourneert de WMI-naam van het moederbord van het huidige systeem.
| Retour | Type | Beschrijving | Voorbeeld |
|---|---|---|---|
| MotherboardName | string | Naam van het moederbord van het systeem | B550 Aorus Elite |
device.pause()
Section titled “device.pause()”Deze functie probeert de apparaatthread voor de opgegeven duur te pauzeren. Deze pauzes zijn niet gegarandeerd exact vanwege de manier waarop het besturingssysteem threadslaap afhandelt.
| Parameter | Type | Beschrijving | Voorbeeld |
|---|---|---|---|
| Duration | Int | Gevraagde pauzelengte in milliseconden | 1 |
- Opmerking: Windows heeft een minimale slaaptijd van 1–2 ms en begint te haperen naarmate de slaap langer wordt, gebruik deze dus niet voor exacte tijdmetingen.
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()”Deze functie wijzigt het actieve eindpunt voor alle lees- en schrijfopdrachten. Dit is handig voor apparaten met meerdere open eindpunten voor verschillende opdrachten. Een veelvoorkomend voorbeeld zijn Logitech-apparaten met een RGB-data-eindpunt en een systeemopdrachteindpunt voor zaken als DPI-instellingen.
| Parameter | Type | Beschrijving | Voorbeeld |
|---|---|---|---|
| interface | HEX | Een 0x hex-waarde die de interface vertegenwoordigt van het te openen eindpunt | 0x0002 |
| usage | HEX | Een 0x hex-waarde die het gebruik vertegenwoordigt van het te openen eindpunt | 0x0006 |
| usage_page | HEX | Een 0x hex-waarde die de usage_page vertegenwoordigt van het te openen eindpunt | 0x0080 |
| collection | HEX | Een 0x hex-waarde die de collectie vertegenwoordigt van het te openen eindpunt | 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()”Deze functie is de plugin-versie van console.log. Het neemt een String, Getal, Object of Array en logt dit in de apparaatconsole voor foutopsporing en gebruikersinformatie. Dit kan bijzonder nuttig zijn om zaken als DPI-wijzigingen, fouten of tijdens de ontwikkeling de pakketindeling of invoer van leesopdrachten te tonen.
- Opmerking: Deze functie probeert JavaScript-variabelen waar mogelijk naar strings te converteren. Door JavaScript Template Literals te loggen met parseInt(), toString() of JSON.stringify kunt u meer controle krijgen over conversie en opmaak.
| Parameter | Type | Beschrijving | Voorbeeld | Standaard |
|---|---|---|---|---|
| Item | Javascript-waarde | Een string, getal, array of andere JavaScript-waarde om te loggen | ||
| Options | JavaScript-object | Een JavaScript-object met instellingsparameters | {hex: True} | {} |
| Opties | Beschrijving | Type | Standaard |
|---|---|---|---|
| Hex | Stelt in of gehele getallen in decimaal of hexadecimaal formaat worden afgedrukt | Boolean | False |
| toFile | Stelt in of de afgedrukte items in foutopsporingslogboeken verschijnen of alleen in de apparaatconsole | Boolean | False |
let ImportantData = "i have really important info here"; device.log(ImportantData, {toFile: true})Meldingen
Section titled “Meldingen”Meldingen kunnen worden gebruikt om de gebruiker zichtbaar te waarschuwen als er een probleem is met hun apparaat. Gebruik deze spaarzaam en reserveer ze voor kritieke problemen zoals apparaten die niet correct zijn geconfigureerd.
device.notify()
Section titled “device.notify()”Maakt een nieuwe melding voor de gebruiker aan. De retourwaarde kan worden gebruikt om de melding selectief te verwijderen en dit dient te gebeuren als de gebruiker het gemelde probleem oplost.
| Meldingsprioriteit | Beschrijving | Waarde |
|---|---|---|
| Info | Normale melding | 0 |
| Important | Kritieke (gemarkeerde) melding | 1 |
| Parameter | Type | Beschrijving | Voorbeeld |
|---|---|---|---|
| Title | String | Meldingstitel | Firmware Incompatible |
| Description | String | Meldingsbeschrijving | Firmware Version must be >= 2.0.0 |
| Priority | Int | Meldingsprioriteit | 0 | 1 |
| Retour | Type | Beschrijving |
|---|---|---|
| AlertId | String | De ID-tekenreeks van de gemaakte melding |
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);device.denotify()
Section titled “device.denotify()”Verwijdert de opgegeven melding als deze bestaat.
| Parameter | Type | Beschrijving |
|---|---|---|
| AlertId | String | AlertId geretourneerd door 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);Berichten
Section titled “Berichten”Apparaatberichten bieden een manier om belangrijke, maar niet kritieke informatie aan de gebruiker door te geven. Deze berichten verschijnen alleen op de pagina van het apparaat.

device.addMessage()
Section titled “device.addMessage()”Voegt een nieuw apparaatbericht toe met het opgegeven bericht-ID.
| Parameter | Type | Beschrijving | Voorbeeld |
|---|---|---|---|
| messageId | string | Bericht-ID gekoppeld aan het apparaatbericht | ”mymessage” |
| message | string | Berichttekst die wordt weergegeven | ”The message” |
| tooltip | string | Extra tekst weergegeven bij aanwijzen | ”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()”Verwijdert het bericht dat is aangemaakt met het opgegeven bericht-ID als dat bestaat.
| Parameter | Type | Beschrijving |
|---|---|---|
| messageId | string | Te verwijderen bericht-ID |
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");