Ga naar inhoud

Plugin-exports

We gebruiken verschillende functies om te communiceren met de backend-API. Deze rapporteren informatie zoals apparaatgegevens, runtime-ingangspunten, weergavenaam, canvasafmetingen, product- en leveranciers-ID’s om op te zoeken, de renderlus, enzovoort.

Deze functies exporteren de naam van het apparaat en de uitgever die in SignalRGB worden weergegeven.

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

Deze functies worden gebruikt om het systeem te doorzoeken op het apparaat. Beide zijn gecodeerd als hexadecimale waarden in het formaat “0x ”. Deze moeten exact overeenkomen met uw apparaat-ID’s. Als uw plugin niet verschijnt in SignalRGB, is het hoogstwaarschijnlijk een niet-overeenkomende leverancier- en product-ID. Het absolute minimum om een apparaat te detecteren in SignalRGB is een overeenkomende leverancier- en product-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

Dit stelt de basisgrootte in van het apparaatvak op het canvas — vóór enige schaling — als een 2D-array met alleen gehele getallen. U kunt geen kleuren ophalen buiten deze grenzen in uw plugin, dus de grootte moet worden ingesteld om de breedte en hoogte van de LED’s van het apparaat te accommoderen wanneer u ze naar een raster vertaalt.

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

Deze functies stellen de standaardpositie van het apparaat in vóór gebruikersaanpassingen. DefaultPosition retourneert de 2D-coördinaten van de linkerbovenhoek. DefaultScale retourneert de schalingsvermenigvuldiger op een schaal van 1,0–30,0.

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

Deze functie retourneert een 2D-array van alle LED-namen op het apparaat. Deze moeten de ondersteunde sleutelnamen volgen (zie de sleutelnamenreferentie) om toetsaanslageffecten en LED-schilderfuncties te ondersteunen.

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

Deze functie retourneert een matrix van de individuele LED-posities binnen de pixelbuffer van het apparaat. Alle posities moeten binnen de grenzen vallen die zijn ingesteld door de Size()-export van het apparaat.

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

Deze functie bevat alle instellingen voor de apparaatplugin. Deze instellingen worden opgeslagen als JS/JSON-objecten die worden geretourneerd in een array door de functie. Zie Gebruikersbesturingen voor meer informatie.

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

Deze functie is verantwoordelijk voor het bepalen welke USB-eindpunten SignalRGB wil openen en gebruiken voor het apparaat. Elk eindpunt heeft vier parameters als filters die overeenkomen met de waarden van elk USB-eindpunt op het apparaat. Er kunnen meerdere eindpunten worden “geopend” voor elk apparaat, maar er wordt er maar één tegelijk gebruikt. Om het actieve eindpunt te wijzigen, zie device.set_endpoint().

Opmerking: Opdrachten moeten doorgaans naar een specifiek eindpunt worden verzonden. Opdrachten die worden verzonden naar een eindpunt dat is geconfigureerd om een bepaald rapport-ID of lengte te ontvangen, genereren fouten als die waarden niet overeenkomen.

Opmerking: Niet alle apparaten gebruiken consistente eindpunten, afhankelijk van waar en wanneer het apparaat is gemaakt. Door meerdere eindpunten te valideren, kunt u automatisch terugvallen indien nodig.

Beschikbare parameters
interface
usage
usage_page
collection
export function Validate(endpoint)
{
return (endpoint.interface === 2 && endpoint.collection === 0x0003) ||
endpoint.interface === 1;
}

Deze functie stelt het te gebruiken USB-protocoltype in. De meeste apparaten gebruiken HID-protocollen, maar sommige apparaten zoals AIO’s gebruiken in plaats daarvan ruwe USB-besturingsfuncties.

Opmerking: De standaardwaarde wanneer deze functie niet beschikbaar is voor SignalRGB is het HID-protocol.

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

Deze functie exporteert een lijst van conflicterende exe-namen. SignalRGB initialiseert de plugin niet zolang een van deze actief is. De plugin wordt geïnitialiseerd wanneer het conflicterende proces wordt gesloten of wanneer de gebruiker de foutmelding omzeilt.

Opmerking: Deze namen moeten exact overeenkomen met de naam van het actieve exe-bestand.

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

Deze functie retourneert de URL-tekenreeks van de afbeelding van het apparaat. De standaard pluginafbeeldingsgrootte is 1024×1024 pixels met een live gebied van 920×920.

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