Aller au contenu

Exports de plugin

Nous utilisons plusieurs fonctions pour communiquer avec l’API backend qui rapportent des informations comme les informations de l’appareil et les points d’entrée d’exécution, le nom d’affichage, les dimensions du canevas, les identifiants produit et fournisseur à rechercher, ce qu’est la boucle de rendu, etc.

Ces fonctions exportent le nom de l’appareil et l’éditeur à afficher dans SignalRGB.

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

Ces fonctions sont utilisées pour rechercher l’appareil sur le système. Les deux sont encodées en valeurs hexadécimales au format “0x ”. Elles doivent correspondre exactement aux identifiants de votre appareil. Si votre plugin n’apparaît pas dans SignalRGB, il s’agit très probablement d’un identifiant fournisseur et produit non concordant. Le minimum requis pour détecter un appareil dans SignalRGB est un identifiant fournisseur et produit correspondant.

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

Ceci définit la taille de base du cadre de l’appareil sur le canevas - avant tout redimensionnement - sous forme d’un tableau d’entiers 2D. Vous ne pouvez pas récupérer des couleurs en dehors de ces limites dans votre plugin, donc la taille doit être définie pour accommoder la largeur et la hauteur des LEDs de l’appareil lorsque vous les traduisez en grille.

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

Ces fonctions définiront la position par défaut de l’appareil avant toute personnalisation par l’utilisateur. DefaultPosition retourne les coordonnées 2D du coin supérieur gauche. DefaultScale retourne le multiplicateur d’échelle sur une échelle de 1.0 à 30.0.

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

Cette fonction retourne un tableau 2D de tous les noms de LEDs sur l’appareil. Ceux-ci devraient suivre les noms de touches pris en charge situés ICI pour prendre en charge les effets de frappe et les fonctionnalités de peinture de LEDs.

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

Cette fonction retourne une matrice des positions individuelles des LEDs dans le tampon de pixels de l’appareil. Toutes les positions doivent être dans les limites définies par l’export Size() de l’appareil.

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

Cette fonction contient tous les paramètres du plugin d’appareil. Ces paramètres sont stockés sous forme d’objets JS/JSON retournés dans un tableau par la fonction. Voir Contrôles utilisateur pour plus d’informations.

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

Cette fonction est responsable de déterminer quels points de terminaison USB SignalRGB souhaite ouvrir et utiliser pour l’appareil. Chaque point de terminaison aura quatre paramètres à utiliser comme filtres correspondant aux valeurs de chaque point de terminaison USB sur l’appareil. Plusieurs points de terminaison peuvent être “ouverts” pour chaque appareil, mais un seul est utilisé à la fois. Pour changer le point de terminaison actif, voir device.set_endpoint().

Remarque : Les commandes devront généralement être envoyées à un point de terminaison spécifique. Les commandes envoyées à un point de terminaison configuré par l’appareil pour accepter un certain identifiant de rapport ou une certaine longueur généreront des erreurs si ces valeurs ne correspondent pas.

Remarque : Tous les appareils n’utiliseront pas des points de terminaison cohérents selon l’endroit et le moment où l’appareil a été fabriqué. La validation de plusieurs points de terminaison vous permet de revenir automatiquement à un autre si nécessaire.

Paramètres disponibles
interface
usage
usage_page
collection
export function Validate(endpoint)
{
return (endpoint.interface === 2 && endpoint.collection === 0x0003) ||
endpoint.interface === 1;
}

Cette fonction définit le type de protocole USB à utiliser. La plupart des appareils utilisent des protocoles HID, mais certains appareils comme les AIO utiliseront des fonctions de contrôle USB brut à la place.

Remarque : La valeur par défaut lorsque cette fonction n’est pas disponible pour SignalRGB est le protocole HID.

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

Cette fonction exporte une liste de noms d’exécutables en conflit. SignalRGB n’initialisera pas le plugin pendant que l’un d’eux est en cours d’exécution. Le plugin sera initialisé lorsque le processus conflictuel sera fermé ou que le message d’erreur sera contourné par l’utilisateur.

Remarque : Ces noms doivent correspondre exactement au nom de l’exécutable en cours d’exécution.

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

Cette fonction retourne la chaîne URL de l’image de l’appareil. La taille d’image standard du plugin est 1024x1024 avec une zone active de 920x920.

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