Aller au contenu

Utilitaires

Cette fonction est votre moyen de récupérer des données de couleur depuis le canevas. Elle prend en entrée une position X,Y relative au tampon de pixels de l’appareil sur le canevas et retourne un tableau [R,G,B] de la couleur à ce pixel.

ParamètreTypeDescriptionExemple
XIntUne valeur entière représentant la coordonnée X dans le tampon de pixels de l’appareil5
YIntUne valeur entière représentant la coordonnée Y dans le tampon de pixels de l’appareil3
  • Remarque : les coordonnées X,Y envoyées doivent être dans le tampon de pixels défini par l’export Size()
RetourTypeDescriptionExemple
ColorArrayTableau 1DUn tableau de longueur 3 contenant les valeurs coordonnées [R, G, B] allant de 0-255 (HEX 00-FF)[128,158,255]

Voici un exemple simplifié de la fonction utilisée dans une situation typique.

for(var iIdx = 0; iIdx < vLedPositions.length; iIdx++) //Pour chaque LED sur l'appareil
{
var iPxX = vLedPositions[iIdx][0]; //Obtenir les valeurs X et Y depuis le tableau [X,Y]
var iPxY = vLedPositions[iIdx][1];
var col; // créer une variable pour contenir les données du tableau [R.G.B]
if(shutdown){ // Vérifier les paramètres qui peuvent remplacer l'appel Device.color()
col = hexToRgb(shutdownColor)
}else if (LightingMode == "Forced") {
col = hexToRgb(forcedColor)
}else{
col = device.color(iPxX, iPxY); //Appel de Device.color avec les valeurs X et Y
}
//Sauvegarde des données de couleur dans l'ordre dans un tableau plus grand de toutes les données LED
RGBdata[iIdx*3] = col[0]; // Canal Rouge
RGBdata[iIdx*3+1] = col[1]; // Canal Vert
RGBdata[iIdx*3+2] = col[2]; // Canal Bleu
TotalLedCount += 1;
}

Retourne le niveau de luminosité actuel de l’appareil dans SignalRGB. Cette valeur est déjà appliquée aux couleurs retournées par device.color() ou similaire.

RetourTypeDescriptionExemple
BrightnessintLuminosité actuelle dans la plage 0-10042

Retourne le nom WMI de la carte mère du système actuel.

RetourTypeDescriptionExemple
MotherboardNamestringNom de la carte mère du systèmeB550 Aorus Elite

Cette fonction tente de mettre en pause le thread de l’appareil pour la durée donnée. Ces pauses ne sont pas garanties d’être exactes en raison de la façon dont le système d’exploitation gère les mises en veille des threads.

ParamètreTypeDescriptionExemple
DurationIntDurée de pause demandée en millisecondes1
  • Remarque : Windows a un temps de sommeil minimum de 1-2ms et commencera à se dégrader à mesure que le sommeil devient plus long, donc ne l’utilisez pas pour des temporisations précises.
packet[89] = CalculateCrc(packet);
device.send_report(packet, 91);
device.pause(1); // Nous avons besoin d'une pause ici (entre les paquets), sinon l'ornata ne peut pas suivre.

Cette fonction change le point de terminaison actif pour toutes les commandes de lecture et d’écriture. C’est utile pour les appareils qui ont plusieurs points de terminaison ouverts pour différentes commandes. Un exemple courant est celui des appareils Logitech qui ont un point de terminaison de données RGB et un point de terminaison de commande système pour des choses comme les paramètres DPI.

ParamètreTypeDescriptionExemple
interfaceHEXUne valeur hexadécimale 0x représentant l’interface du point de terminaison à ouvrir0x0002
usageHEXUne valeur hexadécimale 0x représentant l’usage du point de terminaison à ouvrir0x0006
usage_pageHEXUne valeur hexadécimale 0x représentant l’usage_page du point de terminaison à ouvrir0x0080
collectionHEXUne valeur hexadécimale 0x représentant la collection du point de terminaison à ouvrir0x0001
function Apply()
{
var packet = [];
packet[0] = 0x11;
packet[1] = 0xFF;
packet[2] = 0x0C;
packet[3] = 0x5E;
device.set_endpoint(1, 0x0602, 0xff43); // Interface système
device.write(packet, 20);
}

Cette fonction est la version plugin de console.log. Elle prend en entrée une chaîne, un nombre, un objet ou un tableau et le journalise dans la console de l’appareil pour le débogage et les informations utilisateur. Cela peut être particulièrement utile pour lister des choses comme les changements de DPI, les erreurs, ou pendant le développement pour afficher la structure de vos paquets ou les entrées des commandes de lecture.

  • Remarque : Cette fonction essaiera de convertir les variables JavaScript en chaînes là où elle le peut. La journalisation des littéraux de gabarit JavaScript avec parseInt(), toString(), ou JSON.stringify peut vous donner plus de contrôle sur la conversion et le formatage.
ParamètreTypeDescriptionExempleDéfaut
ItemValeur JavascriptUne chaîne, un nombre, un tableau ou une autre valeur JavaScript à journaliser
OptionsObjet JavaScriptUn objet Javascript contenant des paramètres de configuration{hex: True}{}
OptionsDescriptionTypeDéfaut
HexDéfinit si les entiers doivent être imprimés en format décimal ou hexadécimalBooleanFalse
toFileDéfinit si les éléments imprimés doivent apparaître dans les journaux de débogage, ou seulement dans la console de l’appareilBooleanFalse
let ImportantData = "i have really important info here";
device.log(ImportantData, {toFile: true})

Les alertes peuvent être utilisées pour signaler visuellement à l’utilisateur s’il y a un problème avec son appareil. Elles doivent être utilisées avec parcimonie et réservées aux problèmes bloquants comme les appareils non configurés correctement.

Crée une nouvelle alerte pour l’utilisateur. La valeur de retour peut être utilisée pour supprimer sélectivement l’alerte et devrait l’être si l’utilisateur résout le problème signalé.

Priorité d’alerteDescriptionValeur
InfoAlerte normale0
ImportantAlerte critique (en surbrillance)1
ParamètreTypeDescriptionExemple
TitleStringTitre de l’alerteFirmware Incompatible
DescriptionStringDescription de l’alerteFirmware Version must be >= 2.0.0
PriorityIntPriorité de l’alerte0 | 1
RetourTypeDescription
AlertIdStringLa chaîne d’identifiant de l’alerte créée
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);

Supprime l’alerte donnée si elle existe.

ParamètreTypeDescription
AlertIdStringAlertId retourné par device.notify
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);
// Faire des choses et revérifier si le problème signalé est résolu
device.denotify(AlertId);

Les messages de l’appareil fournissent un moyen de transmettre des informations importantes, mais non bloquantes, à l’utilisateur. Ces messages n’apparaîtront que sur la page de l’appareil.

Ajoute un nouveau message de l’appareil avec le MessageId donné.

ParamètreTypeDescriptionExemple
messageIdstringMessageId associé au message de l’appareil”mymessage”
messagestringTexte du message à afficher”The message”
tooltipstringTexte supplémentaire affiché au survol”Some more info”
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");

Supprime le message créé avec le MessageId donné s’il existe.

ParamètreTypeDescription
messageIdstringMessageId à supprimer
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");
// le message n'est plus pertinent
device.removeMessage("message1");