Yocto-color-v2 : manuel d'utilisation

Yocto-Color-V2 : Manuel d'utilisation

1. Introduction
1.1 Prérequis
1.2 Accessoires optionnels
2. Présentation
2.1 Les éléments communs
2.2 Les éléments spécifiques
3. Premiers pas
3.1 Localisation
3.2 Test du module
3.3 Configuration
4. Montage et connectique
4.1 Fixation
4.2 Déporter les Leds
4.3 Consommation
4.4 Contraintes d'alimentation par USB
5. Programmation, concepts généraux
5.1 Paradigme de programmation
5.2 Le module Yocto-Color-V2
5.3 Interface de contrôle du module
5.4 Interface de la fonction ColorLed
5.5 Interface de la fonction ColorLedCluster
5.6 Les espaces de couleurs: RGB et HSL
5.7 Les séquences
5.8 Quelle interface: Native, DLL ou Service?
5.9 Programmation, par où commencer?
6. Programmation avancée
6.1 Programmation par événements
7. Mise à jour du firmware
7.1 Le VirtualHub ou le YoctoHub
7.2 La librairie ligne de commandes
7.3 L'application Android Yocto-Firmware
7.4 La librairie de programmation
7.5 Le mode "mise à jour"
8. Utilisation avec des langages non supportés
8.1 Ligne de commande
8.2 Virtual Hub et HTTP GET
8.3 Utilisation des librairies dynamiques
8.4 Port de la librairie haut niveau
9. Référence de l'API de haut niveau
9.1 Fonctions générales
9.2 Interface de contrôle du module
9.3 Interface de la fonction ColorLed
9.4 Interface de la fonction ColorLedCluster
10. Problèmes courants
10.1 Linux et USB
10.2 Plateformes ARM: HF et EL
11. Caractéristiques
12. Index

1. Introduction

Le module Yocto-Color-V2 est un module de 60x20mm qui permet de commander indépendamment des LEDs RGB. Ces LEDs de moyenne puissance peuvent être pilotées soit en utilisant le système de couleur RGB, soit HSL. Etant doté d'un processeur, le module est capable d'opérer une transition automatique entre deux couleurs, il est même capable d'opérer une suite de transitions préprogrammées en toute autonomie. Ce module conviendra pour faire de la signalisation musclée, ou du petit éclairage d'ambiance.

Le module est composé de trois parties sécables: le module de commande proprement dit et des deux LEDs, ce qui permet de déporter les LEDs pour les placer dans des endroits relativement exigus. Bien qu'il ne soit livré qu'avec deux LEDs, il peut en piloter jusqu'à $SPECCHANNELCOUNT$ simultanément. Il est compatible avec les LEDs WS2812B, WS2812C et SK6812, ce qui le rend compatible avec des nombreux dispositifs basés sur ces LED1.

Le Yocto-Color-V2 peut être utilisé comme remplacement direct de son prédécesseur, le Yocto-Color, car son interface de programmation et ses caractéristiques matérielles sont 100% compatibles.


Le module Yocto-Color-V2

Yoctopuce vous remercie d'avoir fait l'acquisition de ce Yocto-Color-V2 et espère sincèrement qu'il vous donnera entière satisfaction. Les ingénieurs Yoctopuce se sont donnés beaucoup de mal pour que votre Yocto-Color-V2 soit facile à installer n'importe où et soit facile à piloter depuis un maximum de langages de programmation. Néanmoins, si ce module venait à vous décevoir n'hésitez pas à contacter le support Yoctopuce2.

Par design, tous les modules Yoctopuce se pilotent de la même façon, c'est pourquoi les documentations des modules de la gamme sont très semblables. Si vous avez déjà épluché la documentation d'un autre module Yoctopuce, vous pouvez directement sauter à la description des fonctions du module.

1.1. Prérequis

Pour pouvoir profiter pleinement de votre module Yocto-Color-V2, vous devriez disposer des éléments suivants.

Un ordinateur

Les modules de Yoctopuce sont destinés à être pilotés par un ordinateur (ou éventuellement un microprocesseur embarqué). Vous écrirez vous-même le programme qui pilotera le module selon vos besoin, à l'aide des informations fournies dans ce manuel.

Yoctopuce fourni les librairies logicielles permettant de piloter ses modules pour les systèmes d'exploitation suivants: Windows, Mac OS X, Linux et Android. Les modules Yoctopuce ne nécessitent pas l'installation de driver (ou pilote) spécifiques, car ils utilisent le driver HID3 fourni en standard dans tous les systèmes d'exploitation.

Les versions de Windows actuellement supportées sont Windows XP, Windows 2003, Windows Vista, Windows 7 et Windows 8.1. Les versions 32 bit et 64 bit sont supportées. Yoctopuce teste régulièrement le bon fonctionnement des modules sur Windows XP et Windows 7.

Les versions de Mac OS X actuellement supportées sont Mac OS X 10.6 (Snow Leopard), 10.7 (Lion), 10.8 (Mountain Lion) et 10.9 (Maverick). Yoctopuce teste régulièrement le bon fonctionnement des modules sur Mac OS X 10.9 et 10.7.

Les versions de Linux supportées sont les kernels 2.6 et 3.0. D'autre versions du kernel et même d'autres variantes d'Unix sont très susceptibles d'être utilisées sans problème, puisque le support de Linux est fait via l'API standard de la libusb, disponible aussi pour FreeBSD par exemple. Yoctopuce teste régulièrement le bon fonctionnement des modules sur un kernel Linux 2.6.

Les versions de Android actuellement supportées sont 3.1 et suivantes. De plus, il est nécessaire que la tablette ou le téléphone supporte le mode USB Host. Yoctopuce teste régulièrement le bon fonctionnement des modules avec Android 4.x sur un Nexus 7 et un Samsung Galaxy S3 avec la librairie Java pour Android.

Un cable USB de type A-micro B

Il existe trois tailles de connecteurs USB, la taille "normale" que vous utilisez probablement pour brancher votre imprimante, la taille mini encore très courante et enfin la taille micro, souvent utilisée pour raccorder les téléphones portables, pour autant qu'ils n'arborent pas une pomme. Les modules de Yoctopuce sont tous équipés d'une connectique au format micro-USB.


Les connecteurs USB 2 les plus courants: A, B, Mini B, Micro A, Micro B. 4

Pour connecter votre module Yocto-Color-V2 à un ordinateur, vous avez besoin d'un cable USB de type A-micro B. Vous trouverez ce cable en vente à des prix très variables selon les sources, sous la dénomination USB A to micro B Data cable. Prenez garde à ne pas acheter par mégarde un simple câble de charge, qui ne fournirait que le courant mais sans les fils de données. Le bon câble est disponible sur le shop de Yoctopuce.


Vous devez raccorder votre module Yocto-Color-V2 à l'aide d'un cable USB de type A - micro B

Si vous branchez un hub USB entre l'ordinateur et le module Yocto-Color-V2, prenez garde à ne pas dépasser les limites de courant imposées par USB, sous peine de faire face des comportements instables non prévisibles. Vous trouverez plus de détail à ce sujet dans le chapitre concernant le montage et la connectique.

1.2. Accessoires optionnels

Les accessoires ci-dessous ne sont pas nécessaires à l'utilisation du module Yocto-Color-V2, mais pourraient vous être utiles selon l'utilisation que vous en faites. Il s'agit en général de produits courants que vous pouvez vous procurer chez vos fournisseurs habituels de matériel de bricolage. Pour vous éviter des recherches, ces produits sont en général aussi disponibles sur le shop de Yoctopuce.

Vis et entretoises

Pour fixer le module Yocto-Color-V2 à un support, vous pouvez placer des petites vis de 2.5mm avec une tête de 4.5mm au maximum dans les trous prévus ad-hoc. Il est conseillé de les visser dans des entretoises filetées, que vous pourrez fixer sur le support. Vous trouverez plus de détail à ce sujet dans le chapitre concernant le montage et la connectique.

Micro-hub USB

Si vous désirez placer plusieurs modules Yoctopuce dans un espace très restreint, vous pouvez les connecter ensemble à l'aide d'un micro-hub USB. Yoctopuce fabrique des hubs particulièrement petits précisément destinés à cet usage, dont la taille peut être réduite à 20mm par 36mm, et qui se montent en soudant directement les modules au hub via des connecteurs droits ou des câbles nappe. Pour plus de détail, consulter la fiche produit du micro-hub USB.

YoctoHub-Ethernet, YoctoHub-Wireless and YoctoHub-GSM

Vous pouvez ajouter une connectivité réseau à votre Yocto-Color-V2 grâce aux hubs YoctoHub-Ethernet, YoctoHub-Wireless et YoctoHub-GSM qui offrent respectivement une connectivité Ethernet, Wifi et GSM. Chacun de ces hubs peut piloter jusqu'à trois modules Yoctopuce et se comporte exactement comme un ordinateur normal qui ferait tourner un VirtualHub.

Câble de servo et broche

Si vous désirez séparer les LEDs du module Yocto-Color-V2, vous pouvez re-câbler l'ensemble en utilisant du câble de servo-moteur de modélisme, et des broches, coudées ou non, espacées de 2.54mm. /p>


Vous pouvez utiliser du câble de servo pour re-câbler le module

Panneau et ruban de RGB

Le Yocto-Color-V2 peut contrôler simultanément jusqu'à $SPECCHANNELCOUNT$ LEDS RGB numériques, pour autant que ce soit les modèles WS2812B, WS2812C ou SK6812. Vous trouverez dans le commerce des dispositifs équipés de ces LEDs sous forme de ruban, panneau, barrette ou encore d'anneau. Yoctopuce ne vend pas ce genre d'accessoires mais vous en trouverez par exemple chez Adafruit5 sous la marque NEOPIXEL.


Le Yocto-Color-V2 peut piloter des panneaux de LEDs basés sur les modèles WS2812B, WS2812C ou SK6812.

Boîtier

Votre Yocto-Color-V2 a été conçu pour pouvoir être installé tel quel dans votre projet. Néanmoins Yoctopuce commercialise des boîtiers spécialement conçus pour les modules Yoctopuce. Ces boîtiers sont munis de pattes de fixation amovibles et d'aimants de fixation. Vous trouverez plus d'informations à propos de ces boîtiers sur le site de Yoctopuce6. Le boîtier recommandé pour votre Yocto-Color-V2 est le modèle YoctoBox-Long-Thin-Black


Vous pouvez installer votre Yocto-Color-V2 dans un boîtier optionnel.

2. Présentation


1:Prise USB micro-B6:LED RGB 1
2:Yocto-bouton 7:Sortie LED RGB 1
3:Yocto-Led 8:Entrée LED RGB 2
4:Sortie numérique RGB9:LED RGB 2
5:Entrée LED RGB 110:Sortie RGB 2

2.1. Les éléments communs

Tous les Yocto-modules ont un certain nombre de fonctionnalités en commun.

Le connecteur USB

Les modules de Yoctopuce sont tous équipés d'une connectique au format micro-USB. Les câbles correspondants ne sont pas forcément les plus faciles à trouver, mais ces connecteurs ont l'avantage d'occuper un minimum de place.

Attention le connecteur USB est simplement soudé en surface et peut être arraché si la prise USB venait à faire levier. Si les pistes sont restées en place, le connecteur peut être ressoudé à l'aide d'un bon fer et de flux. Alternativement, vous pouvez souder un fil USB directement dans les trous espacés de 1.27mm prévus à cet effet, prêt du connecteur.

Le Yocto-bouton

Le Yocto-bouton a deux fonctions. Premièrement, il permet d'activer la Yocto-balise (voir la Yocto-led ci-dessous). Deuxièmement, si vous branchez un Yocto-module en maintenant ce bouton appuyé, il vous sera possible de reprogrammer son firmware avec une nouvelle version. Notez qu'il existe une méthode plus simple pour mettre à jour le firmware depuis l'interface utilisateur, mais cette méthode-là peut fonctionner même lorsque le firmware chargé sur le module est incomplet ou corrompu.

La Yocto-Led

En temps normal la Yocto-Led sert à indiquer le bon fonctionnement du module: elle émet alors une faible lumière bleue qui varie lentement mimant ainsi une respiration. La Yocto-Led cesse de respirer lorsque le module ne communique plus, par exemple si il est alimenté par un hub sans connexion avec un ordinateur allumé.

Lorsque vous appuyez sur le Yocto-bouton, la Led passe en mode Yocto-balise: elle se met alors à flasher plus vite et beaucoup plus fort, dans le but de permettre une localisation facile d'un module lorsqu'on en a plusieurs identiques. Il est en effet possible de déclencher la Yocto-balise par logiciel, tout comme il est possible de détecter par logiciel une Yocto-balise allumée.

La Yocto-Led a une troisième fonctionnalité moins plaisante: lorsque ce logiciel interne qui contrôle le module rencontre une erreur fatale, elle se met à flasher SOS en morse7. Si cela arrivait débranchez puis rebranchez le module. Si le problème venait à se reproduire vérifiez que le module contient bien la dernière version du firmware, et dans l'affirmative contactez le support Yoctopuce8.

La sonde de courant

Chaque Yocto-module est capable de mesurer sa propre consommation de courant sur le bus USB. La distribution du courant sur un bus USB étant relativement critique, cette fonctionnalité peut être d'un grand secours. La consommation de courant du module est consultable par logiciel uniquement.

Le numéro de série

Chaque Yocto-module a un numéro de série unique attribué en usine, pour les modules Yocto-Color-V2 ce numéro commence par YRGBLED2. Le module peut être piloté par logiciel en utilisant ce numéro de série. Ce numéro de série ne peut pas être changé.

Le nom logique

Le nom logique est similaire au numéro de série, c'est une chaine de caractère sensée être unique qui permet référencer le module par logiciel. Cependant, contrairement au numéro de série, le nom logique peut être modifié à volonté. L'intérêt est de pouvoir fabriquer plusieurs exemplaire du même projet sans avoir à modifier le logiciel de pilotage. Il suffit de programmer les même noms logique dans chaque exemplaire. Attention le comportement d'un projet devient imprévisible s'il contient plusieurs modules avec le même nom logique et que le logiciel de pilotage essaye d'accéder à l'un de ces module à l'aide de son nom logique. A leur sortie d'usine, les modules n'ont pas de nom logique assigné, c'est à vous de le définir.

2.2. Les éléments spécifiques

Les deux LEDs RGB

Ces deux LEDs ont la particularité de pouvoir émettre trois couleurs différentes: rouge, vert et bleu. Il s'agit en fait de trois LEDs distinctes logées dans le même boîtier. En modulant précisément la puissance de chacune ces trois LEDs il est possible de créer à peu près n'importe quelle couleur, blanc compris. Les LED RGB utilisées dans le Yocto-Color-V2 sont des LED dites "intelligentes" (smart LED) qui peuvent être chaînées. Ces LEDs sont conçues pour recevoir en entrée un signal de commande numérique qu'elles sont capables d'interpréter puis de rediriger sur leur sortie vers les LED suivantes de la chaîne. Cette technologie permet de chaîner un nombre important de ces LEDS avec seulement trois fils: Masse, 5V, et signal. Pour plus de détails, voir les schémas du chapitre 4, Montage et connectique.

3. Premiers pas

Arrivé à ce chapitre votre Yocto-Color-V2 devrait être branché à votre ordinateur, qui devrait l'avoir reconnu. Il est temps de le faire fonctionner.

Rendez-vous sur le site de Yoctopuce et téléchargez le programme Virtual Hub9, Il est disponible pour Windows, Linux et Mac OS X. En temps normal le programme Virtual Hub sert de couche d'abstraction pour les langages qui ne peuvent pas accéder aux couches matérielles de votre ordinateur. Mais il offre aussi une interface sommaire pour configurer vos modules et tester les fonctions de base, on accède à cette interface à l'aide d'un simple browser web 10. Lancez le Virtual Hub en ligne de commande, ouvrez votre browser préféré et tapez l'adresse http://127.0.0.1:4444. Vous devriez voir apparaître la liste des modules Yoctopuce raccordés à votre ordinateur.


Liste des modules telle qu'elle apparaît dans votre browser.

3.1. Localisation

Il est alors possible de localiser physiquement chacun des modules affichés en cliquant sur le bouton beacon, cela a pour effet de mettre la Yocto-Led du module correspondant en mode "balise", elle se met alors à clignoter ce qui permet de la localiser facilement. Cela a aussi pour effet d'afficher une petite pastille bleue à l'écran. Vous obtiendrez le même comportement en appuyant sur le Yocto-bouton d'un module.

3.2. Test du module

La première chose à vérifier est le bon fonctionnement de votre module: cliquez sur le numéro de série correspondant à votre module, et une fenêtre résumant les propriétés de votre Yocto-Color-V2.


Propriétés du module Yocto-Color-V2.

Cette fenêtre vous permet, entre autres, de jouer avec les LED RGB pilotées par le module. Il y a un carré coloré par LED gérée11. Pour changer la couleur d'une LED, cliquez simplement sur le carré correspondant, ce qui fera apparaître une palette permettant de choisir la nouvelle couleur dans un espace RGB ou HSL. Vous remarquerez que la consommation du module varie en fonction des couleurs affichées.

3.3. Configuration

Si, dans la liste de modules, vous cliquez sur le bouton configure correspondant à votre module, la fenêtre de configuration apparaît.


Configuration du module Yocto-Color-V2.

Firmware

Le firmware du module peut être facilement mis à jour à l'aide de l'interface. Pour ce faire, vous devez au préalable disposer du firmware adéquat sur votre disque local. Les firmwares destinés aux modules Yoctopuce se présentent sous la forme de fichiers .byn et peuvent être téléchargés depuis le site web de Yoctopuce.

Pour mettre à jour un firmware, cliquez simplement sur le bouton upgrade de la fenêtre de configuration et suivez les instructions. Si pour une raison ou une autre, la mise à jour venait à échouer, débranchez puis rebranchez le module. Recommencer la procédure devrait résoudre alors le problème. Si le module a été débranché alors qu'il était en cours de reprogrammation, il ne fonctionnera probablement plus et ne sera plus listé dans l'interface. Mais il sera toujours possible de le reprogrammer correctement en utilisant le programme Virtual Hub12 en ligne de commande 13.

Nom logique du module

Le nom logique est un nom choisi par vous, qui vous permettra d'accéder à votre module, de la même manière qu'un nom de fichier vous permet d'accéder à son contenu. Un nom logique doit faire au maximum 19 caractères, les caractères autorisés sont les caractères A..Z a..z 0..9 _ et -. Si vous donnez le même nom logique à deux modules raccordés au même ordinateur, et que vous tentez d'accéder à l'un des modules à l'aide de ce nom logique, le comportement est indéterminé: vous n'avez aucun moyen de savoir lequel des deux va répondre.

Luminosité

Ce paramètre vous permet d'agir sur l'intensité maximale des leds présentes sur le module. Ce qui vous permet, si nécessaire, de le rendre un peu plus discret tout en limitant sa consommation. Notez que ce paramètre agit sur toutes les leds de signalisation du module, y compris la Yocto-Led. Si vous branchez un module et que rien ne s'allume, cela veut peut être dire que sa luminosité a été réglée à zéro.

Nom logique des fonctions

Chaque module Yoctopuce a un numéro de série, et un nom logique. De manière analogue, chaque fonction présente sur chaque module Yoctopuce a un nom matériel et un nom logique, ce dernier pouvant être librement choisi par l'utilisateur. Utiliser des noms logiques pour les fonctions permet une plus grande flexibilité au niveau de la programmation des modules

Le module Yocto-Color-V2 offre plusieurs types de fonction.

La fonction ColorLed

Il y a deux instances de la fonction ColorLed qui permettent de contrôler les deux premières LED connectées au module. Ces deux instances servent surtout à assurer la compatibilité avec la première version du Yocto-Color. Ainsi, un logiciel conçu pour fonctionner avec un Yocto-Color fonctionnera sans problème avec un Yocto-Color-V2.

La fonction ColorLedCluster

La ColorLedCluster dont il existe une seule instance permet de contrôler un nombre arbitraire de LED RGB, y compris les deux premières. Cette fonction est particulièrement utile pour contrôler des rubans ou des panneaux de LED.

La fonction ColorLedCluster peut gérer jusqu'à $SPECCHANNELCOUNT$ LEDs qu'elles soient connectées ou pas. Cependant, plus il y a de LEDs à piloter, plus le processeur du module est mis à contribution. Avec ce paramètre réglé maximum, de légères saccades pourraient apparaître lors de transitions automatiques. Il n'est donc pas forcément souhaitable de configurer le module pour piloter des LED qui n'existent pas.

Couleur au démarrage

Le module peut mémoriser une couleur de démarrage pour chaque LED. Cliquez simplement sur le carré coloré correspondant à la LED à configurer pour obtenir une palette de couleurs. Il est aussi possible d'utiliser la couleur courante des LEDs comme couleur de démarrage.

Une application de cette fonction consiste à configurer la couleur de démarrage des LEDs à l'aide d'un ordinateur, et ensuite d'alimenter le module à l'aide d'un simple chargeur USB. Vous pouvez ainsi facilement fabriquer un éclairage dont la couleur est configurable.

4. Montage et connectique

Ce chapitre fournit des explications importantes pour utiliser votre module Yocto-Color-V2 en situation réelle. Prenez soin de le lire avant d'aller trop loin dans votre projet si vous voulez éviter les mauvaises surprises.

4.1. Fixation

Pendant la mise au point de votre projet vous pouvez vous contenter de laisser le module se promener au bout de son câble. Veillez simplement à ce qu'il ne soit pas en contact avec quoi que soit de conducteur (comme vos outils). Une fois votre projet pratiquement terminé il faudra penser à faire en sorte que vos modules ne puissent pas se promener à l'intérieur.


Exemples de montage sur un support.

Le module Yocto-Color-V2 dispose de trous de montage 2.5mm. Vous pouvez utiliser ces trous pour y passer des vis. Le diamètre de la tête de ces vis ne devra pas dépasser 4.5mm, sous peine d'endommager les circuits du module. Veillez à que la surface inférieure du module ne soit pas en contact avec le support. La méthode recommandée consiste à utiliser des entretoises, mais il en existe d'autres. Rien ne vous empêche de le fixer au pistolet à colle; ça ne sera pas très joli mais ça tiendra.

Si vous comptez visser votre module directement contre une paroi conductrice, un chassis métallique par exemple, intercalez une couche isolante entre les deux. Sinon vous aller à coup sûr provoquer un court-circuit: il y a des pads à nu sous votre module. Du simple ruban adhésif d'emballage devrait faire l'affaire.

4.2. Déporter les Leds

Le module Yocto-Color-V2 est conçu pour pouvoir être séparé en trois morceaux afin de vous permettre de déporter les Leds. Vous pouvez les séparer en cassant simplement le circuit, mais vous obtiendrez un meilleur résultat en utilisant une bonne paire de tenailles, ou une grosse pince coupante. Une fois les sous-modules séparés vous pouvez poncer sans risque les parties qui dépassent.


Le module Yocto-Color-V2 est conçu pour pouvoir être séparé en trois parties.


Câblage des sous module une fois ceux-ci séparés.

Une fois les modules séparés vous allez devoir les re-câbler. Plusieurs solutions s'offrent à vous. Vous pouvez raccorder les sous-modules en soudant des fils électriques tout simples, c'est la solution la plus accessible mais c'est loin d'être la plus pratique. Les trois éléments du module mettent a disposition trois trous avec un espacement standard de 2.54mm. Vous pourrez y souder un bornier14. Vous pouvez aussi utiliser des broches coudées au pas 2.54mm et des cables de servo moteur de modélisme.


Exemple de câblage des sous-modules à l'aide de câbles de servos.

Le raccordement entre sous modules se fait entre à l'aide de 3 fils: Signal, 5V, et masse. Sur le Yocto-Color-V2, la masse est indiquée avec une empreinte carrée.

Vous n'êtes pas obligé de raccorder les deux LEDs, le module fonctionnera parfaitement si une seule des deux LED est raccordée. Les deux sous-modules sont interchangeables, mais quel que soit l'ordre dans lequel les sous-modules sont connectés, le LED 1 correspond toujours à celle qui est directement connectée la partie principale, la LED 2 correspond à la suivante, etc....

Attention, les modules doivent être connectés en série, c'est à dire chaînés. Chaque sous module a une entrée et une sortie, chaque sortie d'un sous module doit être connecté à l'entrée du sous module suivant. La longueur de câblage entre deux LEDs voisines doit être inférieure à 5 mètres.


Attention à la polarité et au sens de LEDS, chacune a une entrée et une sortie.

Vous pouvez aussi connecter n'importe quel dispositif de LED basé sur les les modèles WS2812B, WS2812C et SK6812 jusqu'à concurrence de $SPECCHANNELCOUNT$ LED distinctes.


Le Yocto-Color-V2 est capable de piloter beaucoup plus que deux LEDs

Il n'y a pas de moyen logiciel direct de savoir combien LEDs sont raccordées au module de contrôle; mais il est possible de se faire une idée en testant les variations de consommation du module: si vous donnez l'ordre d'allumer une LED et que la consommation augmente, cela signifie que la LED correspondante est présente.

4.3. Consommation

Chacune des LED du Yocto-Color-V2 peuvent consommer jusqu' à 45mA lorsqu'elle émet une lumière blanche à pleine puissance. Cependant, un module USB n'est pas censé consommer plus de 500 mA. Le Yocto-Color-V2 est lui-même capable de dépasser cette limite de 500mA, mais il va se mettre à chauffer. C'est pourquoi, si souhaitez utiliser beaucoup de LED et pensez que vous allez largement dépasser les 500mA, il est conseillé d'utiliser une alimentation externe, câblée selon l'illustration ci-dessous.


Câblage avec une alimentation externe

Chacune de ces LEDS dites intelligentes contient un petit processeur et est accompagnée d'un petit condensateur SMD, généralement soudé juste à coté de la LED, qui sert à assurer une alimentation raisonnablement stable. Si un grand nombre de LEDs est branché d'un seul coup à un Yocto-Color-V2 déjà sous tension, la brève baisse de tension due au fort appel de courant causé par les nombreux condensateurs en parallèle peut faire redémarrer le Yocto-Color-V2. Ce comportement est normal.

4.4. Contraintes d'alimentation par USB

Bien que USB signifie Universal Serial BUS, les périphériques USB ne sont pas organisés physiquement en bus mais en arbre, avec des connections point-à-point. Cela a des conséquences en termes de distribution électrique: en simplifiant, chaque port USB doit alimenter électriquement tous les périphériques qui lui sont directement ou indirectement connectés. Et USB impose des limites.

En théorie, un port USB fournit 100mA, et peut lui fournir (à sa guise) jusqu'à 500mA si le périphérique les réclame explicitement. Dans le cas d'un hub non-alimenté, il a droit à 100mA pour lui-même et doit permettre à chacun de ses 4 ports d'utiliser 100mA au maximum. C'est tout, et c'est pas beaucoup. Cela veut dire en particulier qu'en théorie, brancher deux hub USB non-alimentés en cascade ne marche pas. Pour cascader des hubs USB, il faut utiliser des hubs USB alimentés, qui offriront 500mA sur chaque port.

En pratique, USB n'aurait pas eu le succès qu'il a si il était si contraignant. Il se trouve que par économie, les fabricants de hubs omettent presque toujours d'implémenter la limitation de courant sur les ports: ils se contentent de connecter l'alimentation de tous les ports directement à l'ordinateur, tout en se déclarant comme hub alimenté même lorsqu'ils ne le sont pas (afin de désactiver tous les contrôles de consommation dans le système d'exploitation). C'est assez malpropre, mais dans la mesure où les ports des ordinateurs sont eux en général protégés par une limitation de courant matérielle vers 2000mA, ça ne marche pas trop mal, et cela fait rarement des dégâts.

Ce que vous devez en retenir: si vous branchez des modules Yoctopuce via un ou des hubs non alimentés, vous n'aurez aucun garde-fou et dépendrez entièrement du soin qu'aura mis le fabricant de votre ordinateur pour fournir un maximum de courant sur les ports USB et signaler les excès avant qu'ils ne conduisent à des pannes ou des dégâts matériels. Si les modules sont sous-alimentés, ils pourraient avoir un comportement bizarre et produire des pannes ou des bugs peu reproductibles. Si vous voulez éviter tout risque, ne cascadez pas les hubs non-alimentés, et ne branchez pas de périphérique consommant plus de 100mA derrière un hub non-alimenté.

Pour vous faciliter le contrôle et la planification de la consommation totale de votre projet, tous les modules Yoctopuce sont équipés d'une sonde de courant qui indique (à 5mA près) la consommation du module sur le bus USB.

5. Programmation, concepts généraux

L'API Yoctopuce a été pensée pour être à la fois simple à utiliser, et suffisamment générique pour que les concepts utilisés soient valables pour tous les modules de la gamme Yoctopuce et ce dans tous les langages de programmation disponibles. Ainsi, une fois que vous aurez compris comment piloter votre Yocto-Color-V2 dans votre langage de programmation favori, il est très probable qu'apprendre à utiliser un autre module, même dans un autre langage, ne vous prendra qu'un minimum de temps.

5.1. Paradigme de programmation

L'API Yoctopuce est une API orientée objet. Mais dans un souci de simplicité, seules les bases de la programmation objet ont été utilisées. Même si la programmation objet ne vous est pas familière, il est peu probable que cela vous soit un obstacle à l'utilisation des produits Yoctopuce. Notez que vous n'aurez jamais à allouer ou désallouer un objet lié à l'API Yoctopuce: cela est géré automatiquement.

Il existe une classe par type de fonctionnalité Yoctopuce. Le nom de ces classes commence toujours par un Y suivi du nom de la fonctionnalité, par exemple YTemperature, YRelay, YPressure, etc.. Il existe aussi une classe YModule, dédiée à la gestion des modules en temps que tels, et enfin il existe la classe statique YAPI, qui supervise le fonctionnement global de l'API et gère les communications à bas niveau.


Structure de l'API Yoctopuce.

La classe YSensor

A chaque fonctionnalité d'un module Yoctopuce, correspond une classe: YTemperature pour mesurer la température, YVoltage pour mesurer une tension, YRelay pour contrôler un relais, etc. Il existe cependant une classe spéciale qui peut faire plus: YSensor.

Cette classe YSensor est la classe parente de tous les senseurs Yoctopuce, elle permet de contrôler n'importe quel senseur, quel que soit son type, en donnant accès au fonctions communes à tous les senseurs. Cette classe permet de simplifier la programmation d'applications qui utilisent beaucoup de senseurs différents. Mieux encore, si vous programmez une application basée sur la classe YSensor elle sera compatible avec tous les senseurs Yoctopuce, y compris ceux qui n'existent pas encore.

Programmation

Dans l'API Yoctopuce, la priorité a été mise sur la facilité d'accès aux fonctionnalités des modules en offrant la possibilité de faire abstraction des modules qui les implémentent. Ainsi, il est parfaitement possible de travailler avec un ensemble de fonctionnalités sans jamais savoir exactement quel module les héberge au niveau matériel. Cela permet de considérablement simplifier la programmation de projets comprenant un nombre important de modules.

Du point de vue programmation, votre Yocto-Color-V2 se présente sous la forme d'un module hébergeant un certain nombre de fonctionnalités. Dans l'API , ces fonctionnalités se présentent sous la forme d'objets qui peuvent être retrouvés de manière indépendante, et ce de plusieurs manières.

Accès aux fonctionnalités d'un module

Accès par nom logique

Chacune des fonctionnalités peut se voir assigner un nom logique arbitraire et persistant: il restera stocké dans la mémoire flash du module, même si ce dernier est débranché. Un objet correspondant à une fonctionnalité Xxx munie d'un nom logique pourra ensuite être retrouvée directement à l'aide de ce nom logique et de la méthode YXxx.FindXxx. Notez cependant qu'un nom logique doit être unique parmi tous les modules connectés.

Accès par énumération

Vous pouvez énumérer toutes les fonctionnalités d'un même type sur l'ensemble des modules connectés à l'aide des fonctions classiques d'énumération FirstXxx et nextXxxx disponibles dans chacune des classes YXxx.

Accès par nom hardware

Chaque fonctionnalité d'un module dispose d'un nom hardware, assigné en usine qui ne peut être modifié. Les fonctionnalités d'un module peuvent aussi être retrouvées directement à l'aide de ce nom hardware et de la fonction YXxx.FindXxx de la classe correspondante.

Différence entre Find et First

Les méthodes YXxx.FindXxxx et YXxx.FirstXxxx ne fonctionnent pas exactement de la même manière. Si aucun module n'est disponible YXxx.FirstXxxx renvoie une valeur nulle. En revanche, même si aucun module ne correspond, YXxx.FindXxxx renverra objet valide, qui ne sera pas "online" mais qui pourra le devenir, si le module correspondant est connecté plus tard.

Manipulation des fonctionnalités

Une fois l'objet correspondant à une fonctionnalité retrouvé, ses méthodes sont disponibles de manière tout à fait classique. Notez que la plupart de ces sous-fonctions nécessitent que le module hébergeant la fonctionnalité soit branché pour pouvoir être manipulées. Ce qui n'est en général jamais garanti, puisqu'un module USB peut être débranché après le démarrage du programme de contrôle. La méthode isOnline(), disponible dans chaque classe, vous sera alors d'un grand secours.

Accès aux modules

Bien qu'il soit parfaitement possible de construire un projet en faisant abstraction de la répartition des fonctionnalités sur les différents modules, ces derniers peuvent être facilement retrouvés à l'aide de l'API. En fait, ils se manipulent d'une manière assez semblable aux fonctionnalités. Ils disposent d'un numéro de série affecté en usine qui permet de retrouver l'objet correspondant à l'aide de YModule.Find(). Les modules peuvent aussi se voir affecter un nom logique arbitraire qui permettra de les retrouver ensuite plus facilement. Et enfin la classe YModule comprend les méthodes d'énumération YModule.FirstModule() et nextModule() qui permettent de dresser la liste des modules connectés.

Interaction Function / Module

Du point de vue de l'API, les modules et leurs fonctionnalités sont donc fortement décorrélés à dessein. Mais l'API offre néanmoins la possibilité de passer de l'un à l'autre. Ainsi la méthode get_module(), disponible dans chaque classe de fonctionnalité, permet de retrouver l'objet correspondant au module hébergeant cette fonctionnalité. Inversement, la classe YModule dispose d'un certain nombre de méthodes permettant d'énumérer les fonctionnalités disponibles sur un module.

5.2. Le module Yocto-Color-V2

Le module Yocto-Color-V2 offre deux instances de la fonction ColorLed, correspondant aux deux LEDs RGB du module. Il offre aussi une instance de ColorLedCluster qui permet de controler simultanément un nombre plus important de LEDs.

module : Module

attributtypemodifiable ?
productName  Texte  lecture seule
serialNumber  Texte  lecture seule
logicalName  Texte  modifiable
productId  Entier (hexadécimal)  lecture seule
productRelease  Entier (hexadécimal)  lecture seule
firmwareRelease  Texte  lecture seule
persistentSettings  Type énuméré  modifiable
luminosity  0..100%  modifiable
beacon  On/Off  modifiable
upTime  Temps  lecture seule
usbCurrent  Courant consommé (en mA)  lecture seule
rebootCountdown  Nombre entier  modifiable
userVar  Nombre entier  modifiable

colorLed1 : ColorLed
colorLed2 : ColorLed
attributtypemodifiable ?
logicalName  Texte  modifiable
advertisedValue  Texte  modifiable
rgbColor  Entier (24 bits)  modifiable
hslColor  Entier (24 bits)  modifiable
rgbMove  Agrégat  modifiable
hslMove  Agrégat  modifiable
rgbColorAtPowerOn  Entier (24 bits)  modifiable
blinkSeqSize  Nombre entier  lecture seule
blinkSeqMaxSize  Nombre entier  lecture seule
blinkSeqSignature  Nombre entier  lecture seule
command  Texte  modifiable

colorLedCluster : ColorLedCluster
attributtypemodifiable ?
logicalName  Texte  modifiable
advertisedValue  Texte  modifiable
activeLedCount  Nombre entier  modifiable
maxLedCount  Nombre entier  lecture seule
blinkSeqMaxCount  Nombre entier  lecture seule
blinkSeqMaxSize  Nombre entier  lecture seule
command  Texte  modifiable

files : Files
attributtypemodifiable ?
logicalName  Texte  modifiable
advertisedValue  Texte  modifiable
filesCount  Nombre entier  lecture seule
freeSpace  Nombre entier  lecture seule

5.3. Interface de contrôle du module

Cette interface est la même pour tous les modules USB de Yoctopuce. Elle permet de contrôler les paramètres généraux du module, et d'énumérer les fonctions fournies par chaque module.

productName

Chaîne de caractères contenant le nom commercial du module, préprogrammé en usine.

serialNumber

Chaine de caractères contenant le numéro de série, unique et préprogrammé en usine. Pour un module Yocto-Color-V2, ce numéro de série commence toujours par YRGBLED2. Il peut servir comme point de départ pour accéder par programmation à un module particulier.

logicalName

Chaine de caractères contenant le nom logique du module, initialement vide. Cet attribut peut être changé au bon vouloir de l'utilisateur. Une fois initialisé à une valeur non vide, il peut servir de point de départ pour accéder à un module particulier. Si deux modules avec le même nom logique se trouvent sur le même montage, il n'y a pas moyen de déterminer lequel va répondre si l'on tente un accès par ce nom logique. Le nom logique du module est limité à 19 caractères parmi A..Z,a..z,0..9,_ et -.

productId

Identifiant USB du module, préprogrammé à la valeur 101 en usine.

productRelease

Numéro de révision du module hardware, préprogrammé en usine.

firmwareRelease

Version du logiciel embarqué du module, elle change à chaque fois que le logiciel embarqué est mis à jour.

persistentSettings

Etat des réglages persistants du module: chargés depuis la mémoire non-volatile, modifiés par l'utilisateur ou sauvegardés dans la mémoire non volatile.

luminosity

Intensité lumineuse maximale des leds informatives (comme la Yocto-Led) présentes sur le module. C'est une valeur entière variant entre 0 (leds éteintes) et 100 (leds à l'intensité maximum). La valeur par défaut est 50. Pour changer l'intensité maximale des leds de signalisation du module, ou les éteindre complètement, il suffit donc de modifier cette valeur.

beacon

Etat de la balise de localisation du module.

upTime

Temps écoulé depuis la dernière mise sous tension du module.

usbCurrent

Courant consommé par le module sur le bus USB, en milli-ampères.

rebootCountdown

Compte à rebours pour déclencher un redémarrage spontané du module.

userVar

Attribut de type entier 32 bits à disposition de l'utilisateur.

5.4. Interface de la fonction ColorLed

La librairie de programmation Yoctopuce permet de piloter une LED couleur aussi bien en coordonnées RGB qu'en coordonnées HSL, les conversions RGB vers HSL étant faites automatiquement par le module. Ceci permet aisément d'allumer la LED avec une certaine teinte et d'en faire progressivement varier la saturation ou la luminosité. Si nécessaire, vous trouverez plus d'information sur la différence entre RGB et HSL dans la section suivante.

logicalName

Chaîne de caractères contenant le nom logique de la LED RGB, initialement vide. Cet attribut peut être changé au bon vouloir de l'utilisateur. Un fois initialisé à une valeur non vide, il peut servir de point de départ pour accéder à directement à la LED RGB. Si deux LEDs RGB portent le même nom logique dans un projet, il n'y a pas moyen de déterminer lequel va répondre si l'on tente un accès par ce nom logique. Le nom logique du module est limité à 19 caractères parmi A..Z,a..z,0..9,_ et -.

advertisedValue

Courte chaîne de caractères résumant l'état actuel de la LED RGB, et qui sera publiée automatiquement jusqu'au hub parent. Pour une LED RGB, la valeur publiée est la couleur RGB de la LED (6 digits hexadécimaux).

rgbColor

Couleur courante de la LED, sous la forme d'un entier encodé en RGB. Pour en extraire les composantes rouges verte et bleus il faut pour le rouge: faire un shift a droite de 16 bit, pour le vert faire un shift à droite de 8 bit et ne garder que les 8 bits de droite, pour le bleu ne garder que les 8 bits de droite.

hslColor

Couleur courante de la LED (comme rgbColor), mais exprimée dans le système de couleur HSL.

rgbMove

Permet de faire passer la LED de la couleur courante à une autre de manière continue et indépendante. La valeur est un agrégat comprenant la couleur cible encodée en RGB dans un entier, et une durée en millisecondes.

hslMove

Fonctionne de manière identique à rgbMove, mais en utilisant le système de couleurs HSL. En HSL, la teinte étant une valeur circulaire (0..360°) il y a toujours deux manières d'opérer la transition: en augmentant ou en diminuant le teinte. Le module optera pour la transition passant par le chemin le plus court. dans le cas d'une différence d'exactement 180°, il optera pour la transition qui augmente la valeur de la teinte.


En HSL, le module choisit la transition de teinte la plus courte. Dans le cas d'une différence de 180° la transition se fera dans le sens horaire.

rgbColorAtPowerOn

Couleur de la LED à rétablir lors la mise sous tension du module.

blinkSeqSize

Taille actuelle de la séquence de clignotement

blinkSeqMaxSize

Taille maximale de la séquence de clignotement

blinkSeqSignature

Signature de la séquence de clignotement

command

Attribut magique permettant d'envoyer des commandes avancées au module. Si une commande n'est pas interprétée comme attendue, consultez les logs du module.

5.5. Interface de la fonction ColorLedCluster

La librairie de programmation Yoctopuce permet de piloter un cluster de LED. Contrairement a la classe ColorLed, la classe ColorLedCluster permet de changer modifier plusieurs LEDs à la fois. Les changements de couleur peuvent être fait aussi bien en coordonnées RGB qu'en coordonnées HSL, les conversions RGB vers HSL étant faites automatiquement par le module. Ceci permet aisément d'allumer les LEDs avec une certaine teinte et d'en faire progressivement varier la saturation ou la luminosité.

logicalName

Chaîne de caractères contenant le nom logique du cluster de LEDs RGB, initialement vide. Cet attribut peut être changé au bon vouloir de l'utilisateur. Un fois initialisé à une valeur non vide, il peut servir de point de départ pour accéder à directement au cluster de LEDs RGB. Si deux clusters de LEDs RGB portent le même nom logique dans un projet, il n'y a pas moyen de déterminer lequel va répondre si l'on tente un accès par ce nom logique. Le nom logique du module est limité à 19 caractères parmi A..Z,a..z,0..9,_ et -.

advertisedValue

Courte chaîne de caractères résumant l'état actuel du cluster de LEDs RGB, et qui sera publiée automatiquement jusqu'au hub parent. Pour un cluster de LEDs RGB, la valeur publiée est le checksum du buffer de LEDs (6 digits hexadécimaux).

activeLedCount

Nombre de LEDs actuellement gérées par le module

maxLedCount

Nombre maximal de LEDs gérable par le module

blinkSeqMaxCount

Nombre maximal de sequences enregistrées

blinkSeqMaxSize

Taille maximale d'une sequence

command

Attribut magique permettant d'envoyer des commandes avancées au module. Si une commande n'est pas interprétée comme attendue, consultez les logs du module.

5.6. Les espaces de couleurs: RGB et HSL

Espace RGB

Il existe plusieurs manières de définir une couleur. La plus connue consiste à utiliser ses composantes Rouge, Verte, et Bleue (RGB en anglais). Chaque couleur peut en effet être définie comme un mélange des trois couleurs primaires. Malheureusement ce système est assez difficile à manipuler avec précision dès qu'il s'agit de définir une couleur non saturée. Obtenir du rose bonbon par exemple, demande pas mal de tâtonnements avant d'arriver au résultat escompté.


L'espace de couleur RGB, il est souvent représenté sous la forme d'un cube.

En informatique on a l'habitude de définir une couleur RGB comme un triplet 0..255 exprimé en hexadécimal15. Ainsi le rouge pur est défini par 0xFF0000, le vert pur 0x00FF00, le bleu pur 0x0000FF, le noir 000000, le blanc 0xFFFFFF etc. Cette notation est, entre autres, utilisés en HTML pour définir les couleurs, on utilise alors le # comme préfixe au lieu du 0x.

Espace HSL

Il existe une autre manière, un peu plus simple, de définir une couleur. Elle consiste à décomposer une couleur en Teinte, Saturation et Luminosité (HSL en anglais). La teinte est définie de 0 à 360° et passe successivement par le rouge (0°) le jaune (60°), le vert (120°) le cyan (180°) le bleu (240°), le magenta (300°) pour finalement revenir au rouge (360°). La saturation, définie de 0 à 100%, décrit l'intensité de la couleur, plus on se rapproche du 0% plus la couleur parait délavée, plus on s'approche du 100% plus la couleur apparaît éclatante. La luminosité, définie de 0 a 100%, décrit la clarté de la couleur, elle devient plus sombre quand on se rapproche du 0% et devient plus claire quand on se rapproche du 100%. Lorsqu'on utilise ce système il est beaucoup assez facile de prévoir comment va évoluer une couleur quand on manipule une de ces coordonnées. Ce qui est loin d'être le cas avec le système RGB.


L'espace de couleur HSL, il souvent représenté sous la forme d'un double cone, dont la base est noire (L=0%) et la pointe supérieure est blanche (L=100%). La teinte est mappée sur le circonférence et la saturation sur le rayon.

En informatique on a tendance a normaliser les coordonnées HSL sur une gamme 0..255 et on représente une couleur HSL sous la forme d'un triplet hexadécimal. Ainsi 00FF80 représente le rouge pur, F0FF80 représente le bleu pur. Il est à noter que dans ce système, plusieurs notations différentes peuvent représenter la même couleur. Ainsi toutes les notations se terminant par 00 représentent le noir, toutes les notations se terminant par FF représentent le blanc. Une notation dont la saturation est zéro représente du gris, quelque soit la valeur de la teinte.

5.7. Les séquences

Le Yocto-Color-V2 est capable de jouer des animations en toute autonomie c'est à dire sans l'intervention d'un ordinateur. Ces animations sont basées sur un concept de séquences. Une séquence est une suite de pseudo instructions gérées par la classe colorLedCluster qui peut gérer jusqu'à 8 de ces séquences en parallèle. Chaque LED ne peut être affectée qu'à une seule séquence à la fois.

Changement de couleurs

Une séquence est essentiellement définie comme une suite de changements de couleurs exécutés en boucle. Ainsi le code ci-dessous ré-initialise la séquence n°0 et ajoute deux transitions: une vers le rouge, une vers le bleu. Chacune durant une seconde.


YColorLedCluster c= YColorLedCluster.FirstColorLedCluster();
c.resetBlinkSeq(0);
c.addRgbMoveToBlinkSeq(0, 0xFF0000, 1000);
c.addRgbMoveToBlinkSeq(0, 0x0000FF, 1000);

Ainsi, toutes les LEDs affectées à cette séquence vont se mettre à osciller entre le rouge et le bleu avec une période totale de deux secondes. Les lignes suivantes affectent les deux premières LEDs à la séquence 0 et lance l'exécution de cette dernière.


c.linkLedToBlinkSeq(0, 2, 0, 0);
c.startBlinkSeq(0);

L'illustration ci-dessous montre l'évolution des deux LEDs au cours du temps.


Exécution d'une séquence automatique rouge-bleue avec une période de 2 secondes

Décalage

Il est possible d'introduire un offset lors de la liaison des LEDs à une séquence. Les LEDs exécutent alors toujours la même séquence mais avec un décalage. Le code ci-dessous affecte la LED 0 à la séquence 0 avec un offset de 0ms, puis affecte la LED 1, toujours à la séquence 0 mais avec un offset de 1000ms.


c.linkLedToBlinkSeq(0, 1, 0, 0);
c.linkLedToBlinkSeq(1, 1, 0, 1000);
c.startBlinkSeq(0);

Au lieu de changer de couleur ensemble, les LEDs vont changer de couleur en alternance puisque l'offset a été défini comme une demi-période.


Exécution de la séquence précédente avec un offset de 1 sec entre les deux LEDs

Les offsets dans l'exécution permettent de faire des effets de chenillard très spectaculaires. Imaginons que l'on dispose de 5 LEDs connectées en série au Yocto-Color-V2, le code suivant crée un séquence qui passe une led en bleu pendant 200 ms puis l'éteint pendant 800 ms.


YColorLedCluster c= YColorLedCluster.FirstColorLedCluster();
c.resetBlinkSeq(0);
c.addRgbMoveToBlinkSeq(0, 0x0000FF, 0);
c.addRgbMoveToBlinkSeq(0, 0x0000FF, 200);
c.addRgbMoveToBlinkSeq(0, 0x000000, 0);
c.addRgbMoveToBlinkSeq(0, 0x000000, 800);
for (int i = 0; i < 5; i++) {
  c.linkLedToBlinkSeq(i,1,0,200*i);
}

Notez que pour passer instantanément d'une couleur à l'autre, il suffit d'utiliser un move avec une durée de zéro. L'exécution de la séquence crée une lumière bleue qui passe d'une LED à l'autre toutes les 200ms.


On peut créer un chenillard en quelques lignes

Vitesse d'exécution

La vitesse d'exécution d'une séquence peut être modifiée. La vitesse par défaut est 1000, mais il est possible de la diminuer, et même de l'inverser. Ci dessous le code qui fait passer une led du rouge au jaune et inversement avec un periode de 400ms.


YColorLedCluster c= YColorLedCluster.FirstColorLedCluster();
c.resetBlinkSeq(0);
c.addRgbMoveToBlinkSeq(0, 0xFF0000, 200);
c.addRgbMoveToBlinkSeq(0, 0xFFFF00, 200);
c.linkLedToBlinkSeq(0, 2, 0, 0);
c.startBlinkSeq(0);


Alternance rouge jaune avec une fréquence de 400ms (vitesse normale : 1000)

Si on diminue la vitesse d'un facteur 2 à l'aide de set_blinkSeqSpeed, la période s'allonge d'un facteur 2, les transitions restent progressives car elles sont calculées en temps réel.


c.set_blinkSeqSpeed(0, 500);


Même séquence, demi vitesse (500).

Taux de rafraichissement

Attention, les séquences sont calculées en temps réel, en revanche les LEDs du Yocto-Color-V2 sont rafraichies à un taux de 100Hz. Par conséquent un changement durant moins de 10ms à vitesse normale sera pris en compte, mais risque de ne pas être affiché, faute de durer assez longtemps.

Persistance des séquences

Les séquences peuvent être sauvegardées dans la mémoire non volatile du Yocto-Color-V2, de même qu'il est possible de sauver l'affectation des LEDs aux différentes séquences. Par ailleurs il est possible de configurer une séquence pour qu'elle démarre automatiquement au démarrage du module. Le code suivant configure une séquence puis sauve le tout de manière à ce qu'elle démarrage automatiquement au prochaine redémarrage du module.


YColorLedCluster c= YColorLedCluster.FirstColorLedCluster();
c.set_blinkSeqStateAtPowerOn(0, 1);
c.saveBlinkSeq(0);

Cette technique permet de fabriquer des effets lumineux simples qui n'ont pas besoin d'un ordinateur pour fonctionner. Si des séquence sont préprogrammées dans le module, il suffira de l'alimenter avec un simple chargeur USB pour qu'elles démarrent dès la mise sous tension.

5.8. Quelle interface: Native, DLL ou Service?

Il y existe plusieurs méthodes pour contrôler un module USB Yoctopuce depuis un programme.

Contrôle natif

Dans ce cas de figure le programme pilotant votre projet est directement compilé avec une librairie qui offre le contrôle des modules. C'est objectivement la solution la plus simple et la plus élégante pour l'utilisateur final. Il lui suffira de brancher le câble USB et de lancer votre programme pour que tout fonctionne. Malheureusement, cette technique n'est pas toujours disponible ou même possible.


L'application utilise la librairie native pour contrôler le module connecté en local

Contrôle natif par DLL

Ici l'essentiel du code permettant de contrôler les modules se trouve dans une DLL, et le programme est compilé avec une petite librairie permettant de contrôler cette DLL. C'est la manière la plus rapide pour coder le support des modules dans un language particulier. En effet la partie "utile" du code de contrôle se trouve dans la DLL qui est la même pour tous les langages, offrir le support pour un nouveau langage se limite à coder la petite librairie qui contrôle la DLL. Du point de de l'utilisateur final, il y a peu de différence: il faut simplement être sur que la DLL sera installée sur son ordinateur en même temps que le programme principal.


L'application utilise la DLL pour contrôler nativement le module connecté en local

Contrôle par un service

Certain langages ne permettent tout simplement pas d'accéder facilement au niveau matériel de la machine. C'est le cas de Javascript par exemple. Pour gérer ce cas Yoctopuce offre la solution sous la forme d'un petit service, appelé VirtualHub qui lui est capable d'accéder aux modules, et votre application n'a plus qu'à utiliser une librairie qui offrira toutes les fonctions nécessaires au contrôle des modules en passant par l'intermédiaire de ce VirtualHub. L'utilisateur final se verra obligé de lancer le VirtualHub avant de lancer le programme de contrôle du projet proprement dit, à moins qu'il ne décide d'installer le VirtualHub sous la forme d'un service/démon, auquel cas le VirtualHub se lancera automatiquement au démarrage de la machine..


L'application se connecte au service VirtualHub pour connecter le module.

En revanche la méthode de contrôle par un service offre un avantage non négligeable: l'application n'est pas n'obligé de tourner sur la machine où se trouvent les modules: elle peut parfaitement se trouver sur un autre machine qui se connectera au service pour piloter les module. De plus les librairie natives et DLL évoquées plus haut sont aussi capables de se connecter à distance à un ou plusieurs VirtualHub.


Lorsqu'on utilise un VirtualHub, l'application de contrôle n'a plus besoin d'être sur la même machine que le module.

Quel que soit langage de programmation choisi et le paradigme de contrôle utilisé; la programmation reste strictement identique. D'un langage à l'autre les fonctions ont exactement le même nom, prennent les mêmes paramètres. Les seules différences sont liées aux contraintes des langages eux-mêmes.

Language Natif  Natif avec .DLL/.so  Hub virtuel 
C++
Objective-C -
Delphi -
Python -
VisualBasic .Net -
C# .Net -
EcmaScript / JavaScript - -
PHP - -
Java -
Java pour Android -
Ligne de commande -

Méthode de support pour les différents langages.

Limitation des librairies Yoctopuce

Les librairies Natives et DLL ont une limitation technique. Sur une même machine, vous ne pouvez pas faire tourner en même temps plusieurs applications qui accèdent nativement aux modules Yoctopuce. Si vous désirez contrôler plusieurs projets depuis la même machine, codez vos applications pour qu'elle accèdent aux modules via un VirtualHub plutôt que nativement. Le changement de mode de fonctionnement est trivial: il suffit de changer un paramètre dans l'appel à yRegisterHub().

5.9. Programmation, par où commencer?

Arrivé à ce point du manuel, vous devriez connaître l'essentiel de la théorie à propos de votre Yocto-Color-V2. Il est temps de passer à la pratique. Il vous faut télécharger la librairie Yoctopuce pour votre language de programmation favori depuis le site web de Yoctopuce16. Puis sautez directement au chapitre correspondant au langage de programmation que vous avez choisi.

Tous les exemples décrits dans ce manuel sont présents dans les librairies de programmation. Dans certains langages, les librairies comprennent aussi quelques applications graphiques complètes avec leur code source.

Une fois que vous maîtriserez la programmation de base de votre module, vous pourrez vous intéresser au chapitre concernant la programmation avancée qui décrit certaines techniques qui vous permettront d'exploiter au mieux votre Yocto-Color-V2.

6. Programmation avancée

Les chapitres précédents vous ont présenté dans chaque language disponible les fonctions de programmation de base utilisables avec votre module Yocto-Color-V2. Ce chapitre présente de façon plus générale une utilisation plus avancée de votre module. Les exemples sont donnés dans le language le plus populaire auprès des clients de Yoctopuce, à savoir C#. Néanmoins, vous trouverez dans les librairies de programmation pour chaque language des exemples complets illustrant les concepts présentés ici.

Afin de rester le plus concis possible, les exemples donnés dans ce chapitre ne font aucune gestion d'erreur. Ne les copiez pas tels-quels dans une application de production.

6.1. Programmation par événements

Les méthodes de gestion des modules Yoctopuce qui vous ont été présentées dans les chapitres précédents sont des fonctions de polling, qui consistent à demander en permanence à l'API si quelque chose a changé. Facile à appréhender, cette technique de programmation est n'est pas la plus efficace ni la plus réactive. C'est pourquoi l'API de programmation Yoctopuce propose aussi un modèle de programmation par événements. Cette technique consiste à demander à l'API de signaler elle-même les changements importants dès qu'ils sont détectés. A chaque fois qu'un paramètre clé change, l'API appelle une fonction de callback que vous avez prédéfinie.

Détecter l'arrivée et le départ des modules

La gestion du hot-plug est importante lorsque l'on travaille avec des modules USB, car tôt ou tard vous serez amené à brancher et débrancher un module après le lancement de votre programme. L'API a été conçue pour gérer l'arrivée et le départ inopinés des modules de manière transparente, mais votre application doit en général en tenir compte si elle veut éviter de prétendre utiliser un module qui a été débranché.

La programmation par événements est particulièrement utile pour détecter les branchements/débranchements de modules. Il est en effet plus simple de se faire signaler les branchements, que de devoir lister en permanence les modules branchés pour en déduire ceux qui sont arrivés et ceux qui sont partis. Pour pouvoir être prévenu dès qu'un module arrive, vous avez besoin de trois morceaux de code.

Le callback

Le callback est la fonction qui sera appelée à chaque fois qu'un nouveau module Yoctopuce sera branché. Elle prend en paramètre le module concerné.


 static void deviceArrival(YModule m)
 {
     Console.WriteLine("Nouveau module  : " + m.get_serialNumber());
 }

L'initialisation

Vous devez ensuite signaler à l'API qu'il faut appeler votre callback quand un nouveau module est branché.


  YAPI.RegisterDeviceArrivalCallback(deviceArrival);

Notez que si des modules sont déjà branchés lorsque le callback est enregistré, le callback sera appelé pour chacun de ces modules déjà branchés.

Déclenchement des callbacks

Un problème classique de la programmation par callbacks est que ces callbacks peuvent être appelés n'importe quand, y compris à des moments où le programme principal n'est pas prêt à les recevoir, ce qui peut avoir des effets de bords indésirables comme des dead-locks et autres conditions de course. C'est pourquoi dans l'API Yoctopuce, les callbacks d'arrivée/départs de modules ne sont appelés que pendant l'exécution de la fonction UpdateDeviceList(). Il vous suffit d'appeler UpdateDeviceList() à intervalle régulier depuis un timer ou un thread spécifique pour controller précisément quand les appels à ces callbacks auront lieu:


// boucle d'attente gérant les callback
while (true)
{  
    // callback d'arrivée / départ de modules
    YAPI.UpdateDeviceList(ref errmsg);
    // attente non active gérant les autres callbacks
    YAPI.Sleep(500, ref errmsg);
}

De manière similaire, il est possible d'avoir un callback quand un module est débranché. Vous trouverez un exemple concret démontrant toutes ces techniques dans la librairie de programmation Yoctopuce de chaque langage. L'exemple se trouve dans le répertoire Examples/Prog-EventBased.

Attention: dans la plupart des langages, les callbacks doivent être des procédures globales, et non pas des méthodes. Si vous souhaitez que le callback appelle une méthode d'un objet, définissez votre callback sous la forme d'une procédure globale qui ensuite appellera votre méthode.

7. Mise à jour du firmware

Il existe plusieurs moyens de mettre à jour le firmware des modules Yoctopuce.

7.1. Le VirtualHub ou le YoctoHub

Il est possible de mettre à jour un module directement depuis l'interface web du VirutalHub ou du YoctoHub. Il suffit d'accéder à la fenêtre de configuration du module que à mettre à jour et de cliquer sur le bouton "upgrade". Le VirtualHub démarre un assistant qui vous guidera durant la procédure de mise à jour.

Si pour une raison ou une autre, la mise à jour venait à échouer et que le module de fonctionnait plus, débranchez puis rebranchez le module en maintenant sur le Yocto-bouton appuyé. Le module va démarrer en mode "mise à jour" et sera listé en dessous des modules connectés.

7.2. La librairie ligne de commandes

Tous les outils en lignes de commandes ont la possibilité de mettre à jour les modules Yoctopuce grâce à la commande downloadAndUpdate. Le mécanisme de sélection des modules fonctionne comme pour une commande traditionnelle. La [cible] est le nom du module qui va être mis à jour. Vous pouvez aussi utiliser les alias "any" ou "all", ou encore une liste de noms, séparés par des virgules, sans espace.


C:\>Executable [options] [cible] commande [paramètres]

L'exemple suivant met à jour tous les modules Yoctopuce connectés en USB.


C:\>YModule all downloadAndUpdate
ok: Yocto-PowerRelay RELAYHI1-266C8(rev=15430) is up to date.
ok: 0 / 0 hubs in 0.000000s.
ok: 0 / 0 shields in 0.000000s.
ok: 1 / 1 devices in 0.130000s 0.130000s per device.
ok: All devices are now up to date.
C:\>

7.3. L'application Android Yocto-Firmware

Il est possible de mettre à jour le firmware de vos modules depuis votre téléphone ou tablette Android avec l'application Yocto-Firmware. Cette application liste tous les modules Yoctopuce branchés en USB et vérifie si un firmware plus récent est disponible sur www.yoctopuce.com. Si un firmware plus récent est disponible, il est possible de mettre à jour le module. L'application se charge de télécharger et d'installer le nouveau firmware en préservant les paramètres du module.

Attention, pendant la mise à jour du firmware, le module redémarre plusieurs fois. Android interprète le reboot d'un périphérique USB comme une déconnexion et reconnexion du périphérique USB, et demande à nouveau l'autorisation d'utiliser le port USB. L'utilisateur est obligé de cliquer sur OK pour que la procédure de mise à jour se termine correctement.

7.4. La librairie de programmation

Si vous avez besoin d'intégrer la mise à jour de firmware dans votre application, les librairies proposent une API pour mettre à jour vos modules.17

Sauvegarder et restaurer les paramètres

La méthode get_allSettings() retourne un buffer binaire qui permet de sauvegarder les paramètres persistants d'un module. Cette fonction est très utile pour sauvegarder la configuration réseau d'un YoctoHub par exemple.


YWireless wireless = YWireless.FindWireless("reference");
YModule m = wireless.get_module();
byte[] default_config =  m.get_allSettings();
saveFile("default.bin", default_config);
...

Ces paramètres peuvent être appliqués sur d'autres modules à l'aide de la méthode set_allSettings().


byte[] default_config = loadFile("default.bin");
YModule m = YModule.FirstModule();
while (m != null) {
  if (m.get_productName() == "YoctoHub-Wireless") {
    m.set_allSettings(default_config);
  }
  m = m.next();
}

Chercher le bon firmware

La première étape pour mettre à jour un module Yoctopuce est de trouver quel firmware il faut utiliser, c'est le travail de la méthode checkFirmware(path, onlynew) de l'objet YModule. Cette méthode vérifie que le firmware passé en argument (path) est compatible avec le module. Si le paramètre onlynew est vrai, cette méthode vérifie si le firmware est plus récent que la version qui est actuellement utilisée par le module. Quand le fichier n'est pas compatible (ou si le fichier est plus vieux que la version installée), cette méthode retourne une chaîne vide. Si au contraire le fichier est valide, la méthode retourne le chemin d'accès d'un fichier.

Le code suivant vérifie si le fichier c:\tmp\METEOMK1.17328.byn est compatible avec le module stocké dans la variable m.


YModule m = YModule.FirstModule();
...
...
string path = "c:\\tmp\METEOMK1.17328.byn";
string newfirm = m.checkFirmware(path, false);
if (newfirm != "") {
  Console.WriteLine("firmware " + newfirm + " is compatible");
}
...

Il est possible de passer un répertoire en argument (au lieu d'un fichier). Dans ce cas la méthode va parcourir récursivement tous les fichiers du répertoire et retourner le firmware compatible le plus récent. Le code suivant vérifie s'il existe un firmware plus récent dans le répertoire c:\tmp\.


YModule m = YModule.FirstModule();
...
...
string path = "c:\\tmp";
string newfirm = m.checkFirmware(path, true);
if (newfirm != "") {
  Console.WriteLine("firmware " + newfirm + " is compatible and newer");
}
...

Il est aussi possible de passer la chaîne "www.yoctopuce.com" en argument pour vérifier s'il existe un firmware plus récent publié sur le site web de Yoctopuce. Dans ce cas, la méthode retournera l'URL du firmware. Vous pourrez soit utiliser cette URL pour télécharger le firmware sur votre disque, soit utiliser cette URL lors de la mise à jour du firmware (voir ci-dessous). Bien évidemment, cette possibilité ne fonctionne que si votre machine est reliée à Internet.


YModule m = YModule.FirstModule();
...
...
string url = m.checkFirmware("www.yoctopuce.com", true);
if (url != "") {
  Console.WriteLine("new firmware is available at " + url );
}
...

Mettre à jour le firmware

La mise à jour du firmware peut prendre plusieurs minutes, c'est pourquoi le processus de mise à jour est exécuté par la librairie en arrière plan et est contrôlé par le code utilisateur à l'aide de la classe YFirmwareUdpate.

Pour mettre à jour un module Yoctopuce, il faut obtenir une instance de la classe YFirmwareUpdate à l'aide de la méthode updateFirmware d'un objet YModule. Le seul paramètre de cette méthode est le path du firmware à installer. Cette méthode ne démarre pas immédiatement la mise à jour, mais retourne un objet YFirmwareUpdate configuré pour mettre à jour le module.


string newfirm = m.checkFirmware("www.yoctopuce.com", true);
.....
YFirmwareUpdate fw_update = m.updateFirmware(newfirm);

La méthode startUpdate() démarre la mise à jour en arrière plan. Ce processus en arrière plan se charge automatiquement de:

  1. sauvegarder des paramètres du module,
  2. redémarrer le module en mode "mise à jour"
  3. mettre à jour le firmware
  4. démarrer le module avec la nouvelle version du firmware
  5. restaurer les paramètres

Les méthodes get_progress() et get_progressMessage() permettent de suivre la progression de la mise à jour. get_progress()retourne la progression sous forme de pourcentage (100 = mise à jour terminée). get_progressMessage() retourne une chaîne de caractères décrivant l'opération en cours (effacement, écriture, reboot,...). Si la méthode get_progress() retourne une valeur négative, c'est que le processus de mise à jour à échoué. Dans ce cas la méthode get_progressMessage() retourne le message d'erreur.

Le code suivant démarre la mise à jour et affiche la progression sur la sortie standard.


YFirmwareUpdate fw_update = m.updateFirmware(newfirm);
....
int status = fw_update.startUpdate();
while (status < 100 && status >= 0) {
  int newstatus = fw_update.get_progress();
  if (newstatus != status) {
    Console.WriteLine(status + "% "
      + fw_update.get_progressMessage());
  }
  YAPI.Sleep(500, ref errmsg);
  status = newstatus;
}

if (status < 0) {
  Console.WriteLine("Firmware Update failed: "
    + fw_update.get_progressMessage());
} else {
  Console.WriteLine("Firmware Updated Successfully!");
}

Particularité d'Android

Il est possible de mettre à jour un firmware d'un module en utilisant la librairie Android. Mais pour les modules branchés en USB, Android va demander à l'utilisateur d'autoriser l'application à accéder au port USB.

Pendant la mise à jour du firmware, le module redémarre plusieurs fois. Android interprète le reboot d'un périphérique USB comme une déconnexion et reconnexion du port USB, et interdit tout accès USB tant que l'utilisateur n'a pas fermé le pop-up. L'utilisateur est obligé de cliquer sur OK pour que la procédure de mise à jour puisse continuer correctement. Il n'est pas possible de mettre à jour un module branché en USB à un appareil Android sans que l'utilisateur ne soit obligé d'interagir avec l'appareil.

7.5. Le mode "mise à jour"

Si vous désirez effacer tous les paramètres du module ou que votre module ne démarre plus correctement, il est possible d'installer un firmware depuis le mode "mise à jour".

Pour forcer le module à fonctionner dans le mode "mis à jour", débranchez-le, attendez quelques secondes, et rebranchez-le en maintenant le Yocto-Bouton appuyé. Cela a pour effet de faire démarrer le module en mode "mise à jour". Ce mode de fonctionnement est protégé contre les corruptions et est toujours accessible.

Dans ce mode, le module n'est plus détecté par les objets YModules. Pour obtenir la liste des modules connectés en mode "mise à jour", il faut utiliser la fonction YAPI.GetAllBootLoaders(). Cette fonction retourne un tableau de chaînes de caractères avec le numéro de série des modules en le mode "mise à jour".


List<string> allBootLoader = YAPI.GetAllBootLoaders();

La procédure de mise à jour est identique au cas standard (voir section précédente), mais il faut instancier manuellement l'objet YFirmwareUpdate au lieu d'appeler module.updateFirmware(). Le constructeur prend en argument trois paramètres: le numéro de série du module, le path du firmware à installer, et un tableau de bytes avec les paramètres à restaurer à la fin de la mise à jour (ou null pour restaurer les paramètres d'origine).


YFirmwareUpdateupdate fw_update;
fw_update = new YFirmwareUpdate(allBootLoader[0], newfirm, null);
int status = fw_update.startUpdate();
.....

8. Utilisation avec des langages non supportés

Les modules Yoctopuce peuvent être contrôlés depuis la plupart des langages de programmation courants. De nouveaux langages sont ajoutés régulièrement en fonction de l'intérêt exprimé par les utilisateurs de produits Yoctopuce. Cependant, certains langages ne sont pas et ne seront jamais supportés par Yoctopuce, les raisons peuvent être diverses: compilateurs plus disponibles, environnements inadaptés, etc...

Il existe cependant des méthodes alternatives pour accéder à des modules Yoctopuce depuis un langage de programmation non supporté.

8.1. Ligne de commande

Le moyen le plus simple pour contrôler des modules Yoctopuce depuis un langage non supporté consiste à utiliser l'API en ligne de commande à travers des appels système. L'API en ligne de commande se présente en effet sous la forme d'un ensemble de petits exécutables qu'il est facile d'appeler et dont la sortie est facile à analyser. La plupart des langages de programmation permettant d'effectuer des appels système, cela permet de résoudre le problème en quelques lignes.

Cependant, si l'API en ligne de commande est la solution la plus facile, ce n'est pas la plus rapide ni la plus efficace. A chaque appel, l'exécutable devra initialiser sa propre API et faire l'inventaire des modules USB connectés. Il faut compter environ une seconde par appel.

8.2. Virtual Hub et HTTP GET

Le Virtual Hub est disponible pour presque toutes les plateformes actuelles, il sert généralement de passerelle pour permettre l'accès aux modules Yoctopuce depuis des langages qui interdisent l'accès direct aux couches matérielles d'un ordinateur (Javascript, PHP, Java...).

Il se trouve que le Virtual Hub est en fait un petit serveur Web qui est capable de router des requêtes HTTP vers les modules Yoctopuce. Ce qui signifie que si vous pouvez faire une requête HTTP depuis votre langage de programmation, vous pouvez contrôler des modules Yoctopuce, même si ce langage n'est pas officiellement supporté.

Interface REST

A bas niveau, les modules sont pilotés à l'aide d'une API REST. Ainsi pour contrôler un module, il suffit de faire les requêtes HTTP appropriées sur le Virtual Hub. Par défaut le port HTTP du Virtual Hub est 4444.

Un des gros avantages de cette technique est que les tests préliminaires sont très faciles à mettre en œuvre, il suffit d'un Virtual Hub et d'un simple browser Web. Ainsi, si vous copiez l'URL suivante dans votre browser favori, alors que le Virtual Hub est en train de tourner, vous obtiendrez la liste des modules présents.


http://127.0.0.1:4444/api/services/whitePages.txt

Remarquez que le résultat est présenté sous forme texte, mais en demandant whitePages.xml vous auriez obtenu le résultat en XML. De même, whitePages.json aurait permis d'obtenir le résultat en JSON. L'extension html vous permet même d'afficher une interface sommaire vous permettant de changer les valeurs en direct. Toute l'API REST est disponible dans ces différents formats.

Contrôle d'un module par l'interface REST

Chaque module Yoctopuce a sa propre interface REST disponible sous différentes formes. Imaginons un Yocto-Color-V2 avec le numéro de de série YRGBLED2-12345 et le nom logique monModule. l'URL suivante permettra de connaître l'état du module.


http://127.0.0.1:4444/bySerial/YRGBLED2-12345/api/module.txt

Il est bien entendu possible d'utiliser le nom logique des modules plutôt que leur numéro de série.


http://127.0.0.1:4444/byName/monModule/api/module.txt

Vous pouvez retrouver la valeur d'une des propriétés d'un module, il suffit d'ajouter le nom de la propriété en dessous de module. Par exemple, si vous souhaitez connaître la luminosité des LEDs de signalisation, il vous suffit de faire la requête suivante:


http://127.0.0.1:4444/bySerial/YRGBLED2-12345/api/module/luminosity

Pour modifier la valeur d'une propriété, il vous suffit de modifier l'attribut correspondant. Ainsi, pour modifier la luminosité il vous suffit de faire la requête suivante:


http://127.0.0.1:4444/bySerial/YRGBLED2-12345/api/module?luminosity=100

Contrôle des différentes fonctions du module par l'interface REST

Les fonctionnalités des modules se manipulent de la même manière. Pour connaître l'état de la fonction colorLed1, il suffit de construire l'URL suivante.


http://127.0.0.1:4444/bySerial/YRGBLED2-12345/api/colorLed1.txt

En revanche, si vous pouvez utiliser le nom logique du module en lieu et place de son numéro de série, vous ne pouvez pas utiliser les noms logiques des fonctions, seuls les noms hardware sont autorisés pour les fonctions.

Vous pouvez retrouver un attribut d'une fonction d'un module d'une manière assez similaire à celle utilisée avec les modules, par exemple:


http://127.0.0.1:4444/bySerial/YRGBLED2-12345/api/colorLed1/logicalName

Assez logiquement, les attributs peuvent être modifiés de la même manière.


http://127.0.0.1:4444/bySerial/YRGBLED2-12345/api/colorLed1?logicalName=maFonction

Vous trouverez la liste des attributs disponibles pour votre Yocto-Color-V2 au début du chapitre Programmation, concepts généraux.

Accès aux données enregistrées sur le datalogger par l'interface REST

Cette section s'applique uniquement aux modules dotés d'un enregistreur de donnée.

La version résumée des données enregistrées dans le datalogger peut être obtenue au format JSON à l'aide de l'URL suivante:


http://127.0.0.1:4444/bySerial/YRGBLED2-12345/dataLogger.json

Le détail de chaque mesure pour un chaque tranche d'enregistrement peut être obtenu en ajoutant à l'URL l'identifiant de la fonction désirée et l'heure de départ de la tranche:


http://127.0.0.1:4444/bySerial/YRGBLED2-12345/dataLogger.json?id=colorLed1&utc=1389801080

8.3. Utilisation des librairies dynamiques

L'API Yoctopuce bas niveau est disponible sous différents formats de librairie dynamiques écrites en C, dont les sources sont disponibles avec l'API C++. Utiliser une de ces librairies bas niveau vous permettra de vous passer du Virtual Hub.

FilenamePlateforme
libyapi.dylibMax OS X
libyapi-amd64.soLinux Intel (64 bits)
libyapi-armel.soLinux ARM EL
libyapi-armhf.soLinux ARM HL
libyapi-i386.soLinux Intel (32 bits)
yapi64.dllWindows (64 bits)
yapi.dllWindows (32 bits)

Ces librairies dynamiques contiennent toutes les fonctionnalités nécessaires pour reconstruire entièrement toute l'API haut niveau dans n'importe quel langage capable d'intégrer ces librairies. Ce chapitre se limite cependant à décrire une utilisation de base des modules.

Contrôle d'un module

Les trois fonctions essentielles de l'API bas niveau sont les suivantes:


int yapiInitAPI(int connection_type, char *errmsg);
int yapiUpdateDeviceList(int forceupdate, char *errmsg);
int yapiHTTPRequest(char *device, char *request, char* buffer,int buffsize,int *fullsize, char *errmsg);

La fonction yapiInitAPI permet d'initialiser l'API et doit être appelée une fois en début du programme. Pour une connection de type USB, le paramètre connection_type doit prendre la valeur 1. errmsg est un pointeur sur un buffer de 255 caractères destiné à récupérer un éventuel message d'erreur. Ce pointeur peut être aussi mis à NULL. La fonction retourne un entier négatif en cas d'erreur, ou zéro dans le cas contraire.

La fonction yapiUpdateDeviceList gère l'inventaire des modules Yoctopuce connectés, elle doit être appelée au moins une fois. Pour pouvoir gérer le hot plug, et détecter d'éventuels nouveaux modules connectés, cette fonction devra être apellée à intervalles réguliers. Le paramètre forceupdate devra être à la valeur 1 pour forcer un scan matériel. Le paramètre errmsg devra pointer sur un buffer de 255 caractères pour récupérer un éventuel message d'erreur. Ce pointeur peut aussi être à null.Cette fonction retourne un entier négatif en cas d'erreur, ou zéro dans le cas contraire.

Enfin, la fonction yapiHTTPRequest permet d'envoyer des requêtes HTTP à l'API REST du module. Le paramètre device devra contenir le numéro de série ou le nom logique du module que vous cherchez à atteindre. Le paramètre request doit contenir la requête HTTP complète (y compris les sauts de ligne terminaux). buffer doit pointer sur un buffer de caractères suffisamment grand pour contenir la réponse. buffsize doit contenir la taille du buffer. fullsize est un pointeur sur un entier qui sera affecté à la taille effective de la réponse. Le paramètre errmsg devra pointer sur un buffer de 255 caractères pour récupérer un éventuel message d'erreur. Ce pointeur peut aussi être à null. Cette fonction retourne un entier négatif en cas d'erreur, ou zéro dans le cas contraire.

Le format des requêtes est le même que celui décrit dans la section Virtual Hub et HTTP GET. Toutes les chaînes de caractères utilisées par l'API sont des chaînes constituées de caractères 8 bits: l'Unicode et l'UTF8 ne sont pas supportés.

Le résultat retourné dans la variable buffer respecte le protocole HTTP, il inclut donc un header HTTP . Ce header se termine par deux lignes vides, c'est-à-dire une séquence de quatre caractères ASCII 13, 10, 13, 10.

Voici un programme d'exemple écrit en pascal qui utilise la DLL yapi.dll pour lire puis changer la luminosité d'un module.


// Dll functions import
function  yapiInitAPI(mode:integer;
                      errmsg : pansichar):integer;cdecl;
                      external 'yapi.dll' name 'yapiInitAPI';
function  yapiUpdateDeviceList(force:integer;errmsg : pansichar):integer;cdecl;
                      external 'yapi.dll' name 'yapiUpdateDeviceList';
function  yapiHTTPRequest(device:pansichar;url:pansichar; buffer:pansichar;
                      buffsize:integer;var fullsize:integer;
                      errmsg : pansichar):integer;cdecl;
                      external 'yapi.dll' name 'yapiHTTPRequest';

var
 errmsgBuffer  : array [0..256] of ansichar;
 dataBuffer    : array [0..1024] of ansichar;
 errmsg,data   : pansichar;
 fullsize,p    : integer;

const
  serial      = 'YRGBLED2-12345';
  getValue = 'GET /api/module/luminosity HTTP/1.1'#13#10#13#10;
  setValue = 'GET /api/module?luminosity=100 HTTP/1.1'#13#10#13#10;

begin
  errmsg  :=  @errmsgBuffer;
  data    :=  @dataBuffer;
  // API  initialization
  if(yapiInitAPI(1,errmsg)<0) then
   begin
    writeln(errmsg);
    halt;
  end;

  // forces a device inventory
  if( yapiUpdateDeviceList(1,errmsg)<0) then
    begin
     writeln(errmsg);
     halt;
   end;

  // requests the  module luminosity
  if (yapiHTTPRequest(serial,getValue,data,sizeof(dataBuffer),fullsize,errmsg)<0) then
   begin
     writeln(errmsg);
     halt;
   end;

  // searches for the HTTP header end
  p := pos(#13#10#13#10,data);

  // displays the response minus the HTTP header
  writeln(copy(data,p+4,length(data)-p-3));

  // change the luminosity
  if (yapiHTTPRequest(serial,setValue,data,sizeof(dataBuffer),fullsize,errmsg)<0) then
   begin
     writeln(errmsg);
     halt;
   end;

end.

Inventaire des modules

Pour procéder à l'inventaire des modules Yoctopuce, deux fonctions de la librairie dynamique sont nécessaires


 int yapiGetAllDevices(int *buffer,int maxsize,int *neededsize,char *errmsg);
 int yapiGetDeviceInfo(int devdesc,yDeviceSt *infos, char *errmsg);

La fonction yapiGetAllDevices permet d'obtenir la liste des modules connectés sous la forme d'une liste de handles. buffer pointe sur un tableau d'entiers 32 bits qui contiendra les handles retournés. Maxsize est la taille en bytes du buffer. neededsize contiendra au retour la taille nécessaire pour stocker tous les handles. Cela permet d'en déduire le nombre de module connectés, ou si le buffer passé en entrée est trop petit. Le paramètre errmsg devra pointer sur un buffer de 255 caractères pour récupérer un éventuel message d'erreur. Ce pointeur peut aussi être à null. Cette fonction retourne un entier négatif en cas d'erreur, ou zéro dans le cas contraire.

La fonction yapiGetDeviceInfo permet de récupérer les informations relatives à un module à partir de son handle. devdesc est un entier 32bit qui représente le module, et qui a été obtenu grâce à yapiGetAllDevices. infos pointe sur une structure de données dans laquelle sera stocké le résultat. Le format de cette structure est le suivant:

Nom TypeTaille (bytes)Description
vendorid int4ID USB de Yoctopuce
deviceid int4ID USB du module
devrelease int4Version du module
nbinbterfaces int4Nombre d'interfaces USB utilisée par le module
manufacturer char[]20Yoctopuce (null terminé)
productname char[]28Modèle (null terminé)
serial char[]20Numéro de série (null terminé)
logicalname char[]20Nom logique (null terminé)
firmware char[]22Version du firmware (null terminé)
beacon byte1Etat de la balise de localisation (0/1)

Le paramètre errmsg devra pointer sur un buffer de 255 caractères pour récupérer un éventuel message d'erreur.

Voici un programme d'exemple écrit en pascal qui utilise la DLL yapi.dll pour lister les modules connectés.


// device description structure
type yDeviceSt = packed record
   vendorid        : word;
   deviceid        : word;
   devrelease      : word;
   nbinbterfaces   : word;
   manufacturer    : array [0..19] of ansichar;
   productname     : array [0..27] of ansichar;
   serial          : array [0..19] of ansichar;
   logicalname     : array [0..19] of ansichar;
   firmware        : array [0..21] of ansichar;
   beacon          : byte;
 end;

// Dll function import
function  yapiInitAPI(mode:integer;
                      errmsg : pansichar):integer;cdecl;
                      external 'yapi.dll' name 'yapiInitAPI';

function  yapiUpdateDeviceList(force:integer;errmsg : pansichar):integer;cdecl;
                      external 'yapi.dll' name 'yapiUpdateDeviceList';

function  yapiGetAllDevices( buffer:pointer;
                             maxsize:integer;
                             var neededsize:integer;
                             errmsg : pansichar):integer; cdecl;
                             external 'yapi.dll' name 'yapiGetAllDevices';

function  apiGetDeviceInfo(d:integer; var infos:yDeviceSt;
                             errmsg : pansichar):integer;  cdecl;
                             external 'yapi.dll' name 'yapiGetDeviceInfo';


var
 errmsgBuffer  : array [0..256] of ansichar;
 dataBuffer    : array [0..127] of integer;   // max of 128 USB devices
 errmsg,data   : pansichar;
 neededsize,i  : integer;
 devinfos      : yDeviceSt;

begin
  errmsg  :=  @errmsgBuffer;

  // API  initialisation
  if(yapiInitAPI(1,errmsg)<0) then
   begin
    writeln(errmsg);
    halt;
  end;

   // forces a device inventory
  if( yapiUpdateDeviceList(1,errmsg)<0) then
    begin
     writeln(errmsg);
     halt;
   end;

  // loads all device handles into dataBuffer
  if yapiGetAllDevices(@dataBuffer,sizeof(dataBuffer),neededsize,errmsg)<0 then
    begin
     writeln(errmsg);
     halt;
    end;

  // gets device info from each handle
  for i:=0 to  neededsize div sizeof(integer)-1 do
   begin
     if (apiGetDeviceInfo(dataBuffer[i], devinfos, errmsg)<0) then
       begin
         writeln(errmsg);
         halt;
       end;
     writeln(pansichar(@devinfos.serial)+' ('+pansichar(@devinfos.productname)+')');
   end;

end.

VB6 et yapi.dll

Chaque point d'entrée de la DLL yapi.dll est disponible en deux versions, une classique C-decl, et un seconde compatible avec Visual Basic 6 préfixée avec vb6_.

8.4. Port de la librairie haut niveau

Toutes les sources de l'API Yoctopuce étant fournies dans leur intégralité, vous pouvez parfaitement entreprendre le port complet de l'API dans le langage de votre choix. Sachez cependant qu'une grande partie du code source de l'API est généré automatiquement.

Ainsi, il n'est pas nécessaire de porter la totalité de l'API, il suffit de porter le fichier yocto_api et un de ceux correspondant à une fonctionnalité, par exemple yocto_relay. Moyennant un peu de travail supplémentaire, Yoctopuce sera alors en mesure de générer tous les autres fichiers. C'est pourquoi il est fortement recommandé de contacter le support Yoctopuce avant d'entreprendre le port de la librairie Yoctopuce dans un autre langage. Un travail collaboratif sera profitable aux deux parties.

9. Référence de l'API de haut niveau

Ce chapitre résume les fonctions de l'API de haut niveau pour commander votre Yocto-Color-V2. La syntaxe et les types précis peuvent varier d'un langage à l'autre mais, sauf avis contraire toutes sont disponibles dans chaque language. Pour une information plus précise sur les types des arguments et des valeurs de retour dans un langage donné, veuillez vous référer au fichier de définition pour ce langage (yocto_api.* ainsi que les autres fichiers yocto_* définissant les interfaces des fonctions).

Dans les langages qui supportent les exceptions, toutes ces fonctions vont par défaut générer des exceptions en cas d'erreur plutôt que de retourner la valeur d'erreur documentée pour chaque fonction, afin de faciliter le déboguage. Il est toutefois possible de désactiver l'utilisation d'exceptions à l'aide de la fonction yDisableExceptions(), si l'on préfère travailler avec des valeurs de retour d'erreur.

Ce chapitre ne reprend pas en détail les concepts de programmation décrits plus tôt, afin d'offrir une référence plus concise. En cas de doute, n'hésitez pas à retourner au chapitre décrivant en détail de chaque attribut configurable.

9.1. Fonctions générales

Ces quelques fonctions générales permettent l'initialisation et la configuration de la librairie Yoctopuce. Dans la plupart des cas, un appel à yRegisterHub() suffira en tout et pour tout. Ensuite, vous pourrez appeler la fonction globale yFind...() ou yFirst...() correspondant à votre module pour pouvoir interagir avec lui.

Pour utiliser les fonctions décrites ici, vous devez inclure:

js
<script type='text/javascript' src='yocto_api.js'></script>
nodejs
var yoctolib = require('yoctolib');
var YAPI = yoctolib.YAPI;
var YModule = yoctolib.YModule;
cpp
#include "yocto_api.h"
m
#import "yocto_api.h"
pas
uses yocto_api;
vb
yocto_api.vb
cs
yocto_api.cs
java
import com.yoctopuce.YoctoAPI.YModule;
py
from yocto_api import *
php
require_once('yocto_api.php');
es
import { YAPI, YErrorMsg, YModule } from 'yoctolib-es'
Fonction globales
yCheckLogicalName(name)

Vérifie si un nom donné est valide comme nom logique pour un module ou une fonction.

yDisableExceptions()

Désactive l'utilisation d'exceptions pour la gestion des erreurs.

yEnableExceptions()

Réactive l'utilisation d'exceptions pour la gestion des erreurs.

yEnableUSBHost(osContext)

Cette fonction est utilisée uniquement sous Android.

yFreeAPI()

Libère la mémoire dynamique utilisée par la librairie Yoctopuce.

yGetAPIVersion()

Retourne la version de la librairie Yoctopuce utilisée.

yGetTickCount()

Retourne la valeur du compteur monotone de temps (en millisecondes).

yHandleEvents(errmsg)

Maintient la communication de la librairie avec les modules Yoctopuce.

yInitAPI(mode, errmsg)

Initialise la librairie de programmation de Yoctopuce explicitement.

yPreregisterHub(url, errmsg)

Alternative plus tolerante à RegisterHub().

yRegisterDeviceArrivalCallback(arrivalCallback)

Enregistre une fonction de callback qui sera appelée à chaque fois qu'un module est branché.

yRegisterDeviceRemovalCallback(removalCallback)

Enregistre une fonction de callback qui sera appelée à chaque fois qu'un module est débranché.

yRegisterHub(url, errmsg)

Configure la librairie Yoctopuce pour utiliser les modules connectés sur une machine donnée.

yRegisterHubDiscoveryCallback(hubDiscoveryCallback)

Enregistre une fonction de callback qui est appelée chaque fois qu'un hub réseau s'annonce avec un message SSDP.

yRegisterLogFunction(logfun)

Enregistre une fonction de callback qui sera appellée à chaque fois que l'API a quelque chose à dire.

ySelectArchitecture(arch)

Sélectionne manuellement l'architecture de la libraire dynamique à utiliser pour accéder à USB.

ySetDelegate(object)

(Objective-C uniquement) Enregistre un objet délégué qui doit se conformer au protocole YDeviceHotPlug.

ySetTimeout(callback, ms_timeout, args)

Appelle le callback spécifié après un temps d'attente spécifié.

ySleep(ms_duration, errmsg)

Effectue une pause dans l'exécution du programme pour une durée spécifiée.

yTestHub(url, mstimeout, errmsg)

Test si un hub est joignable.

yTriggerHubDiscovery(errmsg)

Relance une détection des hubs réseau.

yUnregisterHub(url)

Configure la librairie Yoctopuce pour ne plus utiliser les modules connectés sur une machine préalablement enregistrer avec RegisterHub.

yUpdateDeviceList(errmsg)

Force une mise-à-jour de la liste des modules Yoctopuce connectés.

yUpdateDeviceList_async(callback, context)

Force une mise-à-jour de la liste des modules Yoctopuce connectés.

YAPI.CheckLogicalName()
yCheckLogicalName()
yCheckLogicalName()YAPI.CheckLogicalName()yCheckLogicalName()[YAPI CheckLogicalName: ]yCheckLogicalName()yCheckLogicalName()YAPI.CheckLogicalName()YAPI.CheckLogicalName()YAPI.CheckLogicalName()yCheckLogicalName()YAPI.CheckLogicalName()

Vérifie si un nom donné est valide comme nom logique pour un module ou une fonction.

js
function yCheckLogicalName(name)
nodejs
function CheckLogicalName(name)
cpp
bool yCheckLogicalName(const string& name)
m
+(BOOL) CheckLogicalName:(NSString *) name
pas
function yCheckLogicalName(name: string): boolean
vb
function yCheckLogicalName(ByVal name As String) As Boolean
cs
bool CheckLogicalName(string name)
java
boolean CheckLogicalName(String name)
py
def CheckLogicalName(name)
php
function yCheckLogicalName($name)
es
function CheckLogicalName(name)

Un nom logique valide est formé de 19 caractères au maximum, choisis parmi A..Z, a..z, 0..9, _ et -. Lorsqu'on configure un nom logique avec une chaîne incorrecte, les caractères invalides sont ignorés.

Paramètres :

nameune chaîne de caractères contenant le nom vérifier.

Retourne :

true si le nom est valide, false dans le cas contraire.

YAPI.DisableExceptions()
yDisableExceptions()
yDisableExceptions()YAPI.DisableExceptions()yDisableExceptions()[YAPI DisableExceptions]yDisableExceptions()yDisableExceptions()YAPI.DisableExceptions()YAPI.DisableExceptions()yDisableExceptions()YAPI.DisableExceptions()

Désactive l'utilisation d'exceptions pour la gestion des erreurs.

js
function yDisableExceptions()
nodejs
function DisableExceptions()
cpp
void yDisableExceptions()
m
+(void) DisableExceptions
pas
procedure yDisableExceptions()
vb
procedure yDisableExceptions()
cs
void DisableExceptions()
py
def DisableExceptions()
php
function yDisableExceptions()
es
function DisableExceptions()

Lorsque les exceptions sont désactivées, chaque fonction retourne une valeur d'erreur spécifique selon son type, documentée dans ce manuel de référence.

YAPI.EnableExceptions()
yEnableExceptions()
yEnableExceptions()YAPI.EnableExceptions()yEnableExceptions()[YAPI EnableExceptions]yEnableExceptions()yEnableExceptions()YAPI.EnableExceptions()YAPI.EnableExceptions()yEnableExceptions()YAPI.EnableExceptions()

Réactive l'utilisation d'exceptions pour la gestion des erreurs.

js
function yEnableExceptions()
nodejs
function EnableExceptions()
cpp
void yEnableExceptions()
m
+(void) EnableExceptions
pas
procedure yEnableExceptions()
vb
procedure yEnableExceptions()
cs
void EnableExceptions()
py
def EnableExceptions()
php
function yEnableExceptions()
es
function EnableExceptions()

Attention, lorsque les exceptions sont activées, tout appel à une fonction de la librairie qui échoue déclenche une exception. Dans le cas où celle-ci n'est pas interceptée correctement par le code appelant, soit le debugger se lance, soit le programme de l'utilisateur est immédiatement stoppé (crash).

YAPI.EnableUSBHost()
yEnableUSBHost()
YAPI.EnableUSBHost()

Cette fonction est utilisée uniquement sous Android.

java
void EnableUSBHost(Object osContext)

Avant d'appeler yRegisterHub("usb") il faut activer le port USB host du systeme. Cette fonction prend en argument un objet de la classe android.content.Context (ou d'une sous-classe). Il n'est pas nécessaire d'appeler cette fonction pour accéder au modules à travers le réseau.

Paramètres :

En cas d'erreur, déclenche une exception
osContextun objet de classe android.content.Context (ou une sous-classe)

YAPI.FreeAPI()
yFreeAPI()
yFreeAPI()YAPI.FreeAPI()yFreeAPI()[YAPI FreeAPI]yFreeAPI()yFreeAPI()YAPI.FreeAPI()YAPI.FreeAPI()YAPI.FreeAPI()yFreeAPI()YAPI.FreeAPI()

Libère la mémoire dynamique utilisée par la librairie Yoctopuce.

js
function yFreeAPI()
nodejs
function FreeAPI()
cpp
void yFreeAPI()
m
+(void) FreeAPI
pas
procedure yFreeAPI()
vb
procedure yFreeAPI()
cs
void FreeAPI()
java
void FreeAPI()
py
def FreeAPI()
php
function yFreeAPI()
es
function FreeAPI()

Il n'est en général pas nécessaire d'appeler cette fonction, sauf si vous désirez libérer tous les blocs de mémoire alloués dynamiquement dans le but d'identifier une source de blocs perdus par exemple. Vous ne devez plus appeler aucune fonction de la librairie après avoir appelé yFreeAPI(), sous peine de crash.

YAPI.GetAPIVersion()
yGetAPIVersion()
yGetAPIVersion()YAPI.GetAPIVersion()yGetAPIVersion()[YAPI GetAPIVersion]yGetAPIVersion()yGetAPIVersion()YAPI.GetAPIVersion()YAPI.GetAPIVersion()YAPI.GetAPIVersion()yGetAPIVersion()YAPI.GetAPIVersion()

Retourne la version de la librairie Yoctopuce utilisée.

js
function yGetAPIVersion()
nodejs
function GetAPIVersion()
cpp
string yGetAPIVersion()
m
+(NSString*) GetAPIVersion
pas
function yGetAPIVersion(): string
vb
function yGetAPIVersion() As String
cs
String GetAPIVersion()
java
String GetAPIVersion()
py
def GetAPIVersion()
php
function yGetAPIVersion()
es
function GetAPIVersion()

La version est retournée sous forme d'une chaîne de caractères au format "Majeure.Mineure.NoBuild", par exemple "1.01.5535". Pour les langages utilisant une DLL externe (par exemple C#, VisualBasic ou Delphi), la chaîne contient en outre la version de la DLL au même format, par exemple "1.01.5535 (1.01.5439)".

Si vous désirez vérifier dans votre code que la version de la librairie est compatible avec celle que vous avez utilisé durant le développement, vérifiez que le numéro majeur soit strictement égal et que le numéro mineur soit égal ou supérieur. Le numéro de build n'est pas significatif par rapport à la compatibilité de la librairie.

Retourne :

une chaîne de caractères décrivant la version de la librairie.

YAPI.GetTickCount()
yGetTickCount()
yGetTickCount()YAPI.GetTickCount()yGetTickCount()[YAPI GetTickCount]yGetTickCount()yGetTickCount()YAPI.GetTickCount()YAPI.GetTickCount()YAPI.GetTickCount()yGetTickCount()YAPI.GetTickCount()

Retourne la valeur du compteur monotone de temps (en millisecondes).

js
function yGetTickCount()
nodejs
function GetTickCount()
cpp
u64 yGetTickCount()
m
+(u64) GetTickCount
pas
function yGetTickCount(): u64
vb
function yGetTickCount() As Long
cs
ulong GetTickCount()
java
long GetTickCount()
py
def GetTickCount()
php
function yGetTickCount()
es
function GetTickCount()

Ce compteur peut être utilisé pour calculer des délais en rapport avec les modules Yoctopuce, dont la base de temps est aussi la milliseconde.

Retourne :

un long entier contenant la valeur du compteur de millisecondes.

YAPI.HandleEvents()
yHandleEvents()
yHandleEvents()YAPI.HandleEvents()yHandleEvents()[YAPI HandleEvents: ]yHandleEvents()yHandleEvents()YAPI.HandleEvents()YAPI.HandleEvents()YAPI.HandleEvents()yHandleEvents()YAPI.HandleEvents()

Maintient la communication de la librairie avec les modules Yoctopuce.

js
function yHandleEvents(errmsg)
nodejs
function HandleEvents(errmsg)
cpp
YRETCODE yHandleEvents(string& errmsg)
m
+(YRETCODE) HandleEvents:(NSError**) errmsg
pas
function yHandleEvents(var errmsg: string): integer
vb
function yHandleEvents(ByRef errmsg As String) As YRETCODE
cs
YRETCODE HandleEvents(ref string errmsg)
java
int HandleEvents()
py
def HandleEvents(errmsg=None)
php
function yHandleEvents(&$errmsg)
es
function HandleEvents(errmsg)

Si votre programme inclut des longues boucles d'attente, vous pouvez y inclure un appel à cette fonction pour que la librairie prenne en charge les informations mise en attente par les modules sur les canaux de communication. Ce n'est pas strictement indispensable mais cela peut améliorer la réactivité des la librairie pour les commandes suivantes.

Cette fonction peut signaler une erreur au cas à la communication avec un module Yoctopuce ne se passerait pas comme attendu.

Paramètres :

errmsgune chaîne de caractères passée par référence, dans laquelle sera stocké un éventuel message d'erreur.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

YAPI.InitAPI()
yInitAPI()
yInitAPI()YAPI.InitAPI()yInitAPI()[YAPI InitAPI: ]yInitAPI()yInitAPI()YAPI.InitAPI()YAPI.InitAPI()YAPI.InitAPI()yInitAPI()YAPI.InitAPI()

Initialise la librairie de programmation de Yoctopuce explicitement.

js
function yInitAPI(mode, errmsg)
nodejs
function InitAPI(mode, errmsg)
cpp
YRETCODE yInitAPI(int mode, string& errmsg)
m
+(YRETCODE) InitAPI:(int) mode :(NSError**) errmsg
pas
function yInitAPI(mode: integer, var errmsg: string): integer
vb
function yInitAPI(ByVal mode As Integer, ByRef errmsg As String) As Integer
cs
int InitAPI(int mode, ref string errmsg)
java
int InitAPI(int mode)
py
def InitAPI(mode, errmsg=None)
php
function yInitAPI($mode, &$errmsg)
es
function InitAPI(mode, errmsg)

Il n'est pas indispensable d'appeler yInitAPI(), la librairie sera automatiquement initialisée de toute manière au premier appel à yRegisterHub().

Lorsque cette fonctin est utilisée avec comme mode la valeur Y_DETECT_NONE, il faut explicitement appeler yRegisterHub() pour indiquer à la librairie sur quel VirtualHub les modules sont connectés, avant d'essayer d'y accéder.

Paramètres :

modeun entier spécifiant le type de détection automatique de modules à utiliser. Les valeurs possibles sont Y_DETECT_NONE, Y_DETECT_USB, Y_DETECT_NET et Y_DETECT_ALL.
errmsgune chaîne de caractères passée par référence, dans laquelle sera stocké un éventuel message d'erreur.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

YAPI.PreregisterHub()
yPreregisterHub()
yPreregisterHub()YAPI.PreregisterHub()yPreregisterHub()[YAPI PreregisterHub: ]yPreregisterHub()yPreregisterHub()YAPI.PreregisterHub()YAPI.PreregisterHub()YAPI.PreregisterHub()yPreregisterHub()YAPI.PreregisterHub()

Alternative plus tolerante à RegisterHub().

js
function yPreregisterHub(url, errmsg)
nodejs
function PreregisterHub(url, errmsg)
cpp
YRETCODE yPreregisterHub(const string& url, string& errmsg)
m
+(YRETCODE) PreregisterHub:(NSString *) url :(NSError**) errmsg
pas
function yPreregisterHub(url: string, var errmsg: string): integer
vb
function yPreregisterHub(ByVal url As String,
  ByRef errmsg As String) As Integer
cs
int PreregisterHub(string url, ref string errmsg)
java
int PreregisterHub(String url)
py
def PreregisterHub(url, errmsg=None)
php
function yPreregisterHub($url, &$errmsg)
es
function PreregisterHub(url, errmsg)

Cette fonction a le même but et la même paramètres que la fonction RegisterHub, mais contrairement à celle-ci PreregisterHub() ne déclanche pas d'erreur si le hub choisi n'est pas joignable au moment de l'appel. Il est ainsi possible d'enregistrer un hub réseau indépendemment de la connectivité, afin de tenter de ne le contacter que lorsqu'on cherche réellement un module.

Paramètres :

urlune chaîne de caractères contenant "usb","callback", ou l'URL racine du VirtualHub à utiliser.
errmsgune chaîne de caractères passée par référence, dans laquelle sera stocké un éventuel message d'erreur.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

YAPI.RegisterDeviceArrivalCallback()
yRegisterDeviceArrivalCallback()
yRegisterDeviceArrivalCallback()YAPI.RegisterDeviceArrivalCallback()yRegisterDeviceArrivalCallback()[YAPI RegisterDeviceArrivalCallback: ]yRegisterDeviceArrivalCallback()yRegisterDeviceArrivalCallback()YAPI.RegisterDeviceArrivalCallback()YAPI.RegisterDeviceArrivalCallback()YAPI.RegisterDeviceArrivalCallback()yRegisterDeviceArrivalCallback()YAPI.RegisterDeviceArrivalCallback()

Enregistre une fonction de callback qui sera appelée à chaque fois qu'un module est branché.

js
function yRegisterDeviceArrivalCallback(arrivalCallback)
nodejs
function RegisterDeviceArrivalCallback(arrivalCallback)
cpp
void yRegisterDeviceArrivalCallback(yDeviceUpdateCallback arrivalCallback)
m
+(void) RegisterDeviceArrivalCallback:(yDeviceUpdateCallback) arrivalCallback
pas
procedure yRegisterDeviceArrivalCallback(arrivalCallback: yDeviceUpdateFunc)
vb
procedure yRegisterDeviceArrivalCallback(ByVal arrivalCallback As yDeviceUpdateFunc)
cs
void RegisterDeviceArrivalCallback(yDeviceUpdateFunc arrivalCallback)
java
void RegisterDeviceArrivalCallback(DeviceArrivalCallback arrivalCallback)
py
def RegisterDeviceArrivalCallback(arrivalCallback)
php
function yRegisterDeviceArrivalCallback($arrivalCallback)
es
function RegisterDeviceArrivalCallback(arrivalCallback)

Le callback sera appelé pendant l'éxecution de la fonction yUpdateDeviceList, que vous devrez appeler régulièrement.

Paramètres :

pour supprimer un callback déja enregistré.
arrivalCallbackune procédure qui prend un YModule en paramètre, ou null

YAPI.RegisterDeviceRemovalCallback()
yRegisterDeviceRemovalCallback()
yRegisterDeviceRemovalCallback()YAPI.RegisterDeviceRemovalCallback()yRegisterDeviceRemovalCallback()[YAPI RegisterDeviceRemovalCallback: ]yRegisterDeviceRemovalCallback()yRegisterDeviceRemovalCallback()YAPI.RegisterDeviceRemovalCallback()YAPI.RegisterDeviceRemovalCallback()YAPI.RegisterDeviceRemovalCallback()yRegisterDeviceRemovalCallback()YAPI.RegisterDeviceRemovalCallback()

Enregistre une fonction de callback qui sera appelée à chaque fois qu'un module est débranché.

js
function yRegisterDeviceRemovalCallback(removalCallback)
nodejs
function RegisterDeviceRemovalCallback(removalCallback)
cpp
void yRegisterDeviceRemovalCallback(yDeviceUpdateCallback removalCallback)
m
+(void) RegisterDeviceRemovalCallback:(yDeviceUpdateCallback) removalCallback
pas
procedure yRegisterDeviceRemovalCallback(removalCallback: yDeviceUpdateFunc)
vb
procedure yRegisterDeviceRemovalCallback(ByVal removalCallback As yDeviceUpdateFunc)
cs
void RegisterDeviceRemovalCallback(yDeviceUpdateFunc removalCallback)
java
void RegisterDeviceRemovalCallback(DeviceRemovalCallback removalCallback)
py
def RegisterDeviceRemovalCallback(removalCallback)
php
function yRegisterDeviceRemovalCallback($removalCallback)
es
function RegisterDeviceRemovalCallback(removalCallback)

Le callback sera appelé pendant l'éxecution de la fonction yUpdateDeviceList, que vous devrez appeler régulièrement.

Paramètres :

pour supprimer un callback déja enregistré.
removalCallbackune procédure qui prend un YModule en paramètre, ou null

YAPI.RegisterHub()
yRegisterHub()
yRegisterHub()YAPI.RegisterHub()yRegisterHub()[YAPI RegisterHub: ]yRegisterHub()yRegisterHub()YAPI.RegisterHub()YAPI.RegisterHub()YAPI.RegisterHub()yRegisterHub()YAPI.RegisterHub()

Configure la librairie Yoctopuce pour utiliser les modules connectés sur une machine donnée.

js
function yRegisterHub(url, errmsg)
nodejs
function RegisterHub(url, errmsg)
cpp
YRETCODE yRegisterHub(const string& url, string& errmsg)
m
+(YRETCODE) RegisterHub:(NSString *) url :(NSError**) errmsg
pas
function yRegisterHub(url: string, var errmsg: string): integer
vb
function yRegisterHub(ByVal url As String,
  ByRef errmsg As String) As Integer
cs
int RegisterHub(string url, ref string errmsg)
java
int RegisterHub(String url)
py
def RegisterHub(url, errmsg=None)
php
function yRegisterHub($url, &$errmsg)
es
function RegisterHub(url, errmsg)

Le premier paramètre détermine le fonctionnement de l'API, il peut prendre les valeurs suivantes:

usb: Si vous utilisez le mot-clé usb, l'API utilise les modules Yoctopuce connectés directement par USB. Certains languages comme PHP, Javascript et Java ne permettent pas un accès direct aux couches matérielles, usb ne marchera donc pas avec ces languages. Dans ce cas, utilisez un VirtualHub ou un YoctoHub réseau (voir ci-dessous).

x.x.x.x ou hostname: L'API utilise les modules connectés à la machine dont l'adresse IP est x.x.x.x, ou dont le nom d'hôte DNS est hostname. Cette machine peut être un ordinateur classique faisant tourner un VirtualHub, ou un YoctoHub avec réseau (YoctoHub-Ethernet / YoctoHub-Wireless). Si vous désirez utiliser le VirtualHub tournant sur votre machine locale, utilisez l'adresse IP 127.0.0.1.

callback Le mot-clé callback permet de faire fonctionnner l'API dans un mode appélé "callback HTTP". C'est un mode spécial permettant, entre autres, de prendre le contrôle de modules Yoctopuce à travers un filtre NAT par l'intermédiaire d'un VirtualHub ou d'un Hub Yoctopuce. Il vous suffit de configuer le hub pour qu'il appelle votre script à intervalle régulier. Ce mode de fonctionnement n'est disponible actuellement qu'en PHP et en Node.JS.

Attention, seule une application peut fonctionner à la fois sur une machine donnée en accès direct à USB, sinon il y aurait un conflit d'accès aux modules. Cela signifie en particulier que vous devez stopper le VirtualHub avant de lancer une application utilisant l'accès direct à USB. Cette limitation peut être contournée en passant par un VirtualHub plutôt que d'utiliser directement USB.

Si vous désirez vous connecter à un Hub, virtuel ou non, sur lequel le controle d'accès a été activé, vous devez donner le paramètre url sous la forme:

http://nom:mot_de_passe@adresse:port

Vous pouvez appeller RegisterHub plusieurs fois pour vous connecter à plusieurs machines différentes.

Paramètres :

urlune chaîne de caractères contenant "usb","callback", ou l'URL racine du VirtualHub à utiliser.
errmsgune chaîne de caractères passée par référence, dans laquelle sera stocké un éventuel message d'erreur.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

YAPI.RegisterHubDiscoveryCallback()
yRegisterHubDiscoveryCallback()
yRegisterHubDiscoveryCallback()[YAPI RegisterHubDiscoveryCallback: ]yRegisterHubDiscoveryCallback()yRegisterHubDiscoveryCallback()YAPI.RegisterHubDiscoveryCallback()YAPI.RegisterHubDiscoveryCallback()YAPI.RegisterHubDiscoveryCallback()

Enregistre une fonction de callback qui est appelée chaque fois qu'un hub réseau s'annonce avec un message SSDP.

cpp
void yRegisterHubDiscoveryCallback(YHubDiscoveryCallback hubDiscoveryCallback)
m
+(void) RegisterHubDiscoveryCallback: (YHubDiscoveryCallback) hubDiscoveryCallback
pas
procedure yRegisterHubDiscoveryCallback(hubDiscoveryCallback: YHubDiscoveryCallback)
vb
procedure yRegisterHubDiscoveryCallback(ByVal hubDiscoveryCallback As YHubDiscoveryCallback)
cs
void RegisterHubDiscoveryCallback(YHubDiscoveryCallback hubDiscoveryCallback)
java
void RegisterHubDiscoveryCallback(HubDiscoveryCallback hubDiscoveryCallback)
py
def RegisterHubDiscoveryCallback(hubDiscoveryCallback)

la fonction de callback reçois deux chaînes de caractères en paramètre La première chaîne contient le numéro de série du hub réseau et la deuxième chaîne contient l'URL du hub. L'URL peut être passée directement en argument à la fonction yRegisterHub. Le callback sera appelé pendant l’exécution de la fonction yUpdateDeviceList, que vous devrez appeler régulièrement.

Paramètres :

pour supprimer un callback déjà enregistré.
hubDiscoveryCallbackune procédure qui prend deux chaîne de caractères en paramètre, ou null

YAPI.RegisterLogFunction()
yRegisterLogFunction()
yRegisterLogFunction()[YAPI RegisterLogFunction: ]yRegisterLogFunction()yRegisterLogFunction()YAPI.RegisterLogFunction()YAPI.RegisterLogFunction()YAPI.RegisterLogFunction()

Enregistre une fonction de callback qui sera appellée à chaque fois que l'API a quelque chose à dire.

cpp
void yRegisterLogFunction(yLogFunction logfun)
m
+(void) RegisterLogFunction:(yLogCallback) logfun
pas
procedure yRegisterLogFunction(logfun: yLogFunc)
vb
procedure yRegisterLogFunction(ByVal logfun As yLogFunc)
cs
void RegisterLogFunction(yLogFunc logfun)
java
void RegisterLogFunction(LogCallback logfun)
py
def RegisterLogFunction(logfun)

Utile pour débugger le fonctionnement de l'API.

Paramètres :

ou null pour supprimer un callback déja enregistré.
logfunune procedure qui prend une chaîne de caractère en paramètre,

YAPI.SelectArchitecture()
ySelectArchitecture()
YAPI.SelectArchitecture()

Sélectionne manuellement l'architecture de la libraire dynamique à utiliser pour accéder à USB.

py
def SelectArchitecture(arch)

Par défaut, la libraire Python détecte automatiquement la version de la libraire dynamique à utiliser pour accéder au port USB. Sous Linux ARM il n'est pas possible de détecter de manière fiable si il s'agit d'une installation Soft float (armel) ou Hard float (armhf). Dans ce cas, il est donc recommendé d'appeler SelectArchitecture() avant tout autre appel à la librairie pour forcer l'utilisation d'une architecture spécifiée.

Paramètres :

archune chaîne de caractère spécifiant l'architecture à utiliser. Les valeurs possibles sont "armhf","armel", "i386","x86_64","32bit", "64bit"

Retourne :

rien.

En cas d'erreur, déclenche une exception.

YAPI.SetDelegate()
ySetDelegate()
[YAPI SetDelegate: ]

(Objective-C uniquement) Enregistre un objet délégué qui doit se conformer au protocole YDeviceHotPlug.

m
+(void) SetDelegate:(id) object

Les méthodes yDeviceArrival et yDeviceRemoval seront appelées pendant l’exécution de la fonction yUpdateDeviceList, que vous devrez appeler régulièrement.

Paramètres :

pour supprimer un objet déja enregistré.
objectun objet qui soit se conformer au protocole YAPIDelegate, ou nil

YAPI.SetTimeout()
ySetTimeout()
ySetTimeout()YAPI.SetTimeout()YAPI.SetTimeout()

Appelle le callback spécifié après un temps d'attente spécifié.

js
function ySetTimeout(callback, ms_timeout, args)
nodejs
function SetTimeout(callback, ms_timeout, arguments)
es
function SetTimeout(callback, ms_timeout, args)

Cette fonction se comporte plus ou moins comme la fonction Javascript setTimeout, mais durant le temps d'attente, elle va appeler yHandleEvents et yUpdateDeviceList périodiquement pour maintenir l'API à jour avec les modules connectés.

Paramètres :

callbackla fonction à appeler lorsque le temps d'attente est écoulé. Sous Microsoft Internet Explorer, le callback doit être spécifié sous forme d'une string à évaluer.
ms_timeoutun entier correspondant à la durée de l'attente, en millisecondes
argsdes arguments supplémentaires peuvent être fournis, pour être passés à la fonction de callback si nécessaire.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

YAPI.Sleep()
ySleep()
ySleep()YAPI.Sleep()ySleep()[YAPI Sleep: ]ySleep()ySleep()YAPI.Sleep()YAPI.Sleep()YAPI.Sleep()ySleep()YAPI.Sleep()

Effectue une pause dans l'exécution du programme pour une durée spécifiée.

js
function ySleep(ms_duration, errmsg)
nodejs
function Sleep(ms_duration, errmsg)
cpp
YRETCODE ySleep(unsigned ms_duration, string& errmsg)
m
+(YRETCODE) Sleep:(unsigned) ms_duration :(NSError **) errmsg
pas
function ySleep(ms_duration: integer, var errmsg: string): integer
vb
function ySleep(ByVal ms_duration As Integer,
  ByRef errmsg As String) As Integer
cs
int Sleep(int ms_duration, ref string errmsg)
java
int Sleep(long ms_duration)
py
def Sleep(ms_duration, errmsg=None)
php
function ySleep($ms_duration, &$errmsg)
es
function Sleep(ms_duration, errmsg)

L'attente est passive, c'est-à-dire qu'elle n'occupe pas significativement le processeur, de sorte à le laisser disponible pour les autres processus fonctionnant sur la machine. Durant l'attente, la librairie va néanmoins continuer à lire périodiquement les informations en provenance des modules Yoctopuce en appelant la fonction yHandleEvents() afin de se maintenir à jour.

Cette fonction peut signaler une erreur au cas à la communication avec un module Yoctopuce ne se passerait pas comme attendu.

Paramètres :

ms_durationun entier correspondant à la durée de la pause, en millisecondes
errmsgune chaîne de caractères passée par référence, dans laquelle sera stocké un éventuel message d'erreur.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

YAPI.TestHub()
yTestHub()
yTestHub()[YAPI TestHub: ]yTestHub()yTestHub()YAPI.TestHub()YAPI.TestHub()YAPI.TestHub()yTestHub()YAPI.TestHub()

Test si un hub est joignable.

cpp
YRETCODE yTestHub(const string& url, int mstimeout, string& errmsg)
m
+(YRETCODE) TestHub: (NSString*) url
  : (int) mstimeout
  : (NSError**) errmsg
pas
function yTestHub(url: string,
  mstimeout: integer,
  var errmsg: string): integer
vb
function yTestHub(ByVal url As String,
  ByVal mstimeout As Integer,
  ByRef errmsg As String) As Integer
cs
int TestHub(string url, int mstimeout, ref string errmsg)
java
int TestHub(String url, int mstimeout)
py
def TestHub(url, mstimeout, errmsg=None)
php
function yTestHub($url, $mstimeout, &$errmsg)
es
function TestHub(url, mstimeout)

Cette méthode n'enregistre pas le hub, elle ne fait que de vérifier que le hub est joignable. Le paramètre url suit les mêmes conventions que la méthode RegisterHub. Cette méthode est utile pour vérifier les paramètres d'authentification d'un hub. Il est possible de forcer la méthode à rendre la main après mstimeout millisecondes.

Paramètres :

urlune chaîne de caractères contenant "usb","callback", ou l'URL racine du VirtualHub à utiliser.
mstimeoutle nombre de millisecondes disponible pour tester la connexion.
errmsgune chaîne de caractères passée par référence, dans laquelle sera stocké un éventuel message d'erreur.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur retourne un code d'erreur négatif.

YAPI.TriggerHubDiscovery()
yTriggerHubDiscovery()
yTriggerHubDiscovery()[YAPI TriggerHubDiscovery: ]yTriggerHubDiscovery()yTriggerHubDiscovery()YAPI.TriggerHubDiscovery()YAPI.TriggerHubDiscovery()YAPI.TriggerHubDiscovery()

Relance une détection des hubs réseau.

cpp
YRETCODE yTriggerHubDiscovery(string& errmsg)
m
+(YRETCODE) TriggerHubDiscovery: (NSError**) errmsg
pas
function yTriggerHubDiscovery(var errmsg: string): integer
vb
function yTriggerHubDiscovery(ByRef errmsg As String) As Integer
cs
int TriggerHubDiscovery(ref string errmsg)
java
int TriggerHubDiscovery()
py
def TriggerHubDiscovery(errmsg=None)

Si une fonction de callback est enregistrée avec yRegisterDeviceRemovalCallback elle sera appelée à chaque hub réseau qui répondra à la détection SSDP.

Paramètres :

errmsgune chaîne de caractères passée par référence, dans laquelle sera stocké un éventuel message d'erreur.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur. En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

YAPI.UnregisterHub()
yUnregisterHub()
yUnregisterHub()YAPI.UnregisterHub()yUnregisterHub()[YAPI UnregisterHub: ]yUnregisterHub()yUnregisterHub()YAPI.UnregisterHub()YAPI.UnregisterHub()YAPI.UnregisterHub()yUnregisterHub()YAPI.UnregisterHub()

Configure la librairie Yoctopuce pour ne plus utiliser les modules connectés sur une machine préalablement enregistrer avec RegisterHub.

js
function yUnregisterHub(url)
nodejs
function UnregisterHub(url)
cpp
void yUnregisterHub(const string& url)
m
+(void) UnregisterHub:(NSString *) url
pas
procedure yUnregisterHub(url: string)
vb
procedure yUnregisterHub(ByVal url As String)
cs
void UnregisterHub(string url)
java
void UnregisterHub(String url)
py
def UnregisterHub(url)
php
function yUnregisterHub($url)
es
function UnregisterHub(url)

Paramètres :

l'URL racine du VirtualHub à ne plus utiliser.
urlune chaîne de caractères contenant "usb" ou

YAPI.UpdateDeviceList()
yUpdateDeviceList()
yUpdateDeviceList()YAPI.UpdateDeviceList()yUpdateDeviceList()[YAPI UpdateDeviceList: ]yUpdateDeviceList()yUpdateDeviceList()YAPI.UpdateDeviceList()YAPI.UpdateDeviceList()YAPI.UpdateDeviceList()yUpdateDeviceList()YAPI.UpdateDeviceList()

Force une mise-à-jour de la liste des modules Yoctopuce connectés.

js
function yUpdateDeviceList(errmsg)
nodejs
function UpdateDeviceList(errmsg)
cpp
YRETCODE yUpdateDeviceList(string& errmsg)
m
+(YRETCODE) UpdateDeviceList:(NSError**) errmsg
pas
function yUpdateDeviceList(var errmsg: string): integer
vb
function yUpdateDeviceList(ByRef errmsg As String) As YRETCODE
cs
YRETCODE UpdateDeviceList(ref string errmsg)
java
int UpdateDeviceList()
py
def UpdateDeviceList(errmsg=None)
php
function yUpdateDeviceList(&$errmsg)
es
function UpdateDeviceList(errmsg)

La librairie va vérifier sur les machines ou ports USB précédemment enregistrés en utilisant la fonction yRegisterHub si un module a été connecté ou déconnecté, et le cas échéant appeler les fonctions de callback définies par l'utilisateur.

Cette fonction peut être appelée aussi souvent que désiré, afin de rendre l'application réactive aux événements de hot-plug.

Paramètres :

errmsgune chaîne de caractères passée par référence, dans laquelle sera stocké un éventuel message d'erreur.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

YAPI.UpdateDeviceList_async()
yUpdateDeviceList_async()
yUpdateDeviceList_async()YAPI.UpdateDeviceList_async()

Force une mise-à-jour de la liste des modules Yoctopuce connectés.

js
function yUpdateDeviceList_async(callback, context)
nodejs
function UpdateDeviceList_async(callback, context)

La librairie va vérifier sur les machines ou ports USB précédemment enregistrés en utilisant la fonction yRegisterHub si un module a été connecté ou déconnecté, et le cas échéant appeler les fonctions de callback définies par l'utilisateur.

Cette fonction peut être appelée aussi souvent que désiré, afin de rendre l'application réactive aux événements de hot-plug.

Cette version asynchrone n'existe qu'en Javascript. Elle utilise une fonction de callback plutôt qu'une simple valeur de retour, pour éviter de bloquer la VM Javascript de Firefox, qui n'implémente pas le passage de contrôle entre threads durant les appels d'entrée/sortie bloquants.

Paramètres :

callbackfonction de callback qui sera appelée dès que le résultat sera connu. La fonction callback reçoit deux arguments: le contexte fourni par l'appelant et le code de retour (YAPI_SUCCESS si l'opération se déroule sans erreur).
contextcontexte fourni par l'appelant, et qui sera passé tel-quel à la fonction de callback

Retourne :

rien du tout : le résultat sera passé en paramètre à la fonction de callback.

9.2. Interface de contrôle du module

Cette interface est la même pour tous les modules USB de Yoctopuce. Elle permet de contrôler les paramètres généraux du module, et d'énumérer les fonctions fournies par chaque module.

Pour utiliser les fonctions décrites ici, vous devez inclure:

js
<script type='text/javascript' src='yocto_api.js'></script>
nodejs
var yoctolib = require('yoctolib');
var YAPI = yoctolib.YAPI;
var YModule = yoctolib.YModule;
cpp
#include "yocto_api.h"
m
#import "yocto_api.h"
pas
uses yocto_api;
vb
yocto_api.vb
cs
yocto_api.cs
java
import com.yoctopuce.YoctoAPI.YModule;
py
from yocto_api import *
php
require_once('yocto_api.php');
es
import { YAPI, YErrorMsg, YModule } from 'yoctolib-es'
Fonction globales
yFindModule(func)

Permet de retrouver un module d'après son numéro de série ou son nom logique.

yFindModuleInContext(yctx, func)

Permet de retrouver un module d'après un identifiant donné dans un Context YAPI.

yFirstModule()

Commence l'énumération des modules accessibles par la librairie.

Méthodes des objets YModule
module→checkFirmware(path, onlynew)

Teste si le fichié byn est valide pour le module.

module→clearCache()

Invalide le cache.

module→describe()

Retourne un court texte décrivant le module.

module→download(pathname)

Télécharge le fichier choisi du module et retourne son contenu.

module→functionCount()

Retourne le nombre de fonctions (sans compter l'interface "module") existant sur le module.

module→functionId(functionIndex)

Retourne l'identifiant matériel de la nième fonction du module.

module→functionName(functionIndex)

Retourne le nom logique de la nième fonction du module.

module→functionType(functionIndex)

Retourne le type de la nième fonction du module.

module→functionValue(functionIndex)

Retourne la valeur publiée par la nième fonction du module.

module→get_allSettings()

Retourne tous les paramètres de configuration du module.

module→get_beacon()

Retourne l'état de la balise de localisation.

module→get_errorMessage()

Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation de l'objet module.

module→get_errorType()

Retourne le code d'erreur correspondant à la dernière erreur survenue lors de l'utilisation de l'objet module.

module→get_firmwareRelease()

Retourne la version du logiciel embarqué du module.

module→get_functionIds(funType)

Retourne les identifiants matériels des fonctions correspondant au type passé en argument.

module→get_hardwareId()

Retourne l'identifiant unique du module.

module→get_icon2d()

Retourne l'icône du module.

module→get_lastLogs()

Retourne une chaine de charactère contenant les derniers logs du module.

module→get_logicalName()

Retourne le nom logique du module.

module→get_luminosity()

Retourne la luminosité des leds informatives du module (valeur entre 0 et 100).

module→get_parentHub()

Retourne le numéro de série du YoctoHub sur lequel est connecté le module.

module→get_persistentSettings()

Retourne l'état courant des réglages persistents du module.

module→get_productId()

Retourne l'identifiant USB du module, préprogrammé en usine.

module→get_productName()

Retourne le nom commercial du module, préprogrammé en usine.

module→get_productRelease()

Retourne le numéro de version matériel du module, préprogrammé en usine.

module→get_rebootCountdown()

Retourne le nombre de secondes restantes avant un redémarrage du module, ou zéro si aucun redémarrage n'a été agendé.

module→get_serialNumber()

Retourne le numéro de série du module, préprogrammé en usine.

module→get_subDevices()

Retourne la liste des modules branchés au module courant.

module→get_upTime()

Retourne le numbre de millisecondes écoulées depuis la mise sous tension du module

module→get_url()

Retourne l'URL utilisée pour accéder au module.

module→get_usbCurrent()

Retourne le courant consommé par le module sur le bus USB, en milliampères.

module→get_userData()

Retourne le contenu de l'attribut userData, précédemment stocké à l'aide de la méthode set_userData.

module→get_userVar()

Retourne la valeur entière précédemment stockée dans cet attribut.

module→hasFunction(funcId)

Teste la présence d'une fonction pour le module courant.

module→isOnline()

Vérifie si le module est joignable, sans déclencher d'erreur.

module→isOnline_async(callback, context)

Vérifie si le module est joignable, sans déclencher d'erreur.

module→load(msValidity)

Met en cache les valeurs courantes du module, avec une durée de validité spécifiée.

module→load_async(msValidity, callback, context)

Met en cache les valeurs courantes du module, avec une durée de validité spécifiée.

module→log(text)

Ajoute un message arbitraire dans les logs du module.

module→nextModule()

Continue l'énumération des modules commencée à l'aide de yFirstModule().

module→reboot(secBeforeReboot)

Agende un simple redémarrage du module dans un nombre donné de secondes.

module→registerLogCallback(callback)

Enregistre une fonction de callback qui sera appelée à chaque fois le module émet un message de log.

module→revertFromFlash()

Recharge les réglages stockés dans le mémoire non volatile du module, comme à la mise sous tension du module.

module→saveToFlash()

Sauve les réglages courants dans la mémoire non volatile du module.

module→set_allSettings(settings)

Rétablit tous les paramètres du module.

module→set_allSettingsAndFiles(settings)

Rétablit tous les paramètres de configuration et fichiers sur un module.

module→set_beacon(newval)

Allume ou éteint la balise de localisation du module.

module→set_logicalName(newval)

Change le nom logique du module.

module→set_luminosity(newval)

Modifie la luminosité des leds informatives du module.

module→set_userData(data)

Enregistre un contexte libre dans l'attribut userData de la fonction, afin de le retrouver plus tard à l'aide de la méthode get_userData.

module→set_userVar(newval)

Retourne la valeur entière précédemment stockée dans cet attribut.

module→triggerFirmwareUpdate(secBeforeReboot)

Agende un redémarrage du module en mode spécial de reprogrammation du logiciel embarqué.

module→updateFirmware(path)

Prepare une mise à jour de firmware du module.

module→updateFirmwareEx(path, force)

Prepare une mise à jour de firmware du module.

module→wait_async(callback, context)

Attend que toutes les commandes asynchrones en cours d'exécution sur le module soient terminées, et appelle le callback passé en paramètre.

YModule.FindModule()
yFindModule()
yFindModule()YModule.FindModule()yFindModule()[YModule FindModule: ]yFindModule()yFindModule()YModule.FindModule()YModule.FindModule()YModule.FindModule()yFindModule()YModule.FindModule()

Permet de retrouver un module d'après son numéro de série ou son nom logique.

js
function yFindModule(func)
nodejs
function FindModule(func)
cpp
YModule* yFindModule(string func)
m
+(YModule*) FindModule: (NSString*) func
pas
function yFindModule(func: string): TYModule
vb
function yFindModule(ByVal func As String) As YModule
cs
YModule FindModule(string func)
java
YModule FindModule(String func)
py
def FindModule(func)
php
function yFindModule($func)
es
function FindModule(func)

Cette fonction n'exige pas que le module soit en ligne au moment ou elle est appelée, l'objet retourné sera néanmoins valide. Utiliser la méthode YModule.isOnline() pour tester si le module est utilisable à un moment donné. En cas d'ambiguïté lorsqu'on fait une recherche par nom logique, aucune erreur ne sera notifiée: la première instance trouvée sera renvoyée. La recherche se fait d'abord par nom matériel, puis par nom logique.

Paramètres :

funcune chaîne de caractères contenant soit le numéro de série, soit le nom logique du module désiré

Retourne :

un objet de classe YModule qui permet ensuite de contrôler le module ou d'obtenir de plus amples informations sur le module.

YModule.FindModuleInContext()
yFindModuleInContext()
YModule.FindModuleInContext()YModule.FindModuleInContext()

Permet de retrouver un module d'après un identifiant donné dans un Context YAPI.

java
YModule FindModuleInContext(YAPIContext yctx, String func)
es
function FindModuleInContext(yctx, func)

L'identifiant peut être spécifié sous plusieurs formes:

Cette fonction n'exige pas que le module soit en ligne au moment ou elle est appelée, l'objet retourné sera néanmoins valide. Utiliser la méthode YModule.isOnline() pour tester si le module est utilisable à un moment donné. En cas d'ambiguïté lorsqu'on fait une recherche par nom logique, aucune erreur ne sera notifiée: la première instance trouvée sera renvoyée. La recherche se fait d'abord par nom matériel, puis par nom logique.

Paramètres :

yctxun contexte YAPI
funcune chaîne de caractères qui référence le module sans ambiguïté

Retourne :

un objet de classe YModule qui permet ensuite de contrôler le module.

YModule.FirstModule()
yFirstModule()
yFirstModule()YModule.FirstModule()yFirstModule()[YModule FirstModule]yFirstModule()yFirstModule()YModule.FirstModule()YModule.FirstModule()YModule.FirstModule()yFirstModule()YModule.FirstModule()

Commence l'énumération des modules accessibles par la librairie.

js
function yFirstModule()
nodejs
function FirstModule()
cpp
YModule* yFirstModule()
m
+(YModule*) FirstModule
pas
function yFirstModule(): TYModule
vb
function yFirstModule() As YModule
cs
YModule FirstModule()
java
YModule FirstModule()
py
def FirstModule()
php
function yFirstModule()
es
function FirstModule()

Utiliser la fonction YModule.nextModule() pour itérer sur les autres modules.

Retourne :

un pointeur sur un objet YModule, correspondant au premier module accessible en ligne, ou null si aucun module n'a été trouvé.

module→checkFirmware()module.checkFirmware()module.checkFirmware()module→checkFirmware()[module checkFirmware: ]module.checkFirmware()module.checkFirmware()module.checkFirmware()module.checkFirmware()module.checkFirmware()module→checkFirmware()module.checkFirmware()YModule checkFirmware

Teste si le fichié byn est valide pour le module.

js
function checkFirmware(path, onlynew)
nodejs
function checkFirmware(path, onlynew)
cpp
string checkFirmware(string path, bool onlynew)
m
-(NSString*) checkFirmware: (NSString*) path
  : (bool) onlynew
pas
function checkFirmware(path: string, onlynew: boolean): string
vb
function checkFirmware() As String
cs
string checkFirmware(string path, bool onlynew)
java
String checkFirmware(String path, boolean onlynew)
py
def checkFirmware(path, onlynew)
php
function checkFirmware($path, $onlynew)
es
function checkFirmware(path, onlynew)
cmd
YModule target checkFirmware path onlynew

Cette méthode est utile pour vérifier si il est nécessaire de mettre à jour le module avec un nouveau firmware. Il est possible de passer un répertoire qui contiens plusieurs fichier .byn. Dans ce cas cette methode retourne le path du fichier .byn compatible le plus récent. Si le parametre onlynew est vrais, les firmwares équivalents ou plus anciens que le firmware actuellement installé sont ignorés.

Paramètres :

pathle path d'un fichier .byn ou d'un répertoire contenant plusieurs fichier .byn
onlynewretourne uniquement les fichiers strictement plus récents

Retourne :

le path du fichier .byn à utiliser, ou une chaîne vide si aucun firmware plus récent n'est disponible En cas d'erreur, déclenche une exception ou retourne une chaine de caractère qui comment par "error:".

module→clearCache()module.clearCache()module.clearCache()module→clearCache()[module clearCache]module.clearCache()module.clearCache()module.clearCache()module.clearCache()module.clearCache()module→clearCache()module.clearCache()

Invalide le cache.

js
function clearCache()
nodejs
function clearCache()
cpp
void clearCache()
m
-(void) clearCache
pas
procedure clearCache()
vb
procedure clearCache()
cs
void clearCache()
java
void clearCache()
py
def clearCache()
php
function clearCache()
es
function clearCache()

Invalide le cache des valeurs courantes du module. Force le prochain appel à une méthode get_xxx() ou loadxxx() pour charger les les données depuis le module.

module→describe()module.describe()module.describe()module→describe()[module describe]module.describe()module.describe()module.describe()module.describe()module.describe()module→describe()module.describe()

Retourne un court texte décrivant le module.

js
function describe()
nodejs
function describe()
cpp
string describe()
m
-(NSString*) describe
pas
function describe(): string
vb
function describe() As String
cs
string describe()
java
String describe()
py
def describe()
php
function describe()
es
function describe()

Ce texte peut contenir soit le nom logique du module, soit son numéro de série.

Retourne :

une chaîne de caractères décrivant le module

module→download()module.download()module.download()module→download()[module download: ]module.download()module.download()module.download()module.download()module.download()module→download()module.download()YModule download

Télécharge le fichier choisi du module et retourne son contenu.

js
function download(pathname)
nodejs
function download(pathname)
cpp
string download(string pathname)
m
-(NSMutableData*) download: (NSString*) pathname
pas
function download(pathname: string): TByteArray
vb
function download() As Byte
cs
byte[] download(string pathname)
java
byte[] download(String pathname)
py
def download(pathname)
php
function download($pathname)
es
function download(pathname)
cmd
YModule target download pathname

Paramètres :

pathnamenom complet du fichier

Retourne :

le contenu du fichier chargé

En cas d'erreur, déclenche une exception ou retourne YAPI_INVALID_STRING.

module→functionCount()module.functionCount()module.functionCount()module→functionCount()[module functionCount]module.functionCount()module.functionCount()module.functionCount()module.functionCount()module.functionCount()module→functionCount()module.functionCount()

Retourne le nombre de fonctions (sans compter l'interface "module") existant sur le module.

js
function functionCount()
nodejs
function functionCount()
cpp
int functionCount()
m
-(int) functionCount
pas
function functionCount(): integer
vb
function functionCount() As Integer
cs
int functionCount()
java
int functionCount()
py
def functionCount()
php
function functionCount()
es
function functionCount()

Retourne :

le nombre de fonctions sur le module

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

module→functionId()module.functionId()module.functionId()module→functionId()[module functionId: ]module.functionId()module.functionId()module.functionId()module.functionId()module.functionId()module→functionId()module.functionId()

Retourne l'identifiant matériel de la nième fonction du module.

js
function functionId(functionIndex)
nodejs
function functionId(functionIndex)
cpp
string functionId(int functionIndex)
m
-(NSString*) functionId: (int) functionIndex
pas
function functionId(functionIndex: integer): string
vb
function functionId(ByVal functionIndex As Integer) As String
cs
string functionId(int functionIndex)
java
String functionId(int functionIndex)
py
def functionId(functionIndex)
php
function functionId($functionIndex)
es
function functionId(functionIndex)

Paramètres :

functionIndexl'index de la fonction pour laquelle l'information est désirée, en commençant à 0 pour la première fonction.

Retourne :

une chaîne de caractères correspondant à l'identifiant matériel unique de la fonction désirée

En cas d'erreur, déclenche une exception ou retourne un chaîne vide.

module→functionName()module.functionName()module.functionName()module→functionName()[module functionName: ]module.functionName()module.functionName()module.functionName()module.functionName()module.functionName()module→functionName()module.functionName()

Retourne le nom logique de la nième fonction du module.

js
function functionName(functionIndex)
nodejs
function functionName(functionIndex)
cpp
string functionName(int functionIndex)
m
-(NSString*) functionName: (int) functionIndex
pas
function functionName(functionIndex: integer): string
vb
function functionName(ByVal functionIndex As Integer) As String
cs
string functionName(int functionIndex)
java
String functionName(int functionIndex)
py
def functionName(functionIndex)
php
function functionName($functionIndex)
es
function functionName(functionIndex)

Paramètres :

functionIndexl'index de la fonction pour laquelle l'information est désirée, en commençant à 0 pour la première fonction.

Retourne :

une chaîne de caractères correspondant au nom logique de la fonction désirée

En cas d'erreur, déclenche une exception ou retourne un chaîne vide.

module→functionType()module.functionType()module.functionType()module→functionType()module.functionType()module.functionType()module.functionType()module.functionType()module.functionType()module→functionType()module.functionType()

Retourne le type de la nième fonction du module.

js
function functionType(functionIndex)
nodejs
function functionType(functionIndex)
cpp
string functionType(int functionIndex)
pas
function functionType(functionIndex: integer): string
vb
function functionType(ByVal functionIndex As Integer) As String
cs
string functionType(int functionIndex)
java
String functionType(int functionIndex)
py
def functionType(functionIndex)
php
function functionType($functionIndex)
es
function functionType(functionIndex)

Paramètres :

functionIndexl'index de la fonction pour laquelle l'information est désirée, en commençant à 0 pour la première fonction.

Retourne :

une chaîne de caractères correspondant au type de la fonction

En cas d'erreur, déclenche une exception ou retourne un chaîne vide.

module→functionValue()module.functionValue()module.functionValue()module→functionValue()[module functionValue: ]module.functionValue()module.functionValue()module.functionValue()module.functionValue()module.functionValue()module→functionValue()module.functionValue()

Retourne la valeur publiée par la nième fonction du module.

js
function functionValue(functionIndex)
nodejs
function functionValue(functionIndex)
cpp
string functionValue(int functionIndex)
m
-(NSString*) functionValue: (int) functionIndex
pas
function functionValue(functionIndex: integer): string
vb
function functionValue(ByVal functionIndex As Integer) As String
cs
string functionValue(int functionIndex)
java
String functionValue(int functionIndex)
py
def functionValue(functionIndex)
php
function functionValue($functionIndex)
es
function functionValue(functionIndex)

Paramètres :

functionIndexl'index de la fonction pour laquelle l'information est désirée, en commençant à 0 pour la première fonction.

Retourne :

une chaîne de caractères correspondant à la valeur publiée par la fonction désirée

En cas d'erreur, déclenche une exception ou retourne un chaîne vide.

module→get_allSettings()
module→allSettings()
module.get_allSettings()module.get_allSettings()module→get_allSettings()[module allSettings]module.get_allSettings()module.get_allSettings()module.get_allSettings()module.get_allSettings()module.get_allSettings()module→get_allSettings()module.get_allSettings()YModule get_allSettings

Retourne tous les paramètres de configuration du module.

js
function get_allSettings()
nodejs
function get_allSettings()
cpp
string get_allSettings()
m
-(NSMutableData*) allSettings
pas
function get_allSettings(): TByteArray
vb
function get_allSettings() As Byte
cs
byte[] get_allSettings()
java
byte[] get_allSettings()
py
def get_allSettings()
php
function get_allSettings()
es
function get_allSettings()
cmd
YModule target get_allSettings

Utile pour sauvgarder les noms logiques, les calibrations et fichies uploadés d'un module.

Retourne :

un objet binaire avec tous les paramètres

En cas d'erreur, déclenche une exception ou retourne un objet binaire de taille 0.

module→get_beacon()
module→beacon()
module.get_beacon()module.get_beacon()module→get_beacon()[module beacon]module.get_beacon()module.get_beacon()module.get_beacon()module.get_beacon()module.get_beacon()module→get_beacon()module.get_beacon()YModule get_beacon

Retourne l'état de la balise de localisation.

js
function get_beacon()
nodejs
function get_beacon()
cpp
Y_BEACON_enum get_beacon()
m
-(Y_BEACON_enum) beacon
pas
function get_beacon(): Integer
vb
function get_beacon() As Integer
cs
int get_beacon()
java
int get_beacon()
py
def get_beacon()
php
function get_beacon()
es
function get_beacon()
cmd
YModule target get_beacon

Retourne :

soit Y_BEACON_OFF, soit Y_BEACON_ON, selon l'état de la balise de localisation

En cas d'erreur, déclenche une exception ou retourne Y_BEACON_INVALID.

module→get_errorMessage()
module→errorMessage()
module.get_errorMessage()module.get_errorMessage()module→get_errorMessage()[module errorMessage]module.get_errorMessage()module.get_errorMessage()module.get_errorMessage()module.get_errorMessage()module.get_errorMessage()module→get_errorMessage()module.get_errorMessage()

Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation de l'objet module.

js
function get_errorMessage()
nodejs
function get_errorMessage()
cpp
string get_errorMessage()
m
-(NSString*) errorMessage
pas
function get_errorMessage(): string
vb
function get_errorMessage() As String
cs
string get_errorMessage()
java
String get_errorMessage()
py
def get_errorMessage()
php
function get_errorMessage()
es
function get_errorMessage()

Cette méthode est principalement utile lorsque la librairie Yoctopuce est utilisée en désactivant la gestion des exceptions.

Retourne :

une chaîne de caractères correspondant au message de la dernière erreur qui s'est produit lors de l'utilisation du module

module→get_errorType()
module→errorType()
module.get_errorType()module.get_errorType()module→get_errorType()module.get_errorType()module.get_errorType()module.get_errorType()module.get_errorType()module.get_errorType()module→get_errorType()module.get_errorType()

Retourne le code d'erreur correspondant à la dernière erreur survenue lors de l'utilisation de l'objet module.

js
function get_errorType()
nodejs
function get_errorType()
cpp
YRETCODE get_errorType()
pas
function get_errorType(): YRETCODE
vb
function get_errorType() As YRETCODE
cs
YRETCODE get_errorType()
java
int get_errorType()
py
def get_errorType()
php
function get_errorType()
es
function get_errorType()

Cette méthode est principalement utile lorsque la librairie Yoctopuce est utilisée en désactivant la gestion des exceptions.

Retourne :

un nombre correspondant au code de la dernière erreur qui s'est produit lors de l'utilisation du module

module→get_firmwareRelease()
module→firmwareRelease()
module.get_firmwareRelease()module.get_firmwareRelease()module→get_firmwareRelease()[module firmwareRelease]module.get_firmwareRelease()module.get_firmwareRelease()module.get_firmwareRelease()module.get_firmwareRelease()module.get_firmwareRelease()module→get_firmwareRelease()module.get_firmwareRelease()YModule get_firmwareRelease

Retourne la version du logiciel embarqué du module.

js
function get_firmwareRelease()
nodejs
function get_firmwareRelease()
cpp
string get_firmwareRelease()
m
-(NSString*) firmwareRelease
pas
function get_firmwareRelease(): string
vb
function get_firmwareRelease() As String
cs
string get_firmwareRelease()
java
String get_firmwareRelease()
py
def get_firmwareRelease()
php
function get_firmwareRelease()
es
function get_firmwareRelease()
cmd
YModule target get_firmwareRelease

Retourne :

une chaîne de caractères représentant la version du logiciel embarqué du module

En cas d'erreur, déclenche une exception ou retourne Y_FIRMWARERELEASE_INVALID.

module→get_functionIds()
module→functionIds()
module.get_functionIds()module.get_functionIds()module→get_functionIds()[module functionIds: ]module.get_functionIds()module.get_functionIds()module.get_functionIds()module.get_functionIds()module.get_functionIds()module→get_functionIds()module.get_functionIds()YModule get_functionIds

Retourne les identifiants matériels des fonctions correspondant au type passé en argument.

js
function get_functionIds(funType)
nodejs
function get_functionIds(funType)
cpp
vector<string> get_functionIds(string funType)
m
-(NSMutableArray*) functionIds: (NSString*) funType
pas
function get_functionIds(funType: string): TStringArray
vb
function get_functionIds() As List
cs
List<string> get_functionIds(string funType)
java
ArrayList<String> get_functionIds(String funType)
py
def get_functionIds(funType)
php
function get_functionIds($funType)
es
function get_functionIds(funType)
cmd
YModule target get_functionIds funType

Paramètres :

funTypeLe type de fonction (Relay, LightSensor, Voltage,...)

Retourne :

un tableau de chaînes de caractère.

module→get_hardwareId()
module→hardwareId()
module.get_hardwareId()module.get_hardwareId()module→get_hardwareId()[module hardwareId]module.get_hardwareId()module.get_hardwareId()module.get_hardwareId()module.get_hardwareId()module→get_hardwareId()module.get_hardwareId()

Retourne l'identifiant unique du module.

js
function get_hardwareId()
nodejs
function get_hardwareId()
cpp
string get_hardwareId()
m
-(NSString*) hardwareId
vb
function get_hardwareId() As String
cs
string get_hardwareId()
java
String get_hardwareId()
py
def get_hardwareId()
php
function get_hardwareId()
es
function get_hardwareId()

L'identifiant unique est composé du numéro de série du module suivi de la chaîne ".module".

Retourne :

une chaîne de caractères identifiant la fonction

module→get_icon2d()
module→icon2d()
module.get_icon2d()module.get_icon2d()module→get_icon2d()[module icon2d]module.get_icon2d()module.get_icon2d()module.get_icon2d()module.get_icon2d()module.get_icon2d()module→get_icon2d()module.get_icon2d()YModule get_icon2d

Retourne l'icône du module.

js
function get_icon2d()
nodejs
function get_icon2d()
cpp
string get_icon2d()
m
-(NSMutableData*) icon2d
pas
function get_icon2d(): TByteArray
vb
function get_icon2d() As Byte
cs
byte[] get_icon2d()
java
byte[] get_icon2d()
py
def get_icon2d()
php
function get_icon2d()
es
function get_icon2d()
cmd
YModule target get_icon2d

L'icone est au format PNG et a une taille maximale de 1536 octets.

Retourne :

un buffer binaire contenant l'icone, au format png. En cas d'erreur, déclenche une exception ou retourne YAPI_INVALID_STRING.

module→get_lastLogs()
module→lastLogs()
module.get_lastLogs()module.get_lastLogs()module→get_lastLogs()[module lastLogs]module.get_lastLogs()module.get_lastLogs()module.get_lastLogs()module.get_lastLogs()module.get_lastLogs()module→get_lastLogs()module.get_lastLogs()YModule get_lastLogs

Retourne une chaine de charactère contenant les derniers logs du module.

js
function get_lastLogs()
nodejs
function get_lastLogs()
cpp
string get_lastLogs()
m
-(NSString*) lastLogs
pas
function get_lastLogs(): string
vb
function get_lastLogs() As String
cs
string get_lastLogs()
java
String get_lastLogs()
py
def get_lastLogs()
php
function get_lastLogs()
es
function get_lastLogs()
cmd
YModule target get_lastLogs

Cette méthode retourne les derniers logs qui sont encore stocké dans le module.

Retourne :

une chaîne de caractère contenant les derniers logs du module. En cas d'erreur, déclenche une exception ou retourne YAPI_INVALID_STRING.

module→get_logicalName()
module→logicalName()
module.get_logicalName()module.get_logicalName()module→get_logicalName()[module logicalName]module.get_logicalName()module.get_logicalName()module.get_logicalName()module.get_logicalName()module.get_logicalName()module→get_logicalName()module.get_logicalName()YModule get_logicalName

Retourne le nom logique du module.

js
function get_logicalName()
nodejs
function get_logicalName()
cpp
string get_logicalName()
m
-(NSString*) logicalName
pas
function get_logicalName(): string
vb
function get_logicalName() As String
cs
string get_logicalName()
java
String get_logicalName()
py
def get_logicalName()
php
function get_logicalName()
es
function get_logicalName()
cmd
YModule target get_logicalName

Retourne :

une chaîne de caractères représentant le nom logique du module

En cas d'erreur, déclenche une exception ou retourne Y_LOGICALNAME_INVALID.

module→get_luminosity()
module→luminosity()
module.get_luminosity()module.get_luminosity()module→get_luminosity()[module luminosity]module.get_luminosity()module.get_luminosity()module.get_luminosity()module.get_luminosity()module.get_luminosity()module→get_luminosity()module.get_luminosity()YModule get_luminosity

Retourne la luminosité des leds informatives du module (valeur entre 0 et 100).

js
function get_luminosity()
nodejs
function get_luminosity()
cpp
int get_luminosity()
m
-(int) luminosity
pas
function get_luminosity(): LongInt
vb
function get_luminosity() As Integer
cs
int get_luminosity()
java
int get_luminosity()
py
def get_luminosity()
php
function get_luminosity()
es
function get_luminosity()
cmd
YModule target get_luminosity

Retourne :

un entier représentant la luminosité des leds informatives du module (valeur entre 0 et 100)

En cas d'erreur, déclenche une exception ou retourne Y_LUMINOSITY_INVALID.

module→get_parentHub()
module→parentHub()
module.get_parentHub()module.get_parentHub()module→get_parentHub()[module parentHub]module.get_parentHub()module.get_parentHub()module.get_parentHub()module.get_parentHub()module.get_parentHub()module→get_parentHub()YModule get_parentHub

Retourne le numéro de série du YoctoHub sur lequel est connecté le module.

js
function get_parentHub()
nodejs
function get_parentHub()
cpp
string get_parentHub()
m
-(NSString*) parentHub
pas
function get_parentHub(): string
vb
function get_parentHub() As String
cs
string get_parentHub()
java
String get_parentHub()
py
def get_parentHub()
php
function get_parentHub()
cmd
YModule target get_parentHub

Si le module est connecté par USB, ou si le module est le YoctoHub racine, une chaîne vide est retournée.

Retourne :

une chaîne de caractères contenant le numéro de série du YoctoHub, ou une chaîne vide.

module→get_persistentSettings()
module→persistentSettings()
module.get_persistentSettings()module.get_persistentSettings()module→get_persistentSettings()[module persistentSettings]module.get_persistentSettings()module.get_persistentSettings()module.get_persistentSettings()module.get_persistentSettings()module.get_persistentSettings()module→get_persistentSettings()module.get_persistentSettings()YModule get_persistentSettings

Retourne l'état courant des réglages persistents du module.

js
function get_persistentSettings()
nodejs
function get_persistentSettings()
cpp
Y_PERSISTENTSETTINGS_enum get_persistentSettings()
m
-(Y_PERSISTENTSETTINGS_enum) persistentSettings
pas
function get_persistentSettings(): Integer
vb
function get_persistentSettings() As Integer
cs
int get_persistentSettings()
java
int get_persistentSettings()
py
def get_persistentSettings()
php
function get_persistentSettings()
es
function get_persistentSettings()
cmd
YModule target get_persistentSettings

Retourne :

une valeur parmi Y_PERSISTENTSETTINGS_LOADED, Y_PERSISTENTSETTINGS_SAVED et Y_PERSISTENTSETTINGS_MODIFIED représentant l'état courant des réglages persistents du module

En cas d'erreur, déclenche une exception ou retourne Y_PERSISTENTSETTINGS_INVALID.

module→get_productId()
module→productId()
module.get_productId()module.get_productId()module→get_productId()[module productId]module.get_productId()module.get_productId()module.get_productId()module.get_productId()module.get_productId()module→get_productId()module.get_productId()YModule get_productId

Retourne l'identifiant USB du module, préprogrammé en usine.

js
function get_productId()
nodejs
function get_productId()
cpp
int get_productId()
m
-(int) productId
pas
function get_productId(): LongInt
vb
function get_productId() As Integer
cs
int get_productId()
java
int get_productId()
py
def get_productId()
php
function get_productId()
es
function get_productId()
cmd
YModule target get_productId

Retourne :

un entier représentant l'identifiant USB du module, préprogrammé en usine

En cas d'erreur, déclenche une exception ou retourne Y_PRODUCTID_INVALID.

module→get_productName()
module→productName()
module.get_productName()module.get_productName()module→get_productName()[module productName]module.get_productName()module.get_productName()module.get_productName()module.get_productName()module.get_productName()module→get_productName()module.get_productName()YModule get_productName

Retourne le nom commercial du module, préprogrammé en usine.

js
function get_productName()
nodejs
function get_productName()
cpp
string get_productName()
m
-(NSString*) productName
pas
function get_productName(): string
vb
function get_productName() As String
cs
string get_productName()
java
String get_productName()
py
def get_productName()
php
function get_productName()
es
function get_productName()
cmd
YModule target get_productName

Retourne :

une chaîne de caractères représentant le nom commercial du module, préprogrammé en usine

En cas d'erreur, déclenche une exception ou retourne Y_PRODUCTNAME_INVALID.

module→get_productRelease()
module→productRelease()
module.get_productRelease()module.get_productRelease()module→get_productRelease()[module productRelease]module.get_productRelease()module.get_productRelease()module.get_productRelease()module.get_productRelease()module.get_productRelease()module→get_productRelease()module.get_productRelease()YModule get_productRelease

Retourne le numéro de version matériel du module, préprogrammé en usine.

js
function get_productRelease()
nodejs
function get_productRelease()
cpp
int get_productRelease()
m
-(int) productRelease
pas
function get_productRelease(): LongInt
vb
function get_productRelease() As Integer
cs
int get_productRelease()
java
int get_productRelease()
py
def get_productRelease()
php
function get_productRelease()
es
function get_productRelease()
cmd
YModule target get_productRelease

Retourne :

un entier représentant le numéro de version matériel du module, préprogrammé en usine

En cas d'erreur, déclenche une exception ou retourne Y_PRODUCTRELEASE_INVALID.

module→get_rebootCountdown()
module→rebootCountdown()
module.get_rebootCountdown()module.get_rebootCountdown()module→get_rebootCountdown()[module rebootCountdown]module.get_rebootCountdown()module.get_rebootCountdown()module.get_rebootCountdown()module.get_rebootCountdown()module.get_rebootCountdown()module→get_rebootCountdown()module.get_rebootCountdown()YModule get_rebootCountdown

Retourne le nombre de secondes restantes avant un redémarrage du module, ou zéro si aucun redémarrage n'a été agendé.

js
function get_rebootCountdown()
nodejs
function get_rebootCountdown()
cpp
int get_rebootCountdown()
m
-(int) rebootCountdown
pas
function get_rebootCountdown(): LongInt
vb
function get_rebootCountdown() As Integer
cs
int get_rebootCountdown()
java
int get_rebootCountdown()
py
def get_rebootCountdown()
php
function get_rebootCountdown()
es
function get_rebootCountdown()
cmd
YModule target get_rebootCountdown

Retourne :

un entier représentant le nombre de secondes restantes avant un redémarrage du module, ou zéro si aucun redémarrage n'a été agendé

En cas d'erreur, déclenche une exception ou retourne Y_REBOOTCOUNTDOWN_INVALID.

module→get_serialNumber()
module→serialNumber()
module.get_serialNumber()module.get_serialNumber()module→get_serialNumber()[module serialNumber]module.get_serialNumber()module.get_serialNumber()module.get_serialNumber()module.get_serialNumber()module.get_serialNumber()module→get_serialNumber()module.get_serialNumber()YModule get_serialNumber

Retourne le numéro de série du module, préprogrammé en usine.

js
function get_serialNumber()
nodejs
function get_serialNumber()
cpp
string get_serialNumber()
m
-(NSString*) serialNumber
pas
function get_serialNumber(): string
vb
function get_serialNumber() As String
cs
string get_serialNumber()
java
String get_serialNumber()
py
def get_serialNumber()
php
function get_serialNumber()
es
function get_serialNumber()
cmd
YModule target get_serialNumber

Retourne :

une chaîne de caractères représentant le numéro de série du module, préprogrammé en usine

En cas d'erreur, déclenche une exception ou retourne Y_SERIALNUMBER_INVALID.

module→get_subDevices()
module→subDevices()
module.get_subDevices()module.get_subDevices()module→get_subDevices()[module subDevices]module.get_subDevices()module.get_subDevices()module.get_subDevices()module.get_subDevices()module.get_subDevices()module→get_subDevices()YModule get_subDevices

Retourne la liste des modules branchés au module courant.

js
function get_subDevices()
nodejs
function get_subDevices()
cpp
vector<string> get_subDevices()
m
-(NSMutableArray*) subDevices
pas
function get_subDevices(): TStringArray
vb
function get_subDevices() As List
cs
List<string> get_subDevices()
java
ArrayList<String> get_subDevices()
py
def get_subDevices()
php
function get_subDevices()
cmd
YModule target get_subDevices

Cette fonction n'est pertinente que lorsqu'elle appelée pour un YoctoHub ou pour le VirtualHub. Dans le cas contraire, un tableau vide est retourné.

Retourne :

un tableau de chaînes de caractères contenant les numéros de série des sous-modules connectés au module

module→get_upTime()
module→upTime()
module.get_upTime()module.get_upTime()module→get_upTime()[module upTime]module.get_upTime()module.get_upTime()module.get_upTime()module.get_upTime()module.get_upTime()module→get_upTime()module.get_upTime()YModule get_upTime

Retourne le numbre de millisecondes écoulées depuis la mise sous tension du module

js
function get_upTime()
nodejs
function get_upTime()
cpp
s64 get_upTime()
m
-(s64) upTime
pas
function get_upTime(): int64
vb
function get_upTime() As Long
cs
long get_upTime()
java
long get_upTime()
py
def get_upTime()
php
function get_upTime()
es
function get_upTime()
cmd
YModule target get_upTime

Retourne :

un entier représentant le numbre de millisecondes écoulées depuis la mise sous tension du module

En cas d'erreur, déclenche une exception ou retourne Y_UPTIME_INVALID.

module→get_url()
module→url()
module.get_url()module.get_url()module→get_url()[module url]module.get_url()module.get_url()module.get_url()module.get_url()module.get_url()module→get_url()YModule get_url

Retourne l'URL utilisée pour accéder au module.

js
function get_url()
nodejs
function get_url()
cpp
string get_url()
m
-(NSString*) url
pas
function get_url(): string
vb
function get_url() As String
cs
string get_url()
java
String get_url()
py
def get_url()
php
function get_url()
cmd
YModule target get_url

Si le module est connecté par USB la chaîne de caractère 'usb' est retournée.

Retourne :

une chaîne de caractère contenant l'URL du module.

module→get_usbCurrent()
module→usbCurrent()
module.get_usbCurrent()module.get_usbCurrent()module→get_usbCurrent()[module usbCurrent]module.get_usbCurrent()module.get_usbCurrent()module.get_usbCurrent()module.get_usbCurrent()module.get_usbCurrent()module→get_usbCurrent()module.get_usbCurrent()YModule get_usbCurrent

Retourne le courant consommé par le module sur le bus USB, en milliampères.

js
function get_usbCurrent()
nodejs
function get_usbCurrent()
cpp
int get_usbCurrent()
m
-(int) usbCurrent
pas
function get_usbCurrent(): LongInt
vb
function get_usbCurrent() As Integer
cs
int get_usbCurrent()
java
int get_usbCurrent()
py
def get_usbCurrent()
php
function get_usbCurrent()
es
function get_usbCurrent()
cmd
YModule target get_usbCurrent

Retourne :

un entier représentant le courant consommé par le module sur le bus USB, en milliampères

En cas d'erreur, déclenche une exception ou retourne Y_USBCURRENT_INVALID.

module→get_userData()
module→userData()
module.get_userData()module.get_userData()module→get_userData()[module userData]module.get_userData()module.get_userData()module.get_userData()module.get_userData()module.get_userData()module→get_userData()module.get_userData()

Retourne le contenu de l'attribut userData, précédemment stocké à l'aide de la méthode set_userData.

js
function get_userData()
nodejs
function get_userData()
cpp
void * get_userData()
m
-(id) userData
pas
function get_userData(): Tobject
vb
function get_userData() As Object
cs
object get_userData()
java
Object get_userData()
py
def get_userData()
php
function get_userData()
es
function get_userData()

Cet attribut n'es pas utilisé directement par l'API. Il est à la disposition de l'appelant pour stocker un contexte.

Retourne :

l'objet stocké précédemment par l'appelant.

module→get_userVar()
module→userVar()
module.get_userVar()module.get_userVar()module→get_userVar()[module userVar]module.get_userVar()module.get_userVar()module.get_userVar()module.get_userVar()module.get_userVar()module→get_userVar()module.get_userVar()YModule get_userVar

Retourne la valeur entière précédemment stockée dans cet attribut.

js
function get_userVar()
nodejs
function get_userVar()
cpp
int get_userVar()
m
-(int) userVar
pas
function get_userVar(): LongInt
vb
function get_userVar() As Integer
cs
int get_userVar()
java
int get_userVar()
py
def get_userVar()
php
function get_userVar()
es
function get_userVar()
cmd
YModule target get_userVar

Au démarrage du module (ou après un redémarrage), la valeur est toujours zéro.

Retourne :

un entier représentant la valeur entière précédemment stockée dans cet attribut

En cas d'erreur, déclenche une exception ou retourne Y_USERVAR_INVALID.

module→hasFunction()module.hasFunction()module.hasFunction()module→hasFunction()[module hasFunction: ]module.hasFunction()module.hasFunction()module.hasFunction()module.hasFunction()module.hasFunction()module→hasFunction()module.hasFunction()YModule hasFunction

Teste la présence d'une fonction pour le module courant.

js
function hasFunction(funcId)
nodejs
function hasFunction(funcId)
cpp
bool hasFunction(string funcId)
m
-(bool) hasFunction: (NSString*) funcId
pas
function hasFunction(funcId: string): boolean
vb
function hasFunction() As Boolean
cs
bool hasFunction(string funcId)
java
boolean hasFunction(String funcId)
py
def hasFunction(funcId)
php
function hasFunction($funcId)
es
function hasFunction(funcId)
cmd
YModule target hasFunction funcId

La méthode prend en paramètre l'identifiant de la fonction (relay1, voltage2,...) et retourne un booléen.

Paramètres :

funcIdidentifiant matériel de la fonction

Retourne :

vrai si le module inclut la fonction demandée

module→isOnline()module.isOnline()module.isOnline()module→isOnline()[module isOnline]module.isOnline()module.isOnline()module.isOnline()module.isOnline()module.isOnline()module→isOnline()module.isOnline()

Vérifie si le module est joignable, sans déclencher d'erreur.

js
function isOnline()
nodejs
function isOnline()
cpp
bool isOnline()
m
-(BOOL) isOnline
pas
function isOnline(): boolean
vb
function isOnline() As Boolean
cs
bool isOnline()
java
boolean isOnline()
py
def isOnline()
php
function isOnline()
es
function isOnline()

Si les valeurs des attributs du module en cache sont valides au moment de l'appel, le module est considéré joignable. Cette fonction ne cause en aucun cas d'exception, quelle que soit l'erreur qui pourrait se produire lors de la vérification de joignabilité.

Retourne :

true si le module est joignable, false sinon

module→isOnline_async()module.isOnline_async()module.isOnline_async()

Vérifie si le module est joignable, sans déclencher d'erreur.

js
function isOnline_async(callback, context)
nodejs
function isOnline_async(callback, context)

Si les valeurs des attributs du module en cache sont valides au moment de l'appel, le module est considéré joignable. Cette fonction ne cause en aucun cas d'exception, quelle que soit l'erreur qui pourrait se produire lors de la vérification de joignabilité.

Cette version asynchrone n'existe qu'en Javascript. Elle utilise une fonction de callback plutôt qu'une simple valeur de retour, pour éviter de bloquer la VM Javascript de Firefox, qui n'implémente pas le passage de contrôle entre threads durant les appels d'entrée/sortie bloquants.

Paramètres :

callbackfonction de callback qui sera appelée dès que le résultat sera connu. La fonction callback reçoit trois arguments: le contexte fourni par l'appelant, l'objet module concerné et le résultat booléen
contextcontexte fourni par l'appelant, et qui sera passé tel-quel à la fonction de callback

Retourne :

rien du tout : le résultat sera passé en paramètre à la fonction de callback.

module→load()module.load()module.load()module→load()[module load: ]module.load()module.load()module.load()module.load()module.load()module→load()module.load()

Met en cache les valeurs courantes du module, avec une durée de validité spécifiée.

js
function load(msValidity)
nodejs
function load(msValidity)
cpp
YRETCODE load(int msValidity)
m
-(YRETCODE) load: (int) msValidity
pas
function load(msValidity: integer): YRETCODE
vb
function load(ByVal msValidity As Integer) As YRETCODE
cs
YRETCODE load(ulong msValidity)
java
int load(long msValidity)
py
def load(msValidity)
php
function load($msValidity)
es
function load(msValidity)

Par défaut, lorsqu'on accède à un module, tous les attributs des fonctions du module sont automatiquement mises en cache pour la durée standard (5 ms). Cette méthode peut être utilisée pour marquer occasionnellement les données cachées comme valides pour une plus longue période, par exemple dans le but de réduire le trafic réseau.

Paramètres :

msValidityun entier correspondant à la durée de validité attribuée aux les paramètres chargés, en millisecondes

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

module→load_async()module.load_async()module.load_async()

Met en cache les valeurs courantes du module, avec une durée de validité spécifiée.

js
function load_async(msValidity, callback, context)
nodejs
function load_async(msValidity, callback, context)

Par défaut, lorsqu'on accède à un module, tous les attributs des fonctions du module sont automatiquement mises en cache pour la durée standard (5 ms). Cette méthode peut être utilisée pour marquer occasionnellement les données cachées comme valides pour une plus longue période, par exemple dans le but de réduire le trafic réseau.

Cette version asynchrone n'existe qu'en Javascript. Elle utilise une fonction de callback plutôt qu'une simple valeur de retour, pour éviter de bloquer la VM Javascript de Firefox, qui n'implémente pas le passage de contrôle entre threads durant les appels d'entrée/sortie bloquants.

Paramètres :

msValidityun entier correspondant à la durée de validité attribuée aux les paramètres chargés, en millisecondes
callbackfonction de callback qui sera appelée dès que le résultat sera connu. La fonction callback reçoit trois arguments: le contexte fourni par l'appelant, l'objet module concerné et le code d'erreur (ou YAPI_SUCCESS)
contextcontexte fourni par l'appelant, et qui sera passé tel-quel à la fonction de callback

Retourne :

rien du tout : le résultat sera passé en paramètre à la fonction de callback.

module→log()module.log()module.log()module→log()[module log: ]module.log()module.log()module.log()module.log()module.log()module→log()module.log()YModule log

Ajoute un message arbitraire dans les logs du module.

js
function log(text)
nodejs
function log(text)
cpp
int log(string text)
m
-(int) log: (NSString*) text
pas
function log(text: string): LongInt
vb
function log() As Integer
cs
int log(string text)
java
int log(String text)
py
def log(text)
php
function log($text)
es
function log(text)
cmd
YModule target log text

Cette fonction est utile en particulier pour tracer l'exécution de callbacks HTTP. Si un saut de ligne est désiré après le message, il doit être inclus dans la chaîne de caractère.

Paramètres :

textle message à ajouter aux logs du module.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

module→nextModule()module.nextModule()module.nextModule()module→nextModule()[module nextModule]module.nextModule()module.nextModule()module.nextModule()module.nextModule()module.nextModule()module→nextModule()module.nextModule()

Continue l'énumération des modules commencée à l'aide de yFirstModule().

js
function nextModule()
nodejs
function nextModule()
cpp
YModule * nextModule()
m
-(YModule*) nextModule
pas
function nextModule(): TYModule
vb
function nextModule() As YModule
cs
YModule nextModule()
java
YModule nextModule()
py
def nextModule()
php
function nextModule()
es
function nextModule()

Retourne :

un pointeur sur un objet YModule accessible en ligne, ou null lorsque l'énumération est terminée.

module→reboot()module.reboot()module.reboot()module→reboot()[module reboot: ]module.reboot()module.reboot()module.reboot()module.reboot()module.reboot()module→reboot()module.reboot()YModule reboot

Agende un simple redémarrage du module dans un nombre donné de secondes.

js
function reboot(secBeforeReboot)
nodejs
function reboot(secBeforeReboot)
cpp
int reboot(int secBeforeReboot)
m
-(int) reboot: (int) secBeforeReboot
pas
function reboot(secBeforeReboot: LongInt): LongInt
vb
function reboot() As Integer
cs
int reboot(int secBeforeReboot)
java
int reboot(int secBeforeReboot)
py
def reboot(secBeforeReboot)
php
function reboot($secBeforeReboot)
es
function reboot(secBeforeReboot)
cmd
YModule target reboot secBeforeReboot

Paramètres :

secBeforeRebootnombre de secondes avant de redémarrer

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

module→registerLogCallback()module→registerLogCallback()[module registerLogCallback: ]module.registerLogCallback()module.registerLogCallback()module.registerLogCallback()module.registerLogCallback()

Enregistre une fonction de callback qui sera appelée à chaque fois le module émet un message de log.

cpp
void registerLogCallback(YModuleLogCallback callback)
m
-(void) registerLogCallback: (YModuleLogCallback) callback
vb
function registerLogCallback(ByVal callback As YModuleLogCallback) As Integer
cs
int registerLogCallback(LogCallback callback)
java
void registerLogCallback(LogCallback callback)
py
def registerLogCallback(callback)

Utile pour débugger le fonctionnement d'un module Yoctopuce.

Paramètres :

callbackla fonction de callback à rappeler, ou un pointeur nul. La fonction de callback doit accepter deux arguments: l'objet module qui a produit un log, un chaîne de caractère qui contiens le log

module→revertFromFlash()module.revertFromFlash()module.revertFromFlash()module→revertFromFlash()[module revertFromFlash]module.revertFromFlash()module.revertFromFlash()module.revertFromFlash()module.revertFromFlash()module.revertFromFlash()module→revertFromFlash()module.revertFromFlash()YModule revertFromFlash

Recharge les réglages stockés dans le mémoire non volatile du module, comme à la mise sous tension du module.

js
function revertFromFlash()
nodejs
function revertFromFlash()
cpp
int revertFromFlash()
m
-(int) revertFromFlash
pas
function revertFromFlash(): LongInt
vb
function revertFromFlash() As Integer
cs
int revertFromFlash()
java
int revertFromFlash()
py
def revertFromFlash()
php
function revertFromFlash()
es
function revertFromFlash()
cmd
YModule target revertFromFlash

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

module→saveToFlash()module.saveToFlash()module.saveToFlash()module→saveToFlash()[module saveToFlash]module.saveToFlash()module.saveToFlash()module.saveToFlash()module.saveToFlash()module.saveToFlash()module→saveToFlash()module.saveToFlash()YModule saveToFlash

Sauve les réglages courants dans la mémoire non volatile du module.

js
function saveToFlash()
nodejs
function saveToFlash()
cpp
int saveToFlash()
m
-(int) saveToFlash
pas
function saveToFlash(): LongInt
vb
function saveToFlash() As Integer
cs
int saveToFlash()
java
int saveToFlash()
py
def saveToFlash()
php
function saveToFlash()
es
function saveToFlash()
cmd
YModule target saveToFlash

Attention le nombre total de sauvegardes possibles durant la vie du module est limité (environ 100000 cycles). N'appelez pas cette fonction dans une boucle.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

module→set_allSettings()
module→setAllSettings()
module.set_allSettings()module.set_allSettings()module→set_allSettings()[module setAllSettings: ]module.set_allSettings()module.set_allSettings()module.set_allSettings()module.set_allSettings()module.set_allSettings()module→set_allSettings()module.set_allSettings()YModule set_allSettings

Rétablit tous les paramètres du module.

js
function set_allSettings(settings)
nodejs
function set_allSettings(settings)
cpp
int set_allSettings(string settings)
m
-(int) setAllSettings: (NSData*) settings
pas
function set_allSettings(settings: TByteArray): LongInt
vb
procedure set_allSettings()
cs
int set_allSettings()
java
int set_allSettings(byte[] settings)
py
def set_allSettings(settings)
php
function set_allSettings($settings)
es
function set_allSettings(settings)
cmd
YModule target set_allSettings settings

Utile pour restorer les noms logiques et les calibrations du module depuis une sauvgarde. N'oubliez pas d'appeler la méthode saveToFlash() du module si les réglages doivent être préservés.

Paramètres :

settingsun objet binaire avec touts les paramètres

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

module→set_allSettingsAndFiles()
module→setAllSettingsAndFiles()
module.set_allSettingsAndFiles()module.set_allSettingsAndFiles()module→set_allSettingsAndFiles()[module setAllSettingsAndFiles: ]module.set_allSettingsAndFiles()module.set_allSettingsAndFiles()module.set_allSettingsAndFiles()module.set_allSettingsAndFiles()module.set_allSettingsAndFiles()module→set_allSettingsAndFiles()module.set_allSettingsAndFiles()YModule set_allSettingsAndFiles

Rétablit tous les paramètres de configuration et fichiers sur un module.

js
function set_allSettingsAndFiles(settings)
nodejs
function set_allSettingsAndFiles(settings)
cpp
int set_allSettingsAndFiles(string settings)
m
-(int) setAllSettingsAndFiles: (NSData*) settings
pas
function set_allSettingsAndFiles(settings: TByteArray): LongInt
vb
procedure set_allSettingsAndFiles()
cs
int set_allSettingsAndFiles()
java
int set_allSettingsAndFiles(byte[] settings)
py
def set_allSettingsAndFiles(settings)
php
function set_allSettingsAndFiles($settings)
es
function set_allSettingsAndFiles(settings)
cmd
YModule target set_allSettingsAndFiles settings

Cette méthode est utile pour récupérer les noms logiques, les calibrations, les fichiers uploadés, etc. du module depuis une sauvgarde. N'oubliez pas d'appeler la méthode saveToFlash() du module si les réglages doivent être préservés.

Paramètres :

settingsun buffer binaire avec touts les paramètres

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

module→set_beacon()
module→setBeacon()
module.set_beacon()module.set_beacon()module→set_beacon()[module setBeacon: ]module.set_beacon()module.set_beacon()module.set_beacon()module.set_beacon()module.set_beacon()module→set_beacon()module.set_beacon()YModule set_beacon

Allume ou éteint la balise de localisation du module.

js
function set_beacon(newval)
nodejs
function set_beacon(newval)
cpp
int set_beacon(Y_BEACON_enum newval)
m
-(int) setBeacon: (Y_BEACON_enum) newval
pas
function set_beacon(newval: Integer): integer
vb
function set_beacon(ByVal newval As Integer) As Integer
cs
int set_beacon(int newval)
java
int set_beacon(int newval)
py
def set_beacon(newval)
php
function set_beacon($newval)
es
function set_beacon(newval)
cmd
YModule target set_beacon newval

Paramètres :

newvalsoit Y_BEACON_OFF, soit Y_BEACON_ON

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

module→set_logicalName()
module→setLogicalName()
module.set_logicalName()module.set_logicalName()module→set_logicalName()[module setLogicalName: ]module.set_logicalName()module.set_logicalName()module.set_logicalName()module.set_logicalName()module.set_logicalName()module→set_logicalName()module.set_logicalName()YModule set_logicalName

Change le nom logique du module.

js
function set_logicalName(newval)
nodejs
function set_logicalName(newval)
cpp
int set_logicalName(const string& newval)
m
-(int) setLogicalName: (NSString*) newval
pas
function set_logicalName(newval: string): integer
vb
function set_logicalName(ByVal newval As String) As Integer
cs
int set_logicalName(string newval)
java
int set_logicalName(String newval)
py
def set_logicalName(newval)
php
function set_logicalName($newval)
es
function set_logicalName(newval)
cmd
YModule target set_logicalName newval

Vous pouvez utiliser yCheckLogicalName() pour vérifier si votre paramètre est valide. N'oubliez pas d'appeler la méthode saveToFlash() du module si le réglage doit être préservé.

Paramètres :

newvalune chaîne de caractères

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

module→set_luminosity()
module→setLuminosity()
module.set_luminosity()module.set_luminosity()module→set_luminosity()[module setLuminosity: ]module.set_luminosity()module.set_luminosity()module.set_luminosity()module.set_luminosity()module.set_luminosity()module→set_luminosity()module.set_luminosity()YModule set_luminosity

Modifie la luminosité des leds informatives du module.

js
function set_luminosity(newval)
nodejs
function set_luminosity(newval)
cpp
int set_luminosity(int newval)
m
-(int) setLuminosity: (int) newval
pas
function set_luminosity(newval: LongInt): integer
vb
function set_luminosity(ByVal newval As Integer) As Integer
cs
int set_luminosity(int newval)
java
int set_luminosity(int newval)
py
def set_luminosity(newval)
php
function set_luminosity($newval)
es
function set_luminosity(newval)
cmd
YModule target set_luminosity newval

Le paramêtre est une valeur entre 0 et 100. N'oubliez pas d'appeler la méthode saveToFlash() du module si le réglage doit être préservé.

Paramètres :

newvalun entier représentant la luminosité des leds informatives du module

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

module→set_userData()
module→setUserData()
module.set_userData()module.set_userData()module→set_userData()[module setUserData: ]module.set_userData()module.set_userData()module.set_userData()module.set_userData()module.set_userData()module→set_userData()module.set_userData()

Enregistre un contexte libre dans l'attribut userData de la fonction, afin de le retrouver plus tard à l'aide de la méthode get_userData.

js
function set_userData(data)
nodejs
function set_userData(data)
cpp
void set_userData(void* data)
m
-(void) setUserData: (id) data
pas
procedure set_userData(data: Tobject)
vb
procedure set_userData(ByVal data As Object)
cs
void set_userData(object data)
java
void set_userData(Object data)
py
def set_userData(data)
php
function set_userData($data)
es
function set_userData(data)

Cet attribut n'es pas utilisé directement par l'API. Il est à la disposition de l'appelant pour stocker un contexte.

Paramètres :

dataobjet quelconque à mémoriser

module→set_userVar()
module→setUserVar()
module.set_userVar()module.set_userVar()module→set_userVar()[module setUserVar: ]module.set_userVar()module.set_userVar()module.set_userVar()module.set_userVar()module.set_userVar()module→set_userVar()module.set_userVar()YModule set_userVar

Retourne la valeur entière précédemment stockée dans cet attribut.

js
function set_userVar(newval)
nodejs
function set_userVar(newval)
cpp
int set_userVar(int newval)
m
-(int) setUserVar: (int) newval
pas
function set_userVar(newval: LongInt): integer
vb
function set_userVar(ByVal newval As Integer) As Integer
cs
int set_userVar(int newval)
java
int set_userVar(int newval)
py
def set_userVar(newval)
php
function set_userVar($newval)
es
function set_userVar(newval)
cmd
YModule target set_userVar newval

Au démarrage du module (ou après un redémarrage), la valeur est toujours zéro.

Paramètres :

newvalun entier

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

module→triggerFirmwareUpdate()module.triggerFirmwareUpdate()module.triggerFirmwareUpdate()module→triggerFirmwareUpdate()[module triggerFirmwareUpdate: ]module.triggerFirmwareUpdate()module.triggerFirmwareUpdate()module.triggerFirmwareUpdate()module.triggerFirmwareUpdate()module.triggerFirmwareUpdate()module→triggerFirmwareUpdate()module.triggerFirmwareUpdate()YModule triggerFirmwareUpdate

Agende un redémarrage du module en mode spécial de reprogrammation du logiciel embarqué.

js
function triggerFirmwareUpdate(secBeforeReboot)
nodejs
function triggerFirmwareUpdate(secBeforeReboot)
cpp
int triggerFirmwareUpdate(int secBeforeReboot)
m
-(int) triggerFirmwareUpdate: (int) secBeforeReboot
pas
function triggerFirmwareUpdate(secBeforeReboot: LongInt): LongInt
vb
function triggerFirmwareUpdate() As Integer
cs
int triggerFirmwareUpdate(int secBeforeReboot)
java
int triggerFirmwareUpdate(int secBeforeReboot)
py
def triggerFirmwareUpdate(secBeforeReboot)
php
function triggerFirmwareUpdate($secBeforeReboot)
es
function triggerFirmwareUpdate(secBeforeReboot)
cmd
YModule target triggerFirmwareUpdate secBeforeReboot

Paramètres :

secBeforeRebootnombre de secondes avant de redémarrer

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

module→updateFirmware()module.updateFirmware()module.updateFirmware()module→updateFirmware()[module updateFirmware: ]module.updateFirmware()module.updateFirmware()module.updateFirmware()module.updateFirmware()module.updateFirmware()module→updateFirmware()module.updateFirmware()YModule updateFirmware

Prepare une mise à jour de firmware du module.

js
function updateFirmware(path)
nodejs
function updateFirmware(path)
cpp
YFirmwareUpdate updateFirmware(string path)
m
-(YFirmwareUpdate*) updateFirmware: (NSString*) path
pas
function updateFirmware(path: string): TYFirmwareUpdate
vb
function updateFirmware() As YFirmwareUpdate
cs
YFirmwareUpdate updateFirmware(string path)
java
YFirmwareUpdate updateFirmware(String path)
py
def updateFirmware(path)
php
function updateFirmware($path)
es
function updateFirmware(path)
cmd
YModule target updateFirmware path

Cette méthode retourne un object YFirmwareUpdate qui est utilisé pour mettre à jour le firmware du module.

Paramètres :

pathle path du fichier .byn à utiliser

Retourne :

un object YFirmwareUpdate ou NULL en cas d'erreur

module→updateFirmwareEx()module.updateFirmwareEx()module.updateFirmwareEx()module→updateFirmwareEx()[module updateFirmwareEx: ]module.updateFirmwareEx()module.updateFirmwareEx()module.updateFirmwareEx()module.updateFirmwareEx()module.updateFirmwareEx()module→updateFirmwareEx()module.updateFirmwareEx()YModule updateFirmwareEx

Prepare une mise à jour de firmware du module.

js
function updateFirmwareEx(path, force)
nodejs
function updateFirmwareEx(path, force)
cpp
YFirmwareUpdate updateFirmwareEx(string path, bool force)
m
-(YFirmwareUpdate*) updateFirmwareEx: (NSString*) path
  : (bool) force
pas
function updateFirmwareEx(path: string, force: boolean): TYFirmwareUpdate
vb
function updateFirmwareEx() As YFirmwareUpdate
cs
YFirmwareUpdate updateFirmwareEx(string path, bool force)
java
YFirmwareUpdate updateFirmwareEx(String path, boolean force)
py
def updateFirmwareEx(path, force)
php
function updateFirmwareEx($path, $force)
es
function updateFirmwareEx(path, force)
cmd
YModule target updateFirmwareEx path force

Cette méthode retourne un object YFirmwareUpdate qui est utilisé pour mettre à jour le firmware du module.

Paramètres :

pathle path du fichier .byn à utiliser
forcevrai pour forceer la mise à jour même si un prérequis ne semble pas satisfait

Retourne :

un object YFirmwareUpdate ou NULL en cas d'erreur

module→wait_async()module.wait_async()module.wait_async()module.wait_async()

Attend que toutes les commandes asynchrones en cours d'exécution sur le module soient terminées, et appelle le callback passé en paramètre.

js
function wait_async(callback, context)
nodejs
function wait_async(callback, context)
es
function wait_async(callback, context)

La fonction callback peut donc librement utiliser des fonctions synchrones ou asynchrones, sans risquer de bloquer la machine virtuelle Javascript.

Paramètres :

callbackfonction de callback qui sera appelée dès que toutes les commandes en cours d'exécution sur le module seront terminées La fonction callback reçoit deux arguments: le contexte fourni par l'appelant et l'objet fonction concerné.
contextcontexte fourni par l'appelant, et qui sera passé tel-quel à la fonction de callback

Retourne :

rien du tout.

9.3. Interface de la fonction ColorLed

La librairie de programmation Yoctopuce permet de piloter une LED couleur aussi bien en coordonnées RGB qu'en coordonnées HSL, les conversions RGB vers HSL étant faites automatiquement par le module. Ceci permet aisément d'allumer la LED avec une certaine teinte et d'en faire progressivement varier la saturation ou la luminosité. Si nécessaire, vous trouverez plus d'information sur la différence entre RGB et HSL dans la section suivante.

Pour utiliser les fonctions décrites ici, vous devez inclure:

js
<script type='text/javascript' src='yocto_colorled.js'></script>
nodejs
var yoctolib = require('yoctolib');
var YColorLed = yoctolib.YColorLed;
cpp
#include "yocto_colorled.h"
m
#import "yocto_colorled.h"
pas
uses yocto_colorled;
vb
yocto_colorled.vb
cs
yocto_colorled.cs
java
import com.yoctopuce.YoctoAPI.YColorLed;
py
from yocto_colorled import *
php
require_once('yocto_colorled.php');
es
import { YColorLed } from 'yoctolib-es'
Fonction globales
yFindColorLed(func)

Permet de retrouver une LED RGB d'après un identifiant donné.

yFindColorLedInContext(yctx, func)

Permet de retrouver une LED RGB d'après un identifiant donné dans un Context YAPI.

yFirstColorLed()

Commence l'énumération des LEDs RGB accessibles par la librairie.

yFirstColorLedInContext(yctx)

Commence l'énumération des LEDs RGB accessibles par la librairie.

Méthodes des objets YColorLed
colorled→addHslMoveToBlinkSeq(HSLcolor, msDelay)

Ajoute une transition à la séquence de clignotement du module, la transition s'effectuera dans l'espace de couleur HSL.

colorled→addRgbMoveToBlinkSeq(RGBcolor, msDelay)

Ajoute une transition à la séquence de clignotement du module, la transition s'effectuera dans l'espace de couleur RGB

colorled→clearCache()

Invalide le cache.

colorled→describe()

Retourne un court texte décrivant de manière non-ambigüe l'instance de la LED RGB au format TYPE(NAME)=SERIAL.FUNCTIONID.

colorled→get_advertisedValue()

Retourne la valeur courante de la LED RGB (pas plus de 6 caractères).

colorled→get_blinkSeqMaxSize()

Retourne la longueur maximum de la sequence de clignotement.

colorled→get_blinkSeqSignature()

Retourne la signature de la signature de la séquence de clignotement.

colorled→get_blinkSeqSize()

Retourne la longueur actuelle de la sequence de clignotement.

colorled→get_errorMessage()

Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation de la LED RGB.

colorled→get_errorType()

Retourne le code d'erreur correspondant à la dernière erreur survenue lors de l'utilisation de la LED RGB.

colorled→get_friendlyName()

Retourne un identifiant global de la LED RGB au format NOM_MODULE.NOM_FONCTION.

colorled→get_functionDescriptor()

Retourne un identifiant unique de type YFUN_DESCR correspondant à la fonction.

colorled→get_functionId()

Retourne l'identifiant matériel de la LED RGB, sans référence au module.

colorled→get_hardwareId()

Retourne l'identifiant matériel unique de la LED RGB au format SERIAL.FUNCTIONID.

colorled→get_hslColor()

Retourne la couleur HSL courante de la LED.

colorled→get_logicalName()

Retourne le nom logique de la LED RGB.

colorled→get_module()

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

colorled→get_module_async(callback, context)

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

colorled→get_rgbColor()

Retourne la couleur RGB courante de la LED.

colorled→get_rgbColorAtPowerOn()

Retourne la couleur configurée pour être affichage à l'allumage du module.

colorled→get_userData()

Retourne le contenu de l'attribut userData, précédemment stocké à l'aide de la méthode set_userData.

colorled→hslMove(hsl_target, ms_duration)

Effectue une transition continue dans l'espace HSL entre la couleur courante et une nouvelle couleur.

colorled→isOnline()

Vérifie si le module hébergeant la LED RGB est joignable, sans déclencher d'erreur.

colorled→isOnline_async(callback, context)

Vérifie si le module hébergeant la LED RGB est joignable, sans déclencher d'erreur.

colorled→load(msValidity)

Met en cache les valeurs courantes de la LED RGB, avec une durée de validité spécifiée.

colorled→load_async(msValidity, callback, context)

Met en cache les valeurs courantes de la LED RGB, avec une durée de validité spécifiée.

colorled→muteValueCallbacks()

Désactive l'envoi de chaque changement de la valeur publiée au hub parent.

colorled→nextColorLed()

Continue l'énumération des LEDs RGB commencée à l'aide de yFirstColorLed().

colorled→registerValueCallback(callback)

Enregistre la fonction de callback qui est appelée à chaque changement de la valeur publiée.

colorled→resetBlinkSeq()

efface le contenu de la sequence de clignotement.

colorled→rgbMove(rgb_target, ms_duration)

Effectue une transition continue dans l'espace RGB entre la couleur courante et une nouvelle couleur.

colorled→set_hslColor(newval)

Modifie la couleur courante de la LED, en utilisant une couleur HSL spécifiée.

colorled→set_logicalName(newval)

Modifie le nom logique de la LED RGB.

colorled→set_rgbColor(newval)

Modifie la couleur courante de la LED, en utilisant une couleur RGB (Rouge Vert Bleu).

colorled→set_rgbColorAtPowerOn(newval)

Modifie la couleur que la LED va afficher à l'allumage du module.

colorled→set_userData(data)

Enregistre un contexte libre dans l'attribut userData de la fonction, afin de le retrouver plus tard à l'aide de la méthode get_userData.

colorled→startBlinkSeq()

Démarre l'exécution de la séquence préprogrammée de clignotement.

colorled→stopBlinkSeq()

Arrête l'exécution de la séquence préprogrammée de clignotement.

colorled→unmuteValueCallbacks()

Réactive l'envoi de chaque changement de la valeur publiée au hub parent.

colorled→wait_async(callback, context)

Attend que toutes les commandes asynchrones en cours d'exécution sur le module soient terminées, et appelle le callback passé en paramètre.

YColorLed.FindColorLed()
yFindColorLed()
yFindColorLed()YColorLed.FindColorLed()yFindColorLed()[YColorLed FindColorLed: ]yFindColorLed()yFindColorLed()YColorLed.FindColorLed()YColorLed.FindColorLed()YColorLed.FindColorLed()yFindColorLed()YColorLed.FindColorLed()

Permet de retrouver une LED RGB d'après un identifiant donné.

js
function yFindColorLed(func)
nodejs
function FindColorLed(func)
cpp
YColorLed* yFindColorLed(const string& func)
m
+(YColorLed*) FindColorLed:(NSString*) func
pas
function yFindColorLed(func: string): TYColorLed
vb
function yFindColorLed(ByVal func As String) As YColorLed
cs
YColorLed FindColorLed(string func)
java
YColorLed FindColorLed(String func)
py
def FindColorLed(func)
php
function yFindColorLed($func)
es
function FindColorLed(func)

L'identifiant peut être spécifié sous plusieurs formes:

Cette fonction n'exige pas que la LED RGB soit en ligne au moment ou elle est appelée, l'objet retourné sera néanmoins valide. Utiliser la méthode YColorLed.isOnline() pour tester si la LED RGB est utilisable à un moment donné. En cas d'ambiguïté lorsqu'on fait une recherche par nom logique, aucune erreur ne sera notifiée: la première instance trouvée sera renvoyée. La recherche se fait d'abord par nom matériel, puis par nom logique.

Paramètres :

funcune chaîne de caractères qui référence la LED RGB sans ambiguïté

Retourne :

un objet de classe YColorLed qui permet ensuite de contrôler la LED RGB.

YColorLed.FindColorLedInContext()
yFindColorLedInContext()
YColorLed.FindColorLedInContext()YColorLed.FindColorLedInContext()

Permet de retrouver une LED RGB d'après un identifiant donné dans un Context YAPI.

java
YColorLed FindColorLedInContext(YAPIContext yctx, String func)
es
function FindColorLedInContext(yctx, func)

L'identifiant peut être spécifié sous plusieurs formes:

Cette fonction n'exige pas que la LED RGB soit en ligne au moment ou elle est appelée, l'objet retourné sera néanmoins valide. Utiliser la méthode YColorLed.isOnline() pour tester si la LED RGB est utilisable à un moment donné. En cas d'ambiguïté lorsqu'on fait une recherche par nom logique, aucune erreur ne sera notifiée: la première instance trouvée sera renvoyée. La recherche se fait d'abord par nom matériel, puis par nom logique.

Paramètres :

yctxun contexte YAPI
funcune chaîne de caractères qui référence la LED RGB sans ambiguïté

Retourne :

un objet de classe YColorLed qui permet ensuite de contrôler la LED RGB.

YColorLed.FirstColorLed()
yFirstColorLed()
yFirstColorLed()YColorLed.FirstColorLed()yFirstColorLed()[YColorLed FirstColorLed]yFirstColorLed()yFirstColorLed()YColorLed.FirstColorLed()YColorLed.FirstColorLed()YColorLed.FirstColorLed()yFirstColorLed()YColorLed.FirstColorLed()

Commence l'énumération des LEDs RGB accessibles par la librairie.

js
function yFirstColorLed()
nodejs
function FirstColorLed()
cpp
YColorLed* yFirstColorLed()
m
+(YColorLed*) FirstColorLed
pas
function yFirstColorLed(): TYColorLed
vb
function yFirstColorLed() As YColorLed
cs
YColorLed FirstColorLed()
java
YColorLed FirstColorLed()
py
def FirstColorLed()
php
function yFirstColorLed()
es
function FirstColorLed()

Utiliser la fonction YColorLed.nextColorLed() pour itérer sur les autres LEDs RGB.

Retourne :

un pointeur sur un objet YColorLed, correspondant à la première LED RGB accessible en ligne, ou null si il n'y a pas de LEDs RGB disponibles.

YColorLed.FirstColorLedInContext()
yFirstColorLedInContext()
YColorLed.FirstColorLedInContext()YColorLed.FirstColorLedInContext()

Commence l'énumération des LEDs RGB accessibles par la librairie.

java
YColorLed FirstColorLedInContext(YAPIContext yctx)
es
function FirstColorLedInContext(yctx)

Utiliser la fonction YColorLed.nextColorLed() pour itérer sur les autres LEDs RGB.

Paramètres :

yctxun contexte YAPI.

Retourne :

un pointeur sur un objet YColorLed, correspondant à la première LED RGB accessible en ligne, ou null si il n'y a pas de LEDs RGB disponibles.

colorled→addHslMoveToBlinkSeq()colorled.addHslMoveToBlinkSeq()colorled.addHslMoveToBlinkSeq()colorled→addHslMoveToBlinkSeq()[colorled addHslMoveToBlinkSeq: ]colorled.addHslMoveToBlinkSeq()colorled.addHslMoveToBlinkSeq()colorled.addHslMoveToBlinkSeq()colorled.addHslMoveToBlinkSeq()colorled.addHslMoveToBlinkSeq()colorled→addHslMoveToBlinkSeq()colorled.addHslMoveToBlinkSeq()

Ajoute une transition à la séquence de clignotement du module, la transition s'effectuera dans l'espace de couleur HSL.

js
function addHslMoveToBlinkSeq(HSLcolor, msDelay)
nodejs
function addHslMoveToBlinkSeq(HSLcolor, msDelay)
cpp
int addHslMoveToBlinkSeq(int HSLcolor, int msDelay)
m
-(int) addHslMoveToBlinkSeq: (int) HSLcolor : (int) msDelay
pas
function addHslMoveToBlinkSeq(HSLcolor: LongInt,
  msDelay: LongInt): LongInt
vb
function addHslMoveToBlinkSeq() As Integer
cs
int addHslMoveToBlinkSeq(int HSLcolor, int msDelay)
java
int addHslMoveToBlinkSeq(int HSLcolor, int msDelay)
py
def addHslMoveToBlinkSeq(HSLcolor, msDelay)
php
function addHslMoveToBlinkSeq($HSLcolor, $msDelay)
es
function addHslMoveToBlinkSeq(HSLcolor, msDelay)

Paramètres :

HSLcolorcouleur HSL désirée à la fin de la transition
msDelaydurée en millisecondes de la transition.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur. En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorled→addRgbMoveToBlinkSeq()colorled.addRgbMoveToBlinkSeq()colorled.addRgbMoveToBlinkSeq()colorled→addRgbMoveToBlinkSeq()[colorled addRgbMoveToBlinkSeq: ]colorled.addRgbMoveToBlinkSeq()colorled.addRgbMoveToBlinkSeq()colorled.addRgbMoveToBlinkSeq()colorled.addRgbMoveToBlinkSeq()colorled.addRgbMoveToBlinkSeq()colorled→addRgbMoveToBlinkSeq()colorled.addRgbMoveToBlinkSeq()

Ajoute une transition à la séquence de clignotement du module, la transition s'effectuera dans l'espace de couleur RGB

js
function addRgbMoveToBlinkSeq(RGBcolor, msDelay)
nodejs
function addRgbMoveToBlinkSeq(RGBcolor, msDelay)
cpp
int addRgbMoveToBlinkSeq(int RGBcolor, int msDelay)
m
-(int) addRgbMoveToBlinkSeq: (int) RGBcolor : (int) msDelay
pas
function addRgbMoveToBlinkSeq(RGBcolor: LongInt,
  msDelay: LongInt): LongInt
vb
function addRgbMoveToBlinkSeq() As Integer
cs
int addRgbMoveToBlinkSeq(int RGBcolor, int msDelay)
java
int addRgbMoveToBlinkSeq(int RGBcolor, int msDelay)
py
def addRgbMoveToBlinkSeq(RGBcolor, msDelay)
php
function addRgbMoveToBlinkSeq($RGBcolor, $msDelay)
es
function addRgbMoveToBlinkSeq(RGBcolor, msDelay)

Paramètres :

RGBcolorcouleur RGB désirée à la fin de la transition
msDelaydurée en millisecondes de la transition.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur. En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorled→clearCache()colorled.clearCache()colorled.clearCache()colorled→clearCache()[colorled clearCache]colorled.clearCache()colorled.clearCache()colorled.clearCache()colorled.clearCache()colorled.clearCache()colorled→clearCache()colorled.clearCache()

Invalide le cache.

js
function clearCache()
nodejs
function clearCache()
cpp
void clearCache()
m
-(void) clearCache
pas
procedure clearCache()
vb
procedure clearCache()
cs
void clearCache()
java
void clearCache()
py
def clearCache()
php
function clearCache()
es
function clearCache()

Invalide le cache des valeurs courantes de la LED RGB. Force le prochain appel à une méthode get_xxx() ou loadxxx() pour charger les les données depuis le module.

colorled→describe()colorled.describe()colorled.describe()colorled→describe()[colorled describe]colorled.describe()colorled.describe()colorled.describe()colorled.describe()colorled.describe()colorled→describe()colorled.describe()

Retourne un court texte décrivant de manière non-ambigüe l'instance de la LED RGB au format TYPE(NAME)=SERIAL.FUNCTIONID.

js
function describe()
nodejs
function describe()
cpp
string describe()
m
-(NSString*) describe
pas
function describe(): string
vb
function describe() As String
cs
string describe()
java
String describe()
py
def describe()
php
function describe()
es
function describe()

Plus précisément, TYPE correspond au type de fonction, NAME correspond au nom utilsé lors du premier accès a la fonction, SERIAL correspond au numéro de série du module si le module est connecté, ou "unresolved" sinon, et FUNCTIONID correspond à l'identifiant matériel de la fonction si le module est connecté. Par exemple, La methode va retourner Relay(MyCustomName.relay1)=RELAYLO1-123456.relay1 si le module est déjà connecté ou Relay(BadCustomeName.relay1)=unresolved si le module n'est pas déjà connecté. Cette methode ne declenche aucune transaction USB ou TCP et peut donc être utilisé dans un debuggeur.

Retourne :

une chaîne de caractères décrivant la LED RGB (ex: Relay(MyCustomName.relay1)=RELAYLO1-123456.relay1)

colorled→get_advertisedValue()
colorled→advertisedValue()
colorled.get_advertisedValue()colorled.get_advertisedValue()colorled→get_advertisedValue()[colorled advertisedValue]colorled.get_advertisedValue()colorled.get_advertisedValue()colorled.get_advertisedValue()colorled.get_advertisedValue()colorled.get_advertisedValue()colorled→get_advertisedValue()colorled.get_advertisedValue()

Retourne la valeur courante de la LED RGB (pas plus de 6 caractères).

js
function get_advertisedValue()
nodejs
function get_advertisedValue()
cpp
string get_advertisedValue()
m
-(NSString*) advertisedValue
pas
function get_advertisedValue(): string
vb
function get_advertisedValue() As String
cs
string get_advertisedValue()
java
String get_advertisedValue()
py
def get_advertisedValue()
php
function get_advertisedValue()
es
function get_advertisedValue()

Retourne :

une chaîne de caractères représentant la valeur courante de la LED RGB (pas plus de 6 caractères).

En cas d'erreur, déclenche une exception ou retourne Y_ADVERTISEDVALUE_INVALID.

colorled→get_blinkSeqMaxSize()
colorled→blinkSeqMaxSize()
colorled.get_blinkSeqMaxSize()colorled.get_blinkSeqMaxSize()colorled→get_blinkSeqMaxSize()[colorled blinkSeqMaxSize]colorled.get_blinkSeqMaxSize()colorled.get_blinkSeqMaxSize()colorled.get_blinkSeqMaxSize()colorled.get_blinkSeqMaxSize()colorled.get_blinkSeqMaxSize()colorled→get_blinkSeqMaxSize()colorled.get_blinkSeqMaxSize()

Retourne la longueur maximum de la sequence de clignotement.

js
function get_blinkSeqMaxSize()
nodejs
function get_blinkSeqMaxSize()
cpp
int get_blinkSeqMaxSize()
m
-(int) blinkSeqMaxSize
pas
function get_blinkSeqMaxSize(): LongInt
vb
function get_blinkSeqMaxSize() As Integer
cs
int get_blinkSeqMaxSize()
java
int get_blinkSeqMaxSize()
py
def get_blinkSeqMaxSize()
php
function get_blinkSeqMaxSize()
es
function get_blinkSeqMaxSize()

Retourne :

un entier représentant la longueur maximum de la sequence de clignotement

En cas d'erreur, déclenche une exception ou retourne Y_BLINKSEQMAXSIZE_INVALID.

colorled→get_blinkSeqSignature()
colorled→blinkSeqSignature()
colorled.get_blinkSeqSignature()colorled.get_blinkSeqSignature()colorled→get_blinkSeqSignature()[colorled blinkSeqSignature]colorled.get_blinkSeqSignature()colorled.get_blinkSeqSignature()colorled.get_blinkSeqSignature()colorled.get_blinkSeqSignature()colorled.get_blinkSeqSignature()colorled→get_blinkSeqSignature()colorled.get_blinkSeqSignature()

Retourne la signature de la signature de la séquence de clignotement.

js
function get_blinkSeqSignature()
nodejs
function get_blinkSeqSignature()
cpp
int get_blinkSeqSignature()
m
-(int) blinkSeqSignature
pas
function get_blinkSeqSignature(): LongInt
vb
function get_blinkSeqSignature() As Integer
cs
int get_blinkSeqSignature()
java
int get_blinkSeqSignature()
py
def get_blinkSeqSignature()
php
function get_blinkSeqSignature()
es
function get_blinkSeqSignature()

Les séquences de clignotement ne pouvant pas être relues du module, ce mécanisme peut être utilisé pour détecter si une séquence spécifique est déja programmée.

Retourne :

un entier représentant la signature de la signature de la séquence de clignotement

En cas d'erreur, déclenche une exception ou retourne Y_BLINKSEQSIGNATURE_INVALID.

colorled→get_blinkSeqSize()
colorled→blinkSeqSize()
colorled.get_blinkSeqSize()colorled.get_blinkSeqSize()colorled→get_blinkSeqSize()[colorled blinkSeqSize]colorled.get_blinkSeqSize()colorled.get_blinkSeqSize()colorled.get_blinkSeqSize()colorled.get_blinkSeqSize()colorled.get_blinkSeqSize()colorled→get_blinkSeqSize()colorled.get_blinkSeqSize()

Retourne la longueur actuelle de la sequence de clignotement.

js
function get_blinkSeqSize()
nodejs
function get_blinkSeqSize()
cpp
int get_blinkSeqSize()
m
-(int) blinkSeqSize
pas
function get_blinkSeqSize(): LongInt
vb
function get_blinkSeqSize() As Integer
cs
int get_blinkSeqSize()
java
int get_blinkSeqSize()
py
def get_blinkSeqSize()
php
function get_blinkSeqSize()
es
function get_blinkSeqSize()

Retourne :

un entier représentant la longueur actuelle de la sequence de clignotement

En cas d'erreur, déclenche une exception ou retourne Y_BLINKSEQSIZE_INVALID.

colorled→get_errorMessage()
colorled→errorMessage()
colorled.get_errorMessage()colorled.get_errorMessage()colorled→get_errorMessage()[colorled errorMessage]colorled.get_errorMessage()colorled.get_errorMessage()colorled.get_errorMessage()colorled.get_errorMessage()colorled.get_errorMessage()colorled→get_errorMessage()colorled.get_errorMessage()

Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation de la LED RGB.

js
function get_errorMessage()
nodejs
function get_errorMessage()
cpp
string get_errorMessage()
m
-(NSString*) errorMessage
pas
function get_errorMessage(): string
vb
function get_errorMessage() As String
cs
string get_errorMessage()
java
String get_errorMessage()
py
def get_errorMessage()
php
function get_errorMessage()
es
function get_errorMessage()

Cette méthode est principalement utile lorsque la librairie Yoctopuce est utilisée en désactivant la gestion des exceptions.

Retourne :

une chaîne de caractères correspondant au message de la dernière erreur qui s'est produit lors de l'utilisation de la LED RGB.

colorled→get_errorType()
colorled→errorType()
colorled.get_errorType()colorled.get_errorType()colorled→get_errorType()colorled.get_errorType()colorled.get_errorType()colorled.get_errorType()colorled.get_errorType()colorled.get_errorType()colorled→get_errorType()colorled.get_errorType()

Retourne le code d'erreur correspondant à la dernière erreur survenue lors de l'utilisation de la LED RGB.

js
function get_errorType()
nodejs
function get_errorType()
cpp
YRETCODE get_errorType()
pas
function get_errorType(): YRETCODE
vb
function get_errorType() As YRETCODE
cs
YRETCODE get_errorType()
java
int get_errorType()
py
def get_errorType()
php
function get_errorType()
es
function get_errorType()

Cette méthode est principalement utile lorsque la librairie Yoctopuce est utilisée en désactivant la gestion des exceptions.

Retourne :

un nombre correspondant au code de la dernière erreur qui s'est produit lors de l'utilisation de la LED RGB.

colorled→get_friendlyName()
colorled→friendlyName()
colorled.get_friendlyName()colorled.get_friendlyName()colorled→get_friendlyName()[colorled friendlyName]colorled.get_friendlyName()colorled.get_friendlyName()colorled.get_friendlyName()colorled→get_friendlyName()colorled.get_friendlyName()

Retourne un identifiant global de la LED RGB au format NOM_MODULE.NOM_FONCTION.

js
function get_friendlyName()
nodejs
function get_friendlyName()
cpp
string get_friendlyName()
m
-(NSString*) friendlyName
cs
string get_friendlyName()
java
String get_friendlyName()
py
def get_friendlyName()
php
function get_friendlyName()
es
function get_friendlyName()

Le chaîne retournée utilise soit les noms logiques du module et de la LED RGB si ils sont définis, soit respectivement le numéro de série du module et l'identifant matériel de la LED RGB (par exemple: MyCustomName.relay1)

Retourne :

une chaîne de caractères identifiant la LED RGB en utilisant les noms logiques (ex: MyCustomName.relay1)

En cas d'erreur, déclenche une exception ou retourne Y_FRIENDLYNAME_INVALID.

colorled→get_functionDescriptor()
colorled→functionDescriptor()
colorled.get_functionDescriptor()colorled.get_functionDescriptor()colorled→get_functionDescriptor()[colorled functionDescriptor]colorled.get_functionDescriptor()colorled.get_functionDescriptor()colorled.get_functionDescriptor()colorled.get_functionDescriptor()colorled.get_functionDescriptor()colorled→get_functionDescriptor()colorled.get_functionDescriptor()

Retourne un identifiant unique de type YFUN_DESCR correspondant à la fonction.

js
function get_functionDescriptor()
nodejs
function get_functionDescriptor()
cpp
YFUN_DESCR get_functionDescriptor()
m
-(YFUN_DESCR) functionDescriptor
pas
function get_functionDescriptor(): YFUN_DESCR
vb
function get_functionDescriptor() As YFUN_DESCR
cs
YFUN_DESCR get_functionDescriptor()
java
String get_functionDescriptor()
py
def get_functionDescriptor()
php
function get_functionDescriptor()
es
function get_functionDescriptor()

Cet identifiant peut être utilisé pour tester si deux instance de YFunction référencent physiquement la même fonction sur le même module.

Retourne :

un identifiant de type YFUN_DESCR.

Si la fonction n'a jamais été contactée, la valeur retournée sera Y_FUNCTIONDESCRIPTOR_INVALID

colorled→get_functionId()
colorled→functionId()
colorled.get_functionId()colorled.get_functionId()colorled→get_functionId()[colorled functionId]colorled.get_functionId()colorled.get_functionId()colorled.get_functionId()colorled.get_functionId()colorled→get_functionId()colorled.get_functionId()

Retourne l'identifiant matériel de la LED RGB, sans référence au module.

js
function get_functionId()
nodejs
function get_functionId()
cpp
string get_functionId()
m
-(NSString*) functionId
vb
function get_functionId() As String
cs
string get_functionId()
java
String get_functionId()
py
def get_functionId()
php
function get_functionId()
es
function get_functionId()

Par example relay1.

Retourne :

une chaîne de caractères identifiant la LED RGB (ex: relay1)

En cas d'erreur, déclenche une exception ou retourne Y_FUNCTIONID_INVALID.

colorled→get_hardwareId()
colorled→hardwareId()
colorled.get_hardwareId()colorled.get_hardwareId()colorled→get_hardwareId()[colorled hardwareId]colorled.get_hardwareId()colorled.get_hardwareId()colorled.get_hardwareId()colorled.get_hardwareId()colorled→get_hardwareId()colorled.get_hardwareId()

Retourne l'identifiant matériel unique de la LED RGB au format SERIAL.FUNCTIONID.

js
function get_hardwareId()
nodejs
function get_hardwareId()
cpp
string get_hardwareId()
m
-(NSString*) hardwareId
vb
function get_hardwareId() As String
cs
string get_hardwareId()
java
String get_hardwareId()
py
def get_hardwareId()
php
function get_hardwareId()
es
function get_hardwareId()

L'identifiant unique est composé du numéro de série du module et de l'identifiant matériel de la LED RGB (par example RELAYLO1-123456.relay1).

Retourne :

une chaîne de caractères identifiant la LED RGB (ex: RELAYLO1-123456.relay1)

En cas d'erreur, déclenche une exception ou retourne Y_HARDWAREID_INVALID.

colorled→get_hslColor()
colorled→hslColor()
colorled.get_hslColor()colorled.get_hslColor()colorled→get_hslColor()[colorled hslColor]colorled.get_hslColor()colorled.get_hslColor()colorled.get_hslColor()colorled.get_hslColor()colorled.get_hslColor()colorled→get_hslColor()colorled.get_hslColor()

Retourne la couleur HSL courante de la LED.

js
function get_hslColor()
nodejs
function get_hslColor()
cpp
int get_hslColor()
m
-(int) hslColor
pas
function get_hslColor(): LongInt
vb
function get_hslColor() As Integer
cs
int get_hslColor()
java
int get_hslColor()
py
def get_hslColor()
php
function get_hslColor()
es
function get_hslColor()

Retourne :

un entier représentant la couleur HSL courante de la LED

En cas d'erreur, déclenche une exception ou retourne Y_HSLCOLOR_INVALID.

colorled→get_logicalName()
colorled→logicalName()
colorled.get_logicalName()colorled.get_logicalName()colorled→get_logicalName()[colorled logicalName]colorled.get_logicalName()colorled.get_logicalName()colorled.get_logicalName()colorled.get_logicalName()colorled.get_logicalName()colorled→get_logicalName()colorled.get_logicalName()

Retourne le nom logique de la LED RGB.

js
function get_logicalName()
nodejs
function get_logicalName()
cpp
string get_logicalName()
m
-(NSString*) logicalName
pas
function get_logicalName(): string
vb
function get_logicalName() As String
cs
string get_logicalName()
java
String get_logicalName()
py
def get_logicalName()
php
function get_logicalName()
es
function get_logicalName()

Retourne :

une chaîne de caractères représentant le nom logique de la LED RGB.

En cas d'erreur, déclenche une exception ou retourne Y_LOGICALNAME_INVALID.

colorled→get_module()
colorled→module()
colorled.get_module()colorled.get_module()colorled→get_module()[colorled module]colorled.get_module()colorled.get_module()colorled.get_module()colorled.get_module()colorled.get_module()colorled→get_module()colorled.get_module()

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

js
function get_module()
nodejs
function get_module()
cpp
YModule * get_module()
m
-(YModule*) module
pas
function get_module(): TYModule
vb
function get_module() As YModule
cs
YModule get_module()
java
YModule get_module()
py
def get_module()
php
function get_module()
es
function get_module()

Si la fonction ne peut être trouvée sur aucun module, l'instance de YModule retournée ne sera pas joignable.

Retourne :

une instance de YModule

colorled→get_module_async()
colorled→module_async()
colorled.get_module_async()colorled.get_module_async()

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

js
function get_module_async(callback, context)
nodejs
function get_module_async(callback, context)

Si la fonction ne peut être trouvée sur aucun module, l'instance de YModule retournée ne sera pas joignable.

Cette version asynchrone n'existe qu'en Javascript. Elle utilise une fonction de callback plutôt qu'une simple valeur de retour, pour éviter de bloquer la VM Javascript de Firefox, qui n'implémente pas le passage de contrôle entre threads durant les appels d'entrée/sortie bloquants.

Paramètres :

callbackfonction de callback qui sera appelée dès que le résultat sera connu. La fonction callback reçoit trois arguments: le contexte fourni par l'appelant, l'objet fonction concerné et l'instance demandée de YModule
contextcontexte fourni par l'appelant, et qui sera passé tel-quel à la fonction de callback

Retourne :

rien du tout : le résultat sera passé en paramètre à la fonction de callback.

colorled→get_rgbColor()
colorled→rgbColor()
colorled.get_rgbColor()colorled.get_rgbColor()colorled→get_rgbColor()[colorled rgbColor]colorled.get_rgbColor()colorled.get_rgbColor()colorled.get_rgbColor()colorled.get_rgbColor()colorled.get_rgbColor()colorled→get_rgbColor()colorled.get_rgbColor()

Retourne la couleur RGB courante de la LED.

js
function get_rgbColor()
nodejs
function get_rgbColor()
cpp
int get_rgbColor()
m
-(int) rgbColor
pas
function get_rgbColor(): LongInt
vb
function get_rgbColor() As Integer
cs
int get_rgbColor()
java
int get_rgbColor()
py
def get_rgbColor()
php
function get_rgbColor()
es
function get_rgbColor()

Retourne :

un entier représentant la couleur RGB courante de la LED

En cas d'erreur, déclenche une exception ou retourne Y_RGBCOLOR_INVALID.

colorled→get_rgbColorAtPowerOn()
colorled→rgbColorAtPowerOn()
colorled.get_rgbColorAtPowerOn()colorled.get_rgbColorAtPowerOn()colorled→get_rgbColorAtPowerOn()[colorled rgbColorAtPowerOn]colorled.get_rgbColorAtPowerOn()colorled.get_rgbColorAtPowerOn()colorled.get_rgbColorAtPowerOn()colorled.get_rgbColorAtPowerOn()colorled.get_rgbColorAtPowerOn()colorled→get_rgbColorAtPowerOn()colorled.get_rgbColorAtPowerOn()

Retourne la couleur configurée pour être affichage à l'allumage du module.

js
function get_rgbColorAtPowerOn()
nodejs
function get_rgbColorAtPowerOn()
cpp
int get_rgbColorAtPowerOn()
m
-(int) rgbColorAtPowerOn
pas
function get_rgbColorAtPowerOn(): LongInt
vb
function get_rgbColorAtPowerOn() As Integer
cs
int get_rgbColorAtPowerOn()
java
int get_rgbColorAtPowerOn()
py
def get_rgbColorAtPowerOn()
php
function get_rgbColorAtPowerOn()
es
function get_rgbColorAtPowerOn()

Retourne :

un entier représentant la couleur configurée pour être affichage à l'allumage du module

En cas d'erreur, déclenche une exception ou retourne Y_RGBCOLORATPOWERON_INVALID.

colorled→get_userData()
colorled→userData()
colorled.get_userData()colorled.get_userData()colorled→get_userData()[colorled userData]colorled.get_userData()colorled.get_userData()colorled.get_userData()colorled.get_userData()colorled.get_userData()colorled→get_userData()colorled.get_userData()

Retourne le contenu de l'attribut userData, précédemment stocké à l'aide de la méthode set_userData.

js
function get_userData()
nodejs
function get_userData()
cpp
void * get_userData()
m
-(id) userData
pas
function get_userData(): Tobject
vb
function get_userData() As Object
cs
object get_userData()
java
Object get_userData()
py
def get_userData()
php
function get_userData()
es
function get_userData()

Cet attribut n'es pas utilisé directement par l'API. Il est à la disposition de l'appelant pour stocker un contexte.

Retourne :

l'objet stocké précédemment par l'appelant.

colorled→hslMove()colorled.hslMove()colorled.hslMove()colorled→hslMove()[colorled hslMove: ]colorled.hslMove()colorled.hslMove()colorled.hslMove()colorled.hslMove()colorled.hslMove()colorled→hslMove()colorled.hslMove()

Effectue une transition continue dans l'espace HSL entre la couleur courante et une nouvelle couleur.

js
function hslMove(hsl_target, ms_duration)
nodejs
function hslMove(hsl_target, ms_duration)
cpp
int hslMove(int hsl_target, int ms_duration)
m
-(int) hslMove: (int) hsl_target : (int) ms_duration
pas
function hslMove(hsl_target: LongInt, ms_duration: LongInt): integer
vb
function hslMove(ByVal hsl_target As Integer,
  ByVal ms_duration As Integer) As Integer
cs
int hslMove(int hsl_target, int ms_duration)
java
int hslMove(int hsl_target, int ms_duration)
py
def hslMove(hsl_target, ms_duration)
php
function hslMove($hsl_target, $ms_duration)
es
function hslMove(hsl_target, ms_duration)

Paramètres :

hsl_targetcouleur HSL désirée à la fin de la transition
ms_durationdurée de la transition, en millisecondes

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorled→isOnline()colorled.isOnline()colorled.isOnline()colorled→isOnline()[colorled isOnline]colorled.isOnline()colorled.isOnline()colorled.isOnline()colorled.isOnline()colorled.isOnline()colorled→isOnline()colorled.isOnline()

Vérifie si le module hébergeant la LED RGB est joignable, sans déclencher d'erreur.

js
function isOnline()
nodejs
function isOnline()
cpp
bool isOnline()
m
-(BOOL) isOnline
pas
function isOnline(): boolean
vb
function isOnline() As Boolean
cs
bool isOnline()
java
boolean isOnline()
py
def isOnline()
php
function isOnline()
es
function isOnline()

Si les valeurs des attributs en cache de la LED RGB sont valides au moment de l'appel, le module est considéré joignable. Cette fonction ne cause en aucun cas d'exception, quelle que soit l'erreur qui pourrait se produire lors de la vérification de joignabilité.

Retourne :

true si la LED RGB est joignable, false sinon

colorled→isOnline_async()colorled.isOnline_async()colorled.isOnline_async()

Vérifie si le module hébergeant la LED RGB est joignable, sans déclencher d'erreur.

js
function isOnline_async(callback, context)
nodejs
function isOnline_async(callback, context)

Si les valeurs des attributs en cache de la LED RGB sont valides au moment de l'appel, le module est considéré joignable. Cette fonction ne cause en aucun cas d'exception, quelle que soit l'erreur qui pourrait se produire lors de la vérification de joignabilité.

Cette version asynchrone n'existe qu'en Javascript. Elle utilise une fonction de callback plutôt qu'une simple valeur de retour, pour éviter de bloquer la machine virtuelle Javascript avec une attente active.

Paramètres :

callbackfonction de callback qui sera appelée dès que le résultat sera connu. La fonction callback reçoit trois arguments: le contexte fourni par l'appelant, l'objet fonction concerné et le résultat booléen
contextcontexte fourni par l'appelant, et qui sera passé tel-quel à la fonction de callback

Retourne :

rien du tout : le résultat sera passé en paramètre à la fonction de callback.

colorled→load()colorled.load()colorled.load()colorled→load()[colorled load: ]colorled.load()colorled.load()colorled.load()colorled.load()colorled.load()colorled→load()colorled.load()

Met en cache les valeurs courantes de la LED RGB, avec une durée de validité spécifiée.

js
function load(msValidity)
nodejs
function load(msValidity)
cpp
YRETCODE load(int msValidity)
m
-(YRETCODE) load: (int) msValidity
pas
function load(msValidity: integer): YRETCODE
vb
function load(ByVal msValidity As Integer) As YRETCODE
cs
YRETCODE load(ulong msValidity)
java
int load(long msValidity)
py
def load(msValidity)
php
function load($msValidity)
es
function load(msValidity)

Par défaut, lorsqu'on accède à un module, tous les attributs des fonctions du module sont automatiquement mises en cache pour la durée standard (5 ms). Cette méthode peut être utilisée pour marquer occasionellement les données cachées comme valides pour une plus longue période, par exemple dans le but de réduire le trafic réseau.

Paramètres :

msValidityun entier correspondant à la durée de validité attribuée aux les paramètres chargés, en millisecondes

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorled→load_async()colorled.load_async()colorled.load_async()

Met en cache les valeurs courantes de la LED RGB, avec une durée de validité spécifiée.

js
function load_async(msValidity, callback, context)
nodejs
function load_async(msValidity, callback, context)

Par défaut, lorsqu'on accède à un module, tous les attributs des fonctions du module sont automatiquement mises en cache pour la durée standard (5 ms). Cette méthode peut être utilisée pour marquer occasionellement les données cachées comme valides pour une plus longue période, par exemple dans le but de réduire le trafic réseau.

Cette version asynchrone n'existe qu'en Javascript. Elle utilise une fonction de callback plutôt qu'une simple valeur de retour, pour éviter de bloquer la machine virtuelle Javascript avec une attente active.

Paramètres :

msValidityun entier correspondant à la durée de validité attribuée aux les paramètres chargés, en millisecondes
callbackfonction de callback qui sera appelée dès que le résultat sera connu. La fonction callback reçoit trois arguments: le contexte fourni par l'appelant, l'objet fonction concerné et le code d'erreur (ou YAPI_SUCCESS)
contextcontexte fourni par l'appelant, et qui sera passé tel-quel à la fonction de callback

Retourne :

rien du tout : le résultat sera passé en paramètre à la fonction de callback.

colorled→muteValueCallbacks()colorled.muteValueCallbacks()colorled.muteValueCallbacks()colorled→muteValueCallbacks()[colorled muteValueCallbacks]colorled.muteValueCallbacks()colorled.muteValueCallbacks()colorled.muteValueCallbacks()colorled.muteValueCallbacks()colorled.muteValueCallbacks()colorled→muteValueCallbacks()colorled.muteValueCallbacks()

Désactive l'envoi de chaque changement de la valeur publiée au hub parent.

js
function muteValueCallbacks()
nodejs
function muteValueCallbacks()
cpp
int muteValueCallbacks()
m
-(int) muteValueCallbacks
pas
function muteValueCallbacks(): LongInt
vb
function muteValueCallbacks() As Integer
cs
int muteValueCallbacks()
java
int muteValueCallbacks()
py
def muteValueCallbacks()
php
function muteValueCallbacks()
es
function muteValueCallbacks()

Vous pouvez utiliser cette fonction pour économiser la bande passante et le CPU sur les machines de faible puissance, ou pour éviter le déclanchement de callbacks HTTP. N'oubliez pas d'appeler la méthode saveToFlash() du module si le réglage doit être préservé.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorled→nextColorLed()colorled.nextColorLed()colorled.nextColorLed()colorled→nextColorLed()[colorled nextColorLed]colorled.nextColorLed()colorled.nextColorLed()colorled.nextColorLed()colorled.nextColorLed()colorled.nextColorLed()colorled→nextColorLed()colorled.nextColorLed()

Continue l'énumération des LEDs RGB commencée à l'aide de yFirstColorLed().

js
function nextColorLed()
nodejs
function nextColorLed()
cpp
YColorLed * nextColorLed()
m
-(YColorLed*) nextColorLed
pas
function nextColorLed(): TYColorLed
vb
function nextColorLed() As YColorLed
cs
YColorLed nextColorLed()
java
YColorLed nextColorLed()
py
def nextColorLed()
php
function nextColorLed()
es
function nextColorLed()

Retourne :

un pointeur sur un objet YColorLed accessible en ligne, ou null lorsque l'énumération est terminée.

colorled→registerValueCallback()colorled.registerValueCallback()colorled.registerValueCallback()colorled→registerValueCallback()[colorled registerValueCallback: ]colorled.registerValueCallback()colorled.registerValueCallback()colorled.registerValueCallback()colorled.registerValueCallback()colorled.registerValueCallback()colorled→registerValueCallback()colorled.registerValueCallback()

Enregistre la fonction de callback qui est appelée à chaque changement de la valeur publiée.

js
function registerValueCallback(callback)
nodejs
function registerValueCallback(callback)
cpp
int registerValueCallback(YColorLedValueCallback callback)
m
-(int) registerValueCallback: (YColorLedValueCallback) callback
pas
function registerValueCallback(callback: TYColorLedValueCallback): LongInt
vb
function registerValueCallback() As Integer
cs
int registerValueCallback(ValueCallback callback)
java
int registerValueCallback(UpdateCallback callback)
py
def registerValueCallback(callback)
php
function registerValueCallback($callback)
es
function registerValueCallback(callback)

Ce callback n'est appelé que durant l'exécution de ySleep ou yHandleEvents. Cela permet à l'appelant de contrôler quand les callback peuvent se produire. Il est important d'appeler l'une de ces deux fonctions périodiquement pour garantir que les callback ne soient pas appelés trop tard. Pour désactiver un callback, il suffit d'appeler cette méthode en lui passant un pointeur nul.

Paramètres :

callbackla fonction de callback à rappeler, ou un pointeur nul. La fonction de callback doit accepter deux arguments: l'object fonction dont la valeur a changé, et la chaîne de caractère décrivant la nouvelle valeur publiée.

colorled→resetBlinkSeq()colorled.resetBlinkSeq()colorled.resetBlinkSeq()colorled→resetBlinkSeq()[colorled resetBlinkSeq]colorled.resetBlinkSeq()colorled.resetBlinkSeq()colorled.resetBlinkSeq()colorled.resetBlinkSeq()colorled.resetBlinkSeq()colorled→resetBlinkSeq()colorled.resetBlinkSeq()

efface le contenu de la sequence de clignotement.

js
function resetBlinkSeq()
nodejs
function resetBlinkSeq()
cpp
int resetBlinkSeq()
m
-(int) resetBlinkSeq
pas
function resetBlinkSeq(): LongInt
vb
function resetBlinkSeq() As Integer
cs
int resetBlinkSeq()
java
int resetBlinkSeq()
py
def resetBlinkSeq()
php
function resetBlinkSeq()
es
function resetBlinkSeq()

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur. En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorled→rgbMove()colorled.rgbMove()colorled.rgbMove()colorled→rgbMove()[colorled rgbMove: ]colorled.rgbMove()colorled.rgbMove()colorled.rgbMove()colorled.rgbMove()colorled.rgbMove()colorled→rgbMove()colorled.rgbMove()

Effectue une transition continue dans l'espace RGB entre la couleur courante et une nouvelle couleur.

js
function rgbMove(rgb_target, ms_duration)
nodejs
function rgbMove(rgb_target, ms_duration)
cpp
int rgbMove(int rgb_target, int ms_duration)
m
-(int) rgbMove: (int) rgb_target : (int) ms_duration
pas
function rgbMove(rgb_target: LongInt, ms_duration: LongInt): integer
vb
function rgbMove(ByVal rgb_target As Integer,
  ByVal ms_duration As Integer) As Integer
cs
int rgbMove(int rgb_target, int ms_duration)
java
int rgbMove(int rgb_target, int ms_duration)
py
def rgbMove(rgb_target, ms_duration)
php
function rgbMove($rgb_target, $ms_duration)
es
function rgbMove(rgb_target, ms_duration)

Paramètres :

rgb_targetcouleur RGB désirée à la fin de la transition
ms_durationdurée de la transition, en millisecondes

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorled→set_hslColor()
colorled→setHslColor()
colorled.set_hslColor()colorled.set_hslColor()colorled→set_hslColor()[colorled setHslColor: ]colorled.set_hslColor()colorled.set_hslColor()colorled.set_hslColor()colorled.set_hslColor()colorled.set_hslColor()colorled→set_hslColor()colorled.set_hslColor()

Modifie la couleur courante de la LED, en utilisant une couleur HSL spécifiée.

js
function set_hslColor(newval)
nodejs
function set_hslColor(newval)
cpp
int set_hslColor(int newval)
m
-(int) setHslColor: (int) newval
pas
function set_hslColor(newval: LongInt): integer
vb
function set_hslColor(ByVal newval As Integer) As Integer
cs
int set_hslColor(int newval)
java
int set_hslColor(int newval)
py
def set_hslColor(newval)
php
function set_hslColor($newval)
es
function set_hslColor(newval)

L'encodage est réalisé de la manière suivante: 0xHHSSLL.

Paramètres :

newvalun entier représentant la couleur courante de la LED, en utilisant une couleur HSL spécifiée

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorled→set_logicalName()
colorled→setLogicalName()
colorled.set_logicalName()colorled.set_logicalName()colorled→set_logicalName()[colorled setLogicalName: ]colorled.set_logicalName()colorled.set_logicalName()colorled.set_logicalName()colorled.set_logicalName()colorled.set_logicalName()colorled→set_logicalName()colorled.set_logicalName()

Modifie le nom logique de la LED RGB.

js
function set_logicalName(newval)
nodejs
function set_logicalName(newval)
cpp
int set_logicalName(const string& newval)
m
-(int) setLogicalName: (NSString*) newval
pas
function set_logicalName(newval: string): integer
vb
function set_logicalName(ByVal newval As String) As Integer
cs
int set_logicalName(string newval)
java
int set_logicalName(String newval)
py
def set_logicalName(newval)
php
function set_logicalName($newval)
es
function set_logicalName(newval)

Vous pouvez utiliser yCheckLogicalName() pour vérifier si votre paramètre est valide. N'oubliez pas d'appeler la méthode saveToFlash() du module si le réglage doit être préservé.

Paramètres :

newvalune chaîne de caractères représentant le nom logique de la LED RGB.

Retourne :

YAPI_SUCCESS si l'appel se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorled→set_rgbColor()
colorled→setRgbColor()
colorled.set_rgbColor()colorled.set_rgbColor()colorled→set_rgbColor()[colorled setRgbColor: ]colorled.set_rgbColor()colorled.set_rgbColor()colorled.set_rgbColor()colorled.set_rgbColor()colorled.set_rgbColor()colorled→set_rgbColor()colorled.set_rgbColor()

Modifie la couleur courante de la LED, en utilisant une couleur RGB (Rouge Vert Bleu).

js
function set_rgbColor(newval)
nodejs
function set_rgbColor(newval)
cpp
int set_rgbColor(int newval)
m
-(int) setRgbColor: (int) newval
pas
function set_rgbColor(newval: LongInt): integer
vb
function set_rgbColor(ByVal newval As Integer) As Integer
cs
int set_rgbColor(int newval)
java
int set_rgbColor(int newval)
py
def set_rgbColor(newval)
php
function set_rgbColor($newval)
es
function set_rgbColor(newval)

L'encodage est réalisé de la manière suivante: 0xRRGGBB.

Paramètres :

newvalun entier représentant la couleur courante de la LED, en utilisant une couleur RGB (Rouge Vert Bleu)

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorled→set_rgbColorAtPowerOn()
colorled→setRgbColorAtPowerOn()
colorled.set_rgbColorAtPowerOn()colorled.set_rgbColorAtPowerOn()colorled→set_rgbColorAtPowerOn()[colorled setRgbColorAtPowerOn: ]colorled.set_rgbColorAtPowerOn()colorled.set_rgbColorAtPowerOn()colorled.set_rgbColorAtPowerOn()colorled.set_rgbColorAtPowerOn()colorled.set_rgbColorAtPowerOn()colorled→set_rgbColorAtPowerOn()colorled.set_rgbColorAtPowerOn()

Modifie la couleur que la LED va afficher à l'allumage du module.

js
function set_rgbColorAtPowerOn(newval)
nodejs
function set_rgbColorAtPowerOn(newval)
cpp
int set_rgbColorAtPowerOn(int newval)
m
-(int) setRgbColorAtPowerOn: (int) newval
pas
function set_rgbColorAtPowerOn(newval: LongInt): integer
vb
function set_rgbColorAtPowerOn(ByVal newval As Integer) As Integer
cs
int set_rgbColorAtPowerOn(int newval)
java
int set_rgbColorAtPowerOn(int newval)
py
def set_rgbColorAtPowerOn(newval)
php
function set_rgbColorAtPowerOn($newval)
es
function set_rgbColorAtPowerOn(newval)

Paramètres :

newvalun entier représentant la couleur que la LED va afficher à l'allumage du module

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorled→set_userData()
colorled→setUserData()
colorled.set_userData()colorled.set_userData()colorled→set_userData()[colorled setUserData: ]colorled.set_userData()colorled.set_userData()colorled.set_userData()colorled.set_userData()colorled.set_userData()colorled→set_userData()colorled.set_userData()

Enregistre un contexte libre dans l'attribut userData de la fonction, afin de le retrouver plus tard à l'aide de la méthode get_userData.

js
function set_userData(data)
nodejs
function set_userData(data)
cpp
void set_userData(void* data)
m
-(void) setUserData: (id) data
pas
procedure set_userData(data: Tobject)
vb
procedure set_userData(ByVal data As Object)
cs
void set_userData(object data)
java
void set_userData(Object data)
py
def set_userData(data)
php
function set_userData($data)
es
function set_userData(data)

Cet attribut n'es pas utilisé directement par l'API. Il est à la disposition de l'appelant pour stocker un contexte.

Paramètres :

dataobjet quelconque à mémoriser

colorled→startBlinkSeq()colorled.startBlinkSeq()colorled.startBlinkSeq()colorled→startBlinkSeq()[colorled startBlinkSeq]colorled.startBlinkSeq()colorled.startBlinkSeq()colorled.startBlinkSeq()colorled.startBlinkSeq()colorled.startBlinkSeq()colorled→startBlinkSeq()colorled.startBlinkSeq()

Démarre l'exécution de la séquence préprogrammée de clignotement.

js
function startBlinkSeq()
nodejs
function startBlinkSeq()
cpp
int startBlinkSeq()
m
-(int) startBlinkSeq
pas
function startBlinkSeq(): LongInt
vb
function startBlinkSeq() As Integer
cs
int startBlinkSeq()
java
int startBlinkSeq()
py
def startBlinkSeq()
php
function startBlinkSeq()
es
function startBlinkSeq()

La séquence va tourner en boucle jusqu'à ce qu'elle soit stoppée par stopBlinkSeq ou un changement explicite.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur. En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorled→stopBlinkSeq()colorled.stopBlinkSeq()colorled.stopBlinkSeq()colorled→stopBlinkSeq()[colorled stopBlinkSeq]colorled.stopBlinkSeq()colorled.stopBlinkSeq()colorled.stopBlinkSeq()colorled.stopBlinkSeq()colorled.stopBlinkSeq()colorled→stopBlinkSeq()colorled.stopBlinkSeq()

Arrête l'exécution de la séquence préprogrammée de clignotement.

js
function stopBlinkSeq()
nodejs
function stopBlinkSeq()
cpp
int stopBlinkSeq()
m
-(int) stopBlinkSeq
pas
function stopBlinkSeq(): LongInt
vb
function stopBlinkSeq() As Integer
cs
int stopBlinkSeq()
java
int stopBlinkSeq()
py
def stopBlinkSeq()
php
function stopBlinkSeq()
es
function stopBlinkSeq()

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur. En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorled→unmuteValueCallbacks()colorled.unmuteValueCallbacks()colorled.unmuteValueCallbacks()colorled→unmuteValueCallbacks()[colorled unmuteValueCallbacks]colorled.unmuteValueCallbacks()colorled.unmuteValueCallbacks()colorled.unmuteValueCallbacks()colorled.unmuteValueCallbacks()colorled.unmuteValueCallbacks()colorled→unmuteValueCallbacks()colorled.unmuteValueCallbacks()

Réactive l'envoi de chaque changement de la valeur publiée au hub parent.

js
function unmuteValueCallbacks()
nodejs
function unmuteValueCallbacks()
cpp
int unmuteValueCallbacks()
m
-(int) unmuteValueCallbacks
pas
function unmuteValueCallbacks(): LongInt
vb
function unmuteValueCallbacks() As Integer
cs
int unmuteValueCallbacks()
java
int unmuteValueCallbacks()
py
def unmuteValueCallbacks()
php
function unmuteValueCallbacks()
es
function unmuteValueCallbacks()

Cette fonction annule un précédent appel à muteValueCallbacks(). N'oubliez pas d'appeler la méthode saveToFlash() du module si le réglage doit être préservé.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorled→wait_async()colorled.wait_async()colorled.wait_async()colorled.wait_async()

Attend que toutes les commandes asynchrones en cours d'exécution sur le module soient terminées, et appelle le callback passé en paramètre.

js
function wait_async(callback, context)
nodejs
function wait_async(callback, context)
es
function wait_async(callback, context)

La fonction callback peut donc librement utiliser des fonctions synchrones ou asynchrones, sans risquer de bloquer la machine virtuelle Javascript.

Paramètres :

callbackfonction de callback qui sera appelée dès que toutes les commandes en cours d'exécution sur le module seront terminées La fonction callback reçoit deux arguments: le contexte fourni par l'appelant et l'objet fonction concerné.
contextcontexte fourni par l'appelant, et qui sera passé tel-quel à la fonction de callback

Retourne :

rien du tout.

9.4. Interface de la fonction ColorLedCluster

La librairie de programmation Yoctopuce permet de piloter un cluster de LED. Contrairement a la classe ColorLed, la classe ColorLedCluster permet de changer modifier plusieurs LEDs à la fois. Les changements de couleur peuvent être fait aussi bien en coordonnées RGB qu'en coordonnées HSL, les conversions RGB vers HSL étant faites automatiquement par le module. Ceci permet aisément d'allumer les LEDs avec une certaine teinte et d'en faire progressivement varier la saturation ou la luminosité.

Pour utiliser les fonctions décrites ici, vous devez inclure:

js
<script type='text/javascript' src='yocto_colorledcluster.js'></script>
nodejs
var yoctolib = require('yoctolib');
var YColorLedCluster = yoctolib.YColorLedCluster;
cpp
#include "yocto_colorledcluster.h"
m
#import "yocto_colorledcluster.h"
pas
uses yocto_colorledcluster;
vb
yocto_colorledcluster.vb
cs
yocto_colorledcluster.cs
java
import com.yoctopuce.YoctoAPI.YColorLedCluster;
py
from yocto_colorledcluster import *
php
require_once('yocto_colorledcluster.php');
es
import { YColorLedCluster } from 'yoctolib-es'
Fonction globales
yFindColorLedCluster(func)

Permet de retrouver un cluster de LEDs RGB d'après un identifiant donné.

yFindColorLedClusterInContext(yctx, func)

Permet de retrouver un cluster de LEDs RGB d'après un identifiant donné dans un Context YAPI.

yFirstColorLedCluster()

Commence l'énumération des clusters de LEDs RGB accessibles par la librairie.

yFirstColorLedClusterInContext(yctx)

Commence l'énumération des clusters de LEDs RGB accessibles par la librairie.

Méthodes des objets YColorLedCluster
colorledcluster→addHslMoveToBlinkSeq(seqIndex, hslValue, delay)

Ajoute à une séquence une transition dans l'espace HSL.

colorledcluster→addMirrorToBlinkSeq(seqIndex)

Ajoute à une séquence une fin en mirroir.

colorledcluster→addRgbMoveToBlinkSeq(seqIndex, rgbValue, delay)

Ajoute à une séquence une transition dans l'espace RGB.

colorledcluster→clearCache()

Invalide le cache.

colorledcluster→describe()

Retourne un court texte décrivant de manière non-ambigüe l'instance du cluster de LEDs RGB au format TYPE(NAME)=SERIAL.FUNCTIONID.

colorledcluster→get_activeLedCount()

Retourne le nombre de LED actuellement gérées par le module.

colorledcluster→get_advertisedValue()

Retourne la valeur courante du cluster de LEDs RGB (pas plus de 6 caractères).

colorledcluster→get_blinkSeqMaxCount()

Retourne le nombre maximum de séquences mis à disposition par le module.

colorledcluster→get_blinkSeqMaxSize()

Retourne la longueur maximum d'une sequence.

colorledcluster→get_blinkSeqSignatures(seqIndex, count)

Retourne une liste de signatures 32 bits pour les séquences de clignotement.

colorledcluster→get_blinkSeqState(seqIndex, count)

Retourne une liste d'entiers indiquant si les séquences sont démarrées ou pas.

colorledcluster→get_blinkSeqStateAtPowerOn(seqIndex, count)

Retourne une liste d'entiers indiquant l'état du flag pilotant le démarrage de la séquence à la mise sous tension du module.

colorledcluster→get_blinkSeqStateSpeed(seqIndex, count)

Retourne une liste d'entiers donnant la vitesse de chaque séquence.

colorledcluster→get_errorMessage()

Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation du cluster de LEDs RGB.

colorledcluster→get_errorType()

Retourne le code d'erreur correspondant à la dernière erreur survenue lors de l'utilisation du cluster de LEDs RGB.

colorledcluster→get_friendlyName()

Retourne un identifiant global du cluster de LEDs RGB au format NOM_MODULE.NOM_FONCTION.

colorledcluster→get_functionDescriptor()

Retourne un identifiant unique de type YFUN_DESCR correspondant à la fonction.

colorledcluster→get_functionId()

Retourne l'identifiant matériel du cluster de LEDs RGB, sans référence au module.

colorledcluster→get_hardwareId()

Retourne l'identifiant matériel unique du cluster de LEDs RGB au format SERIAL.FUNCTIONID.

colorledcluster→get_linkedSeqArray(ledIndex, count)

Retourne une liste d'index de séquence for chaque LED RGB.

colorledcluster→get_logicalName()

Retourne le nom logique du cluster de LEDs RGB.

colorledcluster→get_maxLedCount()

Retourne le nombre maximum de LEDs gérables par le module.

colorledcluster→get_module()

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

colorledcluster→get_module_async(callback, context)

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

colorledcluster→get_rgbColorArray(ledIndex, count)

Retourne une liste de couleurs RGB 24 bits contenant l'état des LEDs RGB, tel quel.

colorledcluster→get_rgbColorArrayAtPowerOn(ledIndex, count)

Retourne une liste de couleurs RGB 24 bits contenant la couleur des LEDs RGB au démarrage.

colorledcluster→get_rgbColorBuffer(ledIndex, count)

Retourne un objet binaire contenant l'état des LEDs RGB, tel quel.

colorledcluster→get_userData()

Retourne le contenu de l'attribut userData, précédemment stocké à l'aide de la méthode set_userData.

colorledcluster→hslArray_move(hslList, delay)

Configure une transition HSL vers une liste de couleurs HSL, pixel par pixel.

colorledcluster→hsl_move(ledIndex, count, hslValue, delay)

Permet de faire passer un groupe de LED adjacentes de la couleur courante à une autre, de manière continue et indépendante.

colorledcluster→isOnline()

Vérifie si le module hébergeant le cluster de LEDs RGB est joignable, sans déclencher d'erreur.

colorledcluster→isOnline_async(callback, context)

Vérifie si le module hébergeant le cluster de LEDs RGB est joignable, sans déclencher d'erreur.

colorledcluster→linkLedToBlinkSeq(ledIndex, count, seqIndex, offset)

Lie un groupe de LEDs adjacentes à une séquence.

colorledcluster→linkLedToBlinkSeqAtPowerOn(ledIndex, count, seqIndex, offset)

Lie un groupe de LEDs adjacentes à une séquence, au démarrage du module.

colorledcluster→linkLedToPeriodicBlinkSeq(ledIndex, count, seqIndex, periods)

Lie un groupe de LEDs adjacentes à une séquence.

colorledcluster→load(msValidity)

Met en cache les valeurs courantes du cluster de LEDs RGB, avec une durée de validité spécifiée.

colorledcluster→load_async(msValidity, callback, context)

Met en cache les valeurs courantes du cluster de LEDs RGB, avec une durée de validité spécifiée.

colorledcluster→muteValueCallbacks()

Désactive l'envoi de chaque changement de la valeur publiée au hub parent.

colorledcluster→nextColorLedCluster()

Continue l'énumération des clusters de LEDs RGB commencée à l'aide de yFirstColorLedCluster().

colorledcluster→registerValueCallback(callback)

Enregistre la fonction de callback qui est appelée à chaque changement de la valeur publiée.

colorledcluster→resetBlinkSeq(seqIndex)

Stoppe l'exécution et efface le contenu d'une séquence.

colorledcluster→rgbArray_move(rgbList, delay)

Configure une transition RGB vers une liste de couleurs RGB, pixel par pixel.

colorledcluster→rgb_move(ledIndex, count, rgbValue, delay)

Permet de faire passer un groupe de LED adjacentes de la couleur courante à une autre, de manière continue et indépendante.

colorledcluster→saveBlinkSeq(seqIndex)

Sauve la configuration d'une séquence.

colorledcluster→saveLedsConfigAtPowerOn()

Sauve la configuration de démarrage des LEDs.

colorledcluster→set_activeLedCount(newval)

Modifie le nombre de LED actuellement gérées par le module.

colorledcluster→set_blinkSeqSpeed(seqIndex, speed)

Change la vitesse d'exécution d'une séquence, en pour mille.

colorledcluster→set_blinkSeqStateAtPowerOn(seqIndex, autostart)

Configure une séquence pour qu'elle démarre automatiquement au démarrage du module.

colorledcluster→set_hslColor(ledIndex, count, hslValue)

Modifie la couleur courante d'un groupe de LED consécutives en utilisant une couleur HSL .

colorledcluster→set_hslColorArray(ledIndex, hslList)

Envoie des couleurs HSL 24 bits (fournie sous forme d'une liste d'entiers) sur l'affichage LED HSL.

colorledcluster→set_hslColorBuffer(ledIndex, buff)

Envoie un objet binaire tel quel sur l'affichage LED HSL.

colorledcluster→set_logicalName(newval)

Modifie le nom logique du cluster de LEDs RGB.

colorledcluster→set_rgbColor(ledIndex, count, rgbValue)

Modifie la couleur courante d'un groupe de LED consécutives en utilisant une couleur RGB (Rouge Vert Bleu).

colorledcluster→set_rgbColorArray(ledIndex, rgbList)

Envoie des couleurs RGB 24 bits (fournie sous forme d'une liste d'entiers) sur l'affichage LED RGB.

colorledcluster→set_rgbColorAtPowerOn(ledIndex, count, rgbValue)

Modifie la couleur au démarrage d'un groupe de LED consécutives en utilisant une couleur RGB (Rouge Vert Bleu).

colorledcluster→set_rgbColorBuffer(ledIndex, buff)

Envoie un objet binaire tel quel sur l'affichage LED RGB.

colorledcluster→set_userData(data)

Enregistre un contexte libre dans l'attribut userData de la fonction, afin de le retrouver plus tard à l'aide de la méthode get_userData.

colorledcluster→startBlinkSeq(seqIndex)

Démarre l'exécution d'une séquence : toutes les LED liées à cette séquence vont commencer à l'exécuter en boucle.

colorledcluster→stopBlinkSeq(seqIndex)

Stoppe l'exécution d'une séquence.

colorledcluster→unlinkLedFromBlinkSeq(ledIndex, count)

Délie un groupe de LEDs adjacentes d'une séquence.

colorledcluster→unmuteValueCallbacks()

Réactive l'envoi de chaque changement de la valeur publiée au hub parent.

colorledcluster→wait_async(callback, context)

Attend que toutes les commandes asynchrones en cours d'exécution sur le module soient terminées, et appelle le callback passé en paramètre.

YColorLedCluster.FindColorLedCluster()
yFindColorLedCluster()
yFindColorLedCluster()YColorLedCluster.FindColorLedCluster()yFindColorLedCluster()[YColorLedCluster FindColorLedCluster: ]yFindColorLedCluster()yFindColorLedCluster()YColorLedCluster.FindColorLedCluster()YColorLedCluster.FindColorLedCluster()YColorLedCluster.FindColorLedCluster()yFindColorLedCluster()YColorLedCluster.FindColorLedCluster()

Permet de retrouver un cluster de LEDs RGB d'après un identifiant donné.

js
function yFindColorLedCluster(func)
nodejs
function FindColorLedCluster(func)
cpp
YColorLedCluster* yFindColorLedCluster(const string& func)
m
+(YColorLedCluster*) FindColorLedCluster:(NSString*) func
pas
function yFindColorLedCluster(func: string): TYColorLedCluster
vb
function yFindColorLedCluster(ByVal func As String) As YColorLedCluster
cs
YColorLedCluster FindColorLedCluster(string func)
java
YColorLedCluster FindColorLedCluster(String func)
py
def FindColorLedCluster(func)
php
function yFindColorLedCluster($func)
es
function FindColorLedCluster(func)

L'identifiant peut être spécifié sous plusieurs formes:

Cette fonction n'exige pas que le cluster de LEDs RGB soit en ligne au moment ou elle est appelée, l'objet retourné sera néanmoins valide. Utiliser la méthode YColorLedCluster.isOnline() pour tester si le cluster de LEDs RGB est utilisable à un moment donné. En cas d'ambiguïté lorsqu'on fait une recherche par nom logique, aucune erreur ne sera notifiée: la première instance trouvée sera renvoyée. La recherche se fait d'abord par nom matériel, puis par nom logique.

Paramètres :

funcune chaîne de caractères qui référence le cluster de LEDs RGB sans ambiguïté

Retourne :

un objet de classe YColorLedCluster qui permet ensuite de contrôler le cluster de LEDs RGB.

YColorLedCluster.FindColorLedClusterInContext()
yFindColorLedClusterInContext()
YColorLedCluster.FindColorLedClusterInContext()YColorLedCluster.FindColorLedClusterInContext()

Permet de retrouver un cluster de LEDs RGB d'après un identifiant donné dans un Context YAPI.

java
YColorLedCluster FindColorLedClusterInContext(YAPIContext yctx,
  String func)
es
function FindColorLedClusterInContext(yctx, func)

L'identifiant peut être spécifié sous plusieurs formes:

Cette fonction n'exige pas que le cluster de LEDs RGB soit en ligne au moment ou elle est appelée, l'objet retourné sera néanmoins valide. Utiliser la méthode YColorLedCluster.isOnline() pour tester si le cluster de LEDs RGB est utilisable à un moment donné. En cas d'ambiguïté lorsqu'on fait une recherche par nom logique, aucune erreur ne sera notifiée: la première instance trouvée sera renvoyée. La recherche se fait d'abord par nom matériel, puis par nom logique.

Paramètres :

yctxun contexte YAPI
funcune chaîne de caractères qui référence le cluster de LEDs RGB sans ambiguïté

Retourne :

un objet de classe YColorLedCluster qui permet ensuite de contrôler le cluster de LEDs RGB.

YColorLedCluster.FirstColorLedCluster()
yFirstColorLedCluster()
yFirstColorLedCluster()YColorLedCluster.FirstColorLedCluster()yFirstColorLedCluster()[YColorLedCluster FirstColorLedCluster]yFirstColorLedCluster()yFirstColorLedCluster()YColorLedCluster.FirstColorLedCluster()YColorLedCluster.FirstColorLedCluster()YColorLedCluster.FirstColorLedCluster()yFirstColorLedCluster()YColorLedCluster.FirstColorLedCluster()

Commence l'énumération des clusters de LEDs RGB accessibles par la librairie.

js
function yFirstColorLedCluster()
nodejs
function FirstColorLedCluster()
cpp
YColorLedCluster* yFirstColorLedCluster()
m
+(YColorLedCluster*) FirstColorLedCluster
pas
function yFirstColorLedCluster(): TYColorLedCluster
vb
function yFirstColorLedCluster() As YColorLedCluster
cs
YColorLedCluster FirstColorLedCluster()
java
YColorLedCluster FirstColorLedCluster()
py
def FirstColorLedCluster()
php
function yFirstColorLedCluster()
es
function FirstColorLedCluster()

Utiliser la fonction YColorLedCluster.nextColorLedCluster() pour itérer sur les autres clusters de LEDs RGB.

Retourne :

un pointeur sur un objet YColorLedCluster, correspondant au premier cluster de LEDs RGB accessible en ligne, ou null si il n'y a pas de clusters de LEDs RGB disponibles.

YColorLedCluster.FirstColorLedClusterInContext()
yFirstColorLedClusterInContext()
YColorLedCluster.FirstColorLedClusterInContext()YColorLedCluster.FirstColorLedClusterInContext()

Commence l'énumération des clusters de LEDs RGB accessibles par la librairie.

java
YColorLedCluster FirstColorLedClusterInContext(YAPIContext yctx)
es
function FirstColorLedClusterInContext(yctx)

Utiliser la fonction YColorLedCluster.nextColorLedCluster() pour itérer sur les autres clusters de LEDs RGB.

Paramètres :

yctxun contexte YAPI.

Retourne :

un pointeur sur un objet YColorLedCluster, correspondant au premier cluster de LEDs RGB accessible en ligne, ou null si il n'y a pas de clusters de LEDs RGB disponibles.

colorledcluster→addHslMoveToBlinkSeq()colorledcluster.addHslMoveToBlinkSeq()colorledcluster.addHslMoveToBlinkSeq()colorledcluster→addHslMoveToBlinkSeq()[colorledcluster addHslMoveToBlinkSeq: ]colorledcluster.addHslMoveToBlinkSeq()colorledcluster.addHslMoveToBlinkSeq()colorledcluster.addHslMoveToBlinkSeq()colorledcluster.addHslMoveToBlinkSeq()colorledcluster.addHslMoveToBlinkSeq()colorledcluster→addHslMoveToBlinkSeq()colorledcluster.addHslMoveToBlinkSeq()

Ajoute à une séquence une transition dans l'espace HSL.

js
function addHslMoveToBlinkSeq(seqIndex, hslValue, delay)
nodejs
function addHslMoveToBlinkSeq(seqIndex, hslValue, delay)
cpp
int addHslMoveToBlinkSeq(int seqIndex, int hslValue, int delay)
m
-(int) addHslMoveToBlinkSeq: (int) seqIndex : (int) hslValue : (int) delay
pas
function addHslMoveToBlinkSeq(seqIndex: LongInt,
  hslValue: LongInt,
  delay: LongInt): LongInt
vb
function addHslMoveToBlinkSeq() As Integer
cs
int addHslMoveToBlinkSeq(int seqIndex,
  int hslValue,
  int delay)
java
int addHslMoveToBlinkSeq(int seqIndex, int hslValue, int delay)
py
def addHslMoveToBlinkSeq(seqIndex, hslValue, delay)
php
function addHslMoveToBlinkSeq($seqIndex, $hslValue, $delay)
es
function addHslMoveToBlinkSeq(seqIndex, hslValue, delay)

Une séquence est une liste de transitions qui pourra être exécutée en boucle par un groupe arbitraire de LEDs. Les séquences sont persistenteset sont sauvées dans le mémoire flash du module quand la méthode saveBlinkSeq() est appelée.

Paramètres :

seqIndexindex de la séquence.
hslValuecouleur visée (0xHHSSLL)
delaydurée de la transistion en ms.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→addMirrorToBlinkSeq()colorledcluster.addMirrorToBlinkSeq()colorledcluster.addMirrorToBlinkSeq()colorledcluster→addMirrorToBlinkSeq()[colorledcluster addMirrorToBlinkSeq: ]colorledcluster.addMirrorToBlinkSeq()colorledcluster.addMirrorToBlinkSeq()colorledcluster.addMirrorToBlinkSeq()colorledcluster.addMirrorToBlinkSeq()colorledcluster.addMirrorToBlinkSeq()colorledcluster→addMirrorToBlinkSeq()colorledcluster.addMirrorToBlinkSeq()

Ajoute à une séquence une fin en mirroir.

js
function addMirrorToBlinkSeq(seqIndex)
nodejs
function addMirrorToBlinkSeq(seqIndex)
cpp
int addMirrorToBlinkSeq(int seqIndex)
m
-(int) addMirrorToBlinkSeq: (int) seqIndex
pas
function addMirrorToBlinkSeq(seqIndex: LongInt): LongInt
vb
function addMirrorToBlinkSeq() As Integer
cs
int addMirrorToBlinkSeq(int seqIndex)
java
int addMirrorToBlinkSeq(int seqIndex)
py
def addMirrorToBlinkSeq(seqIndex)
php
function addMirrorToBlinkSeq($seqIndex)
es
function addMirrorToBlinkSeq(seqIndex)

Lorsque la séquence arrivera à la fin de la dernière transition, sa vitesse d'exécution sera automatiquement inversée de sorte à ce que la séquence se rejoue à l'envers, en mirroir. Lorsque la première transition sera complétée à la fin de l'exécution à l'envers, la séquence repartira à nouveau dans le sens initial.

Paramètres :

seqIndexindex de la séquence.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→addRgbMoveToBlinkSeq()colorledcluster.addRgbMoveToBlinkSeq()colorledcluster.addRgbMoveToBlinkSeq()colorledcluster→addRgbMoveToBlinkSeq()[colorledcluster addRgbMoveToBlinkSeq: ]colorledcluster.addRgbMoveToBlinkSeq()colorledcluster.addRgbMoveToBlinkSeq()colorledcluster.addRgbMoveToBlinkSeq()colorledcluster.addRgbMoveToBlinkSeq()colorledcluster.addRgbMoveToBlinkSeq()colorledcluster→addRgbMoveToBlinkSeq()colorledcluster.addRgbMoveToBlinkSeq()

Ajoute à une séquence une transition dans l'espace RGB.

js
function addRgbMoveToBlinkSeq(seqIndex, rgbValue, delay)
nodejs
function addRgbMoveToBlinkSeq(seqIndex, rgbValue, delay)
cpp
int addRgbMoveToBlinkSeq(int seqIndex, int rgbValue, int delay)
m
-(int) addRgbMoveToBlinkSeq: (int) seqIndex : (int) rgbValue : (int) delay
pas
function addRgbMoveToBlinkSeq(seqIndex: LongInt,
  rgbValue: LongInt,
  delay: LongInt): LongInt
vb
function addRgbMoveToBlinkSeq() As Integer
cs
int addRgbMoveToBlinkSeq(int seqIndex,
  int rgbValue,
  int delay)
java
int addRgbMoveToBlinkSeq(int seqIndex, int rgbValue, int delay)
py
def addRgbMoveToBlinkSeq(seqIndex, rgbValue, delay)
php
function addRgbMoveToBlinkSeq($seqIndex, $rgbValue, $delay)
es
function addRgbMoveToBlinkSeq(seqIndex, rgbValue, delay)

Une séquence est une liste de transitions qui pourra être exécutée en boucle par un groupe arbitraire de LEDs. Les séquences sont persistantes et sont sauvées dans le mémoire flash du module quand la méthode saveBlinkSeq() est applée.

Paramètres :

seqIndexindex de la séquence.
rgbValuecouleur visée (0xRRGGBB)
delaydurée de la transistion en ms.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→clearCache()colorledcluster.clearCache()colorledcluster.clearCache()colorledcluster→clearCache()[colorledcluster clearCache]colorledcluster.clearCache()colorledcluster.clearCache()colorledcluster.clearCache()colorledcluster.clearCache()colorledcluster.clearCache()colorledcluster→clearCache()colorledcluster.clearCache()

Invalide le cache.

js
function clearCache()
nodejs
function clearCache()
cpp
void clearCache()
m
-(void) clearCache
pas
procedure clearCache()
vb
procedure clearCache()
cs
void clearCache()
java
void clearCache()
py
def clearCache()
php
function clearCache()
es
function clearCache()

Invalide le cache des valeurs courantes du cluster de LEDs RGB. Force le prochain appel à une méthode get_xxx() ou loadxxx() pour charger les les données depuis le module.

colorledcluster→describe()colorledcluster.describe()colorledcluster.describe()colorledcluster→describe()[colorledcluster describe]colorledcluster.describe()colorledcluster.describe()colorledcluster.describe()colorledcluster.describe()colorledcluster.describe()colorledcluster→describe()colorledcluster.describe()

Retourne un court texte décrivant de manière non-ambigüe l'instance du cluster de LEDs RGB au format TYPE(NAME)=SERIAL.FUNCTIONID.

js
function describe()
nodejs
function describe()
cpp
string describe()
m
-(NSString*) describe
pas
function describe(): string
vb
function describe() As String
cs
string describe()
java
String describe()
py
def describe()
php
function describe()
es
function describe()

Plus précisément, TYPE correspond au type de fonction, NAME correspond au nom utilsé lors du premier accès a la fonction, SERIAL correspond au numéro de série du module si le module est connecté, ou "unresolved" sinon, et FUNCTIONID correspond à l'identifiant matériel de la fonction si le module est connecté. Par exemple, La methode va retourner Relay(MyCustomName.relay1)=RELAYLO1-123456.relay1 si le module est déjà connecté ou Relay(BadCustomeName.relay1)=unresolved si le module n'est pas déjà connecté. Cette methode ne declenche aucune transaction USB ou TCP et peut donc être utilisé dans un debuggeur.

Retourne :

une chaîne de caractères décrivant le cluster de LEDs RGB (ex: Relay(MyCustomName.relay1)=RELAYLO1-123456.relay1)

colorledcluster→get_activeLedCount()
colorledcluster→activeLedCount()
colorledcluster.get_activeLedCount()colorledcluster.get_activeLedCount()colorledcluster→get_activeLedCount()[colorledcluster activeLedCount]colorledcluster.get_activeLedCount()colorledcluster.get_activeLedCount()colorledcluster.get_activeLedCount()colorledcluster.get_activeLedCount()colorledcluster.get_activeLedCount()colorledcluster→get_activeLedCount()colorledcluster.get_activeLedCount()

Retourne le nombre de LED actuellement gérées par le module.

js
function get_activeLedCount()
nodejs
function get_activeLedCount()
cpp
int get_activeLedCount()
m
-(int) activeLedCount
pas
function get_activeLedCount(): LongInt
vb
function get_activeLedCount() As Integer
cs
int get_activeLedCount()
java
int get_activeLedCount()
py
def get_activeLedCount()
php
function get_activeLedCount()
es
function get_activeLedCount()

Retourne :

un entier représentant le nombre de LED actuellement gérées par le module

En cas d'erreur, déclenche une exception ou retourne Y_ACTIVELEDCOUNT_INVALID.

colorledcluster→get_advertisedValue()
colorledcluster→advertisedValue()
colorledcluster.get_advertisedValue()colorledcluster.get_advertisedValue()colorledcluster→get_advertisedValue()[colorledcluster advertisedValue]colorledcluster.get_advertisedValue()colorledcluster.get_advertisedValue()colorledcluster.get_advertisedValue()colorledcluster.get_advertisedValue()colorledcluster.get_advertisedValue()colorledcluster→get_advertisedValue()colorledcluster.get_advertisedValue()

Retourne la valeur courante du cluster de LEDs RGB (pas plus de 6 caractères).

js
function get_advertisedValue()
nodejs
function get_advertisedValue()
cpp
string get_advertisedValue()
m
-(NSString*) advertisedValue
pas
function get_advertisedValue(): string
vb
function get_advertisedValue() As String
cs
string get_advertisedValue()
java
String get_advertisedValue()
py
def get_advertisedValue()
php
function get_advertisedValue()
es
function get_advertisedValue()

Retourne :

une chaîne de caractères représentant la valeur courante du cluster de LEDs RGB (pas plus de 6 caractères).

En cas d'erreur, déclenche une exception ou retourne Y_ADVERTISEDVALUE_INVALID.

colorledcluster→get_blinkSeqMaxCount()
colorledcluster→blinkSeqMaxCount()
colorledcluster.get_blinkSeqMaxCount()colorledcluster.get_blinkSeqMaxCount()colorledcluster→get_blinkSeqMaxCount()[colorledcluster blinkSeqMaxCount]colorledcluster.get_blinkSeqMaxCount()colorledcluster.get_blinkSeqMaxCount()colorledcluster.get_blinkSeqMaxCount()colorledcluster.get_blinkSeqMaxCount()colorledcluster.get_blinkSeqMaxCount()colorledcluster→get_blinkSeqMaxCount()colorledcluster.get_blinkSeqMaxCount()

Retourne le nombre maximum de séquences mis à disposition par le module.

js
function get_blinkSeqMaxCount()
nodejs
function get_blinkSeqMaxCount()
cpp
int get_blinkSeqMaxCount()
m
-(int) blinkSeqMaxCount
pas
function get_blinkSeqMaxCount(): LongInt
vb
function get_blinkSeqMaxCount() As Integer
cs
int get_blinkSeqMaxCount()
java
int get_blinkSeqMaxCount()
py
def get_blinkSeqMaxCount()
php
function get_blinkSeqMaxCount()
es
function get_blinkSeqMaxCount()

Retourne :

un entier représentant le nombre maximum de séquences mis à disposition par le module

En cas d'erreur, déclenche une exception ou retourne Y_BLINKSEQMAXCOUNT_INVALID.

colorledcluster→get_blinkSeqMaxSize()
colorledcluster→blinkSeqMaxSize()
colorledcluster.get_blinkSeqMaxSize()colorledcluster.get_blinkSeqMaxSize()colorledcluster→get_blinkSeqMaxSize()[colorledcluster blinkSeqMaxSize]colorledcluster.get_blinkSeqMaxSize()colorledcluster.get_blinkSeqMaxSize()colorledcluster.get_blinkSeqMaxSize()colorledcluster.get_blinkSeqMaxSize()colorledcluster.get_blinkSeqMaxSize()colorledcluster→get_blinkSeqMaxSize()colorledcluster.get_blinkSeqMaxSize()

Retourne la longueur maximum d'une sequence.

js
function get_blinkSeqMaxSize()
nodejs
function get_blinkSeqMaxSize()
cpp
int get_blinkSeqMaxSize()
m
-(int) blinkSeqMaxSize
pas
function get_blinkSeqMaxSize(): LongInt
vb
function get_blinkSeqMaxSize() As Integer
cs
int get_blinkSeqMaxSize()
java
int get_blinkSeqMaxSize()
py
def get_blinkSeqMaxSize()
php
function get_blinkSeqMaxSize()
es
function get_blinkSeqMaxSize()

Retourne :

un entier représentant la longueur maximum d'une sequence

En cas d'erreur, déclenche une exception ou retourne Y_BLINKSEQMAXSIZE_INVALID.

colorledcluster→get_blinkSeqSignatures()
colorledcluster→blinkSeqSignatures()
colorledcluster.get_blinkSeqSignatures()colorledcluster.get_blinkSeqSignatures()colorledcluster→get_blinkSeqSignatures()[colorledcluster blinkSeqSignatures: ]colorledcluster.get_blinkSeqSignatures()colorledcluster.get_blinkSeqSignatures()colorledcluster.get_blinkSeqSignatures()colorledcluster.get_blinkSeqSignatures()colorledcluster.get_blinkSeqSignatures()colorledcluster→get_blinkSeqSignatures()colorledcluster.get_blinkSeqSignatures()

Retourne une liste de signatures 32 bits pour les séquences de clignotement.

js
function get_blinkSeqSignatures(seqIndex, count)
nodejs
function get_blinkSeqSignatures(seqIndex, count)
cpp
vector<int> get_blinkSeqSignatures(int seqIndex, int count)
m
-(NSMutableArray*) blinkSeqSignatures: (int) seqIndex : (int) count
pas
function get_blinkSeqSignatures(seqIndex: LongInt,
  count: LongInt): TLongIntArray
vb
function get_blinkSeqSignatures() As List
cs
List<int> get_blinkSeqSignatures(int seqIndex, int count)
java
ArrayList<Integer> get_blinkSeqSignatures(int seqIndex,
  int count)
py
def get_blinkSeqSignatures(seqIndex, count)
php
function get_blinkSeqSignatures($seqIndex, $count)
es
function get_blinkSeqSignatures(seqIndex, count)

Les séquences de clignotement ne pouvant pas être relues du module, ce mécanisme peut être utilisé pour détecter si une séquence spécifique est déjà programmée.

Paramètres :

seqIndexindex de la première séquence qui doit être retournée
countnombre de séquences qui doivent être retournées

Retourne :

une liste d'entiers 32 bits

En cas d'erreur, déclenche une exception ou retourne un tableau vide.

colorledcluster→get_blinkSeqState()
colorledcluster→blinkSeqState()
colorledcluster.get_blinkSeqState()colorledcluster.get_blinkSeqState()colorledcluster→get_blinkSeqState()[colorledcluster blinkSeqState: ]colorledcluster.get_blinkSeqState()colorledcluster.get_blinkSeqState()colorledcluster.get_blinkSeqState()colorledcluster.get_blinkSeqState()colorledcluster.get_blinkSeqState()colorledcluster→get_blinkSeqState()colorledcluster.get_blinkSeqState()

Retourne une liste d'entiers indiquant si les séquences sont démarrées ou pas.

js
function get_blinkSeqState(seqIndex, count)
nodejs
function get_blinkSeqState(seqIndex, count)
cpp
vector<int> get_blinkSeqState(int seqIndex, int count)
m
-(NSMutableArray*) blinkSeqState: (int) seqIndex : (int) count
pas
function get_blinkSeqState(seqIndex: LongInt,
  count: LongInt): TLongIntArray
vb
function get_blinkSeqState() As List
cs
List<int> get_blinkSeqState(int seqIndex, int count)
java
ArrayList<Integer> get_blinkSeqState(int seqIndex, int count)
py
def get_blinkSeqState(seqIndex, count)
php
function get_blinkSeqState($seqIndex, $count)
es
function get_blinkSeqState(seqIndex, count)

Paramètres :

seqIndexindex de la première séquence qui doit être retournée
countnombre de séquences qui doivent être retournées

Retourne :

une liste d'entiers, 0 pour les séquences arrêtées et 1 pour les séquences démarrées.

En cas d'erreur, déclenche une exception ou retourne un tableau vide.

colorledcluster→get_blinkSeqStateAtPowerOn()
colorledcluster→blinkSeqStateAtPowerOn()
colorledcluster.get_blinkSeqStateAtPowerOn()colorledcluster.get_blinkSeqStateAtPowerOn()colorledcluster→get_blinkSeqStateAtPowerOn()[colorledcluster blinkSeqStateAtPowerOn: ]colorledcluster.get_blinkSeqStateAtPowerOn()colorledcluster.get_blinkSeqStateAtPowerOn()colorledcluster.get_blinkSeqStateAtPowerOn()colorledcluster.get_blinkSeqStateAtPowerOn()colorledcluster.get_blinkSeqStateAtPowerOn()colorledcluster→get_blinkSeqStateAtPowerOn()colorledcluster.get_blinkSeqStateAtPowerOn()

Retourne une liste d'entiers indiquant l'état du flag pilotant le démarrage de la séquence à la mise sous tension du module.

js
function get_blinkSeqStateAtPowerOn(seqIndex, count)
nodejs
function get_blinkSeqStateAtPowerOn(seqIndex, count)
cpp
vector<int> get_blinkSeqStateAtPowerOn(int seqIndex, int count)
m
-(NSMutableArray*) blinkSeqStateAtPowerOn: (int) seqIndex : (int) count
pas
function get_blinkSeqStateAtPowerOn(seqIndex: LongInt,
  count: LongInt): TLongIntArray
vb
function get_blinkSeqStateAtPowerOn() As List
cs
List<int> get_blinkSeqStateAtPowerOn(int seqIndex, int count)
java
ArrayList<Integer> get_blinkSeqStateAtPowerOn(int seqIndex,
  int count)
py
def get_blinkSeqStateAtPowerOn(seqIndex, count)
php
function get_blinkSeqStateAtPowerOn($seqIndex, $count)
es
function get_blinkSeqStateAtPowerOn(seqIndex, count)

Paramètres :

seqIndexindex de la première séquence qui doit être retournée
countnombre de séquences qui doivent être retournées

Retourne :

une liste d'entiers, 0 pour les séquences arrêtées et 1 pour les séquences démarrées.

En cas d'erreur, déclenche une exception ou retourne un tableau vide.

colorledcluster→get_blinkSeqStateSpeed()
colorledcluster→blinkSeqStateSpeed()
colorledcluster.get_blinkSeqStateSpeed()colorledcluster.get_blinkSeqStateSpeed()colorledcluster→get_blinkSeqStateSpeed()[colorledcluster blinkSeqStateSpeed: ]colorledcluster.get_blinkSeqStateSpeed()colorledcluster.get_blinkSeqStateSpeed()colorledcluster.get_blinkSeqStateSpeed()colorledcluster.get_blinkSeqStateSpeed()colorledcluster.get_blinkSeqStateSpeed()colorledcluster→get_blinkSeqStateSpeed()colorledcluster.get_blinkSeqStateSpeed()

Retourne une liste d'entiers donnant la vitesse de chaque séquence.

js
function get_blinkSeqStateSpeed(seqIndex, count)
nodejs
function get_blinkSeqStateSpeed(seqIndex, count)
cpp
vector<int> get_blinkSeqStateSpeed(int seqIndex, int count)
m
-(NSMutableArray*) blinkSeqStateSpeed: (int) seqIndex : (int) count
pas
function get_blinkSeqStateSpeed(seqIndex: LongInt,
  count: LongInt): TLongIntArray
vb
function get_blinkSeqStateSpeed() As List
cs
List<int> get_blinkSeqStateSpeed(int seqIndex, int count)
java
ArrayList<Integer> get_blinkSeqStateSpeed(int seqIndex,
  int count)
py
def get_blinkSeqStateSpeed(seqIndex, count)
php
function get_blinkSeqStateSpeed($seqIndex, $count)
es
function get_blinkSeqStateSpeed(seqIndex, count)

Paramètres :

seqIndexindex de la première séquence dont le vitesse doit être retournée
countnombre de séquences à traiter

Retourne :

une liste d'entiers, 0 pour les séquences arrêtées et 1 pour les séquences démarrées.

En cas d'erreur, déclenche une exception ou retourne un tableau vide.

colorledcluster→get_errorMessage()
colorledcluster→errorMessage()
colorledcluster.get_errorMessage()colorledcluster.get_errorMessage()colorledcluster→get_errorMessage()[colorledcluster errorMessage]colorledcluster.get_errorMessage()colorledcluster.get_errorMessage()colorledcluster.get_errorMessage()colorledcluster.get_errorMessage()colorledcluster.get_errorMessage()colorledcluster→get_errorMessage()colorledcluster.get_errorMessage()

Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation du cluster de LEDs RGB.

js
function get_errorMessage()
nodejs
function get_errorMessage()
cpp
string get_errorMessage()
m
-(NSString*) errorMessage
pas
function get_errorMessage(): string
vb
function get_errorMessage() As String
cs
string get_errorMessage()
java
String get_errorMessage()
py
def get_errorMessage()
php
function get_errorMessage()
es
function get_errorMessage()

Cette méthode est principalement utile lorsque la librairie Yoctopuce est utilisée en désactivant la gestion des exceptions.

Retourne :

une chaîne de caractères correspondant au message de la dernière erreur qui s'est produit lors de l'utilisation du cluster de LEDs RGB.

colorledcluster→get_errorType()
colorledcluster→errorType()
colorledcluster.get_errorType()colorledcluster.get_errorType()colorledcluster→get_errorType()colorledcluster.get_errorType()colorledcluster.get_errorType()colorledcluster.get_errorType()colorledcluster.get_errorType()colorledcluster.get_errorType()colorledcluster→get_errorType()colorledcluster.get_errorType()

Retourne le code d'erreur correspondant à la dernière erreur survenue lors de l'utilisation du cluster de LEDs RGB.

js
function get_errorType()
nodejs
function get_errorType()
cpp
YRETCODE get_errorType()
pas
function get_errorType(): YRETCODE
vb
function get_errorType() As YRETCODE
cs
YRETCODE get_errorType()
java
int get_errorType()
py
def get_errorType()
php
function get_errorType()
es
function get_errorType()

Cette méthode est principalement utile lorsque la librairie Yoctopuce est utilisée en désactivant la gestion des exceptions.

Retourne :

un nombre correspondant au code de la dernière erreur qui s'est produit lors de l'utilisation du cluster de LEDs RGB.

colorledcluster→get_friendlyName()
colorledcluster→friendlyName()
colorledcluster.get_friendlyName()colorledcluster.get_friendlyName()colorledcluster→get_friendlyName()[colorledcluster friendlyName]colorledcluster.get_friendlyName()colorledcluster.get_friendlyName()colorledcluster.get_friendlyName()colorledcluster→get_friendlyName()colorledcluster.get_friendlyName()

Retourne un identifiant global du cluster de LEDs RGB au format NOM_MODULE.NOM_FONCTION.

js
function get_friendlyName()
nodejs
function get_friendlyName()
cpp
string get_friendlyName()
m
-(NSString*) friendlyName
cs
string get_friendlyName()
java
String get_friendlyName()
py
def get_friendlyName()
php
function get_friendlyName()
es
function get_friendlyName()

Le chaîne retournée utilise soit les noms logiques du module et du cluster de LEDs RGB si ils sont définis, soit respectivement le numéro de série du module et l'identifant matériel du cluster de LEDs RGB (par exemple: MyCustomName.relay1)

Retourne :

une chaîne de caractères identifiant le cluster de LEDs RGB en utilisant les noms logiques (ex: MyCustomName.relay1)

En cas d'erreur, déclenche une exception ou retourne Y_FRIENDLYNAME_INVALID.

colorledcluster→get_functionDescriptor()
colorledcluster→functionDescriptor()
colorledcluster.get_functionDescriptor()colorledcluster.get_functionDescriptor()colorledcluster→get_functionDescriptor()[colorledcluster functionDescriptor]colorledcluster.get_functionDescriptor()colorledcluster.get_functionDescriptor()colorledcluster.get_functionDescriptor()colorledcluster.get_functionDescriptor()colorledcluster.get_functionDescriptor()colorledcluster→get_functionDescriptor()colorledcluster.get_functionDescriptor()

Retourne un identifiant unique de type YFUN_DESCR correspondant à la fonction.

js
function get_functionDescriptor()
nodejs
function get_functionDescriptor()
cpp
YFUN_DESCR get_functionDescriptor()
m
-(YFUN_DESCR) functionDescriptor
pas
function get_functionDescriptor(): YFUN_DESCR
vb
function get_functionDescriptor() As YFUN_DESCR
cs
YFUN_DESCR get_functionDescriptor()
java
String get_functionDescriptor()
py
def get_functionDescriptor()
php
function get_functionDescriptor()
es
function get_functionDescriptor()

Cet identifiant peut être utilisé pour tester si deux instance de YFunction référencent physiquement la même fonction sur le même module.

Retourne :

un identifiant de type YFUN_DESCR.

Si la fonction n'a jamais été contactée, la valeur retournée sera Y_FUNCTIONDESCRIPTOR_INVALID

colorledcluster→get_functionId()
colorledcluster→functionId()
colorledcluster.get_functionId()colorledcluster.get_functionId()colorledcluster→get_functionId()[colorledcluster functionId]colorledcluster.get_functionId()colorledcluster.get_functionId()colorledcluster.get_functionId()colorledcluster.get_functionId()colorledcluster→get_functionId()colorledcluster.get_functionId()

Retourne l'identifiant matériel du cluster de LEDs RGB, sans référence au module.

js
function get_functionId()
nodejs
function get_functionId()
cpp
string get_functionId()
m
-(NSString*) functionId
vb
function get_functionId() As String
cs
string get_functionId()
java
String get_functionId()
py
def get_functionId()
php
function get_functionId()
es
function get_functionId()

Par example relay1.

Retourne :

une chaîne de caractères identifiant le cluster de LEDs RGB (ex: relay1)

En cas d'erreur, déclenche une exception ou retourne Y_FUNCTIONID_INVALID.

colorledcluster→get_hardwareId()
colorledcluster→hardwareId()
colorledcluster.get_hardwareId()colorledcluster.get_hardwareId()colorledcluster→get_hardwareId()[colorledcluster hardwareId]colorledcluster.get_hardwareId()colorledcluster.get_hardwareId()colorledcluster.get_hardwareId()colorledcluster.get_hardwareId()colorledcluster→get_hardwareId()colorledcluster.get_hardwareId()

Retourne l'identifiant matériel unique du cluster de LEDs RGB au format SERIAL.FUNCTIONID.

js
function get_hardwareId()
nodejs
function get_hardwareId()
cpp
string get_hardwareId()
m
-(NSString*) hardwareId
vb
function get_hardwareId() As String
cs
string get_hardwareId()
java
String get_hardwareId()
py
def get_hardwareId()
php
function get_hardwareId()
es
function get_hardwareId()

L'identifiant unique est composé du numéro de série du module et de l'identifiant matériel du cluster de LEDs RGB (par example RELAYLO1-123456.relay1).

Retourne :

une chaîne de caractères identifiant le cluster de LEDs RGB (ex: RELAYLO1-123456.relay1)

En cas d'erreur, déclenche une exception ou retourne Y_HARDWAREID_INVALID.

colorledcluster→get_linkedSeqArray()
colorledcluster→linkedSeqArray()
colorledcluster.get_linkedSeqArray()colorledcluster.get_linkedSeqArray()colorledcluster→get_linkedSeqArray()[colorledcluster linkedSeqArray: ]colorledcluster.get_linkedSeqArray()colorledcluster.get_linkedSeqArray()colorledcluster.get_linkedSeqArray()colorledcluster.get_linkedSeqArray()colorledcluster.get_linkedSeqArray()colorledcluster→get_linkedSeqArray()colorledcluster.get_linkedSeqArray()

Retourne une liste d'index de séquence for chaque LED RGB.

js
function get_linkedSeqArray(ledIndex, count)
nodejs
function get_linkedSeqArray(ledIndex, count)
cpp
vector<int> get_linkedSeqArray(int ledIndex, int count)
m
-(NSMutableArray*) linkedSeqArray: (int) ledIndex : (int) count
pas
function get_linkedSeqArray(ledIndex: LongInt,
  count: LongInt): TLongIntArray
vb
function get_linkedSeqArray() As List
cs
List<int> get_linkedSeqArray(int ledIndex, int count)
java
ArrayList<Integer> get_linkedSeqArray(int ledIndex, int count)
py
def get_linkedSeqArray(ledIndex, count)
php
function get_linkedSeqArray($ledIndex, $count)
es
function get_linkedSeqArray(ledIndex, count)

Le premier entier correspond à l'index de la première LED, l'entier suivant à la LED suivante, etc.

Paramètres :

ledIndexindex de la première LED qui doit être retournée
countnombre de LEDs qui doivent être retournées

Retourne :

une liste d'entiers correspondant à des index de séquence.

En cas d'erreur, déclenche une exception ou retourne un tableau vide.

colorledcluster→get_logicalName()
colorledcluster→logicalName()
colorledcluster.get_logicalName()colorledcluster.get_logicalName()colorledcluster→get_logicalName()[colorledcluster logicalName]colorledcluster.get_logicalName()colorledcluster.get_logicalName()colorledcluster.get_logicalName()colorledcluster.get_logicalName()colorledcluster.get_logicalName()colorledcluster→get_logicalName()colorledcluster.get_logicalName()

Retourne le nom logique du cluster de LEDs RGB.

js
function get_logicalName()
nodejs
function get_logicalName()
cpp
string get_logicalName()
m
-(NSString*) logicalName
pas
function get_logicalName(): string
vb
function get_logicalName() As String
cs
string get_logicalName()
java
String get_logicalName()
py
def get_logicalName()
php
function get_logicalName()
es
function get_logicalName()

Retourne :

une chaîne de caractères représentant le nom logique du cluster de LEDs RGB.

En cas d'erreur, déclenche une exception ou retourne Y_LOGICALNAME_INVALID.

colorledcluster→get_maxLedCount()
colorledcluster→maxLedCount()
colorledcluster.get_maxLedCount()colorledcluster.get_maxLedCount()colorledcluster→get_maxLedCount()[colorledcluster maxLedCount]colorledcluster.get_maxLedCount()colorledcluster.get_maxLedCount()colorledcluster.get_maxLedCount()colorledcluster.get_maxLedCount()colorledcluster.get_maxLedCount()colorledcluster→get_maxLedCount()colorledcluster.get_maxLedCount()

Retourne le nombre maximum de LEDs gérables par le module.

js
function get_maxLedCount()
nodejs
function get_maxLedCount()
cpp
int get_maxLedCount()
m
-(int) maxLedCount
pas
function get_maxLedCount(): LongInt
vb
function get_maxLedCount() As Integer
cs
int get_maxLedCount()
java
int get_maxLedCount()
py
def get_maxLedCount()
php
function get_maxLedCount()
es
function get_maxLedCount()

Retourne :

un entier représentant le nombre maximum de LEDs gérables par le module

En cas d'erreur, déclenche une exception ou retourne Y_MAXLEDCOUNT_INVALID.

colorledcluster→get_module()
colorledcluster→module()
colorledcluster.get_module()colorledcluster.get_module()colorledcluster→get_module()[colorledcluster module]colorledcluster.get_module()colorledcluster.get_module()colorledcluster.get_module()colorledcluster.get_module()colorledcluster.get_module()colorledcluster→get_module()colorledcluster.get_module()

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

js
function get_module()
nodejs
function get_module()
cpp
YModule * get_module()
m
-(YModule*) module
pas
function get_module(): TYModule
vb
function get_module() As YModule
cs
YModule get_module()
java
YModule get_module()
py
def get_module()
php
function get_module()
es
function get_module()

Si la fonction ne peut être trouvée sur aucun module, l'instance de YModule retournée ne sera pas joignable.

Retourne :

une instance de YModule

colorledcluster→get_module_async()
colorledcluster→module_async()
colorledcluster.get_module_async()colorledcluster.get_module_async()

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

js
function get_module_async(callback, context)
nodejs
function get_module_async(callback, context)

Si la fonction ne peut être trouvée sur aucun module, l'instance de YModule retournée ne sera pas joignable.

Cette version asynchrone n'existe qu'en Javascript. Elle utilise une fonction de callback plutôt qu'une simple valeur de retour, pour éviter de bloquer la VM Javascript de Firefox, qui n'implémente pas le passage de contrôle entre threads durant les appels d'entrée/sortie bloquants.

Paramètres :

callbackfonction de callback qui sera appelée dès que le résultat sera connu. La fonction callback reçoit trois arguments: le contexte fourni par l'appelant, l'objet fonction concerné et l'instance demandée de YModule
contextcontexte fourni par l'appelant, et qui sera passé tel-quel à la fonction de callback

Retourne :

rien du tout : le résultat sera passé en paramètre à la fonction de callback.

colorledcluster→get_rgbColorArray()
colorledcluster→rgbColorArray()
colorledcluster.get_rgbColorArray()colorledcluster.get_rgbColorArray()colorledcluster→get_rgbColorArray()[colorledcluster rgbColorArray: ]colorledcluster.get_rgbColorArray()colorledcluster.get_rgbColorArray()colorledcluster.get_rgbColorArray()colorledcluster.get_rgbColorArray()colorledcluster.get_rgbColorArray()colorledcluster→get_rgbColorArray()colorledcluster.get_rgbColorArray()

Retourne une liste de couleurs RGB 24 bits contenant l'état des LEDs RGB, tel quel.

js
function get_rgbColorArray(ledIndex, count)
nodejs
function get_rgbColorArray(ledIndex, count)
cpp
vector<int> get_rgbColorArray(int ledIndex, int count)
m
-(NSMutableArray*) rgbColorArray: (int) ledIndex : (int) count
pas
function get_rgbColorArray(ledIndex: LongInt,
  count: LongInt): TLongIntArray
vb
function get_rgbColorArray() As List
cs
List<int> get_rgbColorArray(int ledIndex, int count)
java
ArrayList<Integer> get_rgbColorArray(int ledIndex, int count)
py
def get_rgbColorArray(ledIndex, count)
php
function get_rgbColorArray($ledIndex, $count)
es
function get_rgbColorArray(ledIndex, count)

Le premier entier correspond à la couleur RGB de la première LED, l'entier suivant à la LED suivante, etc.

Paramètres :

ledIndexindex de la première LED qui doit être retournée
countnombre de LEDs qui doivent être retournées

Retourne :

une liste de couleurs 24bit avec les composantes RGB des LEDs choisies, au format 0xRRGGBB.

En cas d'erreur, déclenche une exception ou retourne un tableau vide.

colorledcluster→get_rgbColorArrayAtPowerOn()
colorledcluster→rgbColorArrayAtPowerOn()
colorledcluster.get_rgbColorArrayAtPowerOn()colorledcluster.get_rgbColorArrayAtPowerOn()colorledcluster→get_rgbColorArrayAtPowerOn()[colorledcluster rgbColorArrayAtPowerOn: ]colorledcluster.get_rgbColorArrayAtPowerOn()colorledcluster.get_rgbColorArrayAtPowerOn()colorledcluster.get_rgbColorArrayAtPowerOn()colorledcluster.get_rgbColorArrayAtPowerOn()colorledcluster.get_rgbColorArrayAtPowerOn()colorledcluster→get_rgbColorArrayAtPowerOn()colorledcluster.get_rgbColorArrayAtPowerOn()

Retourne une liste de couleurs RGB 24 bits contenant la couleur des LEDs RGB au démarrage.

js
function get_rgbColorArrayAtPowerOn(ledIndex, count)
nodejs
function get_rgbColorArrayAtPowerOn(ledIndex, count)
cpp
vector<int> get_rgbColorArrayAtPowerOn(int ledIndex, int count)
m
-(NSMutableArray*) rgbColorArrayAtPowerOn: (int) ledIndex : (int) count
pas
function get_rgbColorArrayAtPowerOn(ledIndex: LongInt,
  count: LongInt): TLongIntArray
vb
function get_rgbColorArrayAtPowerOn() As List
cs
List<int> get_rgbColorArrayAtPowerOn(int ledIndex, int count)
java
ArrayList<Integer> get_rgbColorArrayAtPowerOn(int ledIndex,
  int count)
py
def get_rgbColorArrayAtPowerOn(ledIndex, count)
php
function get_rgbColorArrayAtPowerOn($ledIndex, $count)
es
function get_rgbColorArrayAtPowerOn(ledIndex, count)

Le premier entier correspond à la couleur RGB de démarrage de la première LED, l'entier suivant à la LED suivante, etc.

Paramètres :

ledIndexindex de la première LED qui doit être retournée
countnombre de LEDs qui doivent être retournées

Retourne :

une liste de couleurs 24bit avec les composantes RGB des LEDs choisies, au format 0xRRGGBB.

En cas d'erreur, déclenche une exception ou retourne un tableau vide.

colorledcluster→get_rgbColorBuffer()
colorledcluster→rgbColorBuffer()
colorledcluster.get_rgbColorBuffer()colorledcluster.get_rgbColorBuffer()colorledcluster→get_rgbColorBuffer()[colorledcluster rgbColorBuffer: ]colorledcluster.get_rgbColorBuffer()colorledcluster.get_rgbColorBuffer()colorledcluster.get_rgbColorBuffer()colorledcluster.get_rgbColorBuffer()colorledcluster.get_rgbColorBuffer()colorledcluster→get_rgbColorBuffer()colorledcluster.get_rgbColorBuffer()

Retourne un objet binaire contenant l'état des LEDs RGB, tel quel.

js
function get_rgbColorBuffer(ledIndex, count)
nodejs
function get_rgbColorBuffer(ledIndex, count)
cpp
string get_rgbColorBuffer(int ledIndex, int count)
m
-(NSMutableData*) rgbColorBuffer: (int) ledIndex : (int) count
pas
function get_rgbColorBuffer(ledIndex: LongInt,
  count: LongInt): TByteArray
vb
function get_rgbColorBuffer() As Byte
cs
byte[] get_rgbColorBuffer(int ledIndex, int count)
java
byte[] get_rgbColorBuffer(int ledIndex, int count)
py
def get_rgbColorBuffer(ledIndex, count)
php
function get_rgbColorBuffer($ledIndex, $count)
es
function get_rgbColorBuffer(ledIndex, count)

Les trois premiers octets correspondent aux composantes RGB de la première LED choisie, les trois octets suivants à la LED suivante, etc.

Paramètres :

ledIndexindex de la première LED qui doit être retournée
countnombre de LEDs qui doivent être retournées

Retourne :

un objet binaire avec les composantes RGB des LEDs choisies.

En cas d'erreur, déclenche une exception ou retourne un objet binaire vide.

colorledcluster→get_userData()
colorledcluster→userData()
colorledcluster.get_userData()colorledcluster.get_userData()colorledcluster→get_userData()[colorledcluster userData]colorledcluster.get_userData()colorledcluster.get_userData()colorledcluster.get_userData()colorledcluster.get_userData()colorledcluster.get_userData()colorledcluster→get_userData()colorledcluster.get_userData()

Retourne le contenu de l'attribut userData, précédemment stocké à l'aide de la méthode set_userData.

js
function get_userData()
nodejs
function get_userData()
cpp
void * get_userData()
m
-(id) userData
pas
function get_userData(): Tobject
vb
function get_userData() As Object
cs
object get_userData()
java
Object get_userData()
py
def get_userData()
php
function get_userData()
es
function get_userData()

Cet attribut n'es pas utilisé directement par l'API. Il est à la disposition de l'appelant pour stocker un contexte.

Retourne :

l'objet stocké précédemment par l'appelant.

colorledcluster→hslArray_move()colorledcluster.hslArray_move()colorledcluster.hslArray_move()colorledcluster→hslArray_move()[colorledcluster hslArray_move: ]colorledcluster.hslArray_move()colorledcluster.hslArray_move()colorledcluster.hslArray_move()colorledcluster.hslArray_move()colorledcluster.hslArray_move()colorledcluster→hslArray_move()colorledcluster.hslArray_move()

Configure une transition HSL vers une liste de couleurs HSL, pixel par pixel.

js
function hslArray_move(hslList, delay)
nodejs
function hslArray_move(hslList, delay)
cpp
int hslArray_move(vector<int> hslList, int delay)
m
-(int) hslArray_move: (NSMutableArray*) hslList : (int) delay
pas
function hslArray_move(hslList: TLongIntArray, delay: LongInt): LongInt
vb
procedure hslArray_move()
cs
int hslArray_move(List<int> hslList, int delay)
java
int hslArray_move(ArrayList<Integer> hslList, int delay)
py
def hslArray_move(hslList, delay)
php
function hslArray_move($hslList, $delay)
es
function hslArray_move(hslList, delay)

Le premier entier correspond à la couleur RGB finale pour la première LED, l'entier suivant à la LED suivante, etc.

Paramètres :

hslListla liste de valeurs HSL (24 bits) finales désirées, au format 0xHHSSLL
delaydurée de la transition en ms.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→hsl_move()colorledcluster.hsl_move()colorledcluster.hsl_move()colorledcluster→hsl_move()[colorledcluster hsl_move: ]colorledcluster.hsl_move()colorledcluster.hsl_move()colorledcluster.hsl_move()colorledcluster.hsl_move()colorledcluster.hsl_move()colorledcluster→hsl_move()colorledcluster.hsl_move()

Permet de faire passer un groupe de LED adjacentes de la couleur courante à une autre, de manière continue et indépendante.

js
function hsl_move(ledIndex, count, hslValue, delay)
nodejs
function hsl_move(ledIndex, count, hslValue, delay)
cpp
int hsl_move(int ledIndex, int count, int hslValue, int delay)
m
-(int) hsl_move: (int) ledIndex : (int) count : (int) hslValue : (int) delay
pas
function hsl_move(ledIndex: LongInt,
  count: LongInt,
  hslValue: LongInt,
  delay: LongInt): LongInt
vb
function hsl_move() As Integer
cs
int hsl_move(int ledIndex, int count, int hslValue, int delay)
java
int hsl_move(int ledIndex, int count, int hslValue, int delay)
py
def hsl_move(ledIndex, count, hslValue, delay)
php
function hsl_move($ledIndex, $count, $hslValue, $delay)
es
function hsl_move(ledIndex, count, hslValue, delay)

La transition se fait dans l'espace HSL. En HSL, la teinte étant une valeur circulaire (0..360°) il y a toujours deux manières d'opérer la transition: en augmentant ou en diminuant le teinte. Le module optera pour la transition passant par le chemin le plus court. dans le cas d'une différence d'exactement 180°, il optera pour la transition qui augmente la valeur de la teinte.

Paramètres :

ledIndexindex de la première LED affectée.
countnombre de LED consécutives affectés.
hslValuenouvelle couleur (0xHHSSLL)
delaydurée de la transistion enms.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→isOnline()colorledcluster.isOnline()colorledcluster.isOnline()colorledcluster→isOnline()[colorledcluster isOnline]colorledcluster.isOnline()colorledcluster.isOnline()colorledcluster.isOnline()colorledcluster.isOnline()colorledcluster.isOnline()colorledcluster→isOnline()colorledcluster.isOnline()

Vérifie si le module hébergeant le cluster de LEDs RGB est joignable, sans déclencher d'erreur.

js
function isOnline()
nodejs
function isOnline()
cpp
bool isOnline()
m
-(BOOL) isOnline
pas
function isOnline(): boolean
vb
function isOnline() As Boolean
cs
bool isOnline()
java
boolean isOnline()
py
def isOnline()
php
function isOnline()
es
function isOnline()

Si les valeurs des attributs en cache du cluster de LEDs RGB sont valides au moment de l'appel, le module est considéré joignable. Cette fonction ne cause en aucun cas d'exception, quelle que soit l'erreur qui pourrait se produire lors de la vérification de joignabilité.

Retourne :

true si le cluster de LEDs RGB est joignable, false sinon

colorledcluster→isOnline_async()colorledcluster.isOnline_async()colorledcluster.isOnline_async()

Vérifie si le module hébergeant le cluster de LEDs RGB est joignable, sans déclencher d'erreur.

js
function isOnline_async(callback, context)
nodejs
function isOnline_async(callback, context)

Si les valeurs des attributs en cache du cluster de LEDs RGB sont valides au moment de l'appel, le module est considéré joignable. Cette fonction ne cause en aucun cas d'exception, quelle que soit l'erreur qui pourrait se produire lors de la vérification de joignabilité.

Cette version asynchrone n'existe qu'en Javascript. Elle utilise une fonction de callback plutôt qu'une simple valeur de retour, pour éviter de bloquer la machine virtuelle Javascript avec une attente active.

Paramètres :

callbackfonction de callback qui sera appelée dès que le résultat sera connu. La fonction callback reçoit trois arguments: le contexte fourni par l'appelant, l'objet fonction concerné et le résultat booléen
contextcontexte fourni par l'appelant, et qui sera passé tel-quel à la fonction de callback

Retourne :

rien du tout : le résultat sera passé en paramètre à la fonction de callback.

colorledcluster→linkLedToBlinkSeq()colorledcluster.linkLedToBlinkSeq()colorledcluster.linkLedToBlinkSeq()colorledcluster→linkLedToBlinkSeq()[colorledcluster linkLedToBlinkSeq: ]colorledcluster.linkLedToBlinkSeq()colorledcluster.linkLedToBlinkSeq()colorledcluster.linkLedToBlinkSeq()colorledcluster.linkLedToBlinkSeq()colorledcluster.linkLedToBlinkSeq()colorledcluster→linkLedToBlinkSeq()colorledcluster.linkLedToBlinkSeq()

Lie un groupe de LEDs adjacentes à une séquence.

js
function linkLedToBlinkSeq(ledIndex, count, seqIndex, offset)
nodejs
function linkLedToBlinkSeq(ledIndex, count, seqIndex, offset)
cpp
int linkLedToBlinkSeq(int ledIndex,
  int count,
  int seqIndex,
  int offset)
m
-(int) linkLedToBlinkSeq: (int) ledIndex
  : (int) count
  : (int) seqIndex
  : (int) offset
pas
function linkLedToBlinkSeq(ledIndex: LongInt,
  count: LongInt,
  seqIndex: LongInt,
  offset: LongInt): LongInt
vb
function linkLedToBlinkSeq() As Integer
cs
int linkLedToBlinkSeq(int ledIndex,
  int count,
  int seqIndex,
  int offset)
java
int linkLedToBlinkSeq(int ledIndex,
  int count,
  int seqIndex,
  int offset)
py
def linkLedToBlinkSeq(ledIndex, count, seqIndex, offset)
php
function linkLedToBlinkSeq($ledIndex, $count, $seqIndex, $offset)
es
function linkLedToBlinkSeq(ledIndex, count, seqIndex, offset)

Ces LEDs commenceront à exécuter la séquence dès que son exécution sera lancé à l'aide de startBlinkSeq. Il est possible d'induire un décalage dans l'exécution à l'aide du paramètre offset. On peut ainsi créer plusieurs groupes de LEDs qui exécutent la même séquence mais de manière décalée. Une LED ne peut être affectée qu'à une seule séquence à la fois.

Paramètres :

ledIndexindex de la première LED affectée.
countnombre de LED consécutives affectés.
seqIndexindex de la séquence.
offsetdécalage dans l'exécution de la séquence en ms

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→linkLedToBlinkSeqAtPowerOn()colorledcluster.linkLedToBlinkSeqAtPowerOn()colorledcluster.linkLedToBlinkSeqAtPowerOn()colorledcluster→linkLedToBlinkSeqAtPowerOn()[colorledcluster linkLedToBlinkSeqAtPowerOn: ]colorledcluster.linkLedToBlinkSeqAtPowerOn()colorledcluster.linkLedToBlinkSeqAtPowerOn()colorledcluster.linkLedToBlinkSeqAtPowerOn()colorledcluster.linkLedToBlinkSeqAtPowerOn()colorledcluster.linkLedToBlinkSeqAtPowerOn()colorledcluster→linkLedToBlinkSeqAtPowerOn()colorledcluster.linkLedToBlinkSeqAtPowerOn()

Lie un groupe de LEDs adjacentes à une séquence, au démarrage du module.

js
function linkLedToBlinkSeqAtPowerOn(ledIndex, count, seqIndex, offset)
nodejs
function linkLedToBlinkSeqAtPowerOn(ledIndex, count, seqIndex, offset)
cpp
int linkLedToBlinkSeqAtPowerOn(int ledIndex,
  int count,
  int seqIndex,
  int offset)
m
-(int) linkLedToBlinkSeqAtPowerOn: (int) ledIndex
  : (int) count
  : (int) seqIndex
  : (int) offset
pas
function linkLedToBlinkSeqAtPowerOn(ledIndex: LongInt,
  count: LongInt,
  seqIndex: LongInt,
  offset: LongInt): LongInt
vb
function linkLedToBlinkSeqAtPowerOn() As Integer
cs
int linkLedToBlinkSeqAtPowerOn(int ledIndex,
  int count,
  int seqIndex,
  int offset)
java
int linkLedToBlinkSeqAtPowerOn(int ledIndex,
  int count,
  int seqIndex,
  int offset)
py
def linkLedToBlinkSeqAtPowerOn(ledIndex, count, seqIndex, offset)
php
function linkLedToBlinkSeqAtPowerOn($ledIndex, $count, $seqIndex, $offset)
es
function linkLedToBlinkSeqAtPowerOn(ledIndex, count, seqIndex, offset)

Ne pas oublier de configurer le démarrage automatique de la séquence et d'appeler saveLedsConfigAtPowerOn(). Il est possible d'induire un décalage dans l'exécution à l'aide du paramètre offset. On peut ainsi créer plusieurs groupes de LEDs qui exécutent la même séquence mais de manière décalée. Une LED ne peut être affectée qu'à une seule séquence à la fois.

Paramètres :

ledIndexindex de la première LED affectée.
countnombre de LED consécutives affectés.
seqIndexindex de la séquence.
offsetdécalage dans l'exécution de la séquence en ms

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→linkLedToPeriodicBlinkSeq()colorledcluster.linkLedToPeriodicBlinkSeq()colorledcluster.linkLedToPeriodicBlinkSeq()colorledcluster→linkLedToPeriodicBlinkSeq()[colorledcluster linkLedToPeriodicBlinkSeq: ]colorledcluster.linkLedToPeriodicBlinkSeq()colorledcluster.linkLedToPeriodicBlinkSeq()colorledcluster.linkLedToPeriodicBlinkSeq()colorledcluster.linkLedToPeriodicBlinkSeq()colorledcluster.linkLedToPeriodicBlinkSeq()colorledcluster→linkLedToPeriodicBlinkSeq()colorledcluster.linkLedToPeriodicBlinkSeq()

Lie un groupe de LEDs adjacentes à une séquence.

js
function linkLedToPeriodicBlinkSeq(ledIndex, count, seqIndex, periods)
nodejs
function linkLedToPeriodicBlinkSeq(ledIndex, count, seqIndex, periods)
cpp
int linkLedToPeriodicBlinkSeq(int ledIndex,
  int count,
  int seqIndex,
  int periods)
m
-(int) linkLedToPeriodicBlinkSeq: (int) ledIndex
  : (int) count
  : (int) seqIndex
  : (int) periods
pas
function linkLedToPeriodicBlinkSeq(ledIndex: LongInt,
  count: LongInt,
  seqIndex: LongInt,
  periods: LongInt): LongInt
vb
function linkLedToPeriodicBlinkSeq() As Integer
cs
int linkLedToPeriodicBlinkSeq(int ledIndex,
  int count,
  int seqIndex,
  int periods)
java
int linkLedToPeriodicBlinkSeq(int ledIndex,
  int count,
  int seqIndex,
  int periods)
py
def linkLedToPeriodicBlinkSeq(ledIndex, count, seqIndex, periods)
php
function linkLedToPeriodicBlinkSeq($ledIndex, $count, $seqIndex, $periods)
es
function linkLedToPeriodicBlinkSeq(ledIndex, count, seqIndex, periods)

Ces LEDs commenceront à exécuter la séquence dès que son exécution sera lancé à l'aide de startBlinkSeq. Cette fonction précalcule un décalage entre les LEDs de sorte à ce que le nombre choisi de périodes de la séquence soit visible sur le groupe de LEDs (effet d'onde).

Paramètres :

ledIndexindex de la première LED affectée.
countnombre de LED consécutives affectés.
seqIndexindex de la séquence.
periodsnombre de périodes à répartir entre les LEDs.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→load()colorledcluster.load()colorledcluster.load()colorledcluster→load()[colorledcluster load: ]colorledcluster.load()colorledcluster.load()colorledcluster.load()colorledcluster.load()colorledcluster.load()colorledcluster→load()colorledcluster.load()

Met en cache les valeurs courantes du cluster de LEDs RGB, avec une durée de validité spécifiée.

js
function load(msValidity)
nodejs
function load(msValidity)
cpp
YRETCODE load(int msValidity)
m
-(YRETCODE) load: (int) msValidity
pas
function load(msValidity: integer): YRETCODE
vb
function load(ByVal msValidity As Integer) As YRETCODE
cs
YRETCODE load(ulong msValidity)
java
int load(long msValidity)
py
def load(msValidity)
php
function load($msValidity)
es
function load(msValidity)

Par défaut, lorsqu'on accède à un module, tous les attributs des fonctions du module sont automatiquement mises en cache pour la durée standard (5 ms). Cette méthode peut être utilisée pour marquer occasionellement les données cachées comme valides pour une plus longue période, par exemple dans le but de réduire le trafic réseau.

Paramètres :

msValidityun entier correspondant à la durée de validité attribuée aux les paramètres chargés, en millisecondes

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→load_async()colorledcluster.load_async()colorledcluster.load_async()

Met en cache les valeurs courantes du cluster de LEDs RGB, avec une durée de validité spécifiée.

js
function load_async(msValidity, callback, context)
nodejs
function load_async(msValidity, callback, context)

Par défaut, lorsqu'on accède à un module, tous les attributs des fonctions du module sont automatiquement mises en cache pour la durée standard (5 ms). Cette méthode peut être utilisée pour marquer occasionellement les données cachées comme valides pour une plus longue période, par exemple dans le but de réduire le trafic réseau.

Cette version asynchrone n'existe qu'en Javascript. Elle utilise une fonction de callback plutôt qu'une simple valeur de retour, pour éviter de bloquer la machine virtuelle Javascript avec une attente active.

Paramètres :

msValidityun entier correspondant à la durée de validité attribuée aux les paramètres chargés, en millisecondes
callbackfonction de callback qui sera appelée dès que le résultat sera connu. La fonction callback reçoit trois arguments: le contexte fourni par l'appelant, l'objet fonction concerné et le code d'erreur (ou YAPI_SUCCESS)
contextcontexte fourni par l'appelant, et qui sera passé tel-quel à la fonction de callback

Retourne :

rien du tout : le résultat sera passé en paramètre à la fonction de callback.

colorledcluster→muteValueCallbacks()colorledcluster.muteValueCallbacks()colorledcluster.muteValueCallbacks()colorledcluster→muteValueCallbacks()[colorledcluster muteValueCallbacks]colorledcluster.muteValueCallbacks()colorledcluster.muteValueCallbacks()colorledcluster.muteValueCallbacks()colorledcluster.muteValueCallbacks()colorledcluster.muteValueCallbacks()colorledcluster→muteValueCallbacks()colorledcluster.muteValueCallbacks()

Désactive l'envoi de chaque changement de la valeur publiée au hub parent.

js
function muteValueCallbacks()
nodejs
function muteValueCallbacks()
cpp
int muteValueCallbacks()
m
-(int) muteValueCallbacks
pas
function muteValueCallbacks(): LongInt
vb
function muteValueCallbacks() As Integer
cs
int muteValueCallbacks()
java
int muteValueCallbacks()
py
def muteValueCallbacks()
php
function muteValueCallbacks()
es
function muteValueCallbacks()

Vous pouvez utiliser cette fonction pour économiser la bande passante et le CPU sur les machines de faible puissance, ou pour éviter le déclanchement de callbacks HTTP. N'oubliez pas d'appeler la méthode saveToFlash() du module si le réglage doit être préservé.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→nextColorLedCluster()colorledcluster.nextColorLedCluster()colorledcluster.nextColorLedCluster()colorledcluster→nextColorLedCluster()[colorledcluster nextColorLedCluster]colorledcluster.nextColorLedCluster()colorledcluster.nextColorLedCluster()colorledcluster.nextColorLedCluster()colorledcluster.nextColorLedCluster()colorledcluster.nextColorLedCluster()colorledcluster→nextColorLedCluster()colorledcluster.nextColorLedCluster()

Continue l'énumération des clusters de LEDs RGB commencée à l'aide de yFirstColorLedCluster().

js
function nextColorLedCluster()
nodejs
function nextColorLedCluster()
cpp
YColorLedCluster * nextColorLedCluster()
m
-(YColorLedCluster*) nextColorLedCluster
pas
function nextColorLedCluster(): TYColorLedCluster
vb
function nextColorLedCluster() As YColorLedCluster
cs
YColorLedCluster nextColorLedCluster()
java
YColorLedCluster nextColorLedCluster()
py
def nextColorLedCluster()
php
function nextColorLedCluster()
es
function nextColorLedCluster()

Retourne :

un pointeur sur un objet YColorLedCluster accessible en ligne, ou null lorsque l'énumération est terminée.

colorledcluster→registerValueCallback()colorledcluster.registerValueCallback()colorledcluster.registerValueCallback()colorledcluster→registerValueCallback()[colorledcluster registerValueCallback: ]colorledcluster.registerValueCallback()colorledcluster.registerValueCallback()colorledcluster.registerValueCallback()colorledcluster.registerValueCallback()colorledcluster.registerValueCallback()colorledcluster→registerValueCallback()colorledcluster.registerValueCallback()

Enregistre la fonction de callback qui est appelée à chaque changement de la valeur publiée.

js
function registerValueCallback(callback)
nodejs
function registerValueCallback(callback)
cpp
int registerValueCallback(YColorLedClusterValueCallback callback)
m
-(int) registerValueCallback: (YColorLedClusterValueCallback) callback
pas
function registerValueCallback(callback: TYColorLedClusterValueCallback): LongInt
vb
function registerValueCallback() As Integer
cs
int registerValueCallback(ValueCallback callback)
java
int registerValueCallback(UpdateCallback callback)
py
def registerValueCallback(callback)
php
function registerValueCallback($callback)
es
function registerValueCallback(callback)

Ce callback n'est appelé que durant l'exécution de ySleep ou yHandleEvents. Cela permet à l'appelant de contrôler quand les callback peuvent se produire. Il est important d'appeler l'une de ces deux fonctions périodiquement pour garantir que les callback ne soient pas appelés trop tard. Pour désactiver un callback, il suffit d'appeler cette méthode en lui passant un pointeur nul.

Paramètres :

callbackla fonction de callback à rappeler, ou un pointeur nul. La fonction de callback doit accepter deux arguments: l'object fonction dont la valeur a changé, et la chaîne de caractère décrivant la nouvelle valeur publiée.

colorledcluster→resetBlinkSeq()colorledcluster.resetBlinkSeq()colorledcluster.resetBlinkSeq()colorledcluster→resetBlinkSeq()[colorledcluster resetBlinkSeq: ]colorledcluster.resetBlinkSeq()colorledcluster.resetBlinkSeq()colorledcluster.resetBlinkSeq()colorledcluster.resetBlinkSeq()colorledcluster.resetBlinkSeq()colorledcluster→resetBlinkSeq()colorledcluster.resetBlinkSeq()

Stoppe l'exécution et efface le contenu d'une séquence.

js
function resetBlinkSeq(seqIndex)
nodejs
function resetBlinkSeq(seqIndex)
cpp
int resetBlinkSeq(int seqIndex)
m
-(int) resetBlinkSeq: (int) seqIndex
pas
function resetBlinkSeq(seqIndex: LongInt): LongInt
vb
function resetBlinkSeq() As Integer
cs
int resetBlinkSeq(int seqIndex)
java
int resetBlinkSeq(int seqIndex)
py
def resetBlinkSeq(seqIndex)
php
function resetBlinkSeq($seqIndex)
es
function resetBlinkSeq(seqIndex)

Les LEDs liées à cette séquence ne seront plus mises à jour.

Paramètres :

seqIndexindex de la séquence à réinitialiser.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→rgbArray_move()colorledcluster.rgbArray_move()colorledcluster.rgbArray_move()colorledcluster→rgbArray_move()[colorledcluster rgbArray_move: ]colorledcluster.rgbArray_move()colorledcluster.rgbArray_move()colorledcluster.rgbArray_move()colorledcluster.rgbArray_move()colorledcluster.rgbArray_move()colorledcluster→rgbArray_move()colorledcluster.rgbArray_move()

Configure une transition RGB vers une liste de couleurs RGB, pixel par pixel.

js
function rgbArray_move(rgbList, delay)
nodejs
function rgbArray_move(rgbList, delay)
cpp
int rgbArray_move(vector<int> rgbList, int delay)
m
-(int) rgbArray_move: (NSMutableArray*) rgbList : (int) delay
pas
function rgbArray_move(rgbList: TLongIntArray, delay: LongInt): LongInt
vb
procedure rgbArray_move()
cs
int rgbArray_move(List<int> rgbList, int delay)
java
int rgbArray_move(ArrayList<Integer> rgbList, int delay)
py
def rgbArray_move(rgbList, delay)
php
function rgbArray_move($rgbList, $delay)
es
function rgbArray_move(rgbList, delay)

Le premier entier correspond à la couleur RGB finale pour la première LED, l'entier suivant à la LED suivante, etc.

Paramètres :

rgbListla liste de valeurs RGB (24 bits) finales désirées, au format 0xRRGGBB
delaydurée de la transition en ms.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→rgb_move()colorledcluster.rgb_move()colorledcluster.rgb_move()colorledcluster→rgb_move()[colorledcluster rgb_move: ]colorledcluster.rgb_move()colorledcluster.rgb_move()colorledcluster.rgb_move()colorledcluster.rgb_move()colorledcluster.rgb_move()colorledcluster→rgb_move()colorledcluster.rgb_move()

Permet de faire passer un groupe de LED adjacentes de la couleur courante à une autre, de manière continue et indépendante.

js
function rgb_move(ledIndex, count, rgbValue, delay)
nodejs
function rgb_move(ledIndex, count, rgbValue, delay)
cpp
int rgb_move(int ledIndex, int count, int rgbValue, int delay)
m
-(int) rgb_move: (int) ledIndex : (int) count : (int) rgbValue : (int) delay
pas
function rgb_move(ledIndex: LongInt,
  count: LongInt,
  rgbValue: LongInt,
  delay: LongInt): LongInt
vb
function rgb_move() As Integer
cs
int rgb_move(int ledIndex, int count, int rgbValue, int delay)
java
int rgb_move(int ledIndex, int count, int rgbValue, int delay)
py
def rgb_move(ledIndex, count, rgbValue, delay)
php
function rgb_move($ledIndex, $count, $rgbValue, $delay)
es
function rgb_move(ledIndex, count, rgbValue, delay)

La transition se fait dans l'espace RGB.

Paramètres :

ledIndexindex de la première LED affectée.
countnombre de LED consécutives affectés.
rgbValuenouvelle couleur (0xRRGGBB)
delaydurée de la transistion enms.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→saveBlinkSeq()colorledcluster.saveBlinkSeq()colorledcluster.saveBlinkSeq()colorledcluster→saveBlinkSeq()[colorledcluster saveBlinkSeq: ]colorledcluster.saveBlinkSeq()colorledcluster.saveBlinkSeq()colorledcluster.saveBlinkSeq()colorledcluster.saveBlinkSeq()colorledcluster.saveBlinkSeq()colorledcluster→saveBlinkSeq()colorledcluster.saveBlinkSeq()

Sauve la configuration d'une séquence.

js
function saveBlinkSeq(seqIndex)
nodejs
function saveBlinkSeq(seqIndex)
cpp
int saveBlinkSeq(int seqIndex)
m
-(int) saveBlinkSeq: (int) seqIndex
pas
function saveBlinkSeq(seqIndex: LongInt): LongInt
vb
function saveBlinkSeq() As Integer
cs
int saveBlinkSeq(int seqIndex)
java
int saveBlinkSeq(int seqIndex)
py
def saveBlinkSeq(seqIndex)
php
function saveBlinkSeq($seqIndex)
es
function saveBlinkSeq(seqIndex)

Attention, seul les paramètres de la séquence sont sauvés. Pour sauver le choix de séquence des LEDs il faut appeler la méthode saveLedsConfigAtPowerOn().

Paramètres :

seqIndexindex de la séquence à lancer.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→saveLedsConfigAtPowerOn()colorledcluster.saveLedsConfigAtPowerOn()colorledcluster.saveLedsConfigAtPowerOn()colorledcluster→saveLedsConfigAtPowerOn()[colorledcluster saveLedsConfigAtPowerOn]colorledcluster.saveLedsConfigAtPowerOn()colorledcluster.saveLedsConfigAtPowerOn()colorledcluster.saveLedsConfigAtPowerOn()colorledcluster.saveLedsConfigAtPowerOn()colorledcluster.saveLedsConfigAtPowerOn()colorledcluster→saveLedsConfigAtPowerOn()colorledcluster.saveLedsConfigAtPowerOn()

Sauve la configuration de démarrage des LEDs.

js
function saveLedsConfigAtPowerOn()
nodejs
function saveLedsConfigAtPowerOn()
cpp
int saveLedsConfigAtPowerOn()
m
-(int) saveLedsConfigAtPowerOn
pas
function saveLedsConfigAtPowerOn(): LongInt
vb
function saveLedsConfigAtPowerOn() As Integer
cs
int saveLedsConfigAtPowerOn()
java
int saveLedsConfigAtPowerOn()
py
def saveLedsConfigAtPowerOn()
php
function saveLedsConfigAtPowerOn()
es
function saveLedsConfigAtPowerOn()

Cela inclut la couleur de démarrage ou le choix de séquence de démarrage pour toutes les LEDs. Attention, si des LEDs sont liées à une séquence il faut appeler la méthode saveBlinkSeq() en plus pour sauver la définition de la séquence.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→set_activeLedCount()
colorledcluster→setActiveLedCount()
colorledcluster.set_activeLedCount()colorledcluster.set_activeLedCount()colorledcluster→set_activeLedCount()[colorledcluster setActiveLedCount: ]colorledcluster.set_activeLedCount()colorledcluster.set_activeLedCount()colorledcluster.set_activeLedCount()colorledcluster.set_activeLedCount()colorledcluster.set_activeLedCount()colorledcluster→set_activeLedCount()colorledcluster.set_activeLedCount()

Modifie le nombre de LED actuellement gérées par le module.

js
function set_activeLedCount(newval)
nodejs
function set_activeLedCount(newval)
cpp
int set_activeLedCount(int newval)
m
-(int) setActiveLedCount: (int) newval
pas
function set_activeLedCount(newval: LongInt): integer
vb
function set_activeLedCount(ByVal newval As Integer) As Integer
cs
int set_activeLedCount(int newval)
java
int set_activeLedCount(int newval)
py
def set_activeLedCount(newval)
php
function set_activeLedCount($newval)
es
function set_activeLedCount(newval)

Paramètres :

newvalun entier représentant le nombre de LED actuellement gérées par le module

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→set_blinkSeqSpeed()
colorledcluster→setBlinkSeqSpeed()
colorledcluster.set_blinkSeqSpeed()colorledcluster.set_blinkSeqSpeed()colorledcluster→set_blinkSeqSpeed()[colorledcluster setBlinkSeqSpeed: ]colorledcluster.set_blinkSeqSpeed()colorledcluster.set_blinkSeqSpeed()colorledcluster.set_blinkSeqSpeed()colorledcluster.set_blinkSeqSpeed()colorledcluster.set_blinkSeqSpeed()colorledcluster→set_blinkSeqSpeed()colorledcluster.set_blinkSeqSpeed()

Change la vitesse d'exécution d'une séquence, en pour mille.

js
function set_blinkSeqSpeed(seqIndex, speed)
nodejs
function set_blinkSeqSpeed(seqIndex, speed)
cpp
int set_blinkSeqSpeed(int seqIndex, int speed)
m
-(int) setBlinkSeqSpeed: (int) seqIndex : (int) speed
pas
function set_blinkSeqSpeed(seqIndex: LongInt, speed: LongInt): LongInt
vb
function set_blinkSeqSpeed() As Integer
cs
int set_blinkSeqSpeed(int seqIndex, int speed)
java
int set_blinkSeqSpeed(int seqIndex, int speed)
py
def set_blinkSeqSpeed(seqIndex, speed)
php
function set_blinkSeqSpeed($seqIndex, $speed)
es
function set_blinkSeqSpeed(seqIndex, speed)

La vitesse d'exécution naturelle est de 1000 pour mille. En configurant une vitesse inférieure, on peut jouer la séquence au ralenti. Une vitesse négative permet même de jouer la séquence à l'envers.

Paramètres :

seqIndexindex de la séquence à lancer.
speedvitesse d'exécution de la séquence (-1000...1000).

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→set_blinkSeqStateAtPowerOn()
colorledcluster→setBlinkSeqStateAtPowerOn()
colorledcluster.set_blinkSeqStateAtPowerOn()colorledcluster.set_blinkSeqStateAtPowerOn()colorledcluster→set_blinkSeqStateAtPowerOn()[colorledcluster setBlinkSeqStateAtPowerOn: ]colorledcluster.set_blinkSeqStateAtPowerOn()colorledcluster.set_blinkSeqStateAtPowerOn()colorledcluster.set_blinkSeqStateAtPowerOn()colorledcluster.set_blinkSeqStateAtPowerOn()colorledcluster.set_blinkSeqStateAtPowerOn()colorledcluster→set_blinkSeqStateAtPowerOn()colorledcluster.set_blinkSeqStateAtPowerOn()

Configure une séquence pour qu'elle démarre automatiquement au démarrage du module.

js
function set_blinkSeqStateAtPowerOn(seqIndex, autostart)
nodejs
function set_blinkSeqStateAtPowerOn(seqIndex, autostart)
cpp
int set_blinkSeqStateAtPowerOn(int seqIndex, int autostart)
m
-(int) setBlinkSeqStateAtPowerOn: (int) seqIndex : (int) autostart
pas
function set_blinkSeqStateAtPowerOn(seqIndex: LongInt,
  autostart: LongInt): LongInt
vb
function set_blinkSeqStateAtPowerOn() As Integer
cs
int set_blinkSeqStateAtPowerOn(int seqIndex, int autostart)
java
int set_blinkSeqStateAtPowerOn(int seqIndex, int autostart)
py
def set_blinkSeqStateAtPowerOn(seqIndex, autostart)
php
function set_blinkSeqStateAtPowerOn($seqIndex, $autostart)
es
function set_blinkSeqStateAtPowerOn(seqIndex, autostart)

N'oubliez pas d'appeler saveBlinkSeq() pour sauvegarder la modification dans la mémoire flash du module.

Paramètres :

seqIndexindex de la séquence concernée.
autostart0 pour que la séquence soit arrêtée et 1 pour qu'elle démarre.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→set_hslColor()
colorledcluster→setHslColor()
colorledcluster.set_hslColor()colorledcluster.set_hslColor()colorledcluster→set_hslColor()[colorledcluster setHslColor: ]colorledcluster.set_hslColor()colorledcluster.set_hslColor()colorledcluster.set_hslColor()colorledcluster.set_hslColor()colorledcluster.set_hslColor()colorledcluster→set_hslColor()colorledcluster.set_hslColor()

Modifie la couleur courante d'un groupe de LED consécutives en utilisant une couleur HSL .

js
function set_hslColor(ledIndex, count, hslValue)
nodejs
function set_hslColor(ledIndex, count, hslValue)
cpp
int set_hslColor(int ledIndex, int count, int hslValue)
m
-(int) setHslColor: (int) ledIndex : (int) count : (int) hslValue
pas
function set_hslColor(ledIndex: LongInt,
  count: LongInt,
  hslValue: LongInt): LongInt
vb
function set_hslColor() As Integer
cs
int set_hslColor(int ledIndex, int count, int hslValue)
java
int set_hslColor(int ledIndex, int count, int hslValue)
py
def set_hslColor(ledIndex, count, hslValue)
php
function set_hslColor($ledIndex, $count, $hslValue)
es
function set_hslColor(ledIndex, count, hslValue)

L'encodage est réalisé de la manière suivante: 0xHHSSLL.

Paramètres :

ledIndexindex de la première LED affectée.
countnombre de LED consécutives affectés.
hslValuenouvelle couleur.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→set_hslColorArray()
colorledcluster→setHslColorArray()
colorledcluster.set_hslColorArray()colorledcluster.set_hslColorArray()colorledcluster→set_hslColorArray()[colorledcluster setHslColorArray: ]colorledcluster.set_hslColorArray()colorledcluster.set_hslColorArray()colorledcluster.set_hslColorArray()colorledcluster.set_hslColorArray()colorledcluster.set_hslColorArray()colorledcluster→set_hslColorArray()colorledcluster.set_hslColorArray()

Envoie des couleurs HSL 24 bits (fournie sous forme d'une liste d'entiers) sur l'affichage LED HSL.

js
function set_hslColorArray(ledIndex, hslList)
nodejs
function set_hslColorArray(ledIndex, hslList)
cpp
int set_hslColorArray(int ledIndex, vector<int> hslList)
m
-(int) setHslColorArray: (int) ledIndex : (NSMutableArray*) hslList
pas
function set_hslColorArray(ledIndex: LongInt,
  hslList: TLongIntArray): LongInt
vb
procedure set_hslColorArray()
cs
int set_hslColorArray(int ledIndex, List<int> hslList)
java
int set_hslColorArray(int ledIndex, ArrayList<Integer> hslList)
py
def set_hslColorArray(ledIndex, hslList)
php
function set_hslColorArray($ledIndex, $hslList)
es
function set_hslColorArray(ledIndex, hslList)

Le premier entier correspond à la couleur HSL de la LED indiquée en argument, l'entier suivant à la LED suivante, etc.

Paramètres :

ledIndexindex de la première LED qui doit être modifiée
hslListla liste de valeurs HSL (24 bits) à envoyer, au format 0xHHSSLL

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→set_hslColorBuffer()
colorledcluster→setHslColorBuffer()
colorledcluster.set_hslColorBuffer()colorledcluster.set_hslColorBuffer()colorledcluster→set_hslColorBuffer()[colorledcluster setHslColorBuffer: ]colorledcluster.set_hslColorBuffer()colorledcluster.set_hslColorBuffer()colorledcluster.set_hslColorBuffer()colorledcluster.set_hslColorBuffer()colorledcluster.set_hslColorBuffer()colorledcluster→set_hslColorBuffer()colorledcluster.set_hslColorBuffer()

Envoie un objet binaire tel quel sur l'affichage LED HSL.

js
function set_hslColorBuffer(ledIndex, buff)
nodejs
function set_hslColorBuffer(ledIndex, buff)
cpp
int set_hslColorBuffer(int ledIndex, string buff)
m
-(int) setHslColorBuffer: (int) ledIndex : (NSData*) buff
pas
function set_hslColorBuffer(ledIndex: LongInt, buff: TByteArray): LongInt
vb
procedure set_hslColorBuffer()
cs
int set_hslColorBuffer(int ledIndex)
java
int set_hslColorBuffer(int ledIndex, byte[] buff)
py
def set_hslColorBuffer(ledIndex, buff)
php
function set_hslColorBuffer($ledIndex, $buff)
es
function set_hslColorBuffer(ledIndex, buff)

Les trois premiers octets correspondent aux composantes HSL de la LED indiquée en argument, les trois octets suivants à la LED suivante, etc.

Paramètres :

ledIndexindex de la première LED qui doit être modifiée
buffl'objet binaire à envoyer

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→set_logicalName()
colorledcluster→setLogicalName()
colorledcluster.set_logicalName()colorledcluster.set_logicalName()colorledcluster→set_logicalName()[colorledcluster setLogicalName: ]colorledcluster.set_logicalName()colorledcluster.set_logicalName()colorledcluster.set_logicalName()colorledcluster.set_logicalName()colorledcluster.set_logicalName()colorledcluster→set_logicalName()colorledcluster.set_logicalName()

Modifie le nom logique du cluster de LEDs RGB.

js
function set_logicalName(newval)
nodejs
function set_logicalName(newval)
cpp
int set_logicalName(const string& newval)
m
-(int) setLogicalName: (NSString*) newval
pas
function set_logicalName(newval: string): integer
vb
function set_logicalName(ByVal newval As String) As Integer
cs
int set_logicalName(string newval)
java
int set_logicalName(String newval)
py
def set_logicalName(newval)
php
function set_logicalName($newval)
es
function set_logicalName(newval)

Vous pouvez utiliser yCheckLogicalName() pour vérifier si votre paramètre est valide. N'oubliez pas d'appeler la méthode saveToFlash() du module si le réglage doit être préservé.

Paramètres :

newvalune chaîne de caractères représentant le nom logique du cluster de LEDs RGB.

Retourne :

YAPI_SUCCESS si l'appel se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→set_rgbColor()
colorledcluster→setRgbColor()
colorledcluster.set_rgbColor()colorledcluster.set_rgbColor()colorledcluster→set_rgbColor()[colorledcluster setRgbColor: ]colorledcluster.set_rgbColor()colorledcluster.set_rgbColor()colorledcluster.set_rgbColor()colorledcluster.set_rgbColor()colorledcluster.set_rgbColor()colorledcluster→set_rgbColor()colorledcluster.set_rgbColor()

Modifie la couleur courante d'un groupe de LED consécutives en utilisant une couleur RGB (Rouge Vert Bleu).

js
function set_rgbColor(ledIndex, count, rgbValue)
nodejs
function set_rgbColor(ledIndex, count, rgbValue)
cpp
int set_rgbColor(int ledIndex, int count, int rgbValue)
m
-(int) setRgbColor: (int) ledIndex : (int) count : (int) rgbValue
pas
function set_rgbColor(ledIndex: LongInt,
  count: LongInt,
  rgbValue: LongInt): LongInt
vb
function set_rgbColor() As Integer
cs
int set_rgbColor(int ledIndex, int count, int rgbValue)
java
int set_rgbColor(int ledIndex, int count, int rgbValue)
py
def set_rgbColor(ledIndex, count, rgbValue)
php
function set_rgbColor($ledIndex, $count, $rgbValue)
es
function set_rgbColor(ledIndex, count, rgbValue)

L'encodage est réalisé de la manière suivante: 0xRRGGBB.

Paramètres :

ledIndexindex de la première LED affectée.
countnombre de LED consécutives affectés.
rgbValuenouvelle couleur.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→set_rgbColorArray()
colorledcluster→setRgbColorArray()
colorledcluster.set_rgbColorArray()colorledcluster.set_rgbColorArray()colorledcluster→set_rgbColorArray()[colorledcluster setRgbColorArray: ]colorledcluster.set_rgbColorArray()colorledcluster.set_rgbColorArray()colorledcluster.set_rgbColorArray()colorledcluster.set_rgbColorArray()colorledcluster.set_rgbColorArray()colorledcluster→set_rgbColorArray()colorledcluster.set_rgbColorArray()

Envoie des couleurs RGB 24 bits (fournie sous forme d'une liste d'entiers) sur l'affichage LED RGB.

js
function set_rgbColorArray(ledIndex, rgbList)
nodejs
function set_rgbColorArray(ledIndex, rgbList)
cpp
int set_rgbColorArray(int ledIndex, vector<int> rgbList)
m
-(int) setRgbColorArray: (int) ledIndex : (NSMutableArray*) rgbList
pas
function set_rgbColorArray(ledIndex: LongInt,
  rgbList: TLongIntArray): LongInt
vb
procedure set_rgbColorArray()
cs
int set_rgbColorArray(int ledIndex, List<int> rgbList)
java
int set_rgbColorArray(int ledIndex, ArrayList<Integer> rgbList)
py
def set_rgbColorArray(ledIndex, rgbList)
php
function set_rgbColorArray($ledIndex, $rgbList)
es
function set_rgbColorArray(ledIndex, rgbList)

Le premier entier correspond à la couleur RGB de la LED indiquée en argument, l'entier suivant à la LED suivante, etc.

Paramètres :

ledIndexindex de la première LED qui doit être modifiée
rgbListla liste de valeurs RGB (24 bits) à envoyer, au format 0xRRGGBB

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→set_rgbColorAtPowerOn()
colorledcluster→setRgbColorAtPowerOn()
colorledcluster.set_rgbColorAtPowerOn()colorledcluster.set_rgbColorAtPowerOn()colorledcluster→set_rgbColorAtPowerOn()[colorledcluster setRgbColorAtPowerOn: ]colorledcluster.set_rgbColorAtPowerOn()colorledcluster.set_rgbColorAtPowerOn()colorledcluster.set_rgbColorAtPowerOn()colorledcluster.set_rgbColorAtPowerOn()colorledcluster.set_rgbColorAtPowerOn()colorledcluster→set_rgbColorAtPowerOn()colorledcluster.set_rgbColorAtPowerOn()

Modifie la couleur au démarrage d'un groupe de LED consécutives en utilisant une couleur RGB (Rouge Vert Bleu).

js
function set_rgbColorAtPowerOn(ledIndex, count, rgbValue)
nodejs
function set_rgbColorAtPowerOn(ledIndex, count, rgbValue)
cpp
int set_rgbColorAtPowerOn(int ledIndex, int count, int rgbValue)
m
-(int) setRgbColorAtPowerOn: (int) ledIndex : (int) count : (int) rgbValue
pas
function set_rgbColorAtPowerOn(ledIndex: LongInt,
  count: LongInt,
  rgbValue: LongInt): LongInt
vb
function set_rgbColorAtPowerOn() As Integer
cs
int set_rgbColorAtPowerOn(int ledIndex,
  int count,
  int rgbValue)
java
int set_rgbColorAtPowerOn(int ledIndex, int count, int rgbValue)
py
def set_rgbColorAtPowerOn(ledIndex, count, rgbValue)
php
function set_rgbColorAtPowerOn($ledIndex, $count, $rgbValue)
es
function set_rgbColorAtPowerOn(ledIndex, count, rgbValue)

L'encodage est réalisé de la manière suivante: 0xRRGGBB. N'oubliez pas d'appeler saveLedsConfigAtPowerOn() pour sauvegarder la modification dans la mémoire flash du module.

Paramètres :

ledIndexindex de la première LED affectée.
countnombre de LED consécutives affectés.
rgbValuenouvelle couleur.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→set_rgbColorBuffer()
colorledcluster→setRgbColorBuffer()
colorledcluster.set_rgbColorBuffer()colorledcluster.set_rgbColorBuffer()colorledcluster→set_rgbColorBuffer()[colorledcluster setRgbColorBuffer: ]colorledcluster.set_rgbColorBuffer()colorledcluster.set_rgbColorBuffer()colorledcluster.set_rgbColorBuffer()colorledcluster.set_rgbColorBuffer()colorledcluster.set_rgbColorBuffer()colorledcluster→set_rgbColorBuffer()colorledcluster.set_rgbColorBuffer()

Envoie un objet binaire tel quel sur l'affichage LED RGB.

js
function set_rgbColorBuffer(ledIndex, buff)
nodejs
function set_rgbColorBuffer(ledIndex, buff)
cpp
int set_rgbColorBuffer(int ledIndex, string buff)
m
-(int) setRgbColorBuffer: (int) ledIndex : (NSData*) buff
pas
function set_rgbColorBuffer(ledIndex: LongInt, buff: TByteArray): LongInt
vb
procedure set_rgbColorBuffer()
cs
int set_rgbColorBuffer(int ledIndex)
java
int set_rgbColorBuffer(int ledIndex, byte[] buff)
py
def set_rgbColorBuffer(ledIndex, buff)
php
function set_rgbColorBuffer($ledIndex, $buff)
es
function set_rgbColorBuffer(ledIndex, buff)

Les trois premiers octets correspondent aux composantes RGB de la LED indiquée en argument, les trois octets suivants à la LED suivante, etc.

Paramètres :

ledIndexindex de la première LED qui doit être modifiée
buffl'objet binaire à envoyer

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→set_userData()
colorledcluster→setUserData()
colorledcluster.set_userData()colorledcluster.set_userData()colorledcluster→set_userData()[colorledcluster setUserData: ]colorledcluster.set_userData()colorledcluster.set_userData()colorledcluster.set_userData()colorledcluster.set_userData()colorledcluster.set_userData()colorledcluster→set_userData()colorledcluster.set_userData()

Enregistre un contexte libre dans l'attribut userData de la fonction, afin de le retrouver plus tard à l'aide de la méthode get_userData.

js
function set_userData(data)
nodejs
function set_userData(data)
cpp
void set_userData(void* data)
m
-(void) setUserData: (id) data
pas
procedure set_userData(data: Tobject)
vb
procedure set_userData(ByVal data As Object)
cs
void set_userData(object data)
java
void set_userData(Object data)
py
def set_userData(data)
php
function set_userData($data)
es
function set_userData(data)

Cet attribut n'es pas utilisé directement par l'API. Il est à la disposition de l'appelant pour stocker un contexte.

Paramètres :

dataobjet quelconque à mémoriser

colorledcluster→startBlinkSeq()colorledcluster.startBlinkSeq()colorledcluster.startBlinkSeq()colorledcluster→startBlinkSeq()[colorledcluster startBlinkSeq: ]colorledcluster.startBlinkSeq()colorledcluster.startBlinkSeq()colorledcluster.startBlinkSeq()colorledcluster.startBlinkSeq()colorledcluster.startBlinkSeq()colorledcluster→startBlinkSeq()colorledcluster.startBlinkSeq()

Démarre l'exécution d'une séquence : toutes les LED liées à cette séquence vont commencer à l'exécuter en boucle.

js
function startBlinkSeq(seqIndex)
nodejs
function startBlinkSeq(seqIndex)
cpp
int startBlinkSeq(int seqIndex)
m
-(int) startBlinkSeq: (int) seqIndex
pas
function startBlinkSeq(seqIndex: LongInt): LongInt
vb
function startBlinkSeq() As Integer
cs
int startBlinkSeq(int seqIndex)
java
int startBlinkSeq(int seqIndex)
py
def startBlinkSeq(seqIndex)
php
function startBlinkSeq($seqIndex)
es
function startBlinkSeq(seqIndex)

Paramètres :

seqIndexindex de la séquence à lancer.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→stopBlinkSeq()colorledcluster.stopBlinkSeq()colorledcluster.stopBlinkSeq()colorledcluster→stopBlinkSeq()[colorledcluster stopBlinkSeq: ]colorledcluster.stopBlinkSeq()colorledcluster.stopBlinkSeq()colorledcluster.stopBlinkSeq()colorledcluster.stopBlinkSeq()colorledcluster.stopBlinkSeq()colorledcluster→stopBlinkSeq()colorledcluster.stopBlinkSeq()

Stoppe l'exécution d'une séquence.

js
function stopBlinkSeq(seqIndex)
nodejs
function stopBlinkSeq(seqIndex)
cpp
int stopBlinkSeq(int seqIndex)
m
-(int) stopBlinkSeq: (int) seqIndex
pas
function stopBlinkSeq(seqIndex: LongInt): LongInt
vb
function stopBlinkSeq() As Integer
cs
int stopBlinkSeq(int seqIndex)
java
int stopBlinkSeq(int seqIndex)
py
def stopBlinkSeq(seqIndex)
php
function stopBlinkSeq($seqIndex)
es
function stopBlinkSeq(seqIndex)

Si la séquence est redémarrée l'exécution repartira du début.

Paramètres :

seqIndexindex de la séquence à stopper.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→unlinkLedFromBlinkSeq()colorledcluster.unlinkLedFromBlinkSeq()colorledcluster.unlinkLedFromBlinkSeq()colorledcluster→unlinkLedFromBlinkSeq()[colorledcluster unlinkLedFromBlinkSeq: ]colorledcluster.unlinkLedFromBlinkSeq()colorledcluster.unlinkLedFromBlinkSeq()colorledcluster.unlinkLedFromBlinkSeq()colorledcluster.unlinkLedFromBlinkSeq()colorledcluster.unlinkLedFromBlinkSeq()colorledcluster→unlinkLedFromBlinkSeq()colorledcluster.unlinkLedFromBlinkSeq()

Délie un groupe de LEDs adjacentes d'une séquence.

js
function unlinkLedFromBlinkSeq(ledIndex, count)
nodejs
function unlinkLedFromBlinkSeq(ledIndex, count)
cpp
int unlinkLedFromBlinkSeq(int ledIndex, int count)
m
-(int) unlinkLedFromBlinkSeq: (int) ledIndex : (int) count
pas
function unlinkLedFromBlinkSeq(ledIndex: LongInt,
  count: LongInt): LongInt
vb
function unlinkLedFromBlinkSeq() As Integer
cs
int unlinkLedFromBlinkSeq(int ledIndex, int count)
java
int unlinkLedFromBlinkSeq(int ledIndex, int count)
py
def unlinkLedFromBlinkSeq(ledIndex, count)
php
function unlinkLedFromBlinkSeq($ledIndex, $count)
es
function unlinkLedFromBlinkSeq(ledIndex, count)

Paramètres :

ledIndexindex de la première LED affectée.
countnombre de LEDs consécutives affectées.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→unmuteValueCallbacks()colorledcluster.unmuteValueCallbacks()colorledcluster.unmuteValueCallbacks()colorledcluster→unmuteValueCallbacks()[colorledcluster unmuteValueCallbacks]colorledcluster.unmuteValueCallbacks()colorledcluster.unmuteValueCallbacks()colorledcluster.unmuteValueCallbacks()colorledcluster.unmuteValueCallbacks()colorledcluster.unmuteValueCallbacks()colorledcluster→unmuteValueCallbacks()colorledcluster.unmuteValueCallbacks()

Réactive l'envoi de chaque changement de la valeur publiée au hub parent.

js
function unmuteValueCallbacks()
nodejs
function unmuteValueCallbacks()
cpp
int unmuteValueCallbacks()
m
-(int) unmuteValueCallbacks
pas
function unmuteValueCallbacks(): LongInt
vb
function unmuteValueCallbacks() As Integer
cs
int unmuteValueCallbacks()
java
int unmuteValueCallbacks()
py
def unmuteValueCallbacks()
php
function unmuteValueCallbacks()
es
function unmuteValueCallbacks()

Cette fonction annule un précédent appel à muteValueCallbacks(). N'oubliez pas d'appeler la méthode saveToFlash() du module si le réglage doit être préservé.

Retourne :

YAPI_SUCCESS si l'opération se déroule sans erreur.

En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif.

colorledcluster→wait_async()colorledcluster.wait_async()colorledcluster.wait_async()colorledcluster.wait_async()

Attend que toutes les commandes asynchrones en cours d'exécution sur le module soient terminées, et appelle le callback passé en paramètre.

js
function wait_async(callback, context)
nodejs
function wait_async(callback, context)
es
function wait_async(callback, context)

La fonction callback peut donc librement utiliser des fonctions synchrones ou asynchrones, sans risquer de bloquer la machine virtuelle Javascript.

Paramètres :

callbackfonction de callback qui sera appelée dès que toutes les commandes en cours d'exécution sur le module seront terminées La fonction callback reçoit deux arguments: le contexte fourni par l'appelant et l'objet fonction concerné.
contextcontexte fourni par l'appelant, et qui sera passé tel-quel à la fonction de callback

Retourne :

rien du tout.

10. Problèmes courants

10.1. Linux et USB

Pour fonctionner correctement sous Linux la librairie a besoin d'avoir accès en écriture à tous les périphériques USB Yoctopuce. Or, par défaut, sous Linux les droits d'accès des utilisateurs non-root à USB sont limités à la lecture. Afin d'éviter de devoir lancer les exécutables en tant que root, il faut créer une nouvelle règle udev pour autoriser un ou plusieurs utilisateurs à accéder en écriture aux périphériques Yoctopuce.

Pour ajouter une règle udev à votre installation, il faut ajouter un fichier avec un nom au format "##-nomArbitraire.rules" dans le répertoire "/etc/udev/rules.d". Lors du démarrage du système, udev va lire tous les fichiers avec l'extension ".rules" de ce répertoire en respectant l'ordre alphabétique (par exemple, le fichier "51-custom.rules" sera interprété APRES le fichier "50-udev-default.rules").

Le fichier "50-udev-default" contient les règles udev par défaut du système. Pour modifier le comportement par défaut du système, il faut donc créer un fichier qui commence par un nombre plus grand que 50, qui définira un comportement plus spécifique que le défaut du système. Notez que pour ajouter une règle vous aurez besoin d'avoir un accès root sur le système.

Dans le répertoire udev_conf de l'archive du VirtualHub18 pour Linux, vous trouverez deux exemples de règles qui vous éviterons de devoir partir de rien.

Exemple 1: 51-yoctopuce.rules

Cette règle va autoriser tous les utilisateurs à accéder en lecture et en écriture aux périphériques Yoctopuce USB. Les droits d'accès pour tous les autres périphériques ne seront pas modifiés. Si ce scénario vous convient il suffit de copier le fichier "51-yoctopuce_all.rules" dans le répertoire "/etc/udev/rules.d" et de redémarrer votre système.

# udev rules to allow write access to all users # for Yoctopuce USB devices SUBSYSTEM=="usb", ATTR{idVendor}=="24e0", MODE="0666"

Exemple 2: 51-yoctopuce_group.rules

Cette règle va autoriser le groupe "yoctogroup" à accéder en lecture et écriture aux périphériques Yoctopuce USB. Les droits d'accès pour tous les autres périphériques ne seront pas modifiés. Si ce scénario vous convient il suffit de copier le fichier "51-yoctopuce_group.rules" dans le répertoire "/etc/udev/rules.d" et de redémarrer votre système.

# udev rules to allow write access to all users of "yoctogroup" # for Yoctopuce USB devices SUBSYSTEM=="usb", ATTR{idVendor}=="24e0", MODE="0664", GROUP="yoctogroup"

10.2. Plateformes ARM: HF et EL

Sur ARM il existe deux grandes familles d'executables: HF (Hard Float) et EL (EABI Little Endian). Ces deux familles ne sont absolument pas compatibles entre elles. La capacité d'une machine ARM à faire tourner des exécutables de l'une ou l'autre de ces familles dépend du hardware et du système d'exploitation. Les problèmes de compatibilité entre ArmHL et ArmEL sont assez difficiles à diagnostiquer, souvent même l'OS se révèle incapable de distinguer un exécutable HF d'un exécutable EL.

Tous les binaires Yoctopuce pour ARM sont fournis pré-compilée pour ArmHF et ArmEL, si vous ne savez à quelle famille votre machine ARM apartient, essayez simplement de lancer un exécutable de chaque famille.

11. Caractéristiques

Vous trouverez résumées ci dessous les principales caractéristiques techniques de votre module Yocto-Color-V2

Largeur20 mm
Longueur60 mm
Poids5 g
Connecteur USBmicro-B
Canaux146
Sytème d'exploitation supportésWindows, Linux (Intel + ARM), Mac OS X, Android
DriversFonctionne sans driver
API / SDK / Librairie (USB+TCP)C++, Objective-C, C#, VB .NET, Delphi, Python, Java/Android
API / SDK / Librairie (seul.TCP)Javascript, Node.js, PHP, Java
RoHSoui
USB Vendor ID0x24E0
USB Device ID0x0065
Boîter recommandéYoctoBox-Long-Thin-Black

12. Index

A
activeLedCount
addHslMoveToBlinkSeq
addMirrorToBlinkSeq
addRgbMoveToBlinkSeq
advertisedValue
API
B
beacon
blinkSeqMaxCount
blinkSeqMaxSize
blinkSeqSignature
blinkSeqSize
C
checkFirmware
CheckLogicalName
clearCache
ColorLed
ColorLedCluster
command
D
describe
DisableExceptions
download
E
EnableExceptions
EnableUSBHost
F
FindColorLed
FindColorLedCluster
FindColorLedClusterInContext
FindColorLedInContext
FindModule
FindModuleInContext
firmwareRelease
FirstColorLed
FirstColorLedCluster
FirstColorLedClusterInContext
FirstColorLedInContext
FirstModule
FreeAPI
functionCount
functionId
functionName
functionType
functionValue
G
get_activeLedCount
get_advertisedValue
get_allSettings
get_beacon
get_blinkSeqMaxCount
get_blinkSeqMaxSize
get_blinkSeqSignature
get_blinkSeqSignatures
get_blinkSeqSize
get_blinkSeqState
get_blinkSeqStateAtPowerOn
get_blinkSeqStateSpeed
get_errorMessage
get_errorType
get_firmwareRelease
get_friendlyName
get_functionDescriptor
get_functionId
get_functionIds
get_hardwareId
get_hslColor
get_icon2d
get_lastLogs
get_linkedSeqArray
get_logicalName
get_luminosity
get_maxLedCount
get_module
get_module_async
get_parentHub
get_persistentSettings
get_productId
get_productName
get_productRelease
get_rebootCountdown
get_rgbColor
get_rgbColorArray
get_rgbColorArrayAtPowerOn
get_rgbColorAtPowerOn
get_rgbColorBuffer
get_serialNumber
get_subDevices
get_upTime
get_url
get_usbCurrent
get_userData
get_userVar
GetAPIVersion
GetTickCount
H
HandleEvents
hasFunction
hsl_move
hslArray_move
hslColor
hslMove
I
InitAPI
isOnline
isOnline_async
L
linkLedToBlinkSeq
linkLedToBlinkSeqAtPowerOn
linkLedToPeriodicBlinkSeq
load
load_async
log
logicalName
luminosity
M
maxLedCount
Module
muteValueCallbacks
N
nextColorLed
nextColorLedCluster
nextModule
P
persistentSettings
PreregisterHub
productId
productName
productRelease
R
reboot
rebootCountdown
RegisterDeviceArrivalCallback
RegisterDeviceRemovalCallback
RegisterHub
RegisterHubDiscoveryCallback
registerLogCallback
RegisterLogFunction
registerValueCallback
resetBlinkSeq
revertFromFlash
rgb_move
rgbArray_move
rgbColor
rgbColorAtPowerOn
rgbMove
S
saveBlinkSeq
saveLedsConfigAtPowerOn
saveToFlash
SelectArchitecture
serialNumber
set_activeLedCount
set_allSettings
set_allSettingsAndFiles
set_beacon
set_blinkSeqSpeed
set_blinkSeqStateAtPowerOn
set_hslColor
set_hslColorArray
set_hslColorBuffer
set_logicalName
set_luminosity
set_rgbColor
set_rgbColorArray
set_rgbColorAtPowerOn
set_rgbColorBuffer
set_userData
set_userVar
SetDelegate
SetTimeout
Sleep
startBlinkSeq
stopBlinkSeq
T
techspec
TestHub
triggerFirmwareUpdate
TriggerHubDiscovery
U
unlinkLedFromBlinkSeq
unmuteValueCallbacks
UnregisterHub
UpdateDeviceList
UpdateDeviceList_async
updateFirmware
updateFirmwareEx
upTime
usbCurrent
usbcurrent
userVar
W
wait_async
wiring
Y
YColorLed
YColorLedCluster
YModule


  1. Par exemple, certains articles de la gamme NEOPIXEL de Adafruit. Prenez soin de vérifier le type de LED avant d'effectuer vos commandes, car les produits NEOPIXEL utilisent plusieurs technologies différentes qui ne sont pas toutes compatibles.
  2. support@yoctopuce.com
  3. Le driver HID est celui qui gère les périphériques tels que la souris, le clavier, etc.
  4. Le connecteur Mini A a existé quelque temps, mais a été retiré du standard USB http://www.usb.org/developers/Deprecation_Announcement_052507.pdf
  5. www.adafruit.com
  6. http://www.yoctopuce.com/EN/products/category/enclosures
  7. court-court-court long-long-long court-court-court
  8. support@yoctopuce.com
  9. www.yoctopuce.com/FR/virtualhub.php
  10. L'interface est testée avec Chrome, FireFox, Safari, Edge et IE 11.
  11. Le nombre de LED gérées peut être changé dans la configuration
  12. www.yoctopuce.com/FR/virtualhub.php
  13. Consultez la documentation du virtual hub pour plus de détails
  14. Par exemple Würth Electronik 691210910003 ou encore Phoenix contact 1725669
  15. L'hexadécimal consiste à compter en base 16 au lieu de base 10: on utilise les signes 0..9, A..F. On utilise parfois le préfixe 0x pour signaler l'utilisation de l'hexadécimal: ainsi 10 en base 10 s'écrit 0xA en hexadécimal, 15 d'écrit 0xF, 16 s'écrit 0x10, 17 s'écrit 0x11 et ainsi de suite
  16. http://www.yoctopuce.com/FR/libraries.php
  17. Les librairies JavaScript, Node.js et PHP ne permettent pas encore de mettre à jour les modules, mais ces fonctions seront disponibles dans un prochain build.
  18. http://www.yoctopuce.com/EN/virtualhub.php
Yoctopuce, get your stuff connected.