Gå til indhold

Hjælpefunktioner

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.

ParameterTypeBeskrivelseEksempel
XIntEn Int-værdi der repræsenterer X-koordinaten inden for enhedens pixel-buffer5
YIntEn Int-værdi der repræsenterer Y-koordinaten inden for enhedens pixel-buffer3
  • Bemærk: De sendte X,Y-koordinater skal ligge inden for den pixel-buffer der er fastsat af Size()-eksporten.
ReturneringTypeBeskrivelseEksempel
ColorArray1D ArrayEt 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;
}

Returnerer det aktuelle lysstyrkeniveau for enheden i SignalRGB. Denne værdi er allerede anvendt på alle farver returneret af device.color() eller lignende funktioner.

ReturneringTypeBeskrivelseEksempel
BrightnessintAktuel lysstyrke i området 0-10042

Returnerer WMI-navnet på det aktuelle systems bundkort.

ReturneringTypeBeskrivelseEksempel
MotherboardNamestringNavn på systemets bundkortB550 Aorus Elite

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.

ParameterTypeBeskrivelseEksempel
DurationIntAnmodet pausevarighed i millisekunder1
  • 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.

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.

ParameterTypeBeskrivelseEksempel
interfaceHEXEn 0x-hex-værdi der repræsenterer interface’et for det endepunkt der skal åbnes0x0002
usageHEXEn 0x-hex-værdi der repræsenterer usage for det endepunkt der skal åbnes0x0006
usage_pageHEXEn 0x-hex-værdi der repræsenterer usage-page for det endepunkt der skal åbnes0x0080
collectionHEXEn 0x-hex-værdi der repræsenterer collection for det endepunkt der skal åbnes0x0001
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);
}

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.
ParameterTypeBeskrivelseEksempelStandard
ItemJavascript ValueEn streng, et tal, et array eller en anden JavaScript-værdi der skal logges
OptionsJavaScript ObjectEt JavaScript-objekt med indstillingsparametre{hex: True}{}
IndstillingerBeskrivelseTypeStandard
HexAngiver om heltal skal udskrives i decimal- eller hex-formatBooleanFalse
toFileAngiver om de udskrevne elementer skal vises i debug-logs eller kun i enhedskonsollenBooleanFalse
let ImportantData = "i have really important info here";
device.log(ImportantData, {toFile: true})

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.

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.

NotifikationsprioritetBeskrivelseVærdi
InfoNormal notifikation0
ImportantKritisk (fremhævet) notifikation1
ParameterTypeBeskrivelseEksempel
TitleStringNotifikationstitelFirmware Incompatible
DescriptionStringNotifikationsbeskrivelseFirmware Version must be >= 2.0.0
PriorityIntNotifikationsprioritet0 | 1
ReturneringTypeBeskrivelse
AlertIdStringId-strengen for den oprettede notifikation
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);

Fjerner den angivne notifikation, hvis den er til stede.

ParameterTypeBeskrivelse
AlertIdStringAlertId 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);

Enhedsmeddelelser giver en måde at formidle vigtig men ikke kritisk information til brugeren. Disse meddelelser vises kun på enhedssiden.

Tilføjer en ny enhedsmeddelelse med det angivne MessageId.

ParameterTypeBeskrivelseEksempel
messageIdstringMessageId tilknyttet enhedsmeddelelsen”mymessage”
messagestringDen meddelelsetekst der skal vises”The message”
tooltipstringYderligere 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");

Fjerner den meddelelse der er oprettet med det angivne MessageId, hvis en er til stede.

ParameterTypeBeskrivelse
messageIdstringDet 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");