Zum Inhalt springen

Plugin-Exporte

Wir verwenden mehrere Funktionen zur Kommunikation mit der Backend-API, die Informationen wie Geräteinformationen und Laufzeit-Einstiegspunkte, Anzeigename, Canvas-Abmessungen, Produkt- und Hersteller-IDs zur Suche, den Render-Loop usw. übermitteln.

Diese Funktionen exportieren den Namen des Geräts und den Herausgeber zur Anzeige in SignalRGB.

export function Name() { return "Device Product name as a String"; };
export function Publisher() { return "This is You! as a String"; };

Diese Funktionen werden verwendet, um das System nach dem Gerät zu durchsuchen. Beide sind als Hex-Werte im Format „0x ” kodiert. Diese müssen genau mit Ihren Geräte-IDs übereinstimmen. Wenn Ihr Plugin in SignalRGB nicht angezeigt wird, liegt dies höchstwahrscheinlich an einer nicht übereinstimmenden Hersteller- und Produkt-ID. Das Mindeste, was zur Erkennung eines Geräts in SignalRGB benötigt wird, ist eine übereinstimmende Hersteller- und Produkt-Id.

export function VendorId() { return 0xABCD;}; //Device's USB Vendor Id in Hex
export function ProductId() { return 0xABCD;}; //Device's USB Product Id in Hex

Dieser Wert legt die Grundgröße des Gerätefelds auf dem Canvas fest – vor jeglicher Skalierung – als zweidimensionales Array aus ganzen Zahlen. Sie können in Ihrem Plugin keine Farben außerhalb dieser Grenzen abrufen, daher muss die Größe so eingestellt werden, dass sie die Breite und Höhe der LEDs des Geräts aufnimmt, wenn Sie diese in ein Raster übersetzen.

export function Size() { return [X,Y]; };

Diese Funktionen legen die Standardposition des Geräts vor jeglicher Benutzeranpassung fest. DefaultPosition gibt die 2D-Koordinaten der oberen linken Ecke zurück. DefaultScale gibt den Skalierungsmultiplikator auf einer Skala von 1.0 bis 30.0 zurück.

export function DefaultPosition(){return [X,Y]};
export function DefaultScale(){return 8.0};

Diese Funktion gibt ein zweidimensionales Array aller LED-Namen auf dem Gerät zurück. Diese sollten den unterstützten Tastennamen (Located HERE) folgen, um Tastendruck-Effekte und LED-Markierungsfunktionen zu unterstützen.

var vLedNames = [
"Scroll Wheel",
"Side Led 1","Side Led 2","Side Led 3","Side Led 4", "Side Led 5","logo", "Right Side Led",
"Dpi 1","dpi 2","Dpi 3",
"Battery indicator"
];
export function LedNames(){return vLedNames;};

Diese Funktion gibt eine Matrix der einzelnen LED-Positionen innerhalb des Pixel-Puffers des Geräts zurück. Alle Positionen müssen innerhalb der durch den Size()-Export des Geräts festgelegten Grenzen liegen.

var vLedPositions = [
[3,0],
[0,1],[0,2],[0,3],[0,4],[0,5],[3,5],[5,5],
[0,2],[0,1],[0,0],
[3,1]
];
export function LedPositions(){return vLedPositions;};

Diese Funktion enthält alle Einstellungen für das Geräte-Plugin. Diese Einstellungen werden als JS/JSON-Objekte gespeichert, die innerhalb eines Arrays von der Funktion zurückgegeben werden. Weitere Informationen finden Sie unter Benutzersteuerungen.

export function ControllableParameters(){
return [
{SETTING},
{SETTING}
];
}

Diese Funktion ist dafür zuständig, festzulegen, welche USB-Endpunkte SignalRGB für das Gerät öffnen und verwenden soll. Jeder Endpunkt hat vier Parameter zur Filterung, die den Werten jedes USB-Endpunkts auf dem Gerät entsprechen. Für jedes Gerät können mehrere Endpunkte „geöffnet” werden, aber nur einer wird gleichzeitig verwendet. Um den aktiven Endpunkt zu wechseln, siehe device.set_endpoint().

Hinweis: Befehle müssen in der Regel an einen bestimmten Endpunkt gesendet werden. Befehle, die an einen Endpunkt gesendet werden, der vom Gerät für eine bestimmte Report-ID oder Länge konfiguriert ist, lösen Fehler aus, wenn diese Werte nicht übereinstimmen.

Hinweis: Nicht alle Geräte verwenden je nach Herstellungsort und -zeitpunkt konsistente Endpunkte. Durch die Validierung mehrerer Endpunkte können Sie bei Bedarf automatisch auf einen anderen zurückfallen.

Verfügbare Parameter
interface
usage
usage_page
collection
export function Validate(endpoint)
{
return (endpoint.interface === 2 && endpoint.collection === 0x0003) ||
endpoint.interface === 1;
}

Diese Funktion legt den zu verwendenden USB-Protokolltyp fest. Die meisten Geräte verwenden HID-Protokolle, aber einige Geräte wie AIOs verwenden stattdessen Raw-USB-Steuerfunktionen.

Hinweis: Der Standardwert, wenn diese Funktion für SignalRGB nicht verfügbar ist, ist das HID-Protokoll.

ProtokollString-Wert
HID”HID”
Lib/raw USB”RAWUSB”
export function Type() { return "Hid"; }

Diese Funktion exportiert eine Liste von konfliktierenden Exe-Namen. SignalRGB initialisiert das Plugin nicht, während einer dieser Prozesse läuft. Das Plugin wird initialisiert, wenn der konfliktierende Prozess geschlossen oder die Fehlermeldung vom Benutzer übergangen wird.

Hinweis: Diese Namen müssen genau mit dem laufenden Exe-Namen übereinstimmen.

export function ConflictingProcesses() {
return ["NGenuity2.exe"];
}

Diese Funktion gibt den Bildurl-String des Geräts zurück. Die Standard-Plugin-Bildgröße beträgt 1024x1024 Pixel mit einem Nutzbereich von 920x920.

export function ImageUrl(){ return "URL image string";}