Hilfsfunktionen
Geräte-Hilfsfunktionen
Abschnitt betitelt „Geräte-Hilfsfunktionen“device.color()
Abschnitt betitelt „device.color()“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.
| Parameter | Typ | Beschreibung | Beispiel |
|---|---|---|---|
| X | Int | Ein Int-Wert, der die X-Koordinate innerhalb des Pixel-Puffers des Geräts repräsentiert | 5 |
| Y | Int | Ein Int-Wert, der die Y-Koordinate innerhalb des Pixel-Puffers des Geräts repräsentiert | 3 |
- Hinweis: Die gesendeten X,Y-Koordinaten müssen innerhalb des durch den Size()-Export festgelegten Pixel-Puffers liegen.
| Rückgabe | Typ | Beschreibung | Beispiel |
|---|---|---|---|
| ColorArray | 1D Array | Ein 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; }device.getBrightness()
Abschnitt betitelt „device.getBrightness()“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ückgabe | Typ | Beschreibung | Beispiel |
|---|---|---|---|
| Brightness | int | Aktuelle Helligkeit im Bereich 0-100 | 42 |
device.getMotherboardName()
Abschnitt betitelt „device.getMotherboardName()“Gibt den WMI-Namen des Mainboards des aktuellen Systems zurück.
| Rückgabe | Typ | Beschreibung | Beispiel |
|---|---|---|---|
| MotherboardName | string | Name des System-Mainboards | B550 Aorus Elite |
device.pause()
Abschnitt betitelt „device.pause()“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.
| Parameter | Typ | Beschreibung | Beispiel |
|---|---|---|---|
| Duration | Int | Angeforderte Pausendauer in Millisekunden | 1 |
- 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.device.set_endpoint()
Abschnitt betitelt „device.set_endpoint()“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.
| Parameter | Typ | Beschreibung | Beispiel |
|---|---|---|---|
| interface | HEX | Ein 0x-Hex-Wert, der das Interface des zu öffnenden Endpunkts repräsentiert | 0x0002 |
| usage | HEX | Ein 0x-Hex-Wert, der die Usage des zu öffnenden Endpunkts repräsentiert | 0x0006 |
| usage_page | HEX | Ein 0x-Hex-Wert, der die Usage-Page des zu öffnenden Endpunkts repräsentiert | 0x0080 |
| collection | HEX | Ein 0x-Hex-Wert, der die Collection des zu öffnenden Endpunkts repräsentiert | 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()
Abschnitt betitelt „device.log()“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.
| Parameter | Typ | Beschreibung | Beispiel | Standard |
|---|---|---|---|---|
| Item | Javascript Value | Ein String, eine Zahl, ein Array oder ein anderer JavaScript-Wert, der protokolliert werden soll | ||
| Options | JavaScript Object | Ein JavaScript-Objekt mit Einstellungsparametern | {hex: True} | {} |
| Optionen | Beschreibung | Typ | Standard |
|---|---|---|---|
| Hex | Legt fest, ob Ganzzahlen im Dezimal- oder Hex-Format ausgegeben werden sollen | Boolean | False |
| toFile | Legt fest, ob die ausgegebenen Elemente in den Debug-Logs oder nur in der Gerätekonsole erscheinen sollen | Boolean | False |
let ImportantData = "i have really important info here"; device.log(ImportantData, {toFile: true})Benachrichtigungen
Abschnitt betitelt „Benachrichtigungen“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.
device.notify()
Abschnitt betitelt „device.notify()“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ät | Beschreibung | Wert |
|---|---|---|
| Info | Normale Benachrichtigung | 0 |
| Important | Kritische (hervorgehobene) Benachrichtigung | 1 |
| Parameter | Typ | Beschreibung | Beispiel |
|---|---|---|---|
| Title | String | Benachrichtigungstitel | Firmware Incompatible |
| Description | String | Benachrichtigungsbeschreibung | Firmware Version must be >= 2.0.0 |
| Priority | Int | Benachrichtigungspriorität | 0 | 1 |
| Rückgabe | Typ | Beschreibung |
|---|---|---|
| AlertId | String | Der Id-String der erstellten Benachrichtigung |
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);device.denotify()
Abschnitt betitelt „device.denotify()“Entfernt die angegebene Benachrichtigung, sofern sie vorhanden ist.
| Parameter | Typ | Beschreibung |
|---|---|---|
| AlertId | String | AlertId, 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);Nachrichten
Abschnitt betitelt „Nachrichten“Gerätenachrichten bieten eine Möglichkeit, wichtige, aber nicht kritische Informationen an den Benutzer weiterzugeben. Diese Nachrichten erscheinen nur auf der Geräteseite.

device.addMessage()
Abschnitt betitelt „device.addMessage()“Fügt eine neue Gerätenachricht mit der angegebenen MessageId hinzu.
| Parameter | Typ | Beschreibung | Beispiel |
|---|---|---|---|
| messageId | string | MessageId, die mit der Gerätenachricht verknüpft ist | ”mymessage” |
| message | string | Anzuzeigender Nachrichtentext | ”The message” |
| tooltip | string | Zusä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");device.removeMessage()
Abschnitt betitelt „device.removeMessage()“Entfernt die mit der angegebenen MessageId erstellte Nachricht, sofern eine vorhanden ist.
| Parameter | Typ | Beschreibung |
|---|---|---|
| messageId | string | Zu 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");