Zum Inhalt springen

Hilfsfunktionen

Diese Funktion dient zum Abrufen von Farbdaten vom Canvas. Sie nimmt eine X,Y-Position relativ zum und innerhalb des Pixel-Puffers des Geräts auf dem Canvas entgegen und gibt ein [R,G,B]-Array der Farbe an diesem Pixel zurück.

ParameterTypBeschreibungBeispiel
XIntEin Int-Wert, der die X-Koordinate innerhalb des Pixel-Puffers des Geräts repräsentiert5
YIntEin Int-Wert, der die Y-Koordinate innerhalb des Pixel-Puffers des Geräts repräsentiert3
  • Hinweis: Die gesendeten X,Y-Koordinaten müssen innerhalb des durch den Size()-Export festgelegten Pixel-Puffers liegen.
RückgabeTypBeschreibungBeispiel
ColorArray1D ArrayEin Array der Länge 3, das die koordinierten [R, G, B]-Werte im Bereich 0-255 (HEX 00-FF) enthält[128,158,255]

Nachfolgend ist ein vereinfachtes Beispiel der Funktion in einer typischen Anwendung.

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;
}

Gibt den aktuellen Helligkeitsgrad des Geräts in SignalRGB zurück. Dieser Wert ist bereits auf alle Farben angewendet, die von device.color() oder ähnlichen Funktionen zurückgegeben werden.

RückgabeTypBeschreibungBeispiel
BrightnessintAktuelle Helligkeit im Bereich 0-10042

Gibt den WMI-Namen des Mainboards des aktuellen Systems zurück.

RückgabeTypBeschreibungBeispiel
MotherboardNamestringName des System-MainboardsB550 Aorus Elite

Diese Funktion versucht, den Gerätethread für die angegebene Dauer anzuhalten. Diese Pausen sind aufgrund der Art und Weise, wie das Betriebssystem Thread-Sleeps behandelt, nicht garantiert exakt.

ParameterTypBeschreibungBeispiel
DurationIntAngeforderte Pausendauer in Millisekunden1
  • Hinweis: Windows hat eine minimale Sleep-Zeit von 1-2 ms und beginnt bei längeren Sleep-Werten ungenauer zu werden. Verwenden Sie diese Funktion daher nicht für exaktes 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.

Diese Funktion ändert den aktiven Endpunkt für alle Lese- und Schreibbefehle. Dies ist nützlich für Geräte, die mehrere geöffnete Endpunkte für verschiedene Befehle haben. Ein gängiges Beispiel sind Logitech-Geräte, die einen RGB-Daten-Endpunkt und einen Systembefehl-Endpunkt für Dinge wie DPI-Einstellungen haben.

ParameterTypBeschreibungBeispiel
interfaceHEXEin 0x-Hex-Wert, der das Interface des zu öffnenden Endpunkts repräsentiert0x0002
usageHEXEin 0x-Hex-Wert, der die Usage des zu öffnenden Endpunkts repräsentiert0x0006
usage_pageHEXEin 0x-Hex-Wert, der die Usage-Page des zu öffnenden Endpunkts repräsentiert0x0080
collectionHEXEin 0x-Hex-Wert, der die Collection des zu öffnenden Endpunkts repräsentiert0x0001
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);
}

Diese Funktion ist die Plugin-Version von console.log. Sie nimmt einen String, eine Zahl, ein Objekt oder ein Array entgegen und protokolliert es in der Gerätekonsole zur Fehlersuche und Benutzerinformation. Dies kann besonders nützlich sein, um Dinge wie DPI-Änderungen, Fehler oder während der Entwicklung die Paketstruktur oder Eingaben von Lesebefehlen anzuzeigen.

  • Hinweis: Diese Funktion versucht, JavaScript-Variablen in Strings zu konvertieren, wo es möglich ist. Das Protokollieren von JavaScript Template Literals mit parseInt(), toString() oder JSON.stringify gibt Ihnen mehr Kontrolle über Konvertierung und Formatierung.
ParameterTypBeschreibungBeispielStandard
ItemJavascript ValueEin String, eine Zahl, ein Array oder ein anderer JavaScript-Wert, der protokolliert werden soll
OptionsJavaScript ObjectEin JavaScript-Objekt mit Einstellungsparametern{hex: True}{}
OptionenBeschreibungTypStandard
HexLegt fest, ob Ganzzahlen im Dezimal- oder Hex-Format ausgegeben werden sollenBooleanFalse
toFileLegt fest, ob die ausgegebenen Elemente in den Debug-Logs oder nur in der Gerätekonsole erscheinen sollenBooleanFalse
let ImportantData = "i have really important info here";
device.log(ImportantData, {toFile: true})

Benachrichtigungen können verwendet werden, um den Benutzer sichtbar auf ein Problem mit seinem Gerät hinzuweisen. Sie sollten sparsam eingesetzt und für schwerwiegende Probleme reserviert werden, wie z. B. Geräte, die nicht korrekt konfiguriert sind.

Erstellt eine neue Benachrichtigung für den Benutzer. Der Rückgabewert kann verwendet werden, um die Benachrichtigung selektiv zu entfernen, was getan werden sollte, wenn der Benutzer das gemeldete Problem behebt.

BenachrichtigungsprioritätBeschreibungWert
InfoNormale Benachrichtigung0
ImportantKritische (hervorgehobene) Benachrichtigung1
ParameterTypBeschreibungBeispiel
TitleStringBenachrichtigungstitelFirmware Incompatible
DescriptionStringBenachrichtigungsbeschreibungFirmware Version must be >= 2.0.0
PriorityIntBenachrichtigungspriorität0 | 1
RückgabeTypBeschreibung
AlertIdStringDer Id-String der erstellten Benachrichtigung
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);

Entfernt die angegebene Benachrichtigung, sofern sie vorhanden ist.

ParameterTypBeschreibung
AlertIdStringAlertId, die von device.notify zurückgegeben wurde
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);
// Do stuff and recheck if the alerted issue is fixed
device.denotify(AlertId);

Gerätenachrichten bieten eine Möglichkeit, wichtige, aber nicht kritische Informationen an den Benutzer weiterzugeben. Diese Nachrichten erscheinen nur auf der Geräteseite.

Fügt eine neue Gerätenachricht mit der angegebenen MessageId hinzu.

ParameterTypBeschreibungBeispiel
messageIdstringMessageId, die mit der Gerätenachricht verknüpft ist”mymessage”
messagestringAnzuzeigender Nachrichtentext”The message”
tooltipstringZusätzlicher Text, der beim Hovern angezeigt wird”Some more info”
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");

Entfernt die mit der angegebenen MessageId erstellte Nachricht, sofern eine vorhanden ist.

ParameterTypBeschreibung
messageIdstringZu entfernende MessageId
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");