Gestion des erreurs Utilisation du Yocto─Humidity en C++ Contrôle de la fonction Humidity Contrôle de la partie module Gestion des erreurs Intégration de la librairie Yoctopuce en C++ Utilisation du Yocto─Humidity en Delphi Préparation Contrôle de la fonction Humidity www.yoctopuce.com...
Page 3
Contrôle de la partie module Gestion des erreurs Référence de l'API de haut niveau Fonctions générales Interface de contrôle du module Interface de la fonction Humidity Interface de la fonction Temperature Caractéristiques Index www.yoctopuce.com...
Néanmoins, si ce module venait a vous décevoir n'hésitez pas à contacter le support Yoctopuce 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 à...
Page 5
Les versions de Windows actuellement supportées sont Windows XP, Windows 2003, Windows Vista et Windows 7. 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.
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 à...
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.
Si le problème venait à se reproduire vérifiez que le module contient bien la dernière version du firmware, et dans l'affirmative contacter le support Yoctopuce La sonde de courant Chaque Yocto-module est capable de mesurer sa propre consommation de courant sur le bus USB.
Arrivé à ce chapitre votre Yocto─Humidity 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 Hub , 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...
Le firmware du module peut être facilement être 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 firmware 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.
Page 11
é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.
Rien ne vous empêche de le fixer au pistolet à colle; ça ne sera 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 www.yoctopuce.com...
à souder. Déport du capteur à l'aide de câble nappe. Attention, les modules Yoctopuce sécables ont souvent des systèmes de connectique très semblables. Cependant les sous- modules ne sont pas du tout compatibles entre modèles différents.
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 à...
5. Programmation, concepts généraux Chaque module Yoctopuce possède une interface de programmation pour contrôler le coeur du module, et une ou plusieurs interfaces distinctes pour contrôler les fonctions spécifiques au module. Quelque soit le langage de programmation utilisé, l'interaction avec le Yocto─Humidity se fera toujours en lisant ou modifiant les attributs de ces interfaces.
Nombre (virgule fixe) modifiable highestValue 5.1. 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é...
() redémarrer le module pour que le paramètre soit appliqué. 5.2. Interface de la fonction Humidity La librairie de programmation Yoctopuce permet lire une valeur instantanée du capteur, ainsi que les extrémas atteints. logicalName Chaine de caractères contenant le nom logique du capteur d'humidité, initialement vide. Cet attribut peut être changé...
Température maximale observée, sous forme de nombre à virgule. 5.4. Quelle interface: Native, DLL ou Service? Il y existe plusieurs méthodes pour contrôler un module 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.
Page 19
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 programme, appelé Hub Virtuel qui lui est capable d'accéder aux modules, et votre application n'a plus qu'à...
Un autre avantage des fonctions de haut-niveau de la librairie Yoctopuce est qu'elles permettent d'écrire du code (quasiment) portable d'un langage à un autre, car la librairie Yoctopuce utilise autant que possible les mêmes noms de fonctions, classes et constantes pour tous les langages.
Page 21
HTTP avec l'API REST. Vous trouverez plus de détail sur les fonctions de bas niveau et leur utilisation dans une documentation séparée, prochainement disponible sur le site de Yoctopuce. www.yoctopuce.com...
C'est pourquoi vous devrez faire tourner un hub virtuel sur la machine à laquelle sont branchés les modules 6.1. Préparation Connectez vous sur le site de Yoctopuce et téléchargez les éléments suivants: • La librairie de programmation pour Javascript • Le programme VirtualHub...
Page 23
Yocto─Humidity. yRegisterHub La fonction permet d'indiquer sur quelle machine se trouve les modules yRegisterHub Yoctopuce, ou plus exactement la machine sur laquelle tourne le programme VirtualHub. Dans notre cas l'adresse indique la machine locale, en utilisant le port 127.0.0.1:4444 4444 port standard utilisé...
. Inversement il est possible de forcer le module à oublier ses réglages saveToFlash () courants en utilisant la méthode . Ce petit exemple ci-dessous vous revertFromFlash() permet changer le nom logique d'un module. <HTML> <HEAD> <TITLE>Change module settings</TITLE> <SCRIPT type="text/javascript" src="file:yocto_api.js"></SCRIPT> www.yoctopuce.com...
La librairie Yoctopuce est prévue pour vous aider à supporter ce genre de comportements, mais votre code doit néanmoins être fait pour se comporter au mieux pour interpréter les erreurs signalées par la librairie.
à tous les serveurs web. Cette technique trouve une application directe dans la domotique: quelques modules Yoctopuce, un serveur PHP et vous pourrez interagir avec votre maison depuis n'importe ou dans le monde; Pour autant que vous ayez une connexion internet.
Page 28
Yocto─Humidity. yRegisterHub La fonction permet d'indiquer sur quelle machine se trouve les modules yRegisterHub Yoctopuce, ou plus exactemenent sur quelle machine tourne le programme VirtualHub. Dans notre cas l'adresse indique la machine locale, en utilisant le port 127.0.0.1:4444 4444 port standard utilisé par Yoctopuce). Vous pouvez parfaitement changer cette adresse, et mettre l'adresse d'une autre machine sur laquelle tournerait un autre VirtualHub.
La librairie Yoctopuce est prévue pour vous aider à supporter ce genre de comportements, mais votre code doit néanmoins être fait pour se comporter au mieux pour interpréter les erreurs signalées par la librairie.
Page 31
La méthode recommandée par la plupart des langages de programmation pour la gestion des erreurs imprévisibles est l'utilisation d'exceptions. C'est le comportement par défaut de la librairie Yoctopuce. Si une erreur se produit alors qu'on essaie d'accéder à un module, la librairie va lancer une exception. Dans ce cas, de trois choses l'une: •...
Vous trouverez dans la dernière section de ce chapitre toutes les informations nécessaires à la création d'un projet à neuf linké avec les librairies Yoctopuce. 8.1. Contrôle de la fonction Humidity Lancez votre environnement C + + et ouvrez le projet exemple correspondant, fourni dans le répertoire Examples/Doc-GettingStarted-Yocto-Humidity de la librairie Yoctopuce.
Page 33
Yocto─Humidity. yRegisterHub La fonction initialise l'API de Yoctopuce en indiquant où les modules doivent yRegisterHub être recherchés. Utilisée avec le paramètre , elle permet de travailler avec les modules "usb"...
Pour cela il faut utiliser la méthode . Inversement il est possible de forcer le module à oublier ses réglages saveToFlash () courants en utilisant la méthode . Ce petit exemple ci-dessous vous revertFromFlash() permet changer le nom logique d'un module. #include <iostream> #include <stdlib.h> www.yoctopuce.com...
La librairie Yoctopuce est prévue pour vous aider à supporter ce genre de comportements, mais votre code doit néanmoins être fait pour se comporter au mieux pour interpréter les erreurs signalées par la librairie.
Page 37
Pour intégrer le code source, le plus simple est d'inclure simplement le répertoire Sources la librairie Yoctopuce à votre IncludePath , et d'ajouter tous les fichiers de ce répertoire (y compris le sous-répertoire ) à votre projet.
Delphi Par défaut la librairie Yoctopuce pour Delphi utilise une DLL yapi.dll , toutes les applications que vous créerez avec Delphi devront avoir accès à cette DLL. Le plus simple est de faire en sorte qu'elle soit présente dans le même répertoire que l'exécutable de votre application.
Page 39
Yocto─Humidity. yRegisterHub La fonction initialise l'API de Yoctopuce en indiquant où les modules doivent yRegisterHub être recherchés. Utilisée avec le paramètre , elle permet de travailler avec les modules 'usb' connectés localement à...
Page 40
être lue grâce à une méthode du type get_xxxx() et les propriétés qui se sont pas en lecture seule peuvent être modifiées à l'aide de la méthode Pour plus de détails concernant ces fonctions utilisées, reportez- vous aux set_xxx () chapitre www.yoctopuce.com...
Page 41
. Ci- dessous un petit exemple listant les module connectés program inventory; {$APPTYPE CONSOLE} uses SysUtils, yocto_api; module : TYModule; errmsg : string; www.yoctopuce.com...
Page 42
La librairie Yoctopuce est prévue pour vous aider à supporter ce genre de comportements, mais votre code doit néanmoins être fait pour se comporter au mieux pour interpréter les erreurs signalées par la librairie.
10.1. Fonctions générales Ces quelques fonctions globales permettent l'initialisation et la configuration de la librairie Yoctopuce. Dans la plupart des cas, un appel à suffira en tout et pour yRegisterHub () tout. Ensuite, vous pourrez appeler la fonction globale yFind...
Page 44
Maintient la communication de la librairie avec les modules Yoctopuce. yInitAPI(mode, errmsg) Initialise la librairie de programmation de Yoctopuce explicitement. yRegisterHub(url, errmsg) Configure la librairie Yoctopuce pour utiliser les modules connectés sur une machine donnée. ySleep(ms_duration, errmsg) Effectue une pause dans l'exécution du programme pour une durée spécifiée. yUpdateDeviceList(errmsg) Force une mise-à-jour de la liste des modules Yoctopuce connectés.
Page 45
) u64 yGetTickCount( ) function yGetTickCount( ): u64 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.
Page 46
En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif. yRegisterHub() Configure la librairie Yoctopuce pour utiliser les modules connectés sur une machine donnée. function yRegisterHub( url, errmsg) function yRegisterHub( $url, &$errmsg) YRETCODE yRegisterHub( const string&...
Page 47
à lire périodiquement les informations en provenance des modules Yoctopuce en appelant la fonction afin de se maintenir à jour. yHandleEvents() Cette fonction peut signaler une erreur au cas à la communication avec un module Yoctopuce ne se passerait pas comme attendu. Paramètres : ms_duration un entier correspondant à...
Page 48
Retourne la version du logiciel embarqué du module. get_logicalName() Retourne le nom logique du module. get_luminosity() Retourne la luminosité des leds informatives du module (valeur entre 0 et 100). get_persistentSettings() Retourne l'état courant des réglages persistents du module. www.yoctopuce.com...
Page 49
Allume ou éteint la balise de localisation du module. set_logicalName(newval) Change le nom logique du module. set_luminosity(newval) Modifie la luminosité des leds informatives du module. set_realmHTTP(newval) Modifie le nom du domaine d'identification utilisé par le module. set_usbBandwidth(newval) Modifie le nombre d'interface USB utilisé par le module. set_userPassword(newval) www.yoctopuce.com...
Page 50
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 YFunction.errMessage() Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation de l'objet module. www.yoctopuce.com...
Page 51
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 YFunction.errType() Retourne le code d'erreur correspondant à la dernière erreur survenue lors de l'utilisation de l'objet module.
Page 52
$functionIndex) string functionId( int functionIndex) -(NSString*) functionId : (int) functionIndex function functionId( functionIndex: integer): string Paramètres : functionIndex l'index de la fonction pour laquelle l'information est désirée, en commençant à 0 pour la première fonction. Retourne : www.yoctopuce.com...
Page 53
été configuré pour l'utilisateur "admin", ou sinon une chaîne vide En cas d'erreur, déclenche une exception ou retourne Y_ADMINPASSWORD_INVALID YModule.get_beacon() Retourne l'état de la balise de localisation. www.yoctopuce.com...
Page 54
): LongInt 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 YModule.get_persistentSettings() Retourne l'état courant des réglages persistents du module. www.yoctopuce.com...
Page 55
) function get_productRelease( ) int get_productRelease( ) -(int) get_productRelease function get_productRelease( ): LongInt 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 www.yoctopuce.com...
Page 56
Retourne le numbre de millisecondes écoulées depuis la mise sous tension du module function get_upTime( ) function get_upTime( ) unsigned get_upTime( ) -(unsigned) get_upTime function get_upTime( ): LongWord Retourne : un entier représentant le numbre de millisecondes écoulées depuis la mise sous tension du module www.yoctopuce.com...
Page 57
"user", ou sinon une chaîne vide En cas d'erreur, déclenche une exception ou retourne Y_USERPASSWORD_INVALID YModule.nextModule() Continue l'énumération des modules commencée à l'aide de yFirstModule() function nextModule( ) function nextModule( ) YModule * nextModule( ) -(YModule*) nextModule function nextModule( ): TYModule www.yoctopuce.com...
Page 58
En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif. YModule.set_adminPassword() Modifie le mot de passe pour l'utilisateur "admin", qui devient alors instantanément nécessaire pour toute modification de la configuration du module. www.yoctopuce.com...
Page 59
() préservé. Paramètres : newval une chaîne de caractères Retourne : la nouvelle valeur effective, telle que confirmée par le module. En cas d'erreur, déclenche une exception ou retourne Y_LOGICALNAME_INVALID YModule.set_luminosity() Modifie la luminosité des leds informatives du module. www.yoctopuce.com...
Page 60
Retourne : la nouvelle valeur effective, telle que confirmée par le module. En cas d'erreur, déclenche une exception ou retourne Y_USBBANDWIDTH_INVALID YModule.set_userPassword() Modifie le mode de passe pour l'utilisateur "user", qui devient alors instantanément nécessaire pour tout accès au module. www.yoctopuce.com...
Page 61
En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif. 10.3. Interface de la fonction Humidity La librairie de programmation Yoctopuce permet lire une valeur instantanée du capteur, ainsi que les extrémas atteints. Pour utiliser les fonctions décrites ici, vous devez inclure: <script type='text/javascript' src='yocto_humidity.js'></script>...
Page 62
Met en cache les valeurs courantes de la fonction, avec une durée de validité spécifiée. module() Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction. module_async(callback, context) Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.
Page 63
Ce texte inclut toujours le nom de la classe, et peut contenir en sus soit le nom logique de la fonction, soit son identifiant hardware. Retourne : une chaîne de caractères décrivant la fonction YHumidity.errMessage() Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation de la fonction. function errMessage( ) function errMessage( ) www.yoctopuce.com...
Page 64
) -(NSString*) errMessage function errMessage( ): string 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 fonction YHumidity.errType()
Page 65
Si les valeurs des attributs en cache de la fonction 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 : www.yoctopuce.com...
Page 66
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. www.yoctopuce.com...
Page 67
à la fonction de callback Retourne : rien du tout : le résultat sera passé en paramètre à la fonction de callback. YHumidity.module() Retourne l'objet correspondant au module Yoctopuce qui héberge la fonction. YModule function module( ) function module( ) YModule * module( )
Page 68
Paramètres : newval une valeur numérique représentant la mémoire de valeur minimale observée Retourne : la nouvelle valeur effective, telle que confirmée par le module. En cas d'erreur, déclenche une exception ou retourne Y_LOWESTVALUE_INVALID www.yoctopuce.com...
Page 69
10.4. Interface de la fonction Temperature La librairie de programmation Yoctopuce permet lire une valeur instantanée du capteur, ainsi que les extrémas atteints. Pour utiliser les fonctions décrites ici, vous devez inclure: <script type='text/javascript' src='yocto_temperature.js'></script> require_once('yocto_temperature.php'); #include "yocto_temperature.h" #include "yocto_temperature.h"...
Page 70
Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction. nextTemperature() Continue l'énumération capteurs température commencée à l'aide yFirstTemperature() set_highestValue(newval) Modifie la mémoire de valeur maximale observée. set_logicalName(newval) Modifie le nom logique du capteur de température. set_lowestValue(newval) Modifie la mémoire de valeur minimale observée.
Page 71
) -(NSString*) errMessage function errMessage( ): string 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 fonction YTemperature.errType()
Page 72
): string Retourne : une chaîne de caractères représentant le nom logique du capteur de température En cas d'erreur, déclenche une exception ou retourne Y_LOGICALNAME_INVALID YTemperature.get_lowestValue() Retourne la valeur minimale observée. function get_lowestValue( ) function get_lowestValue( ) www.yoctopuce.com...
Page 73
: le résultat sera passé en paramètre à la fonction de callback. YTemperature.load() Met en cache les valeurs courantes de la fonction, avec une durée de validité spécifiée. function load( msValidity) function load( $msValidity) YRETCODE load( int msValidity) -(YRETCODE) load : (int) msValidity function load( msValidity: integer): YRETCODE www.yoctopuce.com...
Page 74
à la fonction de callback Retourne : rien du tout : le résultat sera passé en paramètre à la fonction de callback. YTemperature.module() Retourne l'objet correspondant au module Yoctopuce qui héberge la fonction. YModule function module( ) function module( ) YModule * module( )
Page 75
-(NSString*) set_logicalName : (NSString*) newval function set_logicalName( newval: string): string Vous pouvez utiliser pour vérifier si votre paramètre est valide. yCheckLogicalName () N'oubliez pas d'appeler la méthode du module si le réglage doit être saveToFlash () préservé. Paramètres : www.yoctopuce.com...
Page 76
Paramètres : newval une valeur numérique représentant la mémoire de valeur minimale observée Retourne : la nouvelle valeur effective, telle que confirmée par le module. En cas d'erreur, déclenche une exception ou retourne Y_LOWESTVALUE_INVALID www.yoctopuce.com...
Plage de mesure (H) 0..100 % Plage de mesure (T) -40 ... +125 °C Précision (H) Précision (T) 0.3 °C Sytème d'exploitation supportés Windows, Linux, Mac OS X Drivers Fonctionne sans driver API de programmation Javascript, PHP, C++, Delphi RoHS www.yoctopuce.com...