Gå til indhold

Plugin-eksporter

Vi bruger adskillige funktioner til kommunikation med backend-API’en, der overfører oplysninger som enhedsinfo og kørselstids-indgangspunkter, vist navn, canvas-dimensioner, produkt- og producent-ID’er til søgning, render-løkken osv.

Disse funktioner eksporterer enhedens navn og udgiveren til visning i SignalRGB.

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

Disse funktioner bruges til at søge systemet for enheden. Begge er kodet som hex-værdier i formatet “0x ”. De skal præcist matche dine enheds-ID’er. Hvis dit plugin ikke vises i SignalRGB, skyldes det højst sandsynligt ikke-matchende producent- og produkt-ID. Det mindste der kræves for at en enhed genkendes i SignalRGB er et matchende producent- og 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

Denne værdi angiver enhedsfelts grundstørrelse på canvas – før enhver skalering – som et todimensionalt array af heltal. Du kan ikke hente farver uden for disse grænser i dit plugin, så størrelsen skal indstilles til at rumme bredden og højden af enhedens LED’er, når du oversætter dem til et gitter.

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

Disse funktioner angiver enhedens standardposition før enhver brugerindstilling. DefaultPosition returnerer 2D-koordinaterne for øverste venstre hjørne. DefaultScale returnerer skaleringsfaktoren på en skala fra 1,0 til 30,0.

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

Denne funktion returnerer et todimensionalt array med alle LED-navne på enheden. Disse bør følge de understøttede tastenavn (placeret HER) for at understøtte tastanslags-effekter og LED-markeringsfunktioner.

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

Denne funktion returnerer en matrix med de individuelle LED-positioner inden for enhedens pixel-buffer. Alle positioner skal ligge inden for de grænser der er fastsat af enhedens Size()-eksport.

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

Denne funktion indeholder alle indstillinger for enhedens plugin. Disse indstillinger gemmes som JS/JSON-objekter der returneres inden for et array fra funktionen. Se Brugerkontroller for yderligere oplysninger.

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

Denne funktion er ansvarlig for at specificere hvilke USB-endepunkter SignalRGB skal åbne og bruge til enheden. Hvert endepunkt har fire parametre til filtrering, der svarer til værdierne for hvert USB-endepunkt på enheden. Der kan “åbnes” flere endepunkter for hver enhed, men kun ét bruges ad gangen. For at skifte det aktive endepunkt, se device.set_endpoint().

Bemærk: Kommandoer skal typisk sendes til et bestemt endepunkt. Kommandoer der sendes til et endepunkt konfigureret af enheden til en bestemt rapport-ID eller længde, vil udløse fejl, hvis disse værdier ikke stemmer overens.

Bemærk: Ikke alle enheder bruger konsistente endepunkter afhængigt af fremstillingssted og -tidspunkt. Ved at validere flere endepunkter kan du automatisk falde tilbage til et andet om nødvendigt.

Tilgængelige parametre
interface
usage
usage_page
collection
export function Validate(endpoint)
{
return (endpoint.interface === 2 && endpoint.collection === 0x0003) ||
endpoint.interface === 1;
}

Denne funktion angiver den USB-protokoltype der skal bruges. De fleste enheder bruger HID-protokoller, men nogle enheder som AIO’er bruger Raw-USB-styrefunktioner i stedet.

Bemærk: Standardværdien, hvis denne funktion ikke er tilgængelig for SignalRGB, er HID-protokollen.

ProtokolStrengværdi
HID”HID”
Lib/raw USB”RAWUSB"
export function Type() { return "Hid"; }

Denne funktion eksporterer en liste af modstridende exe-navne. SignalRGB initialiserer ikke pluginet, mens en af disse processer kører. Pluginet initialiseres, når den modstridende proces lukkes, eller fejlmeddelelsen omgås af brugeren.

Bemærk: Disse navne skal præcist matche det kørende exe-navn.

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

Denne funktion returnerer enhedens billedurl-streng. Standard plugin-billedstørrelsen er 1024x1024 pixels med et anvendeligt område på 920x920.

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