Utilitaires
Utilitaires de l’appareil
Section intitulée « Utilitaires de l’appareil »device.color()
Section intitulée « device.color() »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ètre | Type | Description | Exemple |
|---|---|---|---|
| X | Int | Une valeur entière représentant la coordonnée X dans le tampon de pixels de l’appareil | 5 |
| Y | Int | Une valeur entière représentant la coordonnée Y dans le tampon de pixels de l’appareil | 3 |
- Remarque : les coordonnées X,Y envoyées doivent être dans le tampon de pixels défini par l’export Size()
| Retour | Type | Description | Exemple |
|---|---|---|---|
| ColorArray | Tableau 1D | Un 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; }device.getBrightness()
Section intitulée « device.getBrightness() »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.
| Retour | Type | Description | Exemple |
|---|---|---|---|
| Brightness | int | Luminosité actuelle dans la plage 0-100 | 42 |
device.getMotherboardName()
Section intitulée « device.getMotherboardName() »Retourne le nom WMI de la carte mère du système actuel.
| Retour | Type | Description | Exemple |
|---|---|---|---|
| MotherboardName | string | Nom de la carte mère du système | B550 Aorus Elite |
device.pause()
Section intitulée « device.pause() »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ètre | Type | Description | Exemple |
|---|---|---|---|
| Duration | Int | Durée de pause demandée en millisecondes | 1 |
- 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.device.set_endpoint()
Section intitulée « device.set_endpoint() »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ètre | Type | Description | Exemple |
|---|---|---|---|
| interface | HEX | Une valeur hexadécimale 0x représentant l’interface du point de terminaison à ouvrir | 0x0002 |
| usage | HEX | Une valeur hexadécimale 0x représentant l’usage du point de terminaison à ouvrir | 0x0006 |
| usage_page | HEX | Une valeur hexadécimale 0x représentant l’usage_page du point de terminaison à ouvrir | 0x0080 |
| collection | HEX | Une valeur hexadécimale 0x représentant la collection du point de terminaison à ouvrir | 0x0001 |
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);}device.log()
Section intitulée « device.log() »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ètre | Type | Description | Exemple | Défaut |
|---|---|---|---|---|
| Item | Valeur Javascript | Une chaîne, un nombre, un tableau ou une autre valeur JavaScript à journaliser | ||
| Options | Objet JavaScript | Un objet Javascript contenant des paramètres de configuration | {hex: True} | {} |
| Options | Description | Type | Défaut |
|---|---|---|---|
| Hex | Définit si les entiers doivent être imprimés en format décimal ou hexadécimal | Boolean | False |
| toFile | Définit si les éléments imprimés doivent apparaître dans les journaux de débogage, ou seulement dans la console de l’appareil | Boolean | False |
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.
device.notify()
Section intitulée « device.notify() »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’alerte | Description | Valeur |
|---|---|---|
| Info | Alerte normale | 0 |
| Important | Alerte critique (en surbrillance) | 1 |
| Paramètre | Type | Description | Exemple |
|---|---|---|---|
| Title | String | Titre de l’alerte | Firmware Incompatible |
| Description | String | Description de l’alerte | Firmware Version must be >= 2.0.0 |
| Priority | Int | Priorité de l’alerte | 0 | 1 |
| Retour | Type | Description |
|---|---|---|
| AlertId | String | La chaîne d’identifiant de l’alerte créée |
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);device.denotify()
Section intitulée « device.denotify() »Supprime l’alerte donnée si elle existe.
| Paramètre | Type | Description |
|---|---|---|
| AlertId | String | AlertId 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);Messages
Section intitulée « Messages »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.

device.addMessage()
Section intitulée « device.addMessage() »Ajoute un nouveau message de l’appareil avec le MessageId donné.
| Paramètre | Type | Description | Exemple |
|---|---|---|---|
| messageId | string | MessageId associé au message de l’appareil | ”mymessage” |
| message | string | Texte du message à afficher | ”The message” |
| tooltip | string | Texte 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");device.removeMessage()
Section intitulée « device.removeMessage() »Supprime le message créé avec le MessageId donné s’il existe.
| Paramètre | Type | Description |
|---|---|---|
| messageId | string | MessageId à 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");