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.
”Name” en “Publisher”
Section titled “”Name” en “Publisher””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"; };”VendorId” en “ProductId”
Section titled “”VendorId” en “ProductId””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 Hexexport function ProductId() { return 0xABCD;}; //Device's USB Product Id in Hex”Size” en positionering
Section titled “”Size” en positionering”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};”Led Names”
Section titled “”Led Names””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;};”Led Positions”
Section titled “”Led Positions””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;};”ControllableParameters”
Section titled “”ControllableParameters””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} ];}”Validate”
Section titled “”Validate””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;
}”Type”
Section titled “”Type””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.
| Protocol | Tekenreekswaarde |
|---|---|
| HID | ”HID” |
| Lib/raw USB | ”RAWUSB" |
export function Type() { return "Hid"; }"ConflictingProcesses”
Section titled “"ConflictingProcesses””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"];}”ImageUrl”
Section titled “”ImageUrl””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";}