Home

Yocto-Thermocouple, Mode d`emploi

image

Contents

1. www yoctopuce com 249 19 R f rence de l API de haut niveau datalogger get_dataSets YDataLogger datalogger dataSets Retourne une liste d objets YDataSet permettant de r cup rer toutes les mesures stock es par l enregistreur de donn es function get_dataSets function get_dataSets function get_dataSets vector lt YDataSet gt get_dataSets NSMutableArray dataSets function get_dataSets TYDataSetArray function get_dataSets As List List lt YDataSet gt get_dataSets ArrayList lt YDataSet gt get_dataSets def get_dataSets Y DataLogger target get_dataSets Cette m thode ne fonctionne que si le module utilise un firmware r cent car les objets YDataSet ne sont pas support s par les firmwares ant rieurs a la r vision 13000 Retourne une liste d objets YDataSet En cas d erreur d clenche une exception ou retourne une liste vide 250 www yoctopuce com 19 R f rence de l API de haut niveau datalogger get_dataStreams YDataLogger datalogger dataStreams Construit une liste de toutes les s quences de mesures m moris es par l enregistreur ancienne m thode function get_dataStreams v function get_dataStreams v function get_dataStreams amp v int get_dataStreams int dataStreams NSArray v function get_dataStreams v Tlist integer procedure get_dataStreams ByVal v As List int get_dataStreams List lt YDataStrea
2. 178 www yoctopuce com 19 R f rence de l API de haut niveau module get_usbCurrent YModule module usbCurrent Retourne le courant consomm par le module sur le bus USB en milliamp res function get_usbCurrent function get_usbCurrent function get_usbCurrent int get_usbCurrent int usbCurrent function get_usbCurrent Longint function get_usbCurrent As Integer int get_usbCurrent int get_usbCurrent def get_usbCurrent 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 www yoctopuce com 179 19 R f rence de l API de haut niveau module get_userData YModule module gt userData Retourne le contenu de l attribut userData pr c demment stock l aide de la m thode set_userData function get_userData function get_userData function get_userData void get_userData void userData function get_userData Tobject function get_userData As Object object get_userData Object get_userData def 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 180 www yoctopuce com 19 R f rence de l API de haut niveau
3. Console WriteLine Using tsensor get module get serialNumber else tsensor YTemperature FindTemperature target temperaturel retreive module serial SNS ren rcemioduletAoerssemaINumoert h www yoctopuce com 73 12 Utilisation du Yocto Thermocouple en C retreive both channels YTemperature chl YTemperature FindTemperature serial temperaturel YTemperature ch2 YTemperature FindTemperature serial temperature2 while true 11 ich SOn nenii Console WriteLine Module not connected check identification and USB cable Environment Exit 0 Console Awr ine ae hanne I Gg WY sp elo gee rrena le aulloysieseiligte ar AG His Console nNWEettelNChanne me LC cerseurreneVanuel teMoSE ro ASC Console WriteLine press Ctrl C to exit YAPI Sleep 1000 ref errmsg 12 4 Contr le de la partie module Chaque module peut tre contr l d une mani re similaire vous trouverez ci dessous un simple programme d exemple affichant les principaux param tres d un module et permettant d activer la balise de localisation using using using using System System Collections Generic System Ling system Text namespace ConsoleApplicationl class Program static void usage string execname System AppDomain CurrentDomain FriendlyName Console WriteLine Usage Console WriteLine execname lt serial or logical name
4. www yoctopuce com 279 19 R f rence de l API de haut niveau dataset get_hardwareld YDataSet dataset hardwareld Retourne l identifiant mat riel unique de la fonction qui a effectu les mesures au format SERIAL FUNCTIONID function get_hardwareld function get_hardwareld function get_hardwareld string get_hardwareld NSString hardwareld function get_hardwareld string function get_hardwareld As String string get_hardwareld String get_hardwareld def get_hardwareld L identifiant unique est compos du num ro de s rie du module et de l identifiant mat riel de la fonction par example THRMCPL1 123456 temperaturel Retourne une cha ne de caract res identifiant la fonction ex THRMCPL1 123456 temperaturel En cas d erreur d clenche une exception ou retourne Y_HARDWAREID_INVALID 280 www yoctopuce com 19 R f rence de l API de haut niveau dataset get_measures YDataSet dataset measures Retourne toutes les mesures d j disponibles pour le DataSet sous forme d une liste d objets YMeasure function get_measures function get_measures function get_measures vector lt YMeasure gt get_measures NSMutableArray measures function get_measures TYMeasureArray function get_measures As List List lt YMeasure gt get_measures ArrayList lt YMeasure gt get_measures def get_measures Chaque l ment contient le
5. 166 www yoctopuce com 19 R f rence de l API de haut niveau module get_icon2d module icon2d YModule Retourne l ic ne du module function get_icon2d function get_icon2d function get_icon2d string get_icon2d NSData icon2d function get_icon2d TByteArray function get_icon2d As Byte def get_icon2d 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 www yoctopuce com 167 19 R f rence de l API de haut niveau module get_lastLogs YModule module lastLogs Retourne une chaine de charact re contenant les derniers logs du module function get_lastLogs function get_lastLogs function get_lastLogs string get_lastLogs NSString lastLogs function get_lastLogs string function get_lastLogs As String string get_lastLogs String get_lastLogs def get_lastLogs YModule target get_lastLogs Cette methode retourne les derniers logs qui sont encore stock dans le module Retourne une chaine de charact re contenant les derniers logs du module 168 www yoctopuce com 19 R f rence de l API de haut niveau module get_logicalName module gt logicalName Retourne le nom logique du module function get_logicalName function get_logicalName function get_logicalName string get_logicalNam
6. include lt iostream gt include lt stdlib h gt include yocto api h using namespace std 52 www yoctopuce com 9 Utilisation du Yocto Thermocouple en C static void usage const char exe CE PERS A TE ETES CE lt newhogueal Namesti kenali exit 1 imk Mainiint erde const char aargh string errmsg Setup the API to use local USB devices ERE Gusiae Hub Muisbny me ECC AETESUCCESS N Cer lt lt Registerhub terror 90 lt lt serEnsg lt ends leq heigl AS aa eoe 2 usage argv 0 YModule module yFindModule argv 1 use serial or logical name if module gt isOnline if arge gt 3 string newname argv 2 if yCheckLogicalName newname cerr lt lt Invalid name lt lt newname lt lt lt lt endl usage argv 0 module gt set_logicalName newname module gt saveToFlash cout lt lt Current name lt lt module gt get jlogicallName i lt lt endl else cout lt lt argv l lt lt not connected check identification and USB cable lt lt endl return 0 Attention le nombre de cycles d criture de la m moire non volatile du module est limit Pass cette limite plus rien ne garantit que la sauvegarde des r glages se passera correctement Cette limite li e la technologie employ e par le micro processeur du module se situe aux alentour de 100000 cycles Pour r sumer vous ne pouvez employer la fonct
7. void yFreeAPI procedure yFreeAPI procedure yFreeAPI void FreeAPI synchronized static void FreeAPI def 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 yFreeAPT sous peine de crash 132 www yoctopuce com 19 R f rence de l API de haut niveau YAPI GetAPIVersion YAPI yGetAPIVersion Retourne la version de la librairie Yoctopuce utilis e function yGetAPIVersion function GetAPIVersion function yGetAPIVersion string yGetAPIVersion NSString yGetAPIVersion function yGetAPIVersion string function yGetAPIVersion As String String GetAPIVersion String GetAPIVersion def GetAPIVersion La version est retourn e sous forme d une chaine 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 chaine 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 n
8. Retourne la valeur publi e par la ni me fonction du module function functionValue functionindex function functionValue functionindex function functionValue functionindex string functionValue int functionindex NSString functionValue int functionindex function functionValue functionindex integer string function functionValue ByVal functionindex As Integer As String string functionValue int functionindex def functionValue functionindex Param tres premi re fonction Retourne functionindex l index de la fonction pour laquelle l information est d sir e en commen ant 0 pour la 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 YModule www yoctopuce com 161 19 R f rence de l API de haut niveau module get_beacon module beacon Retourne l tat de la balise de localisation _is function get_beacon node js function get_beacon php _ function get_beacon Y_BEACON_enum get_beacon Y_BEACON_enum beacon pas function get_beacon Integer function get_beacon As Integer int get_beacon int get_beacon def get_beacon 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 YM
9. Toast makeText getApplicationContext Invalid name newname Toast LENGTH LONG show 7 retiens module set_logicalName newname module saveToFlash do not forget this edit setText www yoctopuce com 105 16 Utilisation du Yocto Thermocouple avec Android Peate MAP RS Fs ce pie onkeen ex printStackTrace DisplayModuleInfo Attention le nombre de cycles d criture de la m moire non volatile du module est limit Pass cette limite plus rien ne garantit que la sauvegarde des r glages se passera correctement Cette limite li e la technologie employ e par le micro processeur du module se situe aux alentour de 100000 cycles Pour r sumer vous ne pouvez employer la fonction YModule saveToFlash que 100000 fois au cours de la vie du module Veillez donc a ne pas appeler cette fonction depuis l int rieur d une boucle Enumeration des modules Obtenir la liste des modules connect s se fait a l aide de la fonction YModule yFirstModule qui renvoie le premier module trouv il suffit ensuite d appeler la mehode nextModule de cet objet pour trouver les modules suivants et ce tant que la r ponse n est pas un null Ci dessous un petit exemple listant les module connect s package com yoctopuce doc examples import android app Activity import android os Bundle import android view View import android widget LinearLayout import android widget TextView im
10. def HandleEvents errmsg None Si votre programme inclut des longues boucles d attente vous pouvez y inclure un appel a 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 P Param tres errmsg une 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 www yoctopuce com 135 19 R f rence de l API de haut niveau YAPL InitAPI YAPI yinitAPI Initialise la librairie de programmation de Yoctopuce explicitement function yInitAPI mode errmsg node js function InitAPI mode errmsg function yInitAPI mode amp errmsg YRETCODE yInitAPI int mode string amp errmsg YRETCODE yInitAPI int mode NSError errmsg function yinitAPI mode integer var errmsg string integer _vb function yinitAPI ByVal mode As Integer ByRef errmsg As String As Integer int InitAPI int mode ref string errmsg synchronized static int InitAPI int mode def InitAPI mode err
11. lt yFindTemperature renvoie un objet que vous pouvez ensuite utiliser loisir pour contr ler le capteur de temp rature isOnline La m thode isOnline de l objet renvoy par yFindTemperature permet de savoir si le module correspondant est pr sent et en tat de marche get_currentValue La m thode get currentValue de l objet renvoy par yFindTemperature permet d obtenir la temp rature actuelle mesur e par le capteur La valeur de retour est un nombre flottant repr sentant directement le nombre de degr s Celsius Un exemple r el Ouvrez votre diteur de texte pr f r recopiez le code ci dessous sauvez le dans le m me r pertoire que les fichiers de la librairie et ouvrez le avec votre browser favori sauf Opera Vous trouverez aussi ce code dans le r pertoire Examples Doc GettingStarted Yocto Thermocouple de la librairie Yoctopuce Vous reconnaitrez dans cet exemple l utilisation des fonctions expliqu es ci dessus cette fois utilis es avec le d corum n cessaire en faire un petit programme d exemple concret 4 Si vous n avez pas d diteur de texte utilisez Notepad plut t que Microsoft Word 32 www yoctopuce com 7 Utilisation du Yocto Thermocouple en Javascript L exemple est cod pour tre utilis soit depuis un serveur web soit en ouvrant directement le fichier localement sur la machine Notez que cette derni re solution n est pas possible avec certaines versions de Internet Ex
12. node js function loadMore function loadMore int loadMore int loadMore function loadMore Longint function loadMore As Integer int loadMore int loadMore def loadMore Retourne un nombre entier entre 0 et 100 repr sentant l avancement du chargement des donn es demand es ou un code d erreur n gatif en cas de probl me En cas d erreur d clenche une exception ou retourne un code d erreur n gatif www yoctopuce com 287 19 R f rence de l API de haut niveau dataset loadMore_async YDataSet Proc de au chargement du bloc suivant de mesures depuis l enregistreur de donn es du module de mani re asynchrone function loadMore_async callback context function loadMore_async callback context Parametres callback fonction fournie par l utilisateur qui sera appel e lorsque la suite du chargement aura t effectu La fonction callback doit prendre trois arguments la variable de contexte disposition de l utilisateur l objet YDataSet dont la m thode loadMore_async a t appel e le r sultat de l appel soit l tat d avancement du chargement 0 100 ou un code d erreur n gatif en cas de probl me context variable de contexte disposition de l utilisateur Retourne rien 288 www yoctopuce com 19 R f rence de l API de haut niveau 19 6 Valeur mesur e Les objets YMeasure sont utilis s dans l interface de programmation
13. public static void main String args REVUE setup the API to use local VirtualHub YAPI RegisterHub 127 0 0 1 k earen VAP eeen E Syrena Lie neie ia eeue eoe Vee tieniaci oin ea PINCE ex getLocalizedMessage System out printin Ensure that the VirtualHub application is running System exit 1 Stringi serra E Ve if args length 0 92 www yoctopuce com 15 Utilisation du Yocto Thermocouple en Java YTemperature tmp YTemperature FirstTemperature if tmp null System out println No module connected check USE cablle System exit 1 cry 4 serial tmp module get serialNumber earch YAP irScee pie lommes saat System out println No module connected check USB cablle System exit 1 else serial rgsiNOi retreive both channels YTemperature chl YTemperature FindTemperature serial temperaturel YTemperature ch2 YTemperature FindTemperature serial temperature2 while true Cry 4 System out printein NChennelMN tenperature chi cgetcurnent Value i EN Systemn out printin NChannelMMEemperature ichZe get current value 4 C Sys tem Out perme NN Dress CET EC Eon eau YAPI Sleep 1000 Hecate che RER ee pislonmex E System out println Module not connected check identification and USB Cable i7 break YAPI FreeAPI 15 3 Contr le de la partie module Chaque module peut tre contr l d
14. If argv Length lt 2 Then Usage target argv 1 REM Setup the APT to use local USB devices Tf yRegisterHub usb errmsg lt gt YAPI SUCCESS Then Console WriteLine RegisterHub error errmsg End End If target Manya ihe tsensor yFirstTemperature it wesens or sis Nothing Tien Console WriteLine No module connected check USB cable End End If Console WriteLine using tsensor get module get serialNumber Else tsensor yFindTemperature target temperaturel End If REM retreive module serial number seriall tsensor ger module ge serial Number REM retreive both channels chl yFindTemperature serial temperaturel ch2 yFindTemperature serial temperature2 While True If Not tsensor isOnline Then Console WriteLine Module not connected check identification and USB cable www yoctopuce com 65 11 Utilisation du Yocto Thermocouple en VisualBasic NET End EMATE ConsolenWratel channels Is M i SEr eninge eurrentValue ONR Console write channel n eS ier en ger eurrentNValue NNa Console WriteLine ySleep 1000 errmsg press Ctrl C Eo Exit End While End Sub End Module 11 4 Contr le de la partie module Chaque module peut tre contr l d une mani re similaire vous trouverez ci dessous un simple programme d exemple affichant les principaux param tres d un module et permettant d activer la balise de localisation Impores Sys
15. NSLog RegisterHub error 2 error llocalizedDescription return 1 NSString target NSString stringWithUTF8String argv 1 YTemperature tsensor if target isEqualToString any tsensor YTemperature FirstTemperature if tsensor NULL NSLog No module connected check USB cable return 1 else tsensor YTemperature FindTemperature target stringByAppendingString temperaturel while 1 if tsensor isOnline NSLog Module not connected check identification and USB cable n break NSLog Channel 1 temperature f C n tsensor ge mcur emt Val aeyp s NSlog eress Ctril to exit n YAPI Sleep 1000 NULL return 0 Il n y a que peu de lignes v ritablement importantes dans le code pr c dent Nous allons les expliquer en d tail yocto_api h et yocto_temperature h Ces deux fichiers import s permettent d avoir acc s aux fonctions permettant de g rer les modules Yoctopuce yocto_api h doit toujours tre utilis yocto temperature h est n cessaire pour g rer les modules contenant un capteur de temp rature comme le Yocto Thermocouple yRegisterHub La fonction yRegisterHub initialise l API de Yoctopuce en indiquant o les modules doivent tre recherch s Utilis e avec le param tre usb elle permet de travailler avec les modules connect s localement la machine Si l initialisation se passe mal cette fonction renver
16. Retourne l identifiant mat riel unique de la fonction qui a effectu les mesures au format SERIAL FUNCTIONID dataset get_measures Retourne toutes les mesures d ja disponibles pour le DataSet sous forme d une liste d objets YMeasure dataset get_preview Retourne une version r sum e des mesures qui pourront tre obtenues de ce YDataSet sous forme d une liste d objets YMeasure dataset get_progress Retourne l tat d avancement du chargement des donn es sur une chelle de 0 100 dataset get_startTimeUTC Retourne l heure absolue du d but des mesures disponibels sous forme du nombre de secondes depuis le ter janvier 1970 date heure au format Unix dataset get_summary Retourne un objet YMeasure r sumant tout le YDataSet dataset get_unit 276 www yoctopuce com 19 R f rence de l API de haut niveau Retourne l unit dans laquelle la valeur mesur e est exprim e dataset loadMore Proc de au chargement du bloc suivant de mesures depuis l enregistreur de donn es du module et met a jour l indicateur d avancement dataset loadMore_async callback context Proc de au chargement du bloc suivant de mesures depuis l enregistreur de donn es du module de mani re asynchrone www yoctopuce com 277 19 R f rence de l API de haut niveau dataset get_endTimeUTC YDataSet dataset endTimeUTC Retourne l heure absolue de la fin des mes
17. 13 3 Contr le de la partie module Chaque module peut tre contr l d une mani re similaire vous trouverez ci dessous un simple programme d exemple affichant les principaux param tres d un module et permettant d activer la balise de localisation program modulecontrol SAPPTYPE CONSOLE uses Sysutils VOCEOme pia Sonst serial THRMCPL1 123456 use serial number or logical name procedure refresh module Tymodule begin if module isOnline then begin Weieen Le Writeln Serial node JetsserNumoentnE WetelnNtoccalneme M e module geri loguicalNamel s Writeln Luminosity intToStr module get_luminosity Write Beacon hig www yoctopuce com 81 13 Utilisation du Yocto Thermocouple en Delphi if module get beacon Y BEACON ON then Writeln on elserite lion Writeln uptime intToStr module get upTime div 1000 s Weirteln USB current MEME intToStr module get usbCurrent mA Writeln Logs O r Writeln module get lastlogs We tela 7 J Writeln r refresh b beacon ON space beacon off end else Writeln Module not connected check identification and USB cable end procedure beacon module Tymodule state integer begin module set_beacon state refresh module end var module TYModule fn chars errmsg string pegin Setup the API to use local USB devices if yRegisterHub usb errmsg lt gt YAPI SUCCESS then
18. As Integer int forgetAllDataStreams int forgetAllDataStreams def forgetAllDataStreams YDataLogger target forgetAllDataStreams Cette m thode remet aussi a z ro le compteur de Runs 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 246 www yoctopuce com 19 R f rence de l API de haut niveau datalogger get_advertisedValue YDataLogger datalogger advertisedValue Retourne la valeur courante de l enregistreur de donn es pas plus de 6 caract res function get_advertisedValue function get_advertisedValue function get_advertisedValue string get_advertisedValue NSString advertisedValue function get_advertisedValue string function get_advertisedValue As String string get_advertisedValue String get_advertisedValue def get_advertisedValue YDataLogger target get_advertisedValue Retourne une cha ne de caract res repr sentant la valeur courante de l enregistreur de donn es pas plus de 6 caract res En cas d erreur d clenche une exception ou retourne Y_ADVERTISEDVALUE_INVALID www yoctopuce com 247 19 R f rence de l API de haut niveau datalogger get_autoStart YDataLogger datalogger autoStart Retourne le mode d activation automatique de l enregistreur de donn es la mise sous tension function get_autoStart function
19. NSMutableArray preview function get_preview TYMeasureArray vb function get_preview As List List lt YMeasure gt get_preview ArrayList lt YMeasure gt get_preview def get_preview Chaque l ment contient le d but d un intervalle de temps la fin d un intervalle de temps la valeur minimale observ e dans l intervalle de temps la valeur moyenne observ e dans l intervalle de temps la valeur maximale observ e dans l intervalle de temps Le r sum des mesures est disponible d s que loadMore a t appel pour la premi re fois Retourne un tableau d enregistrements chaque enregistrement repr sentant les mesures observ e durant un certain intervalle de temps En cas d erreur d clenche une exception ou retourne un tableau vide 282 www yoctopuce com 19 R f rence de l API de haut niveau dataset get_progress YDataSet dataset progress Retourne l tat d avancement du chargement des donn es sur une chelle de 0 a 100 function get_progress function get_progress function get_progress int get_progress int progress function get_progress Longint function get_progress As Integer int get_progress int get_progress def get_progress A l instanciation de l objet par la fonction get_dataSet l avancement est nul Au fur et mesure des appels loadMore l avancement progresse pour atteindre la valeur 100 lorsque toutes les m
20. Tobject function get_userData As Object object get_userData Object get_userData def 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 www yoctopuce com 263 19 R f rence de l API de haut niveau datalogger isOnline YDataLogger V rifie si le module h bergeant l enregistreur de donn es est joignable sans d clencher d erreur 5s function isOnline node js function isOnline php function isOnline cpp bool isOnline BOOL isOnline pas function isOnline boolean vb function isOnline As Boolean cs _ bool isOnline java boolean isOnline def isOnline Si les valeurs des attributs en cache de l enregistreur de donn es 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 l enregistreur de donn es est joignable false sinon 264 www yoctopuce com 19 R f rence de l API de haut niveau datalogger isOnline_async YDataLogger V rifie si le module h bergeant l enregistreur de donn es est joignable sans d clencher d erreur function isOnline_async callback context function isOnline_async callback conte
21. 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 188 www yoctopuce com 19 R f rence de l API de haut niveau module gt set_beacon module setBeacon Allume ou teint la balise de localisation du module function set_beacon newval function set_beacon newval function set_beacon newval int set_beacon Y_BEACON_enum newval int setBeacon Y_BEACON_enum newval function set_beacon newval Integer integer function set_beacon ByVal newval As Integer As Integer int set_beacon int newval int set_beacon int newval def set_beacon newval YModule target set_beacon newval Param tres newval soit 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 YModule www yoctopuce com 189 19 R f rence de l API de haut niveau module gt set_logicalName YModule module setLogicalName Change le nom logique du module function set_logicalName newval function set_logicalName newval function set_logicalName newval int set_logicalName const string amp newval int setLogicalName NSString newval function set_logicalName newval string integer function set_logicalName ByVal newval As String As Integer int set_logicalName string newval
22. YMeasure summary function get_summary TYMeasure function get_summary As YMeasure YMeasure get_summary YMeasure get_summary def get_summary YDataSet Il inclut les information suivantes le moment de la premi re mesure le moment de la derni re mesure la valeur minimale observ e dans l intervalle de temps la valeur moyenne observ e dans l intervalle de temps la valeur maximale observ e dans l intervalle de temps Ce r sum des mesures est disponible d s que loadMore a t appel pour la premi re fois Retourne un objet YMeasure www yoctopuce com 285 19 R f rence de l API de haut niveau dataset get_unit YDataSet dataset unit Retourne l unit dans laquelle la valeur mesur e est exprim e js function get_unit node js function get_unit php _ function get_unit string get_unit NSString unit function get_unit string __vb__ function get_unit As String cs string get_unit String get_unit def get_unit Retourne une chaine de caract res repr sentant une unit physique En cas d erreur d clenche une exception ou retourne Y_UNIT_INVALID 286 www yoctopuce com 19 R f rence de l API de haut niveau dataset loadMore YDataSet Proc de au chargement du bloc suivant de mesures depuis l enregistreur de donn es du module et met jour l indicateur d avancement 5s function loadMore
23. beacon Me if module get beacon Y BEACON ON COUE lt ON lt lt endl else coun lt OFP lt lt vend cout lt lt Up Times De nodule Jeb uptime UD ENS SERGE cout lt lt DUSE Curent sa module gt gekeusbCur ENTRE NET cout lt lt Logs lt lt endl lt lt module gt get_lastLogs lt lt endl else cout lt lt argv 1 lt lt not connected check identification and USB cable lt lt endl return 0 Chaque propri t xxx du module peut tre lue grace 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 set xxx Pour plus de d tails concernant ces fonctions utilis es reportez vous aux chapitre API Modifications des r glages du module Lorsque que vous souhaitez modifier les r glages d un module il suffit d appeler la fonction set xxx correspondante cependant cette modification n a lieu que dans la m moire vive du module si le module red marre les modifications seront perdues Pour qu elle soient m moris es de mani re persistante il est n cessaire de demander au module de sauvegarder sa configuration courante dans sa m moire non volatile Pour cela il faut utiliser la m thode saveToFlash Inversement il est possible de forcer le module oublier ses r glages courants en utilisant la m thode revertFromFlash Ce petit exemple ci dessous vous permet changer le nom logique d un module
24. module beacon NSLog ON n alga NSLog OFF n NSLog upTime NSLog USB current NSLog logs n T elba i NSLog not connected check identification and USB cable n serial or name Y BEACON ON d sec n module upTime 1000 d mA n module usbCurrent module get_lastLogs www yoctopuce com 59 10 Utilisation du Yocto Thermocouple en Objective Chaque propri t xxx du module peut tre lue grace a 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 set xxx Pour plus de d tails concernant ces fonctions utilis es reportez vous aux chapitre API Modifications des r glages du module Lorsque que vous souhaitez modifier les r glages d un module il suffit d appeler la fonction set xxx correspondante cependant cette modification n a lieu que dans la m moire vive du module si le module red marre les modifications seront perdues Pour qu elle soient m moris es de mani re persistante il est n cessaire de demander au module de sauvegarder sa configuration courante dans sa m moire non volatile Pour cela il faut utiliser la m thode saveToFlash Inversement il est possible de forcer le module oublier ses r glages courants en utilisant la m thode revertFromFlash Ce petit exemple ci dessous vous permet changer le nom logique d un module import lt Foundation Foundation h gt impo
25. procedure yRegisterLogFunction logfun yLogFunc procedure yRegisterLogFunction ByVal logfun As yLogFunc void RegisterLogFunction yLogFunc logfun void RegisterLogFunction LogCallback logfun def RegisterLogFunction logfun Utile pour d bugger le fonctionnement de l API Param tres logfun une procedure qui prend une cha ne de caract re en param tre www yoctopuce com 143 19 R f rence de l API de haut niveau YAPI SelectArchitecture YAPI ySelectArchitecture S lectionne manuellement l architecture de la libraire dynamique a utiliser pour acc der a USB 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 arch une cha ne de caract re sp cifiant l architecture utiliser Les valeurs possibles sont armhf armel M i 386 x86 64 32bit 64bit Retourne rien En cas d erreur d clenche une exception 144 www yoctopuce com 19 R f rence de l API de haut niveau YAPI SetDelegate YAPI ySetDelegate Objective C uniquement Enregist
26. rebootCountdown Retourne le nombre de secondes restantes avant un red marrage du module ou z ro si aucun red marrage n a t agend function get_rebootCountdown function get_rebootCountdown function get_rebootCountdown int get_rebootCountdown int rebootCountdown function get_rebootCountdown Longint function get_rebootCountdown As Integer int get_rebootCountdown int get_rebootCountdown def get_rebootCountdown 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 www yoctopuce com 175 19 R f rence de l API de haut niveau module gt get_serialNumber module serialNumber Retourne le num ro de s rie du module pr programm en usine function get_serialNumber function get_serialNumber function get_serialNumber string get_serialNumber NSString serialNumber function get_serialNumber string function get_serialNumber As String string get_serialNumber String get_serialNumber def get_serialNumber YModule target get_serialNumber Retourne YModule 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_SERTA
27. 8 Utilisation du Yocto Thermocouple en PHP include EVOCO apip EINI Use explicit error handling rather than exceptions yDisableExceptions Setup the API to use the VirtualHub on local machine if yRegisterHub http 127 0 0 1 4444 Serrmsg YAPI SUCCESS qdie Cannoe contact Vastuallhulbion ai OUEN Sserial ICEN serralh sae Serene Gs 0D ft Check if a specified module is available online Smodule yFindModule Sserial if Smodule gt isOnline die Module not connected check serial and USB cable else or use any connected module suitable for the demo Smodule yFirstModule if module skip VirtualHub Smodule module gt nextModule LE S r nuli Smodule yii die No module connected check USB cable else serial module gt get serialnumber Print Module to use lt input name serial value Sserial gt lt br gt if isset SSGETNnenname INM newname GET newname if yCheckLogicalName Snewname die Invalid name module gt set logicalName newname Smodule gt saveToFlash printf Current name s lt br gt Smodule gt get_logicalName print New name lt input name newname value maxlength 19 gt lt br gt gt lt input type submit gt lt FORM gt lt BODY gt lt HTML gt Attention le nombre de cycle d criture de la m moire non volatile du module est limit Pass ce
28. Activer le port USB sous Android Par d faut Android nautorise pas une application acc der aux p riph riques connect s au port USB Pour que votre application puisse interagir avec un module Yoctopuce branch directement sur votre tablette sur un port USB quelques tapes suppl mentaires sont n cessaires Si vous comptez uniquement interagir avec des modules connect s sur une autre machine par IP vous pouvez ignorer cette section Il faut d clarer dans son AndroidManifest xml l utilisation de la fonctionnalit USB Host en ajoutant le tag lt uses feature android name android hardware usb host gt dans la section manifest lt manifest gt lt uses feature android name android hardware usb host gt 2 Les YoctoHub sont un moyen simple et efficace d ajouter une connectivit r seau a vos modules Yoctopuce http www yoctopuce com FR products category extensions et reseau 98 www yoctopuce com 16 Utilisation du Yocto Thermocouple avec Android lt manifest gt Lors du premier acc s un module Yoctopuce Android va ouvrir une fen tre pour informer l utilisateur que l application va acc der module connect L utilisateur peut refuser ou autoriser lacc s au p riph rique Si l utilisateur accepte l application pourra acc der au p riph rique connect jusqu la prochaine d connexion du p riph rique Pour que la librairie Yoctopuce puisse g rer correctement ces autorisations il
29. D marrage arr t du datalogger Le datalogger peut tre d marr l aide de la m thode set recording YDataLogger 1 YDataLogger FirstDataLogger l set recording YDataLogger RECORDING ON Il est possible de faire d marrer automatiquement l enregistrement des donn es d s la mise sous tension du module YDataLogger 1 YDataLogger FirstDataLogger l set autoStart YDataLogger AUTOSTART ON i get moduile jsaveTorlashi i 22 faut sauver Te r glage Remarque les modules Yoctopuce n ont pas besoin d une connection USB active pour fonctionner ils commencent a fonctionner d s qu ils sont aliment s Le Yocto Thermocouple peut enregistrer des 112 www yoctopuce com 17 Programmation avanc e donn es sans tre forc ment raccord un ordinateur il suffit d activer le d marrage automatique du datalogger et d alimenter le module avec un simple chargeur USB Effacement de la m moire La m moire du datalogger peut tre effac e a l aide de la fonction forgetAllDataStreams Attention l effacement est irr versible YDataLogger logger YDataLogger FirstDataLogger logger forgetAl1lDataStreams Choix de la fr quence d enregistrement La fr quence d enregistrement se configure individuellement pour chaque capteur l aide de la m thode set _logFrequency La fr quence est sp cifi sous forme textuelle comme pour les callback p riodiques en sp cifiant le nombre d occurrences pa
30. Il est recommand d utiliser des liens une ventuelle mise jour de la librairie sera ainsi beaucoup plus facile Ensuite ajoutez de la m me mani re la dll yapi d11 qui se trouve dans le r pertoire Sources d11 Puis depuis la fen tre Explorateur de solutions effectuez un clic droit sur la DLL choisissez Propri t et dans le panneau Propri t s mettez l option Copier dans le r pertoire de sortie toujours copier Vous tes maintenant pr t utiliser vos modules Yoctopuce depuis votre environnement Visual Studio Afin de les garder simples tous les exemples fournis dans cette documentation sont des applications consoles Il va de soit que que les fonctionnement des librairies est strictement identiques si vous les int grez dans une application dot e d une interface graphique 11 3 Contr le de la fonction Temperature Il suffit de quelques lignes de code pour piloter un Yocto Thermocouple Voici le squelette d un fragment de code VisualBasic NET qui utilise la fonction Temperature Sri Dim errmsg As String Dim temperature As YTemperature REM On r cup re l objet repr sentant le module ici connect en local sur USB yRegisterHub usb errmsg temperature yFindTemperature THRMCPL1 123456 temperature REM Pour g rer le hot plug on v rifie que le module est l If temperature isOnline Then REM Utiliser temperature get_currentValue End if Voyons maintenant en d tail ce que font ces quelques
31. R f rence de l API de haut niveau datalogger get module async YDataLogger datalogger module_async Retourne l objet YModule correspondant au module Yoctopuce qui h berge la fonction function get_module_async callback context 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 callback fonction 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 context contexte 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 260 www yoctopuce com 19 R f rence de l API de haut niveau datalogger get_recording datalogger recording Retourne l tat d activation de l enregistreur de donn es function get_recording function get_recording function get_recording Y_RECORDING_enum get_recording Y_RECORDING_enum reco
32. YDataLogger Enregistre la fonction de callback qui est appel e a chaque changement de la valeur publi e function registerValueCallback callback function registerValueCallback callback function registerValueCallback callback int registerValueCallback YDataLoggerValueCallback callback int registerValueCallback YDataLoggerValueCallback callback function registerValueCallback callback TYDataLoggerValueCallback Longint function registerValueCallback As Integer int registerValueCallback ValueCallback callback int registerValueCallback UpdateCallback callback def registerValueCallback callback Ce callback n est appel que durant l ex cution de ySleep ou yHandleEvents Cela permet a 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 callback la 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 www yoctopuce com 269 19 R f rence de l API de haut niveau datalogger set_autoStart YDataLogger datalogger setAutoStart Modifie le mode d activation automatique de l en
33. YModule 176 get_usbBandwidth YModule 177 get_usbCurrent YModule 178 get_userData YDataLogger 262 get_userData YModule 179 get_userData YTemperature 222 GetAPIVersion YAPI 132 GetTickCount YAPI 133 H HandleEvents YAPI 134 HTTP 44 119 Hub 97 InitAPI YAPI 135 Installation 27 63 71 Int gration 54 Interface 19 21 22 151 196 241 Introduction 1 isOnline YDataLogger 263 isOnline YModule 180 isOnline YTemperature 223 isOnline_async YDataLogger 264 isOnline_async YModule 181 isOnline_async YTemperature 224 J Java 91 Javascript 31 L Langages 119 Librairie 54 85 124 Librairies 121 Limitations 29 Linux 295 load YDataLogger 265 load YModule 182 load YTemperature 225 load_async YDataLogger 266 load_async YModule 183 load_async YTemperature 227 loadCalibrationPoints YTemperature 226 loadMore YDataSet 286 loadMore_async YDataSet 287 Localisation 9 Mesur e 289 Module 9 19 29 33 41 51 59 66 74 81 87 93 102 151 Montage 13 N Natif 97 Native 22 NET 63 nextDataLogger YDataLogger 267 nextModule YModule 184 nextTemperature YTemperature 228 Niveau 124 125 O Objective 57 P Paradigme 17 Plateformes 296 Port 98 124 Pr paration 31 39 79 91 97 PreregisterHub YAPI 136 Pr requis 1 Pr sentation 5 Probl mes 295 Programmation 17 25 109 Projet 63 71 Python 85 R reboot YModule 185 R f rence 125 RegisterDeviceArrivalCa
34. handler Override protected void onStart new Handler super onsStart try aa clear YAPI EnableUSBHost this YAPI RegisterHub usb YModule module YModule FirstModule whi FNAC le mo IE im S a modul dute rAr odule get productName equals Yocto Thermocouple tring serial module get serialNumber a add serial e module nextModule YAPI Exception e e printStackTrace aa notifyDataSetChanged handler postDelayed r 500 Override protected void onStop super onStop www yoctopuce com 101 16 Utilisation du Yocto Thermocouple avec Android handler removeCallbacks r YAPI FreeAPI Override public void onItemSelected AdapterView lt gt parent View view int pos long id serial parent getItemAtPosition pos toString Override public void onNothingSelected AdapterView lt gt arg0 final Runnable r new Runnable public void run if serial null YTemperature temp sensor YTemperature FindTemperature serial temperaturel try TextView view TextView findViewById R id tempfieldl ven seriezko ringi t ormat dee eSa Eemo isens Or ge ceume nmi Valner temp sensor getUnit I eTEN AAD eeen e e printStackTrace Eemnpesensors YWiempemature Hand lemperdrmmee serrall tl remperatture 2 bey 4 TextView view TextView
35. int set_logicalName String newval def set_logicalName newval 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 newval une 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 190 www yoctopuce com 19 R f rence de l API de haut niveau module set_luminosity YModule module setLuminosity Modifie la luminosit des leds informatives du module function set_luminosity newval function set_luminosity newval function set_luminosity newval int set_luminosity int newval int setLuminosity int newval function set_luminosity newval Longint integer function set_luminosity ByVal newval As Integer As Integer int set_luminosity int newval int set_luminosity int newval def set_luminosity newval 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 newval un 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 ret
36. 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 ou 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 www yoctopuce com 15 4 Montage et connectique 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
37. module isOnline V rifie si le module est joignable sans d clencher d erreur function isOnline node js function isOnline function isOnline bool isOnline BOOL isOnline function isOnline boolean function isOnline As Boolean bool isOnline boolean isOnline def isOnline YModule 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 sile module est joignable false sinon www yoctopuce com 181 19 R f rence de l API de haut niveau module isOnline asynce YModule V rifie si le module est joignable sans d clencher d erreur _is function isOnline_async callback context node js 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
38. qui g re les communications bas niveau avec les modules Les fichiers sources en Visual Basic g rent la partie haut niveau de l API Vous avez donc besoin de cette DLL et des fichiers vb du r pertoire Sources pour cr er un projet g rant des modules Yoctopuce Configuration d un projet Visual Basic Les indications ci dessous sont fournies pour Visual Studio express 2010 mais la proc dure est semblable pour les autres versions Commencez par cr er votre projet puis depuis le panneau Explorateur de solutions effectuez un clic droit sur votre projet et choisissez Ajouter puis El ment existant Une fen tre de s lection de fichiers appara t s lectionnez le fichier yocto api vb et les fichiers correspondant aux fonctions des modules Yoctopuce que votre projet va g rer Dans le doute vous pouvez aussi s lectionner tous les fichiers 1 http www microsoft com visualstudio en us products 2010 editions visual basic express www yoctopuce com FR libraries php 3 Les sources de cette DLL sont disponibles dans l API C www yoctopuce com 63 11 Utilisation du Yocto Thermocouple en VisualBasic NET Vous avez alors le choix entre simplement ajouter ces fichiers votre projet ou les ajouter en tant que lien le bouton Ajouter est en fait un menu d roulant Dans le premier cas Visual Studio va copier les fichiers choisis dans votre projet dans le second Visual Studio va simplement garder un lien sur les fichiers originaux
39. retreive any temperature sensor sensor YTemperature FirstTemperature if sensor is None die No module connected elses sensor YTemperature FindTemperature target temperaturel if not sensor isOnline die device not connected retreive module serial serial sensor get module get serialNumber retreive both channels channell YTemperature FindTemperature serial temperaturel channel2 YTemperature FindTemperature serial temperature2 while True peame Melaka dyes CREER y U a eiemel eet CURES CULES a N We ili Schamneille egat eieren value i A deg C CEC C ta stop YAPI Sleep 1000 14 4 Contr le de la partie module Chaque module peut tre contr l d une mani re similaire vous trouverez ci dessous un simple programme d exemple affichant les principaux param tres d un module et permettant d activer la balise de localisation usr bin python coding utf 8 import os sys from yocto api import def usage sys exit usage demo lt serial or logical name gt ON OFF errmsg YRefParam if YAPI RegisterHub usb errmsg YAPI SUCCESS sys exit RegisterHub error str errmsg if len sys argv lt 2 usage m YModule FindModule sys argv 1 use serial or logical name www yoctopuce com 87 14 Utilisation du Yocto Thermocouple en Python Em LSsOnINne IN if len sys argv gt 2 Li sys argv 2 upper ON m set beacon Y
40. rifie qu il est en ligne avec la m thode isOnline et on suppose ensuite qu il va y rester pendant la fraction de seconde n cessaire ex cuter les lignes de code suivantes Ce n est pas parfait mais a peut suffire dans certains cas Il faut toutefois tre conscient qu on ne peut pas totalement exclure une erreur se produisant apr s le isOnline qui pourrait faire planter le programme La seule mani re de l viter est d impl menter une des deux techniques de gestion des erreurs d crites ci dessous 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 e Si votre code attrape l exception au vol et la g re et tout se passe bien e Si votre programme tourne dans le debugger vous pourrez relativement facilement d terminer o le probl me s est produit et voir le message explicatif li l exception e Sinon l exception va crasher votre programme boum Comme cette derni re situation n est pas la plus souhaitable la librairie Yoctopuce offre une autre alternative pour la gestion des erreurs permettant de faire un programme robuste sans devoir attraper les exceptions chaque ligne de code Il suffit d appeler la fonction yDisableExc
41. s en commun Le connecteur USB Les modules de Yoctopuce sont tous quip s d une connectique au format micro USB Les cables correspondants ne sont pas forc ment les plus faciles a 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 a cet effet pr t du connecteur www yoctopuce com 2 Pr sentation 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
42. s sec lt br gt intVal module gt get upTime 1000 printf USB current smA lt br gt S module gt get_usbCurrent printf logs lt br gt lt pre gt s lt pre gt module gt get_lastLogs gt lt input type submit value refresh gt lt FORM gt lt BODY gt lt HTML gt Chaque propri t xxx du module peut tre lue grace 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 set xxx Pour plus de d tails concernant ces fonctions utilis es reportez vous aux chapitre API Modifications des r glages du module Lorsque que vous souhaitez modifier les r glages d un module il suffit d appeler la fonction set xxx correspondante cependant cette modification n a lieu que dans la m moire vive du module si le module red marre les modifications seront perdues Pour qu elle soient m moris es de mani re persistante il est n cessaire de demander au module de sauvegarder sa configuration courante dans sa m moire non volatile Pour cela il faut utiliser la m thode saveToFlash Inversement il est possible de forcer le module oublier ses r glages courants en utilisant la m thode revertFromFlash Ce petit exemple ci dessous vous permet changer le nom logique d un module lt HTML gt lt HEAD gt lt TITLE gt save settings lt TITLE gt lt BODY gt lt FORM method get gt lt php 42 www yoctopuce com
43. saveToFlash Notez que les valeurs avant correction doivent tre tri es dans un ordre strictement croissant sinon elles seront purement et simplement ignor es Correction de 3 5 points Les corrections de 3 5 points ne sont qu une g n ralisation de la m thode deux points permettant de ainsi de cr er jusqu 4 intervalles de correction pour plus de pr cision Ces intervalles ne peuvent pas tre disjoints 116 www yoctopuce com 17 Programmation avanc e 3 20 2 N O 2 9 Vy LA 15 3 SS S Y ow 10 ran com 20 2 5 Valeur du senseur j 5 10 15 20 25 30 Exemple de correction avec 3 points de calibrations Retour a la normale Pour annuler les effets d une calibration sur une fonction il suffit d appeler la m thode calibrateFromPoints avec deux tableaux vides Double ValuesBefore Double ValuesAfter YTemperature f YTemperature FirstTemperature f calibrateFromPoints ValuesBefore ValuesAfter f get module saveToFlash Vous trouverez dans le r pertoire Examples Prog Calibration des librairies Delphi VB et C une application permettant d exp rimenter les effets de la calibration 1 5 points Interpolation arbitraire Il est aussi possible de calculer l interpolation la place du module pour calculer une interpolation par spline par exemple Il suffit pour cela d enregistrer un callback dans l API Ce callback devra pr cis
44. 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 a plusieurs machines diff rentes Parametres url une cha ne de caract res contenant usb callback ou l URL racine du VirtualHub a utiliser errmsg une chaine 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 140 www yoctopuce com 19 R f rence de l API de haut niveau En cas d erreur d clenche une exception ou retourne un code d erreur n gatif www yoctopuce com 141 19 R f rence de l API de haut niveau YAPI RegisterHubDiscoveryCallback YAPI yRegisterHubDiscoveryCallback Enregistre une fonction de callback qui sera appel e a chaque fois qu un Hub r seau ou un VirtualHub est d tect sur le r seau local void RegisterHubDiscoveryCallback NewHubCallback callback Param tres callback Une proc dure qui prend en param tre deux cha ne de caract res ou null 142 www yoctopuce com 19 R f rence de l API de haut niveau YAPI RegisterLogFunction YAPI yRegisterLogFunction Enregistre une fonction de callback qui sera appell e a chaque fois que l API a quelque chose a dire void yRegisterLogFunction yLogFunction logfun void yRegisterLogFunction yLogCallback logfun
45. t orient objet d velopp par Guido van Rossum Il offre l avantage d tre gratuit et d tre disponible pour la plupart de plate formes tant Windows qu Unix C est un language id al pour crire des petits scripts sur un coin de table La librairie Yoctopuce est compatible avec Python 2 6 et 3 Elle fonctionne sous Windows Max OS X et Linux tant Intel qu ARM La librairie a t test e avec Python 2 6 et Python 32 Les interpr teurs Python sont disponibles sur le site de Python 1 14 1 Fichiers sources Les classes de la librairie Yoctopuce pour Python que vous utiliserez vous sont fournies au format source Copiez tout le contenu du r pertoire Sources dans le r pertoire de votre choix et ajoutez ce r pertoire la variable d environnement PYTHONPATH Si vous utilisez un IDE pour programmer en Python r f rez vous sa documentation afin le configurer de mani re ce qu il retrouve automatiquement les fichiers sources de l API 14 2 Librairie dynamique Une partie de la librairie de bas niveau est crite en C mais vous n aurez a priori pas besoin d interagir directement avec elle cette partie est fournie sous forme de DLL sous Windows de fichier sous Unix et de fichier dylib sous Mac OS X Tout a t fait pour que l interaction avec cette librairie se fasse aussi simplement que possible depuis Python les diff rentes versions de la librairie dynamique correspondant aux diff rents syst mes d exploitation et architect
46. void data void setUserData void data procedure set_userData data Tobject procedure set_userData ByVal data As Object void set_userData object data void set_userData Object data def 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 data objet quelconque m moriser www yoctopuce com 193 19 R f rence de l API de haut niveau module gt triggerFirmwareUpdate YModule Agende un red marrage du module en mode sp cial de reprogrammation du logiciel embarqu function triggerFirmwareUpdate secBeforeReboot function triggerFirmwareUpdate secBeforeReboot function triggerFirmwareUpdate secBeforeReboot int triggerFirmwareUpdate int secBeforeReboot int triggerFirmwareUpdate int secBeforeReboot pas function triggerFirmwareUpdate secBeforeReboot Longint Longint v function triggerFirmwareUpdate As Integer int triggerFirmwareUpdate int secBeforeReboot int triggerFirmwareUpdate int secBeforeReboot def triggerFirmwareUpdate secBeforeReboot Y Module target triggerFirmwareUpdate secBeforeReboot Param tres secBeforeReboot nombre 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 194 www yoctopuce com 19 R f ren
47. void set_userData object data void set_userData Object data def 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 data objet quelconque m moriser 274 www yoctopuce com 19 R f rence de l API de haut niveau datalogger wait_async YDataLogger 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 function wait_async callback context 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 callback fonction 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 context contexte fourni par l appelant et qui sera pass tel quel la fonction de callback Retourne rien du tout www yoctopuce com 275 19 R f rence de l API de haut niveau 19 5 S quence de donn es enregistr es Les objets YDataSet permettent de r cup rer un ensemble de mesures enregistr es correspondant un capteur donn pour une p riode choisie Ils permettent le chargement progressif des donn es
48. yFindModule func Permet de retrouver un module d apr s son num ro de s rie ou son nom logique yFirstModule Commence l num ration des modules accessibles par la librairie M thodes des objets YModule moduledescribe Retourne un court texte d crivant le module module download pathname T l charge le fichier choisi du module et retourne son contenu module gt 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 functionValue functionIndex Retourne la valeur publi e par la ni me fonction du module module get_beacon Retourne l tat de la balise de localisation module get_errorMessage Retourne le message correspondant a 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_hardwareld Retourne l identifiant unique du module module get_icon2d www yoctopuce com 151 19 R f rence de l API de haut niveau Retourne l ic ne du module module get_lastLogs Retourne une chaine d
49. 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 msValidity un entier correspondant la dur e de validit attribu e aux les param tres charg s en millisecondes callback fonction 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 YAPT_SUCCESS context contexte 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 228 www yoctopuce com 19 R f rence de l API de haut niveau temperature nextTemperature YTemperature Continue l num ration des capteurs de temp rature commenc e l aide de yFirstTemperature function nextTemperature function nextTemperature function nextTemperature YTemperature nextTemperature YTemperature nextTemperature function nextTemperature TYTemperature function nextTemperature As YTemperature YTemperature nextTemperature YTemperature nextTemperature def nextTemperature Retourne un pointeur sur un objet YTemperature accessible en ligne ou null lorsque l num ration est termin e www yoctopuce com 229 19 R f rence de l API de ha
50. En cas d erreur d clenche une exception ou retourne Y_HARDWAREID_INVALID www yoctopuce com 257 19 R f rence de l API de haut niveau datalogger get_logicalName YDataLogger datalogger logicalName Retourne le nom logique de l enregistreur de donn es function get_logicalName function get_logicalName function get_logicalName string get_logicalName NSString logicalName function get_logicalName string function get_logicalName As String string get_logicalName String get_logicalName def get_logicalName YDataLogger target get_logicalName Retourne une cha ne de caract res repr sentant le nom logique de l enregistreur de donn es En cas d erreur d clenche une exception ou retourne Y_LOGICALNAME_INVALID 258 www yoctopuce com 19 R f rence de l API de haut niveau datalogger get_module YDataLogger datalogger module Retourne l objet YModule correspondant au module Yoctopuce qui h berge la fonction function get_module function get_module function get_module YModule get_module YModule module function get_module TYModule function get_module As YModule YModule get_module YModule get_module def 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 www yoctopuce com 259 19
51. Integer As YRETCODE YRETCODE load int msValidity int load long msValidity def load msValidity Par d faut lorsqu on acc de a 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 msValidity un 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 226 www yoctopuce com 19 R f rence de l API de haut niveau temperature loadCalibrationPoints YTemperature R cup re les points de correction de mesure pr c demment enregistr s l aide de la m thode calibrateFromPoints function loadCalibrationPoints rawValues refValues function loadCalibrationPoints rawValues refValues function loadCalibrationPoints amp rawValues amp refValues int loadCalibrationPoints vector lt double gt amp rawValues vector lt double gt amp refValues int loadCalibrationPoints NSMutableArray rawValues NSMutableArray refValues function loadCalibrationPoints var rawValues TDoubleArray var refValues TDoubleArray Longint procedure
52. 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 Thermocouple 1 www yoctopuce com FR virtualhub php 2 L interface a t test e avec FireFox 3 IE 6 Safari et Chrome elle ne fonctionne pas avec Op ra www yoctopuce com 3 Premiers pas THRMCPL1 05BDF EMA THRMCPL1 05BDF is a 20x45mm board VU with two entries for thermocouple temperature sensors Kernel Serial THRMCPL1 05BDF Product name Yocto Thermocouple Logical name Product release 1 Firmware 7726 Consumption 27 mA Beacon Inactive tum on Luminosity 50 Sensors Min Current Max Thermocouple 1 03 C 354 C 35 6 C Thermocouple 2 02 C 227 C 253 C Misc Open API browser pop up Get user manual from yoctopuce com Close Propri t s du module Yocto Thermocouple Cette
53. Yoctopuce pour repr senter une valeur observ e un moment donn e Ces objets sont utilis s en particulier en conjonction avec la classe YDataSet Pour utiliser les fonctions d crites ici vous devez inclure lt script type text javascript src yocto_api js gt lt script gt var yoctolib require yoctolib var YAPI yoctolib YAPI var YModule yoctolib YModule require_once yocto_api php include yocto_api h import yocto_api h uses yocto_api yocto_api vb yocto_api cs import com yoctopuce YoctoAPI YModule from yocto_api import M thodes des objets YMeasure measure get_averageValue Retourne la valeur moyenne observ e durant l intervalle de temps couvert par la mesure measure get_endTimeUTC Retourne l heure absolue de la fin de la mesure sous forme du nombre de secondes depuis le 1er janvier 1970 UTC date heure au format Unix measure get_maxValue Retourne la plus grande valeur observ e durant l intervalle de temps couvert par la mesure measure get_minValue Retourne la plus petite valeur observ e durant l intervalle de temps couvert par la mesure measure get_startTimeUTC Retourne l heure absolue du d but de la mesure sous forme du nombre de secondes depuis le 1er janvier 1970 UTC date heure au format Unix www yoctopuce com 289 19 R f rence de l API de haut niveau measure get_averageValue YMeasure measure averageValue Retourne la valeu
54. a la r vision 13000 Param tres startTime le d but de l intervalle de mesure d sir c est dire en nombre de secondes depuis le 1er janvier 1970 UTC La valeur 0 peut tre utilis e pour ne poser aucune limite sur le d but des mesures endTime la find de l intercalle de mesure d sir c est dire en nombre de secondes depuis le 1er janvier 1970 UTC La valeur 0 peut tre utilis e pour ne poser aucune limite de fin Retourne une instance de YDataSet dont les m thodes permettent de d acc der aux donn es historiques souhait es 218 www yoctopuce com 19 R f rence de l API de haut niveau temperature get_reportFrequency YTemperature temperature reportFrequency Retourne la fr quence de notification p riodique des valeurs mesur es ou OFF si les notifications p riodiques sont d sactiv es pour cette fonction function get_reportFrequency function get_reportFrequency function get_reportFrequency string get_reportFrequency NSString reportFrequency function get_reportFrequency string function get_reportFrequency As String string get_reportFrequency String get_reportFrequency def get_reportFrequency YTemperature target get_reportFrequency Retourne une cha ne de caract res repr sentant la fr quence de notification p riodique des valeurs mesur es ou OFF si les notifications p riodiques sont d sactiv es pour cette fonction En c
55. 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 16 www yoctopuce com 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 Thermocouple 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
56. 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 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 gt revertFromFlash Recharge les r glages stock s dans le m moire non volatile du module comme a la mise sous tension du module module saveToFlash Sauve les r glages courants dans la m moire non volatile du module module set_beacon newval 152 www yoctopuce com 19 R f rence de l API de haut niveau 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_usbBandwidth newval Modifie le nombre d interface USB utilis par le module module gt 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 triggerFirmwareUpdate secBeforeReboot Agende un red marrage du module en mode sp cial de reprogrammation du logiciel embarqu module wait_asyn
57. 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 17 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
58. 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 D tecter le changement de valeur d un senseur L API Yoctopuce fournit aussi un syst me de callback permettant d tre pr venu automatiquement de la valeur d un senseur soit lorsqu il a chang de mani re significative ou soit intervall
59. de chaque fonction sont syst matiquement remplac es par des valeurs de retour particuli res qui peuvent tre test es par l appelant lorsque c est pertinent Le nom de la valeur de retour en cas d erreur pour chaque fonction est syst matiquement document dans la r f rence de la librairie Il suit toujours la m me logique une m thode get state retournera une valeur Y STATE INVALID une m thode get_currentValue retournera une valeur Y CURRENTVALUE INVALID etc Dans tous les cas la valeur retourn e sera du type attendu et ne sera pas un pointeur nul qui risquerait de faire crasher votre programme Au pire si vous affichez la valeur sans la tester elle sera hors du cadre attendu pour la valeur retourn e Dans le cas de fonctions qui ne retournent priori pas d information la valeur de retour sera YAPI SUCCESS si tout va bien et un code d erreur diff rent en cas d chec Quand vous travaillez sans les exceptions il est possible d obtenir un code d erreur et un message expliquant l origine de l erreur en le demandant l objet qui a retourn une erreur l aide des m thodes errType et errMessage Ce sont les m me informations qui auraient t associ es l exception si elles avaient t actives www yoctopuce com 77 78 www yoctopuce com 13 Utilisation du Yocto Thermocouple en Delphi Delphi est l h ritier de Turbo Pascal A l origine Delphi tait produit p
60. 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 plu
61. der un module on v rifie qu il est en ligne avec la m thode isOnline et on suppose ensuite qu il va y rester pendant la fraction de seconde n cessaire ex cuter les lignes de code suivantes Ce n est pas parfait mais a peut suffire dans certains cas Il faut toutefois tre conscient qu on ne peut pas totalement exclure une erreur se produisant apr s le isOnline qui pourrait faire planter le programme La seule mani re de l viter est d impl menter une des deux techniques de gestion des erreurs d crites ci dessous www yoctopuce com 47 8 Utilisation du Yocto Thermocouple en PHP 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 e Si votre code attrape l exception au vol et la g re et tout se passe bien e Si votre programme tourne dans le debugger vous pourrez relativement facilement d terminer o le probl me s est produit et voir le message explicatif li l exception e Sinon l exception va crasher votre programme boum Comme cette derni re situation n est pas la plus souhaitable la librairie Yoctopuce offre une autre alternative pour la gestion des erreurs permettant de faire un programme robuste sans d
62. des senseurs Votre module Yocto Thermocouple est quip d un capteur num rique calibr en usine Les valeurs qu il renvoie sont cens es tre raisonnablement justes dans la majorit des cas Il existe cependant des situations o des conditions ext rieures peuvent avoir une influence sur les mesures L API Yoctopuce offre le moyen de re calibrer les valeurs mesur es par votre Yocto Thermocouple Il ne n agit pas de modifier les r glages hardware du module mais plut t d effectuer une transformation a posteriori des mesures effectu es par le capteur Cette transformation est pilot e par des param tres qui seront stock s dans la m moire flash du module la rendant ainsi sp cifique chaque module Cette re calibration est donc enti rement software et reste parfaitement r versible Avant de d cider de vous lancer dans la re calibration de votre module Yocto Thermocouple assurez vous d avoir bien compris les ph nom nes qui influent sur les mesures de votre module et que la diff rence en les valeurs vraies et les valeurs lues ne r sultent pas d une mauvaise utilisation ou d un positionnement inad quat Les modules Yoctopuce supportent deux types de calibration D une part une interpolation lin aire bas e sur 1 5 points de r f rence qui peut tre effectu e directement l int rieur du Yocto Thermocouple D autre part l API supporte une calibration arbitraire externe impl ment e l aide de callbacks Interpolat
63. doivent tre recherch s Utilis e avec le param tre usb elle permet de travailler avec les modules connect s localement la machine Si l initialisation se passe mal cette fonction renverra une valeur diff rente de YAPI SUCCESS et retournera via l objet errmsg une explication du probl me YTemperature FindTemperature La fonction YTemperature FindTemperature permet de retrouver un capteur de temp rature en fonction du num ro de s rie de son module h te et de son nom de fonction Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez pr alablement configur s Imaginons un module Yocto Thermocouple avec le num ros de s rie THRMCPL1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction temperature MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t temperature YTemperature FindTemperature THRMCPL1 123456 temperature temperature YTemperature FindTemperature THRMCPL1 123456 MaFonction temperature YTemperature FindTemperature MonModule temperature temperature YTemperature FindTemperature MonModule MaFonction temperature YTemperature FindTemperature MaFonction YTemperature FindTemperature renvoie un objet que vous pouvez ensuite utiliser a loisir pour contr ler le capteur de temp rature isOnline La m thode YTemperatur
64. double vb function get_startTimeUTC As Double double get_startTimeUTC double get_startTimeUTC def get_startTimeUTC Lors que l enregistrement de donn es se fait une fr quence sup rieure une mesure par seconde le timestamp peuvent inclurent une fraction d cimale Retourne un nombre r el positif correspondant au nombre de secondes coul es entre le 1er janvier 1970 UTC et la d but de la mesure 294 www yoctopuce com 20 Probl mes courants 20 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
65. e par le capteur La valeur de retour est un nombre flottant repr sentant directement le nombre de degr s Celsius Un exemple r el Lancez Visual C et ouvrez le projet exemple correspondant fourni dans le r pertoire Examples Doc GettingStarted Yocto Thermocouple de la librairie Yoctopuce Vous reconnaitrez dans cet exemple l utilisation des fonctions expliqu es ci dessus cette fois utilis es avec le d corum n cessaire en faire un petit programme d exemple concret using System using System Collections Generic using System Ling using System Text namespace ConsoleApplicationl class Program static void usage string execname System AppDomain CurrentDomain FriendlyName Console WriteLine execname lt serial number gt Console WriteLine execname lt logical name gt Console WriteLine execname any System Threading Thread Sleep 2500 Environment Exit 0 static void Main string args string errmsg string target YTemperature tsensor if args Length lt 1 usage target args 0 ToUpper Setup the API to use local USB devices if YAPI RegisterHub usb ref errmsg YAPI SUCCESS Console WriteLine RegisterHub error errmsg Environment Exit 0 if target ANY tsensor YTemperature FirstTemperature if tsensor null Console WriteLine No module connected check USB cable Environment Exit 0
66. ensuite qu il va y rester pendant la fraction de seconde n cessaire ex cuter les lignes de code suivantes Ce n est pas parfait mais a peut suffire dans certains cas Il faut toutefois tre conscient qu on ne peut pas totalement exclure une erreur se produisant apr s le isOnline qui pourrait faire planter le programme La seule mani re de l viter est d impl menter une des deux techniques de gestion des erreurs d crites ci dessous 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 e Si votre code attrape l exception au vol et la g re et tout se passe bien e Si votre programme tourne dans le debugger vous pourrez relativement facilement d terminer o le probl me s est produit et voir le message explicatif li l exception e Sinon l exception va crasher votre programme boum Comme cette derni re situation n est pas la plus souhaitable la librairie Yoctopuce offre une autre alternative pour la gestion des erreurs permettant de faire un programme robuste sans devoir attraper les exceptions chaque ligne de code Il suffit d appeler la fonction yDisableExceptions pour commuter la librairie dans un mode o les exceptions
67. entr e sortie bloquants Param tres callback fonction 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 context contexte 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 182 www yoctopuce com 19 R f rence de l API de haut niveau module load YModule Met en cache les valeurs courantes du module avec une dur e de validit sp cifi e function load msValidity function load msValidity function load msValidity YRETCODE load int msValidity YRETCODE load int msValidity function load msValidity integer YRETCODE function load ByVal msValidity As Integer As YRETCODE YRETCODE load int msValidity int load long msValidity def load msValidity Par d faut lorsqu on acc de a 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 msValidity un entier correspondant la dur e de validit attribu e aux les param tres charg s en millisecondes Retou
68. 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 callback fonction 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 YAPT_ SUCCESS si l op ration se d roule sans erreur context contexte 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 150 www yoctopuce com 19 R f rence de l API de haut niveau 19 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 lt script type text javascript src yocto_api js gt lt script gt var yoctolib require yoctolib var YAPI yoctolib YAPI var YModule yoctolib YModule require_once yocto_api php include yocto_api h import yocto_api h uses yocto_api yocto_api vb yocto_api cs import com yoctopuce YoctoAPI YModule from yocto_api import Fonction globales
69. faut lui fournir un pointeur sur le contexte de l application en appelant la m thode EnableUSBHost de la classe YAPI avant le premier acc s USB Cette fonction prend en argument un objet de la classe android content Context ou d une sous classe Comme la classe Activity est une sous classe de Context le plus simple est de d appeler YAPI EnableUSBHost this dans la m thode onCreate de votre application Si l objet pass en param tre n est pas du bon type une exception YAPI Exception sera g n r e Override public void onCreate Bundle savedInstanceState super onCreate savedInstanceState try Pass the application Context to the Yoctopuce Library YAPI EnableUSBHost this jp Weneiela NGNEAE ipweyoieskeya if Log e Yocto e getLocalizedMessage Lancement automatique Il est possible d enregistrer son application comme application par d faut pour un module USB dans ce cas des qu un module sera connect au syst me l application sera lanc e automatiquement Il faut ajouter lt action android name android hardware usb action USB DEVICE _ATTACHED gt dans la section lt intent filter gt de l activit principale La section lt activity gt doit contenir un pointeur sur un fichier xml qui contient la liste des modules USB qui peuvent lancer l application lt manifest xmlns android http schemas android com apk res android lt uses feature android name android hardw
70. findViewById R id tempfieldZ2 vene Se tiesto tring ormat de e oS reMmpmsensor gereunnent Value i Cempisensor GSU E N Caron WAPI Ree piesomee a e printStackTrace handlier postDelayed this 1000 16 6 Contr le de la partie module Chaque module peut tre contr l d une mani re similaire vous trouverez ci dessous un simple programme d exemple affichant les principaux param tres d un module et permettant d activer la balise de localisation package com yoctopuce doc examples import android app Activity import android os Bundle Import android uri ls hog import android view View import android widget AdapterView import android widget AdapterView OnItemSelectedListener import android widget ArrayAdapter import android widget Spinner import android widget Switch import android widget TextView import com yoctopuce YoctoAPI YAPI import com yoctopuce YoctoAPI YAPI Exception import com yoctopuce YoctoAPI YModule public class ModuleControl extends Activity implements OnItemSelectedListener private ArrayAdapter lt String gt aa 102 www yoctopuce com 16 Utilisation du Yocto Thermocouple avec Android private YModule module null aa new ArrayAdapter lt String gt this android R layout simple spinner item aa setDropDownViewResource android R layout simple spinner dropdown item findViewById R id spinnerl1 Override public void onCreate Bundle saved
71. gt ON OFF System Threading Thread Sleep 2500 Environment Exit 0 static void Main string args YModule m steing esrmsg 4i if YAPI RegisterHub usb ref errmsg YAPI SUCCESS Console WriteLine RegisterHub error errmsg Environment Exit 0 if args Length lt 1 usage m YModule FindModule args 0 use serial or logical name if m isOnline if args Length gt 2 Ieee crags MFT Uppe n LON uw MGs E Ea Con MModullse BE ACONMON Fa Cros RoUppe AN NOR Are scemocacon YModulicn BEACON MOLE a5 Console WriteLine serial a miget serialnumber Console WriteLine logical name m get logicalName Console WriteLine luminosity moe luminosity ToString Console Write beacon ME 74 www yoctopuce com 12 Utilisation du Yocto Thermocouple en C if m get beacon YModule BEACON ON Console WriteLine ON else Console WriteLine OFF Console WriteLine upTime Wor me ewan OW weSicmsline ys Y Sieve 2 Console wei terine MUSE current Ur m ge usbCumnrent Tosti i 3 mAN Console WriteLine Logs r n m get_lastLogs else Console WriteLine args 0 not connected check identification and USB cable Chaque propri t xxx du module peut tre lue gr ce a une m thode du type YModule get xxxx et les propri t s qui se sont pas en lecture seule peuvent tre modifi es a l aide de la m t
72. import com yoctopuce YoctoAPI public class Demo public static void main String args cry setup the API to use local VirtualHub YAPI RegisterHub 127 0 0 1 catch YAPT Exception ex Syo cem ouk PEINE IMA Canioe Contact ViarevalHubmons T27 OOres ee ex getLocalizedMessage System out printin Ensure that the VirtualHub application is running System exit 1 if args length 2 System out printin usage demo lt serial or logical name gt lt new logical name gt System exit 1 YModule m String newname m YModule FindModule args 0 use serial or logical name try newname args 1 94 www yoctopuce com 15 Utilisation du Yocto Thermocouple en Java if YAPI CheckLogicalName newname Sye cenm our prime miya dame meane ul System exit 1 m set_logicalName newname m saveToFlash do not forget this System ouc prantin Modules serial miget serialiNumbex System out printin name m get_logicalName catch YAPT Rxcepilon ex System out printin Module args 0 not connected check identification and USB cable System out printin ex getMessage System exit 1 YAPI FreeAPI Attention le nombre de cycles d criture de la m moire non volatile du module est limit Pass cette limite plus rien ne garantit que la sauvegarde des r glages se passera correctement Cette limite li
73. import com yoctopuce YoctoAPI YTemperature from yocto_temperature import Fonction globales yFindTemperature func Permet de retrouver un capteur de temp rature d apr s un identifiant donn yFirstTemperature Commence l num ration des capteurs de temp rature accessibles par la librairie M thodes des objets YTemperature temperature calibrateFromPoints rawValues refValues Enregistre des points de correction de mesure typiquement pour compenser l effet d un bo tier sur les mesures rendues par le capteur temperature describe Retourne un court texte d crivant le capteur de temp rature au format TYPE NAME SERIAL FUNCTIONID temperature get_advertisedValue Retourne la valeur courante du capteur de temp rature pas plus de 6 caract res temperature get_currentRawValue Retourne la valeur brute retourn e par le capteur sans arrondi ni calibration temperature get_currentValue Retourne la valeur mesur e actuelle temperature get_errorMessage Retourne le message correspondant la derni re erreur survenue lors de l utilisation du capteur de temp rature temperature get_errorType Retourne le code d erreur correspondant la derni re erreur survenue lors de l utilisation du capteur de temp rature temperature get_friendlyName Retourne un identifiant global du capteur de temp rature au format NOM_ MODULE NOM_FONCTION temperature get_functionDesc
74. 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 dil pour lire puis changer la luminosit d un module ZA DII sunGevonis emporte function vyapilnitAPI mode integer errmsg pansichan santeger jcdecl external yapa dill name yapillnitAPL function yapiUpdateDeviceList force integer errmsg pansichar integer cdecl external yapi dll name yapiUpdateDeviceList function yapiHTTPRequest device pansichar url pansichar buffer pansichar butisize imteger var fulllisazesiamteger errmsg pansichar integer cdecl external yapi dll name yapiHTTPRequest var errmsgBuffer array 0 256 of ansichar dataBuffer Bene Ol coe coun seligsiakelatelie errmsg data pansitchar LUE AS 71e Hinreger const serial THRMCPL1 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 G errmsgBuffer data dataBuffer API initialization if yapiInitAPI 1 errmsg lt 0 then began writeln errmsg hot end forces a device inventory if yapiUpdateDeviceList 1 errmsg lt 0 then begin writeln errmsg alt end requests the module luminosity if yapiHTTPRequest serial getValue data sizeof dataBuffer fullsize errmsg lt 0 then begi
75. le num ros de s rie THRMCPL1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction temperature MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t temperature YTemperature FindTemperature THRMCPL1 123456 temperature temperature YTemperature FindTemperature THRMCPL1 123456 MaFonction temperature YTemperature FindTemperature MonModule temperature temperature YTemperature FindTemperature MonModule MaFonction temperature YTemperature FindTemperature MaFonction YTemperature FindTemperature renvoie un objet que vous pouvez ensuite utiliser a loisir pour contr ler le capteur de temp rature isOnline La m thode YTemperature isOnline de l objet renvoy par FindTemperature permet de savoir si le module correspondant est pr sent et en tat de marche get_currentValue La m thode get currentValue de l objet renvoy par YTemperature FindTemperature permet d obtenir la temp rature actuelle mesur e par le 100 www yoctopuce com 16 Utilisation du Yocto Thermocouple avec Android capteur La valeur de retour est un nombre flottant repr sentant directement le nombre de degr s Celsius Un exemple r el Lancez votre environnement java et ouvrez le projet correspondant fourni dans le r pertoire Examples Doc Examples de la librairie Yoctopuce Vous reconn
76. lignes yRegisterHub La fonction yRegisterHub initialise l API de Yoctopuce en indiquant o les modules doivent tre recherch s Utilis e avec le param tre usb elle permet de travailler avec les modules connect s localement la machine Si l initialisation se passe mal cette fonction renverra une valeur diff rente de YAPI SUCCESS et retournera via le param tre errmsg un explication du probl me yFindTemperature La fonction yFindTemperature permet de retrouver un capteur de temp rature en fonction du num ro de s rie de son module h te et de son nom de fonction Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez pr alablement configur s Imaginons un module Yocto Thermocouple avec le num ros de s rie THRMCPL1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction temperature MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t temperature yFindTemperature temperature yFindTemperature THRMCPL1 123456 MaFonction THRMCPL1 123456 temperature temperature yFindTemperature MonModule temperature temperature yFindTemperature MonModule MaFonction temperature yFindTemperature MaFonction yFindTemperature renvoie un objet que vous pouvez ensuite utiliser loisir pour contr ler le capteur de temp rature 4 Pensez chan
77. loadCalibrationPoints int loadCalibrationPoints List lt double gt rawValues List lt double gt refValues int loadCalibrationPoints ArrayList lt Double gt rawValues ArrayList lt Double gt refValues def loadCalibrationPoints rawValues refValues YTemperature target loadCalibrationPoints rawValues refValues Param tres rawValues tableau de nombres flottants qui sera rempli par la fonction avec les valeurs brutes des points de correction refValues tableau de nombres flottants qui sera rempli par la fonction avec les valeurs d sir es des points de correction 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 www yoctopuce com 227 19 R f rence de l API de haut niveau temperature load _async YTemperature Met en cache les valeurs courantes du capteur de temp rature avec une dur e de validit sp cifi e function load_async msValidity callback context 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
78. mod les de projet sont test s avec Microsoft C 2010 Express disponible gratuitement sur le site de Microsoft 1 12 1 Installation T l chargez la librairie Yoctopuce pour Visual C depuis le site web de Yoctopuce Il n y a pas de programme d installation copiez simplement de contenu du fichier zip dans le r pertoire de votre choix Vous avez besoin essentiellement du contenu du r pertoire Sources Les autres r pertoires contiennent la documentation et quelques programmes d exemple Les projets d exemple sont des projets Visual C 2010 si vous utilisez une version ant rieure il est possible que vous ayez reconstruire la structure de ces projets 12 2 Utilisation l API yoctopuce dans un projet Visual C La librairie Yoctopuce pour Visual C NET se pr sente sous la forme d une DLL et de fichiers sources en Visual C La DLL n est pas une DLL NET mais une DLL classique crite en C qui g re les communications bas niveau avec les modules Les fichiers sources en Visual C g rent la partie haut niveau de l API Vous avez donc besoin de cette DLL et des fichiers cs du r pertoire Sources pour cr er un projet g rant des modules Yoctopuce Configuration d un projet Visual C Les indications ci dessous sont fournies pour Visual Studio express 2010 mais la proc dure est semblable pour les autres versions Commencez par cr er votre projet puis depuis le panneau Explorateur de solutions effectuez un clic droit sur votr
79. 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 systeme 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 Virtua Hub 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 a 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 1 http www yoctopuce com EN virtualhub php www yoctopuce com 295 20 Probl mes courants 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 vo
80. null Ci dessous un petit exemple listant les module connect s using System using cvs tem icolMleations Generic using System Ling using System Text namespace ConsoleApplicationl ellass Program Staves vord Maans teinaltNarcs YModule m String errmsg if YAPI RegisterHub usb ref errmsg YAPI SUCCESS Console WriteLine RegisterHub error errmsg Environment Exit 0 Console WriteLine Device list m YModule FirstModule while m null Console Wet Celine migekserialNumbex mgetaproduceName i m m nextModule 12 5 Gestion des erreurs Lorsque vous impl mentez un programme qui doit interagir avec des modules USB vous ne pouvez pas faire abstraction de la gestion des erreurs Il y aura forc ment une occasion o un utilisateur aura d branch le p riph rique soit avant de lancer le programme soit m me en pleine op ration 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 76 www yoctopuce com 12 Utilisation du Yocto Thermocouple en C La mani re la plus simple de contourner le probl me est celle que nous avons employ pour les petits exemples pr c dents de ce chapitre avant d acc der un module on v rifie qu il est en ligne avec la m thode isOnline et on suppose
81. pour une raison ou une autre la mise a jour venait a chouer d branchez puis rebranchez le module Recommencer la proc dure devrait r soudre alors le probleme Si le module a t d branch alors qu il tait en cours de reprogrammation il ne fonctionnera probablement plus ne sera plus list dans l interface Mais il sera toujours possible de le reprogrammer correctement en utilisant le programme Virtual Hub en ligne de commande 3 www yoctopuce com FR virtualhub php 4 Consultez la documentation du virtual hub pour plus de d tails 10 www yoctopuce com 3 Premiers pas 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 mati 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 plus un peu discret tout en limitant sa consommation Notez que ce param tre agit sur toutes les leds de signalisation du module y compr
82. s est produit et voir le message explicatif li l exception e Sinon l exception va crasher votre programme boum Comme cette derni re situation n est pas la plus souhaitable la librairie Yoctopuce offre une autre alternative pour la gestion des erreurs permettant de faire un programme robuste sans devoir attraper les exceptions chaque ligne de code Il suffit d appeler la fonction yDisableExceptions pour commuter la librairie dans un mode o les exceptions de chaque fonction sont syst matiquement remplac es par des valeurs de retour particuli res qui peuvent tre test es par l appelant lorsque c est pertinent Le nom de la valeur de retour en cas d erreur pour chaque fonction est syst matiquement document dans la r f rence de la librairie Il suit toujours la m me logique une m thode get state retournera une valeur Y STATE INVALID une m thode get currentValue retournera une valeur Y CURRENTVALUE INVALID etc Dans tous les cas la valeur retourn e sera du type attendu et ne sera pas un pointeur nul qui risquerait de faire crasher votre programme Au pire si vous affichez la valeur sans la tester elle sera hors du cadre attendu pour la valeur retourn e Dans le cas de fonctions qui ne retournent priori pas d information la valeur de retour sera YAPI SUCCESS si tout va bien et un code d erreur diff rent en cas d chec T Quand vous travaillez sans les exceptio
83. se produisant apr s le isOnline qui pourrait faire planter le programme La seule mani re de l viter est d impl menter une des deux techniques de gestion des erreurs d crites ci dessous 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 e Si votre code attrape l exception au vol et la g re et tout se passe bien e Si votre programme tourne dans le debugger vous pourrez relativement facilement d terminer o le probl me s est produit et voir le message explicatif li l exception e Sinon l exception va crasher votre programme boum Comme cette derni re situation n est pas la plus souhaitable la librairie Yoctopuce offre une autre alternative pour la gestion des erreurs permettant de faire un programme robuste sans devoir attraper les exceptions chaque ligne de code Il suffit d appeler la fonction yDisableExceptions pour commuter la librairie dans un mode ou les exceptions de chaque fonction sont syst matiquement remplac es par des valeurs de retour particuli res qui peuvent tre test es par l appelant lorsque c est pertinent Le nom de la valeur de retour en cas d erreur pour chaque fonction est syst matiquement docum
84. temps et entraver la r activit de l application A la place cette fonction retourne un objet YDataSet qui permet d obtenir imm diatement une vue d ensemble des donn es r sum puis d en charger progressivement le d tail lorsque c est souhaitable Voici les principales m thodes pour acc der aux donn es enregistr es dataset sensor get_recordedData 0 0 on choisit l intervalle de temps d sir dataset loadMore pour charger les donn es progressivement dataset get_summary retourne une mesure unique r sumant tout l intervalle de temps dataset get_preview retourne un tableau de mesures repr sentant une version condens e de l ensemble des mesures sur l intervalle de temps choisi r duction d un facteur 200 environ dataset get_measures retourne un tableau contenant toutes les mesures de l intervalle choisi grandit au fur et mesure de leur chargement avec 1oadMore BON gi www yoctopuce com 113 17 Programmation avanc e Les mesures sont des objets YMeasure On peut en y lire la valeur minimale moyenne et maximale l aide des m thodes get_minValue get_averageValue et get_maxValue respectivement Voici un petit exemple qui illustre ces fonctions On veut r cup rer toutes les donn es du datalogger vpDataset dataset sensor get recordedData 0r 0N Le ler appel loadMore charge le r sum des donn es dataset loadMore YMeasure summary dataset get summary string ti
85. 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 Gestion bas niveau Gestion des modules Gestion des fonctionalit s YAPI YModule YTemperature Y Pressure YRelay YXxx Structure de l API Yoctopuce www yoctopuce com 17 5 Programmation concepts g n raux 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 Thermocouple 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
86. vb yocto_datalogger cs import com yoctopuce YoctoAPI YDataLogger from yocto_datalogger import Fonction globales yFindDataLogger func Permet de retrouver un enregistreur de donn es d apr s un identifiant donn yFirstDataLogger Commence l num ration des enregistreurs de donn es accessibles par la librairie M thodes des objets YDataLogger datalogger describe Retourne un court texte d crivant l enregistreur de donn es au format TYPE NAME SERIAL FUNCTIONID datalogger forgetAllDataStreams Efface tout l historique des mesures de l enregistreur de donn es datalogger get_advertisedValue Retourne la valeur courante de l enregistreur de donn es pas plus de 6 caract res datalogger get_autoStart Retourne le mode d activation automatique de l enregistreur de donn es la mise sous tension datalogger get_currentRunIndex Retourne le num ro du Run actuel correspondant au nombre de fois que le module a t mis sous tension avec la fonction d enregistreur de donn es active datalogger get_dataSets Retourne une liste d objets YDataSet permettant de r cup rer toutes les mesures stock es par l enregistreur de donn es datalogger get_dataStreams v Construit une liste de toutes les s quences de mesures m moris es par l enregistreur ancienne m thode datalogger get_errorMessage Retourne le message correspondant a la derni re erreur survenue
87. void get_userData void userData function get_userData Tobject function get_userData As Object object get_userData Object get_userData def 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 www yoctopuce com 223 19 R f rence de l API de haut niveau temperature isOnline YTemperature V rifie si le module h bergeant le capteur de temp rature est joignable sans d clencher d erreur 5s __ function isOnline node js function isOnline php function isOnline cpp bool isOnline BOOL isOnline pas function isOnline boolean vb function isOnline As Boolean cs _ bool isOnline java boolean isOnline def isOnline Si les valeurs des attributs en cache du capteur de temp rature 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 sile capteur de temp rature est joignable false sinon 224 www yoctopuce com 19 R f rence de l API de haut niveau temperature isOnline async YTemperature V rifie si le module h bergeant le capteur de temp rature est joignable sans d clencher d erreur function isO
88. 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 www yoctopuce com 109 17 Programmation avanc e 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
89. 0 1 4444 S Serrmsg YAPI SUCCESS die Cannot contact VirtualHub on 127 0 0 1 Serrmsg Sseriall 5 Gk seriall aac Seciedkell VS UN A Check if a specified module is available online Smodule yFindModule S serial if Smodule gt isOnline die Module not connected check serial and USB cable else or use any connected module suitable for the demo Smodule yFirstModule if module skip VirtualHub Smodule Smodule gt nextModule if is_null Smodule die No module connected check USB cable else serial module gt get_serialnumber Print Module to use lt input name serial value Sserial gt lt br gt ie Geger Cmi Merseiciemt 1 if _GET beacon ON module gt set beacon Y BEACON ON else module gt set beacon Y BEACON OFF printf serial s lt br gt Smodule gt get serialNumber printf logical name s lt br gt module gt get_logicalName printf luminosity s lt br gt module gt get_luminosity prine Mbeaconsu if module gt get beacon Y BEACON ON printf lt input type radio name beacon value ON checked gt ON printf lt input type radio name beacon value OFF gt OFF lt br gt else printf lt input type radio name beacon value ON gt ON printf lt input type radio name beacon value OFF checked gt OFF lt br gt printf upTime
90. 149 yCheckLogicalName 127 YDataLogger 242 274 YDataSet 277 287 yDisableExceptions 128 yEnableExceptions 129 yEnableUSBHost 130 yFindDataLogger 242 yFindModule 153 yFindTemperature 198 yFirstDataLogger 243 yFirstModule 154 yFirstTemperature 199 yFreeAPI 131 yGetAPIVersion 132 yGetTickCount 133 yHandleEvents 134 yInitAPI 135 YMeasure 289 293 YModule 153 194 Yocto Thermocouple 19 27 31 39 49 57 63 71 79 85 91 97 yPreregisterHub 136 yRegisterDeviceArrivalCallback 137 yRegisterDeviceRemovalCallback 138 yRegisterHub 139 yRegisterHubDiscoveryCallback 141 yRegisterLogFunction 142 ySelectArchitecture 143 ySetDelegate 144 ySetTimeout 145 ySleep 146 YTemperature 198 239 yUnregisterHub 147 yUpdateDeviceList 148 yUpdateDeviceList_async 149
91. 154 www yoctopuce com 19 R f rence de l API de haut niveau YModule FirstModule yFirstModule Commence l num ration des modules accessibles par la librairie function yFirstModule function FirstModule function yFirstModule YModule yFirstModule YModule yFirstModule pas function yFirstModule TYModule function yFirstModule As YModule YModule FirstModule YModule FirstModule def FirstModule YModule 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 www yoctopuce com 155 19 R f rence de l API de haut niveau module describe Retourne un court texte d crivant le module _is function describe node js function describe function describe string describe NSString describe function describe string function describe As String string describe String describe def describe Ce texte peut contenir soit le nom logique du module soit son num ro de s rie YModule Retourne une chaine de caract res d crivant le module 156 www yoctopuce com 19 R f rence de l API de haut niveau module download YModule T l charge le fichier choisi du module et retourne son contenu function download pathname function dow
92. 2 151 Courants 295 D DataLogger 22 241 Delphi 79 D porter 14 describe YDataLogger 244 describe YModule 155 describe YTemperature 201 Description 27 DisableExceptions YAPI 128 Donn es 112 276 download YModule 156 Dynamique 85 Dynamiques 121 E El ments 5 6 EnableExceptions YAPI 129 EnableUSBHost YAPI 130 Enregistr es 276 Enregistreur 112 Erreurs 36 47 54 61 68 76 84 89 96 107 Ev nements 109 F Fichiers 85 Filtres 44 FindDataLogger YDataLogger 242 FindModule YModule 153 FindTemperature YTemperature 198 FirstDataLogger YDataLogger 243 FirstModule YModule 154 FirstTemperature YTemperature 199 Fixation 13 Fonctions 126 forgetAllDataStreams YDataLogger 245 FreeAPI YAPI 131 functionCount YModule 157 functionld YModule 158 functionName YModule 159 functionValue YModule 160 G get_advertisedValue YDataLogger 246 get_advertisedValue YTemperature 202 get_autoStart YDataLogger 247 get_averageValue YMeasure 289 get_beacon YModule 161 get_currentRawValue YTemperature 203 get_currentRunIndex YDataLogger 248 get_currentValue YTemperature 204 get_dataSets YDataLogger 249 get_dataStreams YDataLogger 250 get_endTimeUTC YDataSet 277 get_endTimeUTC YMeasure 290 get_errorMessage YDataLogger 251 get_errorMessage YModule 162 get_errorMessage YTemperature 205 get_errorType YDataLogger 252 get_errorType YModule 163 get_errorType YTemperature 206 get_firmwareRelease
93. 2 les plus courants B Mini B Micro Micro B 3 Pour connecter votre module Yocto Thermocouple 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 Thermocouple l aide d un cable USB de type A micro B 2 Le driver HID est celui qui g re les p riph riques tels que la souris le clavier etc Le connecteur Mini A a exist quelque temps mais a t retir du standard USB http www usb org developers Deprecation Announcement_052507 pdf 2 www yoctopuce com 1 Introduction Si vous branchez un hub USB entre l ordinateur et le module Yocto Thermocouple prenez garde a 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 Thermocouple mais pourraient vous tre utiles selon l utilisation que vous en faites Il s agit en g n ral de produits courants que vous pouv
94. 4 Contr le de la partie module Chaque module peut tre contr l d une mani re similaire l aide de l ex cutable YModule Par exemple pour obtenir la liste de tous les modules connect s utilisez YModule inventory Vous pouvez aussi utiliser la commande suivante pour obtenir une liste encore plus d taill e des modules connect s YModule all describe Chaque propri t xxx du module peut tre obtenue grace une commande du type get xxxx et les propri t s qui ne sont pas en lecture seule peuvent tre modifi es l aide de la commande set xxx Par exemple YModule THRMCPL1 12346 set logicalName MonPremierModule YModule THRMCPL1 12346 get logicalName Modifications des r glages du module Lorsque que vous souhaitez modifier les r glages d un module il suffit d utiliser la commande set xxx correspondante cependant cette modification n a lieu que dans la m moire vive du module si le module red marre les modifications seront perdues Pour qu elle soient m moris es de mani re persistante il est n cessaire de demander au module de sauvegarder sa configuration courante dans sa m moire non volatile Pour cela il faut utiliser la commande saveToFlash Inversement il est possible de forcer le module oublier ses r glages courants en utilisant la m thode revertFromFlash Par exemple YModule THRMCPL1 12346 set logicalName MonPremierModule YModule THRMCPL1 12346 saveToFlash Notez que vous pouvez faire
95. 5 Hz 1 C 1 0 2 C 0 3 1768 C 200 C Windows Linux Intel ARM Mac OS X Android Fonctionne sans driver C Objective C C VB NET Delphi Python Java Android Javascript Node js PHP Java oui 0x24E0 0x0028 YoctoBox Short Thick Black disponibles s par ment caract ristiques techniques de votre module www yoctopuce com 297 21 Caract ristiques 298 www yoctopuce com 15 50 ORTO ad I Pax DEL P 8 d a 9 5 o DREO 0 27 15 60 10 13 432 All dimensions are in mm Toutes les dimensions sont en mm A4 Yocto Thermocouple 2 1 Echelle Index A Acc s 97 Accessoires 3 Activer 98 Alimentation 15 Android 97 98 Avanc e 109 Basic 63 Blueprint 299 Branchement 14 C C 71 C 49 54 calibrateFromPoints YTemperature 200 Calibration 115 Callback 44 Capteur 14 Caract ristiques 297 CheckLogicalName YAPI 127 Commande 27 119 Commencer 25 Compatibilit 97 Concepts 17 Configuration 10 Connectique 13 Contraintes 15 Contr le 19 28 29 31 33 39 41 49 51 57 59 64 66 72 74 79 81 86 87 91 93 100 10
96. 6 16 Utilisation du Yocto Thermocouple avec Android 0 0 cc eee 97 16 1 Acc s Natit et Virtual Aube re eee a ait iaee daca dice dater tee sens Teeedeess 97 16 2 Preparation 4 ccsstewenvhelecceteie veestnis E Eaa aad AE dan nes devi dede AEAU EALL aa aida dad E AEEA eel 97 16 3 Compatibilit y a a a den a Eaa a a a a riea Eea ar A AAR aaar irao leaiat ina Nate 97 16 4 Activer le port USB sous Android o oo eee eee eeeneeeeeeeeeeeeeeeeeeeeaeaeeeeneaeeeeaeeeeseaeeeeteneeeeteaes 98 16 5 Contr le de la fonction Temperature ooo eee eeeeeeeeeeeeeeeeneeeeeeneeeeeeaeeeeeeaeaeeteaaeeeeeneeeeenaaes 100 16 6 Contr le de la partie module ooo eee eeeeeeeteneeeeeene eee teeaeeeeeeaeeeteeaeeeeseeeeeeeeeeeteeaeeneaaes 102 16 7 G stion d s erreurs ciation eet citi nn ne ete more te ne 107 17 Programmation avanc e ooo sssesseessestesseesesseesseesscstessecsseeseeseesneeneentes 109 17 1 Programmation par v nements sin 109 17 2 L enregistreur de donn es iii 112 17 3 Calibration des senseurs iii 115 18 Utilisation avec des langages non support s 0 ee eee eee 119 18 1 Ligne de coMMaNnde sainte eee eet neve ies hl Mae ter note etui Modern nt 119 18 2 Viral Ab SCT TP GET 225 8m Mesnil nn manne dues 119 18 3 Utilisation des librairies dynamiques o oo eee eeee ee eene eee eeaeeeteeaeeeeteeeeeeeeeeeteeeeeeeaeaes 121 18 4 Port de la librairie haut niveau iii 124 19 R f rence de l API de haut niveau on cece ccc eece eee
97. EACON ON field TextView findViewById R id logs field setText module ge Catch YAPT Exception e e printStackTrace Override _lastLogs public void onItemSelected AdapterView lt gt parent View view int pos String hwid parent getltemAtPosition pos toString module YModule FindModule hwid DisplayModuleInfo long id www yoctopuce com 103 16 Utilisation du Yocto Thermocouple avec Android Override public void onNothingSelected AdapterView lt gt arg0 public void refreshInfo View view DisplayModuleInfo public void toggleBeacon View view if module null ETUIS boolean on Switch view isChecked trey af ony 4 module setBeacon YModule BEACON_ ON else module setBeacon YModule BEACON OFF catch YAPT Exception e e printStackTrace Chaque propri t xxx du module peut tre lue gr ce une m thode du type YModule get xxxx et les propri t s qui se sont pas en lecture seule peuvent tre modifi es l aide de la m thode YModule set xxx Pour plus de d tails concernant ces fonctions utilis es reportez vous aux chapitre API Modifications des r glages du module Lorsque que vous souhaitez modifier les r glages d un module il suffit d appeler la fonction YModule set xxx correspondante cependant cette modification n a lieu que dans la m moire vive du module si le mod
98. FindModule argv 1 REM use serial or logical name If m isOnline Then newname argv 2 If Not yCheckLogicalName newname Then Console WriteLine Invalid name newname End Enda TE m set_logicalName newname m saveToFlash REM do not forget this Console Write Module isernia I A m eee e a NUOT Console Write name m get logicalName Else Console Write not connected check identification and USB cable End If End Sub End Module Attention le nombre de cycles d criture de la m moire non volatile du module est limit Pass cette limite plus rien ne garantit que la sauvegarde des r glages se passera correctement Cette limite li e a la technologie employ e par le micro processeur du module se situe aux alentour de 100000 cycles Pour r sumer vous ne pouvez employer la fonction saveToFlash que 100000 fois au cours de la vie du module Veillez donc ne pas appeler cette fonction depuis l int rieur d une boucle Enumeration des modules Obtenir la liste des modules connect s se fait a l aide de la fonction yFirstModule qui renvoie le premier module trouv il suffit ensuite d appeler la fonction nextModule de cet objet pour www yoctopuce com 67 11 Utilisation du Yocto Thermocouple en VisualBasic NET trouver les modules suivants et ce tant que la r ponse n est pas un Nothing Ci dessous un petit exemple listant les module connect s Module Modulel Sub Main Di
99. Gestion des erreurs Lorsque vous impl mentez un programme qui doit interagir avec des modules USB vous ne pouvez pas faire abstraction de la gestion des erreurs Il y aura forc ment une occasion o un utilisateur aura d branch le p riph rique soit avant de lancer le programme soit m me en pleine op ration 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 La mani re la plus simple de contourner le probl me est celle que nous avons employ pour les petits exemples pr c dents de ce chapitre avant d acc der un module on v rifie qu il est en ligne avec la m thode isOnline et on suppose ensuite qu il va y rester pendant la fraction de seconde n cessaire ex cuter les lignes de code suivantes Ce n est pas parfait mais a peut suffire dans certains cas II faut toutefois tre conscient qu on ne peut pas totalement exclure une erreur se produisant apr s le isOnline qui pourrait faire planter le programme Dans l API java le traitement d erreur est impl ment au moyen d exceptions Vous devrez donc intercepter et traiter correctement ces exceptions si vous souhaitez avoir un projet fiable qui ne crashera pas des que vous d brancherez un module 96 www yoctopuce com 16 Utilisation du Yocto Thermocouple avec Android A vrai dire Android n es
100. HL libyapi i386 so Linux Intel 32 bits yapi64 dll Windows 64 bits yapi dll Windows 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 YapilnitAPT 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 yapilnitAPI 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 fo
101. InstanceState super onCreate savedInstanceState setContentView R layout modulecontrol Spinner my spin Spinner my spin setOnItemSelectedListener this my spin setAdapter aa Override protected void onStart super onStart 7 ery 4 aa clear YAPI EnableUSBHost this YAPI RegisterHub usb YModule r YModule FirstModule while r null String hwid r get_hardwareId aa add hwid r r nextModule cernes A2 ETSN E e printStackTrace refresh Spinner with detected relay aa notifyDataSetChanged Override protected void onStop super onStop YAPI FreeAPI private void DisplayModulelnfo TextView field if module null ES UNTSIN try field TextView findViewById R id serialfield field setText module getSerialNumber field TextView findViewById R id logicalnamefield field setText module getLogicalName field TextView findViewById R id luminosityfield field setText String format Sd module getLuminosity field TextView findViewById R id uptimefield field setText module getUpTime 1000 sec field TextView findViewById R id usbcurrentfield field setText module getUsbCurrent mA Switch sw Switch findViewById R id beaconswitch Log d switch beacon module get beacon sw setChecked module getBeacon YModule B
102. LL 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 programme appel Hub Virtuel 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 hub virtuel L utilisateur final se verra oblig de lancer le hub virtuel avant de lancer le programme de contr le du projet proprement dit moins qu il ne d cide d installer le hub sous la forme d un service d mon auquel cas le hub virtuel se lancera automatiquement au d marrage de la machine www yoctopuce com 23 5 Programmation concepts g n raux L application se connecte au virtual hub 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 d
103. LNUMBER_INVALTID 176 www yoctopuce com 19 R f rence de l API de haut niveau module get_upTime YModule module upTime Retourne le numbre de millisecondes coul es depuis la mise sous tension du module function get_upTime function get_upTime function get_upTime s64 get_upTime s64 upTime function get_upTime int64 function get_upTime As Long long get_upTime long get_upTime def get_upTime 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 www yoctopuce com 177 19 R f rence de l API de haut niveau module get_usbBandwidth module usbBandwidth Retourne le nombre d interface USB utilis par le module function get_usbBandwidth function get_usbBandwidth function get_usbBandwidth Y_USBBANDWIDTH_enum get_usbBandwidth Y_USBBANDWIDTH_enum usbBandwidth pas function get_usbBandwidth Integer ve function get_usbBandwidth As Integer int get_usbBandwidth int get_usbBandwidth def get_usbBandwidth YModule target get_usbBandwidth Retourne YModule soit Y_USBBANDWIDTH_ SIMPLE soit Y USBBANDWIDTH_ DOUBLE selon le nombre d interface USB utilis par le module En cas d erreur d clenche une exception ou retourne Y_USBBANDWIDTH_INVALID
104. Lorsque l objet YDataSet est instanci par la fonction get_recordedData aucune donn e n est encore charg e du module Ce sont les appels successifs la m thode loadMore qui proc dent au chargement effectif des donn es depuis l enregistreur de donn es Un r sum des mesures disponibles est disponible via la fonction get_preview d s le premier appel loadMore Les mesures elles m me sont disponibles via la fonction get_measures au fur et mesure de leur chargement Cette classe ne fonctionne que si le module utilise un firmware r cent car les objets YDataSet ne sont pas support s par les firmwares ant rieurs la r vision 13000 Pour utiliser les fonctions d crites ici vous devez inclure lt script type text javascript src yocto_api js gt lt script gt var yoctolib require yoctolib var YAPI yoctolib YAPI var YModule yoctolib YModule require_once yocto_api php include yocto_api h import yocto_api h uses yocto_api yocto_api vb yocto_api cs import com yoctopuce YoctoAPI YModule from yocto_api import M thodes des objets YDataSet dataset get_endTimeUTC Retourne l heure absolue de la fin des mesures disponibles sous forme du nombre de secondes depuis le 1er janvier 1970 date heure au format Unix dataset get_functionld Retourne l identifiant mat riel de la fonction qui a effectu les mesures sans r f rence au module dataset get_hardwareld
105. ModuleBEACON ON Le sys argv 2l Luppen 0 ORR im set sbeaconi YMocdulle BEACON OE print serial m get_serialNumber print logical name m get_logicalName print luminosity w ste miget luminosity if m get beacon YModule BEACON ON print beacon ON elses print beacon OFF print upTime Tap ieem Get Hamine LOOM See print USB current MS eal M Germusbeurnents i mA print logs n m get lastLogs elise print sys argy Miik Mot connected check adentitalcatioen and USE calbile Chaque propri t xxx du module peut tre lue grace a une m thode du type YModule get xxxx et les propri t s qui se sont pas en lecture seule peuvent tre modifi es l aide de la m thode YModule set xxx Pour plus de d tails concernant ces fonctions utilis es reportez vous aux chapitre API Modifications des r glages du module Lorsque que vous souhaitez modifier les r glages d un module il suffit d appeler la fonction YModule set xxx correspondante cependant cette modification n a lieu que dans la m moire vive du module si le module red marre les modifications seront perdues Pour qu elle soient m moris es de mani re persistante il est n cessaire de demander au module de sauvegarder sa configuration courante dans sa m moire non volatile Pour cela il faut utiliser la m thode YModule saveToFlash Inversement il est possible de forcer le module oublier ses r glages cou
106. Pass cette limite plus rien ne garantit de que la sauvegarde des r glages se passera correctement Cette limite li la technologie employ par le micro processeur du module se situe aux alentour de 100000 cycles Pour r sumer vous ne pouvez employer la fonction saveToFlash que 100000 fois au cours de la vie du module Veillez donc ne pas appeler cette fonction depuis l int rieur d une boucle num ration des modules Obtenir la liste des modules connect s se fait l aide de la fonction yFirstModule qui renvoie le premier module trouv il suffit ensuite d appeler la fonction nextModule de cet objet pour trouver les modules suivants et ce tant que la r ponse n est pas un NULL Ci dessous un petit exemple listant les module connect s www yoctopuce com 35 7 Utilisation du Yocto Thermocouple en Javascript lt HTML gt lt HEAD gt lt TITLE gt Modules inventory lt TITLE gt lt SCRIPT type text javascript sre yocto_api js gt lt SCRIPI gt lt SCRIPT language javascriptl 5 type text JavaScript gt BS Use explicit error handling rather than exceptions yDisableExceptions Setup the API to use the VirtualHub on local machine if yRegisterHub http 127 0 0 1 4444 YAPI SUCCESS alert cannot contact wir cua HUL TON 127M ORiOrcl ic function refresh yUpdateDeviceList var htmlcode var module yFirstModule while module htmlcode module get ser
107. SISTENTSETTINGS_enum get_persistentSettings Y_PERSISTENTSETTINGS enum persistentSettings function get_persistentSettings Integer function get_persistentSettings As Integer int get_persistentSettings int get_persistentSettings def get_persistentSettings YModule target get_persistentSettings Retourne module une valeur parmi Y_PERSISTENTSETTINGS_LOADED Y_PERSISTENTSETTINGS_SAVED et YModule Y_PERSISTENTSETTINGS_MODIFIED repr sentant l tat courant des r glages persistents du En cas d erreur d clenche une exception ou retourne Y_PERSISTENTSETTINGS_INVALTD www yoctopuce com 171 19 R f rence de l API de haut niveau module get_productid YModule module gt productld Retourne l identifiant USB du module pr programm en usine function get_productld function get_productld function get_productld cpp _ int get_productld int productId pas function get_productld Longint v _ function get_productld As Integer cs int get_productld java int get_productld def get_productld YModule target get_productlid 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 172 www yoctopuce com 19 R f rence de l API de haut niveau module get_productName module productName Retourne le nom c
108. Time 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 usbBandwidth Nombre d interfaces utilis par USB L option DOUBLE permet de doubler le d bit USB mais peut saturer un hub USB N oubliez pas d appeler la m thode saveToFlash et de red marrer le module pour que le param tre soit appliqu 20 www yoctopuce com 5 Programmation concepts g n raux 5 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 logicalName Cha ne de caract res contenant le nom logique du capteur de temp rature 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 le capteur de temp rature Si deux capteurs de temp rature 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 capteur de temp rature et qui sera publi e automatiquement jusqu au hub parent Pour un capteu
109. Value La m thode get currentValue de l objet renvoy par yFindTemperature permet d obtenir la temp rature actuelle mesur e par le capteur La valeur de retour est un nombre flottant repr sentant directement le nombre de degr s Celsius 10 2 Contr le de la partie module Chaque module peut tre contr l d une mani re similaire vous trouverez ci dessous un simple programme d exemple affichant les principaux param tres d un module et permettant d activer la balise de localisation import lt Foundation Foundation h gt import yocto api h static void usage const char exe NSLog usage s lt serial or logical name gt ON OFF n exe exit 1 ink Wain int ange Const char aro i NSError error autoreleasepool Setup the API to use local USB devices ih VAP TRE orsiersHub i tus bol eerror ay APT SUCCESS iat NSLog RegisterHub error error localizedDescription return 1 Tilarge 2 usage argv 0 NSString serial or name NSString stringWithUTF8String argv 1 YModule module YModule FindModule serial or name use serial or logical name if module isOnline 1 lenge De if stremp argv 2 ON 0 module setBeacon Y BEACON ON else module setBeacon Y BEACON OFF NSLog serial S n module serialNumber NSLog logical name n module logicalName NSLog luminosity sd n module luminosity NSLog beacon ie if
110. YModule 164 get_friendlyName YDataLogger 253 get_friendlyName YTemperature 207 get_functionDescriptor YDataLogger 254 get_functionDescriptor YTemperature 208 get_functionld YDataLogger 255 get_functionld YDataSet 278 get_functionid YTemperature 209 get_hardwareld YDataLogger 256 get_hardwareld YDataSet 279 get_hardwareld YModule 165 get_hardwareld YTemperature 210 get_highestValue YTemperature 211 get_icon2d YModule 166 get_lastLogs YModule 167 get_logFrequency YTemperature 212 get_logicalName YDataLogger 257 get_logicalName YModule 168 get_logicalName YTemperature 213 get_lowestValue YTemperature 214 get_luminosity YModule 169 get_maxValue YMeasure 291 get_measures YDataSet 280 get_minValue YMeasure 292 get_module YDataLogger 258 get_module YTemperature 215 get_module_async YDataLogger 259 get_module_async YTemperature 216 get_persistentSettings YModule 170 get_preview YDataSet 281 get_productld YModule 171 get_productName YModule 172 get_productRelease YModule 173 get_progress YDataSet 282 get_rebootCountdown YModule 174 get_recordedData YTemperature 217 get_recording YDataLogger 260 get_reportFrequency YTemperature 218 get_resolution YTemperature 219 get_sensorType YTemperature 220 get_serialNumber YModule 175 get_startTimeUTC YDataSet 283 get_startTimeUTC YMeasure 293 get_summary YDataSet 284 get_timeUTC YDataLogger 261 get_unit YDataSet 285 get_unit YTemperature 221 get_upTime
111. YTemperature temperature yFindTemperature THRMCPL1 123456 MaFonction YTemperature temperature yFindTemperature MonModule temperature YTemperature temperature yFindTemperature MonModule MaFonction YTemperature temperature yFindTemperature MaFonction yFindTemperature renvoie un objet que vous pouvez ensuite utiliser loisir pour contr ler le capteur de temp rature isOnline La m thode isOnline de l objet renvoy par yFindTemperature permet de savoir si le module correspondant est pr sent et en tat de marche get_currentValue La m thode get currentValue de l objet renvoy par yFindTemperature permet d obtenir la temp rature actuelle mesur e par le capteur La valeur de retour est un nombre flottant repr sentant directement le nombre de degr s Celsius Un exemple r el Lancez votre environnement C et ouvrez le projet exemple correspondant fourni dans le r pertoire Examples Doc GettingStarted Yocto Thermocouple de la librairie Yoctopuce Si vous pr f rez travailler avec votre diteur de texte pr f r ouvrez le fichier main cpp vous taperez simplement make dans le r pertoire de l exemple pour le compiler Vous reconnaitrez dans cet exemple l utilisation des fonctions expliqu es ci dessus cette fois utilis es avec le d corum n cessaire en faire un petit programme d exemple concret 50 www yoctopuce com 9 Utilisation du Yocto Thermocouple en C inc
112. Yocto Thermocouple Mode d emploi Table des mati res Me METRO GUCUIORN Len nn nn nm et Una eee 1 11 Pr requis dissem habits lan ne ess nd Mise ins n stat fra ANA an ATT 1 1 2 Accessoires optionnels Faresi raa a anaa e e eens EE ia 3 2 Pr sentati N iit artere Nr de etal ce ae ted nasa 5 2 1 Les 6lements COMMUNS inienn a e a a aa T 5 2 2 1LeS l ments SpECIfiqgUeS ierte nn a daa ai aa e aE 6 3 PRCMIGES DAS hdi Msn idee lac E E 9 9 1 LOCALISATION eran a errant deed ea Ee fades deere deste ed vices Sapededetesenes 9 3 2 T stduimodul sszssssenssn Ah eau Rite E ea a aTe a Aa aaa a aa ra A AAE aaa isai 9 3 3 CONTIQUIATION E E A E E A td eee ed Avett 10 4 Montage et connectique oon cece cscs sseesseseeseneeneseeseseeneeaesnseusaeeaeeneeneaneseeneenss 13 4 RANON saara a a a nee hdd a Sr r 13 4 2 Branchement du thermocouple ss 14 4 3 D porter la partie Capteur seide ar in eaaa Dent didi All ashen N Eia 14 4 4 Contraintes d alimentation par USB ss 15 5 Programmation concepts g n raux oo ccc essesssesseeseesseestesseesseeseesseesees 17 5 1 Paradigme de programmation sise 17 5 2 Le module Yocto Thermocouple ss 19 5 3 Interface de contr le du module oo eee cece ceeneeeeeeneeeeteneeeeeeaeeeteeaeeeeseaeeeeseaeeeeseeeeeseneaeeenaas 19 5 4 Interface de la fonction Temperature ou eee eeeceeeeeeeeeeeneeeseeneeeeeeneeeeteaeeeeeeaeeeeeeieaeeseneaeeeeaaes 21 5 5 Interface de la fonction DataLogger o oo ee ceeeeeeeneeeee
113. a fonction Temperature de votre Yocto Thermocouple vous avez besoin de l ex cutable YTemperature Vous pouvez par exemple lancer YTemperature any get currentValue Cet exemple utilise la cible any pour signifier que l on d sire travailler sur la premi re fonction Temperature trouv e parmi toutes celles disponibles sur les modules Yoctopuce accessibles au moment de l ex cution Cela vous vite d avoir conna tre le nom exact de votre fonction et celui de votre module Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez pr alablement configur s Imaginons un module Yocto Thermocouple avec le num ros de s rie THRMCPL1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction temperature MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t YTemperature THRMCPL1 123456 temperature describe YTemperature THRMCPL1 123456 MaFonction describe YTemperature MonModule temperature describe YTemperature MonModule MaFonction describe YTemperature MaFonction describe Pour travailler sur toutes les fonctions Temperature a la fois utilisez la cible all YTemperature all describe Pour plus de d tails sur les possibilit s de l ex cutableY Temperature utilisez YTemperature help 28 www yoctopuce com 6 Utilisation du Yocto Thermocouple en ligne de commande 6
114. aintenant en d tail ce que font ces quelques lignes yocto_api h et yocto_temperature h Ces deux fichiers inclus permettent d avoir acc s aux fonctions permettant de g rer les modules Yoctopuce yocto api h doit toujours tre utilis yocto temperature h est n cessaire pour g rer les modules contenant un capteur de temp rature comme le Yocto Thermocouple yRegisterHub La fonction yRegisterHub initialise l API de Yoctopuce en indiquant o les modules doivent tre recherch s Utilis e avec le param tre usb elle permet de travailler avec les modules connect s localement la machine Si l initialisation se passe mal cette fonction renverra une valeur diff rente de YAPI SUCCESS et retournera via le param tre errmsg un explication du probl me yFindTemperature La fonction yFindTemperature permet de retrouver un capteur de temp rature en fonction du num ro de s rie de son module h te et de son nom de fonction Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez pr alablement configur s Imaginons un module Yocto Thermocouple avec le num ros de s rie THRMCPL1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction temperature MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t YTemperature temperature yFindTemperature THRMCPL1 123456 temperature
115. aitrez dans cet exemple l utilisation des fonctions expliqu es ci dessus cette fois utilis es avec le d corum n cessaire en faire un petit programme d exemple concret package com yoctopuce doc examples impor impor impor impor impor impor impor impor impor impor impor impor impor eet ekerek eeek Catia Gt mermo android android android android android android android android android Come yOeer com yoct Com yoce com yoct app Ac os Bun os Han view V widget widget widget widget widget opuce opuce opuce opuce AAE aier dler iew AdapterView AdapterView OnltemSelectedListener ArrayAdapter Spinner TextView 5 ONC OVNID IES TARTA VOCLOAP LE VAP Exeeperony sYOCTOAPL YModule VOeLONPTMTIemOereaLuUrer public class GettingStarted Yocto Thermocouple extends Activity implements OnItemSelectedListener private ArrayAdapter lt String gt aa private otring serial WIP private Handler handler null Override public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R layout gettingstarted yocto thermocouple Spinner my spin Spinner findViewById R id spinner1 my spin setOnItemSelectedListener this aa new ArrayAdapter lt String gt this android R layout simple spinner item aa setDropDownViewResource android R layout simple spinner dropdown item my spin setAdapter aa
116. al C oo eee cence eeneeeeeeneeeeeeneeeeeeneeeeey 71 12 3 Contr le de la fonction Temperature o oo eeeeeeeeeeeneeeeeeneeeeeeaeeeeseaeeeessaeeeessaeeesseaeeeeenaeees 72 12 4 Contr le de la partie module ss 74 12 5 GESTION GOS erreurs urine tiennent ae Eaa een eas 76 13 Utilisation du Yocto Thermocouple en Delphi 0 0 0 00 cee 79 13 12 Preparation sega inner edict aaa tete et Soi med die 79 13 2 Contr le de la fonction Temperature o oo eeceeeeeeeeeeeeeeeeeeeeeeeeeeaeeeessaeeeeesaaeeesseneeeeenaeees 79 13 3 Contr le de la partie module ss 81 13 4 Gestion des err urs fii il enterrement viet rd ale aati aieia 84 14 Utilisation du Yocto Thermocouple en Python 00000 0 0 eee 85 14 1 Fichiers SOUrCeS xs initie one ind niin ian nt lies 85 1422 Librairie dynamig S sir rt ei nine n nan dre ts nue nie tes aaa aNd 85 14 3 Contr le de la fonction Temperature o oo eeeeeeeeeneeeeseneeeeeeaeeeeseaeeeessaeeeesesaeeesseneeereeaeees 86 14 4 Contr le de la partie module sisi 87 14 5 Gesti n deS Erreurs ass einen eerste nei dade Raveena Steg Ae 89 15 Utilisation du Yocto Thermocouple en Java 0 0 ce eee 91 15 12 Pr paration 2 EE EE T RA a Ra ee as eae hay 91 15 2 Contr le de la fonction Temperature ooo eeeeeeeeeneeeeeeneeeeeeaeeeeseaeeeeteaaeeesseaeeeeeeieeeeneaeees 91 15 32 Controle de la partie Mmodul 32 tenet iinet etes aei 93 154 Gestion des erreurs emmener LUE AT EEEE EEE diurne de nee RA 9
117. 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 II 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 morse 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 Yoctopuce 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 Thermocouple ce num ro commence par THRMCPL1 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
118. alues function calibrateFromPoints rawValues TDoubleArray refValues TDoubleArray Longint procedure calibrateFromPoints int calibrateFromPoints List lt double gt rawValues List lt double gt refValues int calibrateFromPoints ArrayList lt Double gt rawValues ArrayList lt Double gt refValues def calibrateFromPoints rawValues refValues YTemperature target calibrateFromPoints rawValues refValues Il est possible d enregistrer jusqu cing points de correction Les points de correction doivent tre fournis en ordre croissant et dans la plage valide du capteur Le module effectue automatiquement une interpolation lin aire de l erreur entre les points sp cifi s N oubliez pas d appeler la m thode saveToFlash du module si le r glage doit tre pr serv Pour plus de plus amples possibilit s d appliquer une surcalibration aux capteurs veuillez contacter support yoctopuce com P Param tres rawValues tableau de nombres flottants correspondant aux valeurs brutes rendues par le capteur pour les points de correction refValues tableau de nombres flottants correspondant aux valeurs corrig es www yoctopuce com 201 19 R f rence de l API de haut niveau temperature describe YTemperature Retourne un court texte d crivant le capteur de temp rature au format TYPE NAME SERIAL FUNCTIONID 5s function describe node js function describe php function describe st
119. ar Borland mais c est maintenant Embarcadero qui l dite Sa force r side dans sa facilit d utilisation il permet quiconque ayant des notions de Pascal de programmer une application Windows en deux temps trois mouvements Son seul d faut est d tre payant Les librairies pour Delphi sont fournies non pas sous forme de composants VCL mais directement sous forme de fichiers source Ces fichiers sont compatibles avec la plupart des version de Delphi Afin des les garder simples tous les exemples fournis dans cette documentation sont des applications consoles II va de soit que le fonctionnement des librairies est strictement identique avec des applications VCL Vous allez rapidement vous rendre compte que l API Delphi d fini beaucoup de fonctions qui retournent des objets Vous ne devez jamais d sallouer ces objets vous m me Ils seront d sallou s automatiquement par l API la fin de l application 13 1 Pr paration Connectez vous sur le site de Yoctopuce et t l chargez la la librairie Yoctopuce pour Delphi D compressez le tout dans le r pertoire de votre choix et ajoutez le sous r pertoire sources de l archive dans la liste des r pertoires des librairies de Delphi Par d faut la librairie Yoctopuce pour Delphi utilise une DLL yapi di 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 qu
120. are usb host gt lt apolication so act LL ey android name MainActivity gt lt intent filter gt lt action android name android intent action MAIN gt lt action android name android hardware usb action USB DEVICE ATTACHED gt lt category android name android intent category LAUNCHER gt lt intent filter gt lt meta data android name android hardware usb action USB DEVICE ATTACHED android resource xml device filter gt lt activity gt lt application gt lt manifest gt Le fichier XML qui contient la liste des modules qui peuvent lancer l application doit tre sauv dans le r pertoire res xml Ce fichier contient une liste de vendorld et devicelD USB en d cimal L exemple suivant lance l application d s qu un Yocto Relay ou un Yocto PowerRelay est connect Vous pouvez trouver le vendorld et deviceld des modules Yoctopuce dans la section caract ristiques de la documentation lt xml version 1 0 encoding utf 8 gt lt resources gt lt usb device vendor id 9440 product id 12 gt lt usb device vendor id 9440 product id 13 gt lt resources gt www yoctopuce com 99 16 Utilisation du Yocto Thermocouple avec Android 16 5 Contr le de la fonction Temperature Il suffit de quelques lignes de code pour piloter un Yocto Thermocouple Voici le squelette d un fragment de code Java qui utilise la fonction Temperature Ma On r cup re l objet repr s
121. as d erreur d clenche une exception ou retourne Y_REPORTFREQUENCY_INVALID www yoctopuce com 219 19 R f rence de l API de haut niveau temperature get_resolution YTemperature temperature resolution Retourne la r solution des valeurs mesur es function get_resolution function get_resolution function get_resolution double get_resolution double resolution function get_resolution double vo function get_resolution As Double double get_resolution double get_resolution def get_resolution YTemperature target get_resolution La r solution correspond a la pr cision num rique de la repr sentation des mesures Elle n est pas forc ment identique a la pr cision r elle du capteur Pa ey eS Retourne une valeur num rique repr sentant la r solution des valeurs mesur es En cas d erreur d clenche une exception ou retourne Y_RESOLUTION_INVALID 220 www yoctopuce com 19 R f rence de l API de haut niveau temperature get_sensorType YTemperature temperature sensorType Retourne le type de capteur de temp rature utilis par le module function get_sensorType function get_sensorType function get_sensorType Y_SENSORTYPE_enum get_sensorType Y_SENSORTYPE_enum sensorType function get_sensorType Integer function get_sensorType As Integer int get_sensorType int get_sensorType def get_sensorType YTemperatur
122. ateDeviceList def UpdateDeviceList errmsg None 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 gt Param tres errmsg une 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 www yoctopuce com 149 19 R f rence de l API de haut niveau YAPI UpdateDeviceList_async YAPI yUpdateDeviceList_async Force une mise a jour de la liste des modules Yoctopuce connect s function yUpdateDeviceList_async callback context 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
123. ations p riodiques sont d sactiv es pour cette fonction temperature get_resolution Retourne la r solution des valeurs mesur es temperature get_sensorType Retourne le type de capteur de temp rature utilis par le module temperature get_unit Retourne l unit dans laquelle la valeur mesur e est exprim e temperature get_userData Retourne le contenu de l attribut userData pr c demment stock l aide de la m thode set_userData temperature isOnline V rifie si le module h bergeant le capteur de temp rature est joignable sans d clencher d erreur temperature isOnline_async callback context V rifie si le module h bergeant le capteur de temp rature est joignable sans d clencher d erreur temperature load msValidity Met en cache les valeurs courantes du capteur de temp rature avec une dur e de validit sp cifi e temperature loadCalibrationPoints rawValues refValues R cup re les points de correction de mesure pr c demment enregistr s l aide de la m thode calibrateFromPoints temperature load_async msValidity callback context Met en cache les valeurs courantes du capteur de temp rature avec une dur e de validit sp cifi e temperature nextTemperature Continue l num ration des capteurs de temp rature commenc e l aide de yFirstTemperature temperature registerTimedReportCallback callback Enregistre la fonction de callback qui est appel
124. atiquement document dans la r f rence de la librairie Il suit toujours la m me logique une m thode get state retournera une valeur Y STATE INVALID une m thode get currentValue retournera une valeur Y CURRENTVALUE INVALID etc Dans tous les cas la valeur retourn e sera du type attendu et ne sera pas un pointeur nul qui risquerait de faire crasher votre programme Au pire si vous affichez la valeur sans la tester elle sera hors du cadre attendu pour la valeur retourn e Dans le cas de fonctions qui ne retournent priori pas d information la valeur de retour sera YAPI SUCCESS si tout va bien et un code d erreur diff rent en cas d chec Quand vous travaillez sans les exceptions il est possible d obtenir un code d erreur et un message expliquant l origine de l erreur en le demandant l objet qui a retourn une erreur l aide des m thodes errType et errMessage Ce sont les m me informations qui auraient t associ es l exception si elles avaient t actives www yoctopuce com 37 38 www yoctopuce com 8 Utilisation du Yocto Thermocouple en PHP PHP est tout comme Javascript un langage assez atypique lorsqu il s agit de discuter avec du hardware N anmoins utiliser PHP avec des modules Yoctopuce offre l opportunit de construire tr s facilement des sites web capables d interagir avec leur environnement physique ce qui n est pas donn tous les serveur
125. avers le r seau ou encore elles peuvent forcer les modules sauver leur configuration apr s l ex cution de la commande 1 Si vous souhaitez recompiler l API en ligne de commande vous aurez aussi besoin de l API C 2 http www yoctopuce com FR libraries php www yoctopuce com 27 6 Utilisation du Yocto Thermocouple en ligne de commande La cible est le nom du module ou de la fonction auquel la commande va s appliquer Certaines commandes tr s g n riques n ont pas besoin de cible Vous pouvez aussi utiliser les alias any ou all ou encore une liste de noms s par s par des virgules sans espace La commande est la commande que l on souhaite ex cuter La quasi totalit des fonctions disponibles dans les API de programmation classiques sont disponibles sous forme de commandes Vous n tes pas oblig des respecter les minuscules majuscules et les caract res soulign s dans le nom de la commande Les param tres sont assez logiquement les param tres dont la commande a besoin A tout moment les ex cutables de l API en ligne de commande sont capables de fournir une aide assez d taill e Utilisez par exemple executable help pour conna tre la liste de commandes disponibles pour un ex cutable particulier de l API en ligne de commande ou encore executable commande help Pour obtenir une description d taill e des param tres d une commande 6 3 Contr le de la fonction Temperature Pour contr ler l
126. begin Write RegisterHub error errmsg exit end module yFindModule serial refresh module repeat read chi case c of r refresh module b beacon module Y BEACON ON 1s beaconi modulc Y BEACON TORE end DACIL EM Tx end Chaque propri t xxx du module peut tre lue grace 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 set xxx Pour plus de d tails concernant ces fonctions utilis es reportez vous aux chapitre API Modifications des r glages du module Lorsque que vous souhaitez modifier les r glages d un module il suffit d appeler la fonction set xxx correspondante cependant cette modification n a lieu que dans la m moire vive du module si le module red marre les modifications seront perdues Pour qu elle soient m moris es de mani re persistante il est n cessaire de demander au module de sauvegarder sa configuration courante dans sa m moire non volatile Pour cela il faut utiliser la m thode saveToFlash Inversement il est possible de forcer le module oublier ses r glages courants en utilisant la m thode revertFromFlash Ce petit exemple ci dessous vous permet changer le nom logique d un module program savesettings SAPPTYPE CONSOLE uses Sysvti ls yocto api const serial THRMCPL1 123456 use serial number or logical name var module TYModule CHEMIN
127. c 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 www yoctopuce com 153 19 R f rence de l API de haut niveau YModule FindModule YModule yFindModule Permet de retrouver un module d apr s son num ro de s rie ou son nom logique function yFindModule func node js function FindModule func function yFindModule func YModule yFindModule string func YModule yFindModule NSString func function yFindModule func string TYModule function yFindModule ByVal func As String As YModule Y Module FindModule string func java YModule FindModule String func def 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 func une 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
128. calName String newval def set_logicalName newval YDataLogger target set_logicalName newval YDataLogger 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 newval une cha ne de caract res repr sentant le nom logique de l enregistreur de donn es Retourne un code d erreur n gatif YAPI_SUCCESS si l appel se d roule sans erreur En cas d erreur d clenche une exception ou retourne www yoctopuce com 271 19 R f rence de l API de haut niveau datalogger set_recording YDataLogger datalogger setRecording Modifie l tat d activation de l enregistreur de donn es function set_recording newval function set_recording newval function set_recording newval int set_recording Y_RECORDING_enum newval int setRecording Y_RECORDING_enum newval pas function set_recording newval Integer integer _vb function set_recording ByVal newval As Integer As Integer int set_recording int newval int set_recording int newval def set_recording newval YDataLogger target set_recording newval Param tres newval soit Y_RECORDING_ OFF soit Y_RECORDING_ON selon l tat d activation de l enregistreur de donn es Retourne YAPI_SUCCESS si l op ration se d roule sans erreur En cas d erreur d clenche une exception ou
129. ce de l API de haut niveau module wait_async YModule 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 function wait_async callback context 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 callback fonction 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 context contexte fourni par l appelant et qui sera pass tel quel la fonction de callback Retourne rien du tout www yoctopuce com 195 19 R f rence de l API de haut niveau 19 3 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 lt script type text javascript src yocto_temperature js gt lt script gt var yoctolib require yoctolib var YTemperature yoctolib YTemperature require_once yocto_temperature php include yocto_temperature h import yocto_temperature h uses yocto_temperature yocto_temperature vb yocto_temperature cs
130. ce est utilis e en d sactivant la gestion des exceptions Retourne une chaine de caract res correspondant au message de la derni re erreur qui s est produit lors de l utilisation de l enregistreur de donn es 252 www yoctopuce com 19 R f rence de l API de haut niveau datalogger get_errorType YDataLogger datalogger errorType Retourne le code d erreur correspondant a la derni re erreur survenue lors de l utilisation de l enregistreur de donn es function get_errorType function get_errorType function get_errorType YRETCODE get_errorType function get_errorType YRETCODE function get_errorType As YRETCODE YRETCODE get_errorType int get_errorType def 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 l enregistreur de donn es www yoctopuce com 253 19 R f rence de l API de haut niveau datalogger get_friendlyName YDataLogger datalogger friendlyName Retourne un identifiant global de l enregistreur de donn es au format NOM_MODULE NOM_FONCTION function get_friendlyName function get_friendlyName function get_friendlyName string get_friendlyName NSString friendlyName string get_friendlyName String get_friendlyName
131. ce trouv e sera renvoy e La recherche se fait d abord par nom mat riel puis par nom logique Param tres func une cha ne de caract res qui r f rence l enregistreur de donn es sans ambigu t Retourne un objet de classe YDat aLogger qui permet ensuite de contr ler l enregistreur de donn es www yoctopuce com 243 19 R f rence de l API de haut niveau YDataLogger FirstDataLogger YDataLogger yFirstDataLogger Commence l num ration des enregistreurs de donn es accessibles par la librairie function yFirstDataLogger node js function FirstDataLogger function yFirstDataLogger YDataLogger yFirstDataLogger YDataLogger yFirstDataLogger function yFirstDataLogger TYDataLogger function yFirstDataLogger As YDataLogger Y DataLogger FirstDataLogger YDataLogger FirstDataLogger def FirstDataLogger Utiliser la fonction YDataLogger nextDataLogger pour it rer sur les autres enregistreurs de donn es Retourne un pointeur sur un objet YDat aLogger correspondant a le premier enregistreur de donn es accessible en ligne ou nu11 si il n y a pas de enregistreurs de donn es disponibles 244 www yoctopuce com 19 R f rence de l API de haut niveau datalogger describe YDataLogger Retourne un court texte d crivant l enregistreur de donn es au format TYPE NAME SERIAL FUNCTIONID function describe function describe func
132. cha ne de caract res repr sentant le nom logique du capteur de temp rature 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 234 www yoctopuce com 19 R f rence de l API de haut niveau temperature set _lowestValue YTemperature temperature setLowestValue Modifie la m moire de valeur minimale observ e function set_lowestValue newval function set_lowestValue newval function set_lowestValue newval int set_lowestValue double newval int setLowestValue double newval function set_lowestValue newval double integer function set_lowestValue ByVal newval As Double As Integer int set_lowestValue double newval int set_lowestValue double newval def set_lowestValue newval YTemperature target set_lowestValue newval Param tres newval une valeur num rique repr sentant la m moire de valeur minimale observ 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 www yoctopuce com 235 19 R f rence de l API de haut niveau temperature set _reportFrequency YTemperature temperature setReportFrequency Modifie la fr quence de notification p riodique des valeurs mesur es function set_reportFrequency newval function set_reportFrequency newval function set_reportF
133. connected module suitable for the demo Stemp yFirstTemperature if is null temp die No module connected check USB cable else serial temp gt module gt get serialnumber Print Module to use lt input name serial value Sserial gt lt br gt Stempl yFindTemperature Sserial temperaturel Pranti Wemperature channel li tit deg lt br gt stempl gt geu curmentValuel i i7 Stemp2 yFindTemperature Sserial temperature2 Prime n Memperatureschannell 2s cpl tecdeg ebro l Sem ce eUr renea e trigger auto refresh after one second Print lt script language javascriptl 5 type text JavaScript gt n Print setTimeout window location reload 1000 Pr ime lt lt eienenisie oll 2 PS lt BODY gt lt HTML gt 8 3 Contr le de la partie module Chaque module peut tre contr l d une mani re similaire vous trouverez ci dessous un simple programme d exemple affichant les principaux param tres d un module et permettant d activer la balise de localisation lt HTML gt lt HEAD gt lt TITLE gt Module Control lt TITLE gt lt HEAD gt lt BODY gt lt FORM method get gt lt php include lyoctosapi phph Use explicit error handling rather than exceptions yDisableExceptions www yoctopuce com 41 8 Utilisation du Yocto Thermocouple en PHP Setup the API to use the VirtualHub on local machine if yRegisterHub http 127 0
134. ctedListener this aa new ArrayAdapter lt String gt this android R layout simple spinner item aa setDropDownViewResource android R layout simple spinner dropdown item my spin setAdapter aa Override protected void onStant Super onst acti Ery aa clear YAPI EnableUSBHost this YAP Registerhubit usb YModule r YModule FirstModule while r null String hwid Aget hardware Ta aa add hwid r r nextModule pecarch VWAPTEExcept one af printStackTrace refresh Spinner with detected relay aa notifyDataSetChanged Override protected void onStop super onStop YAPI FreeAPI private void DisplayModulelnfo TextView field if module null retuEn any 4 YAPI UpdateDeviceList fixme field TextView findViewById R id logicalnamefield field setText module getLogicalName jp CEUEela MUTATION cpainestackirace Override public void onItemSelected AdapterView lt gt parent View view int pos long id String hwid parent getItemAtPosition pos toString module YModule FindModule hwid DisplayModuleInfo Override public void onNothingSelected AdapterView lt gt argo public void saveName View view if module null return EditText edit EditText findViewById R id newname String newname edit getText toString cry if YAPI CheckLogicalName newname
135. ction de callback qui sera appel e chaque fois qu un Hub r seau ou un VirtualHub est d tect sur le r seau local 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 procole YDeviceHotPlug ySetTimeout callback ms_timeout arguments 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 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 a jour de la liste des modules Yoctopuce connect s yUpdateDeviceList_async callback context Force une mise a jour de la liste des modules Yoctopuce connect s www yoctopuce com 127 19 R f rence de l API de haut niveau YAPI CheckLogicalName YAPI yCheckLogicalName V rifie si un nom donn est valide comme nom logique pour un module ou une fonction function yCheckLogicalName name nodejs function CheckLogicalName name function yCheckLogicalName name bool yCheckLogicalName const st
136. ction yEnableExceptions node js function EnableExceptions function yEnableExceptions void yEnableExceptions void yEnableExceptions procedure yEnableExceptions procedure yEnableExceptions cs void EnableExceptions def EnableExceptions Attention lorsque les exceptions sont activ es tout appel a 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 130 www yoctopuce com 19 R f rence de l API de haut niveau YAPI EnableUSBHost YAPI yEnableUSBHost Cette fonction est utilis e uniquement sous Android synchronized static 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 osContext un objet de classe android content Context ou une sous classe www yoctopuce com 131 19 R f rence de l API de haut niveau YAPI FreeAPI YAPI yFreeAPI Lib re la m moire dynamique utilis e par la librairie Yoctopuce is function yFreeAPI nodejs function FreeAPI php function yFreeAPI void yFreeAPI
137. ctopuce com 199 19 R f rence de l API de haut niveau YTemperature FirstTemperature YTemperature yFirstTemperature Commence l num ration des capteurs de temp rature accessibles par la librairie function yFirstTemperature node js function FirstTemperature function yFirstTemperature YTemperature yFirstTemperature YTemperature yFirstTemperature function yFirstTemperature TYTemperature function yFirstTemperature As YTemperature YTemperature FirstTemperature YTemperature FirstTemperature def FirstTemperature Utiliser la fonction YTemperature nextTemperature pour it rer sur les autres capteurs de temp rature Retourne un pointeur sur un objet YTemperature correspondant a le premier capteur de temp rature accessible en ligne ou nul si il n y a pas de capteurs de temp rature disponibles 200 www yoctopuce com 19 R f rence de l API de haut niveau temperature calibrateFromPoints YTemperature Enregistre des points de correction de mesure typiquement pour compenser l effet d un bo tier sur les mesures rendues par le capteur function calibrateFromPoints rawValues refValues function calibrateFromPoints rawValues refValues function calibrateFromPoints rawValues refValues int calibrateFromPoints vector lt double gt rawValues vector lt double gt refValues int calibrateFromPoints NSMutableArray rawValues NSMutableArray refV
138. cy newval YTemperature target set_logFrequency newval La fr quence peut tre sp cifi e en mesures par secondes en mesures par minutes par exemple 15 m ou en mesures par heure par exemple 4 h Pour d sactiver l enregistrement des mesures de cette fonction utilisez la valeur OFF Param tres newval une cha ne de caract res repr sentant la fr quence d enregistrement des mesures dans le datalogger 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 www yoctopuce com 233 19 R f rence de l API de haut niveau temperature set_logicalName YTemperature temperature setLogicalName Modifie le nom logique du capteur de temp rature function set_logicalName newval function set_logicalName newval function set_logicalName newval int set_logicalName const string amp newval int setLogicalName NSString newval function set_logicalName newval string integer function set_logicalName ByVal newval As String As Integer int set_logicalName string newval int set_logicalName String newval def set_logicalName newval YTemperature 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 newval une
139. d libusb1 0 et libstdc Attention sous Linux si vous voulez compiler en ligne de commande avec GCC il est en g n ral souhaitable de linker les librairies syst mes en dynamique et non en statique Pour m langer sur la m me ligne de commande des librairies statiques et dynamiques il faut passer les arguments suivants Secs terval berarie lyecto asrapic NL PVR EME I lptnresd eo e O letdets Int gration en librairie dynamique L int gration de la librairie Yoctopuce sous forme de librairie dynamique permet de produire un ex cutable plus petit que les deux m thodes pr c dentes et de mettre ventuellement a jour cette librairie si un correctif s av rait n cessaire sans devoir recompiler le code source de l application Par contre c est un mode d int gration qui exigera syst matiquement de copier la librairie dynamique sur la machine cible ou l application devra tre lanc e yocto dil sous Windows libyocto so 1 0 1 sous Mac OS X et Linux Pour int grer la librairie dynamique Yoctopuce votre projet vous devez inclure le r pertoire Sources de la librairie Yoctopuce votre IncludePath et ajouter le sous r pertoire de Binaries correspondant votre syst me d exploitation votre LibPath www yoctopuce com 55 9 Utilisation du Yocto Thermocouple en C Ensuite pour que votre projet se construise ensuite correctement il faudra linker avec votre projet la librairie dynamique Yoctopuce et l
140. d un fragment de code PHP qui utilise la fonction Temperature include yocto api php include MyoctoMtemperature phpl 1 Quelques serveurs PHP gratuits easyPHP pour windows MAMP pour Mac Os X www yoctopuce com FR libraries php 3 www yoctopuce com FR virtualhub php www yoctopuce com 39 8 Utilisation du Yocto Thermocouple en PHP On r cup re l objet repr sentant le module travers le VirtualHub local yRegisterHub http 127 0 0 1 4444 S errmsg Stemperature yFindTemperature THRMCPL1 123456 temperature Pour g rer le hot plug on v rifie que le module est l if temperature gt isOnline Utiliser temperature gt get currentValue Voyons maintenant en d tail ce que font ces quelques lignes yocto_api php et yocto_temperature php Ces deux includes PHP permettent d avoir acc s aux fonctions permettant de g rer les modules Yoctopuce yocto api php doit toujours tre inclus yocto temperature php est n cessaire pour g rer les modules contenant un capteur de temp rature comme le Yocto Thermocouple yRegisterHub La fonction yRegisterHub permet d indiquer sur quelle machine se trouve les modules Yoctopuce ou plus exactemenent sur quelle machine tourne le programme VirtualHub Dans notre cas l adresse 127 0 0 1 4444 indique la machine locale en utilisant le port 4444 le port standard utilis par Yoctopuce Vous pouvez parfaitement changer cette adresse et mettre l ad
141. de code Il suffit d appeler la fonction yDisableExceptions pour commuter la librairie dans un mode o les exceptions de chaque fonction sont syst matiquement remplac es par des valeurs de retour particuli res qui peuvent tre test es par l appelant lorsque c est pertinent Le nom de la valeur de retour en cas d erreur pour www yoctopuce com 89 14 Utilisation du Yocto Thermocouple en Python chaque fonction est syst matiquement document dans la r f rence de la librairie Il suit toujours la m me logique une m thode get state retournera une valeur Y STATE NVALID une m thode get currentValue retournera une valeur Y CURRENTVALU T NVALID etc Dans tous les cas la valeur retourn e sera du type attendu et ne sera pas un pointeur nul qui risquerait de faire crasher votre programme Au pire si vous affichez la valeur sans la tester elle sera hors du cadre attendu pour la valeur retourn e Dans le cas de fonctions qui ne retournent priori pas d information la valeur de retour sera YAPI SUCCESS si tout va bien et un code d erreur diff rent en cas d chec Quand vous travaillez sans les exceptions il est possible d obtenir un code d erreur et un message expliquant l origine de l erreur en le demandant l objet qui a retourn une erreur l aide des m thodes errType et errMessage Ce sont les m me informations qui auraient t associ es l excep
142. 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 18 www yoctopuce com 5 Programmation concepts g n raux d un certain nombre de m thodes permettant d num rer les fonctionnalit s disponibles sur un module 5 2 Le module Yocto Thermocouple Le module Yocto Thermocouple offre deux instances de la fonction Temperature correspondant la temp rature aux l extr mit des deux thermocouples La pr cision nominale de la mesure l extr mit des thermocouples est de 0 25 degr s Celsius plus 1 de la diff rence de temp rature entre le circuit du capteur et l extr mit sensible du thermocouple module Module attribut type modifiable 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 usbBandwidth Type num r modifiable temperature1 Temperature temperature2 Temperature attribut type mod
143. def get_friendlyName Le cha ne retourn e utilise soit les noms logiques du module et de l enregistreur de donn es si ils sont d finis soit respectivement le num ro de s rie du module et l identifant mat riel de l enregistreur de donn es par exemple MyCustomName relay1 Retourne une chaine de caract res identifiant l enregistreur de donn es en utilisant les noms logiques ex MyCustomName relayl En cas d erreur d clenche une exception ou retourne Y_FRIENDLYNAME INVALID 254 www yoctopuce com 19 R f rence de l API de haut niveau datalogger get_functionDescriptor YDataLogger datalogger functionDescriptor Retourne un identifiant unique de type YFUN_DESCR correspondant a la fonction function get_functionDescriptor function get_functionDescriptor function get_functionDescriptor YFUN_DESCR get_functionDescriptor YFUN_DESCR functionDescriptor function get_functionDescriptor YFUN_DESCR function get_functionDescriptor As YFUN DESCR YFUN_DESCR get_functionDescriptor String get_functionDescriptor def 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 ww
144. derni re erreur survenue lors de l utilisation du capteur de temp rature function get_errorType function get_errorType function get_errorType YRETCODE get_errorType function get_errorType YRETCODE function get_errorType As YRETCODE YRETCODE get_errorType int get_errorType def 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 capteur de temp rature www yoctopuce com 207 19 R f rence de l API de haut niveau temperature get_friendiyName YTemperature temperature friendlyName Retourne un identifiant global du capteur de temp rature au format NOM_MODULE NOM_FONCTION function get_friendlyName function get_friendlyName function get_friendlyName string get_friendlyName NSString friendlyName string get_friendlyName String get_friendlyName def get_friendlyName Le chaine retourn e utilise soit les noms logiques du module et du capteur de temp rature si ils sont d finis soit respectivement le num ro de s rie du module et l identifant mat riel du capteur de temp rature par exemple MyCustomName relayl1 Retourne une cha ne de caract res identifiant le capteur de temp rature en utilisant les noms logiques ex MyCustomNam
145. document getElementByld temp vall value templ get currentValue document getElementById temp val2 value temp2 get currentValue else document getElementByld msg value Module not connected setTimeout refresh 500 gt lt SCRIPT gt lt HEAD gt lt BODY onload refresh gt Module to use lt input id serial gt lt input id msg style color red border none readonly gt lt br gt channel 1 temperature lt input id temp vall readonly gt amp deg C lt br gt channel 2 temperature lt input id temp val2 readonly gt amp deg C lt br gt lt BODY gt lt HTML gt 7 3 Contr le de la partie module Chaque module peut tre contr l d une mani re similaire vous trouverez ci dessous un simple programme d exemple affichant les principaux param tres d un module et permettant d activer la balise de localisation lt HTML gt lt HEAD gt lt TITLE gt Module Control lt TITLE gt lt SCRIPT type text javascript src yocto api js gt lt SCRIPT gt lt SCRIPT language javascriptl 5 type text JavaScript gt 2S www yoctopuce com 33 7 Utilisation du Yocto Thermocouple en Javascript Use explicit error handling rather than exceptions yDisableExceptions Setup the API to use the VirtualHub on local machine if yRegisterHub http 127 0 0 1 4444 VAPI SUCCESS alert Me anno Contact Virtcual Hublon le OR Oran ir var module
146. ductname end end 18 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 124 www yoctopuce com 19 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 Thermocouple 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
147. e NSString logicalName function get_logicalName string function get_logicalName As String string get_logicalName String get_logicalName def get_logicalName YModule target get_logicalName Retourne une chaine de caract res repr sentant le nom logique du module YModule En cas d erreur d clenche une exception ou retourne Y_LOGICALNAME_INVALID www yoctopuce com 169 19 R f rence de l API de haut niveau module get_luminosity module luminosity Retourne la luminosit des leds informatives du module valeur entre O et 100 function get_luminosity function get_luminosity function get_luminosity cep Jint get_luminosity _ int luminosity pas function get_luminosity Longint v function get_luminosity As Integer cs _ Jint get_luminosity java Jint get_luminosity def get_luminosity 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_LUMINOSTTY_INVALID YModule 170 www yoctopuce com 19 R f rence de l API de haut niveau module get_persistentSettings module gt persistentSettings Retourne l tat courant des r glages persistents du module function get_persistentSettings function get_persistentSettings function get_persistentSettings Y_PER
148. e 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 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 la description des fonctions du module 1 1 Pr requis Pour pouvoir profiter pleinement de votre module Yocto Thermocouple 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 1 support yoctopuce com www yoctopuce com 1 Introduction n cessitent pas l installation de driver ou pilote sp cifiques car ils utilisent le driver HID fourni en standard dans tous les syst mes d exploitation Les versions de Windows actuellement support es sont Windows XP Windows 2003 Windows Vista et Windows 7 Les versions 32 bit et 64 bit
149. e la technologie employ e par le micro processeur du module se situe aux alentour de 100000 cycles Pour r sumer vous ne pouvez employer la fonction YModule saveToFlash que 100000 fois au cours de la vie du module Veillez donc ne pas appeler cette fonction depuis l int rieur d une boucle Enumeration des modules Obtenir la liste des modules connect s se fait l aide de la fonction YModule yFirstModule qui renvoie le premier module trouv il suffit ensuite d appeler la mehode nextModule de cet objet pour trouver les modules suivants et ce tant que la r ponse n est pas un null Ci dessous un petit exemple listant les module connect s import com yoctopuce YoctoAPI public class Demo publie static void main String args try setup the API to use local VirtualHub VAPIMRESES Le AUDE TP Or Grell i INcartchA MAPISExcebtrontex t System out prankin Meannok contact Vaintualhub ony 1270 0 2 ex getLocalizedMessage System out println Ensure that the VirtualHub application is running System exit 1 oms Lem out hpr rme MADE vices ED YModule module YModule FirstModule while module null bey 4 System out printin module get_serialNumber module get productName ea chy VAP ERE ce pieltonme gt x i break module module nextModule YAPI FreeAPI www yoctopuce com 95 15 Utilisation du Yocto Thermocouple en Java 15 4
150. e sensor YFindTemperature paramstr 1 temperaturel module sensor get module serial module get serialNumber chl YFindTemperature serial temperaturel ch2 YFindTemperature serial temperature2 done false repeat if sensor isOnline then begin eee enanne Me Eont ToS CMS EL Teur reme e ar Te Weiwei enanne Nie eoat ToS tr Cli Age reur re neva lme OC Writeln press CECICCR EO EXTENGI Sleep 1000 end else begin Writeln Module not connected check identification and USB cable done true end until done end Il n y a que peu de lignes v ritablement importantes dans le code pr c dent Nous allons les expliquer en d tail 80 www yoctopuce com 13 Utilisation du Yocto Thermocouple en Delphi yocto_api et yocto_temperature Ces deux unit s permettent d avoir acc s aux fonctions permettant de g rer les modules Yoctopuce yocto api doit toujours tre utilis yocto temperature est n cessaire pour g rer les modules contenant un capteur de temp rature comme le Yocto Thermocouple yRegisterHub La fonction yRegisterHub initialise l API de Yoctopuce en indiquant o les modules doivent tre recherch s Utilis e avec le param tre usb elle permet de travailler avec les modules connect s localement la machine Si l initialisation se passe mal cette fonction renverra une valeur diff rente de YAPI SUCCESS et retournera via le param tre errmsg un explica
151. e a chaque notification p riodique temperature registerValueCallback callback Enregistre la fonction de callback qui est appel e a chaque changement de la valeur publi e temperature set_highestValue newval www yoctopuce com 197 19 R f rence de l API de haut niveau Modifie la m moire de valeur maximale observ e temperature set_logFrequency newval Modifie la fr quence d enregistrement des mesures dans le datalogger temperature set_logicalName newval Modifie le nom logique du capteur de temp rature temperature set_lowestValue newval Modifie la m moire de valeur minimale observ e temperature set_reportFrequency newval Modifie la fr quence de notification p riodique des valeurs mesur es temperature set_resolution newval Modifie la r solution des valeurs physique mesur es temperature set_sensorType newval Change le type de senseur utilis par le module temperature 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 temperature 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 198 www yoctopuce com 19 R f rence de l API de haut niveau YTemperature FindTemperature YTemperature yFindTemperature Permet de ret
152. e 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_persistentSettings Retourne l tat courant des r glages persistents du module module get_productld 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_upTime Retourne le numbre de millisecondes coul es depuis la mise sous tension du module module get_usbBandwidth Retourne le nombre d interface USB utilis par le 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 gt 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
153. e de l erreur en le demandant l objet qui a retourn une erreur l aide des m thodes errType et errMessage Ce sont les m me informations qui auraient t associ es l exception si elles avaient t actives 62 www yoctopuce com 11 Utilisation du Yocto Thermocouple en VisualBasic NET VisualBasic a longtemps t la porte d entr e privil gi e vers le monde Microsoft Nous nous devions donc d offrir notre interface pour ce langage m me si la nouvelle tendance est le C Tous les exemples et les mod les de projet sont test s avec Microsoft Visual Basic 2010 Express disponible gratuitement sur le site de Microsoft 1 11 1 Installation T l chargez la librairie Yoctopuce pour Visual Basic depuis le site web de Yoctopuce Il n y a pas de programme d installation copiez simplement de contenu du fichier zip dans le r pertoire de votre choix Vous avez besoin essentiellement du contenu du r pertoire Sources Les autres r pertoires contiennent la documentation et quelques programmes d exemple Les projets d exemple sont des projets Visual Basic 2010 si vous utilisez une version ant rieure il est possible que vous ayez reconstruire la structure de ces projets 11 2 Utilisation l API yoctopuce dans un projet Visual Basic La librairie Yoctopuce pour Visual Basic NET se pr sente sous la forme d une DLL et de fichiers sources en Visual Basic La DLL n est pas une DLL NET mais une DLL classique crite en C
154. e fixe Le code n cessaire cet effet est assez similaire au code utilis pour d tecter l arriv e d un module Cette technique est tr s utile en particulier si vous voulez d tecter des changements de valeur tr s rapides de l ordre de quelques millisecondes car elle est beaucoup plus efficace en terme de traffic sur USB qu une lecture r p t e de la valeur et permet donc des meilleures performances L appel des callbacks Afin de permettre un meilleur contr le du contexte d appel les callbacks de changement de valeurs et les callback p riodiques ne sont appel s que pendant l ex cution des fonctions YAPI Sleep et YAPI HandleEvents Vous devez donc appeler une de ces fonctions a intervalle r gulier soit depuis un timer soit depuis un thread parall le while true boucle d attente permettant de d clencher les callbacks YAPI Sleep 500 ref errmsg Dans les environnements de programmation ou seul le thread d interface a le droit d interagir avec l utilisateur il est souvent appropri d appeler YAPI HandleEvents depuis ce thread 110 www yoctopuce com 17 Programmation avanc e Le callback de changement de valeur Ce type de callback est appel lorsque un capteur de temp rature change de mani re significative Il prend en param tre la fonction concern e et la nouvelle valeur sous forme d une cha ne de x 1 caract res static void valueChangeCallback YTemperature
155. e 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 184 www yoctopuce com 19 R f rence de l API de haut niveau module nextModule YModule Continue l num ration des modules commenc e l aide de yFirstModule function nextModule function nextModule function nextModule YModule nextModule YModule nextModule function nextModule TYModule function nextModule As YModule YModule nextModule YModule nextModule def nextModule Retourne un pointeur sur un objet YModule accessible en ligne ou nul 1 lorsque l num ration est termin e www yoctopuce com 185 19 R f rence de l API de haut niveau module reboot YModule Agende un simple red marrage du module dans un nombre donn de secondes function reboot secBeforeReboot function reboot secBeforeReboot function reboot secBeforeReboot int reboot int secBeforeReboot int reboot int secBeforeReboot pas_ function reboot secBeforeReboot Longint Longint vo function reboot As Integer int reboot int secBeforeReboot int reboot int secBeforeReboot def reboot secBeforeReboot YModule target reboot secBeforeReboot Param tres secBeforeReboot nombre de secondes avant de red marrer Retourne YAPI_SUCCESS si l op ration se d rou
156. e isOnline de l objet renvoy par FindTemperature permet de savoir si le module correspondant est pr sent et en tat de marche get_currentValue La m thode get currentValue de l objet renvoy par YTemperature FindTemperature permet d obtenir la temp rature actuelle mesur e par le capteur La valeur de retour est un nombre flottant repr sentant directement le nombre de degr s Celsius Un exemple r el Lancez votre interpr teur Python et ouvrez le script correspondant fourni dans le r pertoire Examples Doc GettingStarted Yocto Thermocouple de la librairie Yoctopuce Vous reconnaitrez dans cet exemple l utilisation des fonctions expliqu es ci dessus cette fois utilis es avec le d corum n cessaire en faire un petit programme d exemple concret 86 www yoctopuce com 14 Utilisation du Yocto Thermocouple en Python usr bin python coding utf 8 import os sys tron VOCEO api importi from yocto temperature import def usage scriptname os path basename sys argv 0 print Usage print scriptname lt serial number gt print scriptname lt logical name gt print scriptname any sys exit def die msg Sys eritemo ehec k USB Rcab rE errmsg YRefParam if len sys argv lt 2 usage target sys argv l Setup the API to use local USB devices if YAPI RegisterHub usb errmsg YAPI SUCCESS sys exit init error errmsg value if target any
157. e l ex cutable de votre application 13 2 Contr le de la fonction Temperature Lancez votre environnement Delphi copiez la DLL yapi dil dans un r pertoire et cr ez une nouvelle application console dans ce m me r pertoire et copiez coller le code ci dessous program helloworld SAPPTYPE CONSOLE uses 1 En fait Borland a diffus des versions gratuites pour usage personnel de Delphi 2006 et Delphi 2007 en cherchant un peu sur internet il est encore possible de les t l charger Les librairies Delphi sont r guli rement test es avec Delphi 5 et Delphi XE2 www yoctopuce com FR libraries php 4 Utilisez le menu outils options d environement www yoctopuce com 79 13 Utilisation du Yocto Thermocouple en Delphi Systm le Windows yocto api yocto temperature Procedure Usage var exe string begin exe ExtractFileName paramstr 0 WritelLn exe lt serial number gt Writeln exe lt logical name gt WriteLn exe any halt End var sensor ch1l ch2 TYTemperature module TYModule errmsg seeds 3 Eds done boolean pegin if paramcount lt 1 then usage Setup the API to use local USB devices if yRegisterHub usb errmsg lt gt YAPI SUCCESS then begin Write RegisterHub error errmsg halt end if paramstr 1 any then begin sensor yFirstTemperature if sensor nil then begin writeln No module connected check USB cable halt end end els
158. e projet et choisissez Ajouter puis El ment existant Une fen tre de s lection de fichiers appara t s lectionnez le fichier yocto api cs et les fichiers correspondant aux fonctions des modules Yoctopuce que votre projet va g rer Dans le doute vous pouvez aussi s lectionner tous les fichiers 1 http www microsoft com visualstudio en us products 2010 editions visual csharp express www yoctopuce com FR libraries php 3 Les sources de cette DLL sont disponibles dans l API C www yoctopuce com 71 12 Utilisation du Yocto Thermocouple en C Vous avez alors le choix entre simplement ajouter ces fichiers votre projet ou les ajouter en tant que lien le bouton Ajouter est en fait un menu d roulant Dans le premier cas Visual Studio va copier les fichiers choisis dans votre projet dans le second Visual Studio va simplement garder un lien sur les fichiers originaux Il est recommand d utiliser des liens une ventuelle mise jour de la librairie sera ainsi beaucoup plus facile Ensuite ajoutez de la m me mani re la dll yapi d11 qui se trouve dans le r pertoire Sources d11 Puis depuis la fen tre Explorateur de solutions effectuez un clic droit sur la DLL choisissez Propri t et dans le panneau Propri t s mettez l option Copier dans le r pertoire de sortie toujours copier Vous tes maintenant pr t utiliser vos modules Yoctopuce depuis votre environnement Visual Studio Afin de les garder simples to
159. e relayl En cas d erreur d clenche une exception ou retourne Y_FRIENDLYNAME INVALID 208 www yoctopuce com 19 R f rence de l API de haut niveau temperature get_functionDescriptor YTemperature temperature functionDescriptor Retourne un identifiant unique de type YFUN_DESCR correspondant la fonction function get_functionDescriptor function get_functionDescriptor function get_functionDescriptor YFUN_DESCR get_functionDescriptor YFUN_DESCR functionDescriptor function get_functionDescriptor YFUN_DESCR function get_functionDescriptor As YFUN DESCR YFUN_DESCR get_functionDescriptor String get_functionDescriptor def 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 www yoctopuce com 209 19 R f rence de l API de haut niveau temperature get_functionld YTemperature temperature functionld Retourne l identifiant mat riel du capteur de temp rature sans r f rence au module function get_functionld function get_functionld function get_functionid string get_functionld NSString functionld vo function get_functionld As String stri
160. e target get_sensorType Retourne une valeur parmi Y_SENSORTYPE_DIGITAL Y_SENSORTYPE_TYPE_K Y_SENSORTYPE_TYPE_E Y_SENSORTYPE_TYPE_J Y_SENSORTYPE_TYPE_N Y_SENSORTYPE_TYPE_R Y_SENSORTYPE_TYPE_S Y_SENSORTYPE_TYPE_T Y_SENSORTYPE_PT100_4WIRES Y_SENSORTYPE_PT100_3WIRES et Y_SENSORTYPE_PT100_2WIRES repr sentant le type de capteur de temp rature utilis par le module En cas d erreur d clenche une exception ou retourne Y_SENSORTYPE_INVALID www yoctopuce com 221 19 R f rence de l API de haut niveau temperature get_unit YTemperature temperature unit Retourne l unit dans laquelle la valeur mesur e est exprim e js function get_unit node js function get_unit php _ function get_unit string get_unit NSString unit function get_unit string __vb__ function get_unit As String cs string get_unit String get_unit def get_unit YTemperature target get_unit Retourne une cha ne de caract res repr sentant l unit dans laquelle la valeur mesur e est exprim e En cas d erreur d clenche une exception ou retourne Y_UNIT_INVALID 222 www yoctopuce com 19 R f rence de l API de haut niveau temperature get_userData YTemperature temperature userData Retourne le contenu de l attribut userData pr c demment stock l aide de la m thode set_userData function get_userData function get_userData function get_userData
161. e 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 hub virtuels Lorsqu on utilise un hub virtuel 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 e Objective C Delphi Python VisualBasic Net C Net Javascript Node js PHP Java Java pour Android Ligne de commande M thode de support pour les diff rents langages 24 www yoctopuce com 5 Programmation concepts g n raux 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 nat
162. eadonly gt lt br gt lt span id data gt lt span gt lt BODY gt lt HTML gt Chaque propri t xxx du module peut tre lue grace 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 set xxx Pour plus de d tails concernant ces fonctions utilis es reportez vous aux chapitre API Modifications des r glages du module Lorsque que vous souhaitez modifier les r glages d un module il suffit d appeler la fonction set _xxx correspondante cependant cette modification n a lieu que dans la m moire vive du module si le module red marre les modifications seront perdues Pour qu elle soient m moris es de mani re persistante il est n cessaire de demander au module de sauvegarder sa configuration courante dans sa m moire non volatile Pour cela il faut utiliser la m thode saveToFlash Inversement il est possible de forcer le module oublier ses r glages courants en utilisant la m thode revertFromFlash Ce petit exemple ci dessous vous permet changer le nom logique d un module 34 www yoctopuce com 7 Utilisation du Yocto Thermocouple en Javascript lt HTML gt lt HEAD gt lt TITLE gt Change module settings lt TITLE gt lt SCRIPT type text javascript src yocto_api js gt lt SCRIPI gt lt SCRIPT language javascriptl 5 type text JavaScript gt BSS Use explicit error handling rather than exceptions yDisableExce
163. eger string function functionld ByVal functionindex As Integer As String string functionld int functionindex def functionld functionindex 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 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 www yoctopuce com 159 19 R f rence de l API de haut niveau module functionName YModule Retourne le nom logique de la ni me fonction du module function functionName functionindex function functionName functionindex function functionName functionindex string functionName int functionindex NSString functionName int functionindex function functionName functionindex integer string function functionName ByVal functionindex As Integer As String string functionName int functionindex def functionName functionindex 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 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 160 www yoctopuce com 19 R f rence de l API de haut niveau module functionValue
164. eine op ration La librairie Yoctopuce est pr vue pour vous aider a 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 La mani re la plus simple de contourner le probl me est celle que nous avons employ pour les petits exemples pr c dents de ce chapitre avant d acc der un module on v rifie qu il est en ligne avec la m thode isOnline et on suppose ensuite qu il va y rester pendant la fraction de seconde n cessaire ex cuter les lignes de code suivantes Ce n est pas parfait mais a peut suffire dans certains cas II faut toutefois tre conscient qu on ne peut pas totalement exclure une erreur se produisant apr s le isOnline qui pourrait faire planter le programme La seule mani re de l viter est d impl menter une des deux techniques de gestion des erreurs d crites ci dessous 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 e Si votre code attrape l exception au vol et la g re et tout se passe bien e Si votre programme tourne dans le debugger vous pourrez relativement facilement d terminer o le probl me
165. ement autoris e par le routeur DSL Il faut configurer le VirtualHub pour qu il appelle le script PHP r guli rement Pour cela il faut Lancer un VirtualHub Acc der son interface g n ralement 127 0 0 1 4444 Cliquer sur le bouton configure de la ligne correspondant au VirtualHub lui m me Cliquer sur le bouton edit de la section Outgoing callbacks AON www yoctopuce com 45 8 Utilisation du Yocto Thermocouple en PHP Serial Logical Name Description lAction VIRTHUBO 7d1a86 fb0 VirtualHub configure view log file a RELAYHI1 00055 Yocto PowerRelay configure view log file beacon TMPSENS1 05E7F Yocto Temperature Configure viewlogfile beacon Show device functions Cliquer sur le bouton configure de la premi re ligne MSE Edit parameters for VIRTHUBO 7d1a86fb09 and click on the Save button Serial VIRTHUBO 7d1a86fb09 Product name VirtualHub Software version 10789 Logical name Incoming connections Authentication to read information from the devices NO fes Authentication to make changes to the devices NO gait Outgoing callbacks Callback URL octoHub est Delay between callbacks min 3 s max 600 s This VirtualHub can post the advertised values of all devices on a specific URL on a regular basis If you wish to use this feature choose the callback type follow the steps below carefully 1 Specify the Type of callback you want to use Yocto API callback
166. ent dans la r f rence de la librairie Il suit toujours la m me logique une m thode get state retournera une valeur Y STATE INVALID une m thode get currentValue retournera une valeur Y CURRENTVALUE INVALID etc Dans tous les cas la valeur retourn e sera du type attendu et ne sera pas un pointeur nul qui risquerait T 68 www yoctopuce com 11 Utilisation du Yocto Thermocouple en VisualBasic NET de faire crasher votre programme Au pire si vous affichez la valeur sans la tester elle sera hors du cadre attendu pour la valeur retourn e Dans le cas de fonctions qui ne retournent a priori pas d information la valeur de retour sera YAPI _ SUCCESS si tout va bien et un code d erreur diff rent en cas d chec Quand vous travaillez sans les exceptions il est possible d obtenir un code d erreur et un message expliquant l origine de l erreur en le demandant l objet qui a retourn une erreur l aide des m thodes errType et errMessage Ce sont les m me informations qui auraient t associ es l exception si elles avaient t actives www yoctopuce com 69 70 www yoctopuce com 12 Utilisation du Yocto Thermocouple en C C prononcez C Sharp est un langage orient objet promu par Microsoft qui n est pas sans rappeller Java Tout comme Visual Basic et Delphi il permet de cr er des applications Windows relativement facilement Tous les exemples et les
167. entant le module ici connect en local sur USB YAPI EnableUSBHost this YAPI RegisterHub usb temperature YTemperature FindTemperature THRMCPL1 123456 temperature Pour g rer le hot plug on v rifie que le module est la if temperature isOnline Use temperature get_currentValue erences Voyons maintenant en d tail ce que font ces quelques lignes YAPI EnableUSBHost La fonction YAPI EnableUSBHost initialise l API avec le Context de l application courante Cette fonction prend en argument un objet de la classe android content Context ou d une sous classe Si vous comptez uniquement vous connecter a d autres machines par IP vous cette fonction est factultative YAPI RegisterHub La fonction YAPI RegisterHub initialise l API de Yoctopuce en indiquant o les modules doivent tre recherch s Le param tre est l adresse du virtual hub capable de voir les modules Si l on passe la chaine de caract re usb l API va travailler avec les modules connect s localement la machine Si l initialisation se passe mal une exception sera g n r e YTemperature FindTemperature La fonction YTemperature FindTemperature permet de retrouver un capteur de temp rature en fonction du num ro de s rie de son module h te et de son nom de fonction Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez pr alablement configur s Imaginons un module Yocto Thermocouple avec
168. eptions pour commuter la librairie dans un mode o les exceptions de chaque fonction sont syst matiquement remplac es par des valeurs de retour particuli res qui peuvent tre test es par l appelant lorsque c est pertinent Le nom de la valeur de retour en cas d erreur pour chaque fonction est syst matiquement document dans la r f rence de la librairie Il suit toujours la m me logique une m thode get state retournera une valeur Y STATE INVALID une m thode get currentValue retournera une valeur Y CURRENTVALUE INVALID etc Dans tous les cas la valeur retourn e sera du type attendu et ne sera pas un pointeur nul qui risquerait de faire crasher votre programme Au pire si vous affichez la valeur sans la tester elle sera hors du cadre attendu pour la valeur retourn e Dans le cas de fonctions qui ne retournent priori pas d information la valeur de retour sera YAPI SUCCESS si tout va bien et un code d erreur diff rent en cas d chec T Quand vous travaillez sans les exceptions il est possible d obtenir un code d erreur et un message expliquant l origine de l erreur en le demandant l objet qui a retourn une erreur l aide des m thodes errType et errMessage Ce sont les m me informations qui auraient t associ es l exception si elles avaient t actives 84 www yoctopuce com 14 Utilisation du Yocto Thermocouple en Python Python est un langage interpr
169. er le nombre de points de correction auquel il s attend public static double CustomInterpolation3Points double rawValue int calibType int parameters double beforeValues double afterValues double result la valeur a corriger est rawValue les points de calibrations sont dans beforeValues et afterValues Feu Saas interpolation de votre choix return result YAPI RegisterCalibrationHandler 3 CustomInterpolation3Points Notez que ces callbacks d interpolation sont globaux et non pas sp cifiques a chaque fonction Ainsi a chaque fois que quelqu un demandera une valeur a un module qui disposera dans sa m moire flash du bon nombre de points de calibration le callback correspondant sera appel pour corriger la valeur avant de la renvoyer permettant ainsi de corriger les mesures de mani re totalement transparente www yoctopuce com 117 118 www yoctopuce com 18 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 Y
170. es librairies syst mes requises e Pour Windows yocto lib e Pour Mac OS X libyocto IOKit framework et CoreFoundation framework e Pour Linux libyocto libm libpthread libusb1 0 et libstdc Avec GCC la ligne de commande de compilation est simplement Gise aig 6 e yeo Im Ehre ds ROSES ECS 56 www yoctopuce com 10 Utilisation du Yocto Thermocouple en Objective C Objective C est le langage de pr dilection pour programmer sous Mac OS X en raison de son int gration avec le g n rateur d interfaces Cocoa Pour pouvoir utiliser la libraire Objective C vous aurez imp rativement besoin de XCode 4 2 qui est disponible gratuitement sous Lion Si vous tes encore sous Snow Leopard il vous faudra tre enregistr comme d veloppeur aupr s d Apple pour pourvoir t l charger XCode 4 2 La librairie Yoctopuce est compatible ARC Il vous sera donc possible de coder vos projet soit en utilisant la traditionnelle m thode de retain release soit en activant l Automatic Reference Counting Les librairies Yoctopuce pour Objective C vous sont fournies au format source dans leur int gralit Une partie de la librairie de bas niveau est crite en C pur sucre mais vous n aurez a priori pas besoin d interagir directement avec elle tout a t fait pour que l interaction soit le plus simple possible depuis Objective C Vous allez rapidement vous rendre compte que l API Objective C d finit beaucoup de fonctions qui retournent des obj
171. est pas la plus souhaitable la librairie Yoctopuce offre une autre alternative pour la gestion des erreurs permettant de faire un programme robuste sans devoir www yoctopuce com 61 10 Utilisation du Yocto Thermocouple en Objective attraper les exceptions chaque ligne de code Il suffit d appeler la fonction yDisableExceptions pour commuter la librairie dans un mode o les exceptions de chaque fonction sont syst matiquement remplac es par des valeurs de retour particuli res qui peuvent tre test es par l appelant lorsque c est pertinent Le nom de la valeur de retour en cas d erreur pour chaque fonction est syst matiquement document dans la r f rence de la librairie Il suit toujours la m me logique une m thode get state retournera une valeur Y STATE INVALID une m thode get currentValue retournera une valeur Y CURRENTVALUE INVALID etc Dans tous les cas la valeur retourn e sera du type attendu et ne sera pas un pointeur nul qui risquerait de faire crasher votre programme Au pire si vous affichez la valeur sans la tester elle sera hors du cadre attendu pour la valeur retourn e Dans le cas de fonctions qui ne retournent priori pas d information la valeur de retour sera YAPI SUCCESS si tout va bien et un code d erreur diff rent en cas d chec Quand vous travaillez sans les exceptions il est possible d obtenir un code d erreur et un message expliquant l origin
172. estValue temperature setHighestValue Modifie la m moire de valeur maximale observ e function set_highestValue newval function set_highestValue newval function set_highestValue newval int set_highestValue double newval int setHighestValue double newval function set_highestValue newval double integer v _ function set_highestValue ByVal newval As Double As Integer int set_highestValue double newval int set_highestValue double newval def set_highestValue newval YTemperature target set_highestValue newval Param tres newval une valeur num rique repr sentant la m moire de valeur maximale observ 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 YTemperature 232 www yoctopuce com 19 R f rence de l API de haut niveau temperature set_logFrequency YTemperature temperature setLogFrequency Modifie la fr quence d enregistrement des mesures dans le datalogger function set_logFrequency newval function set_logFrequency newval function set_logFrequency newval int set_logFrequency const string amp newval int setLogFrequency NSString newval function set_logFrequency newval string integer function set_logFrequency ByVal newval As String As Integer int set_logFrequency string newval int set_logFrequency String newval def set_logFrequen
173. esures ont t charg es Retourne un nombre entier entre 0 et 100 repr sentant l avancement du chargement des donn es demand es www yoctopuce com 283 19 R f rence de l API de haut niveau dataset get_startTimeUTC YDataSet dataset startTimeUTC Retourne l heure absolue du d but des mesures disponibels sous forme du nombre de secondes depuis le 1er janvier 1970 date heure au format Unix function get_startTimeUTC function get_startTimeUTC function get_startTimeUTC s64 get_startTimeUTC s64 startTimeUTC function get_startTimeUTC int64 function get_startTimeUTC As Long long get_startTimeUTC long get_startTimeUTC def get_startTimeUTC Lorsque l objet YDataSet est cr l heure de d part est celle qui a t pass e en param tre la fonction get_dataSet D s le premier appel la m thode loadMore l heure de d part est mise jour la premi re mesure effectivement disponible dans l enregistreur de donn es pour la plage sp cifi e Retourne un entier positif correspondant au nombre de secondes coul es entre le 1er janvier 1970 et la premi re mesure enregistr e 284 www yoctopuce com 19 R f rence de l API de haut niveau dataset get_summary dataset summary Retourne un objet YMeasure r sumant tout le YDataSet function get_ summary function get_summary function get_summary YMeasure get_summary
174. et_userData datalogger 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 242 www yoctopuce com 19 R f rence de l API de haut niveau YDataLogger FindDataLogger YDataLogger yFindDataLogger Permet de retrouver un enregistreur de donn es d apr s un identifiant donn function yFindDataLogger func function FindDataLogger func function yFindDataLogger func YDataLogger yFindDataLogger string func YDataLogger yFindDataLogger NSString func function yFindDataLogger func string TYDataLogger function yFindDataLogger ByVal func As String As YDataLogger YDataLogger FindDataLogger string func YDataLogger FindDataLogger String func def FindDataLogger func L identifiant peut tre sp cifi sous plusieurs formes e NomLogiqueFonction e NoSerieModule ldentifiantFonction e NoSerieModule NomLogiqueFonction e NomLogiqueModule ldentifiantMat riel e NomLogiqueModule NomLogiqueFonction Cette fonction n exige pas que l enregistreur de donn es soit en ligne au moment ou elle est appel e l objet retourn sera n anmoins valide Utiliser la m thode YDataLogger isOnline pour tester si l enregistreur de donn es est utilisable un moment donn En cas d ambiguit lorsqu on fait une recherche par nom logique aucune erreur ne sera notifi e la premi re instan
175. ets Vous ne devez jamais d sallouer ces objets vous m me Ils seront d sallou s automatiquement par l API la fin de l application Afin des les garder simples tous les exemples fournis dans cette documentation sont des applications consoles Il va de soit que que les fonctionnement des librairies est strictement identiques si vous les int grez dans une application dot e d une interface graphique Vous trouverez sur le blog de Yoctopuce un exemple d taill avec des s quences vid o montrant comment int grer les fichiers de la librairie vos projets 10 1 Contr le de la fonction Temperature Lancez Xcode 4 2 et ouvrez le projet exemple correspondant fourni dans le r pertoire Examples Doc GettingStarted Yocto Thermocouple de la librairie Yoctopuce import lt Foundation Foundation h gt import lyocto api h import yocto temperature h static void usage void NSLog usage demo lt serial number gt 1 www yoctopuce com FR libraries php 2 www yoctopuce com FR article nouvelle librairie objective c pour mac os x www yoctopuce com 57 10 Utilisation du Yocto Thermocouple en Objective NSLog demo lt logical_name gt NSLog demo any use any discovered device a i exac H Int nehi he arge const char arqv NSError error Ti Warge 2 4 usage autoreleasepool Setup the API to use local USB devices if YAPI RegisterHub usb amp error YAPI SUCCESS
176. eure ou gale 1 s la mesure repr sente une valeur instantan e Lorsque la fr quence est inf rieure la mesure comporte des valeurs minimale moyenne et maximale distinctes sur la base d un chantillonnage effectu automatiquement par le module 1 La valeur pass e en param tre est la m me que celle rendue par la m thode ge t advertisedValue www yoctopuce com 111 17 Programmation avanc e L exemple suivant met en place un callback p riodique 4 fois par minute pour la premi re fonction Temperature disponible YTemperature f YTemperature FirstTemperature f set reportFrequency 4 m f registerTimedReportCallback periodicCallback Comme pour les callback de changement valeur chaque fonction d un module peut avoir un callback p riodique diff rent Fonction callback g n rique Parfois il est souhaitable d utiliser la m me fonction de callback pour diff rents types de senseurs par exemple pour une application de mesure g n rique Ceci est possible en d finissant le callback pour un objet de classe YSensor plut t que YTemperature Ainsi la m me fonction callback pourra tre utilis e avec toutes les sous classes de YSensor et en particulier avec YTemperature A l int rieur du callback on peut utiliser la m thode get unit pour obtenir l unit physique du capteur si n cessaire pour l affichage Un exemple concret Vous trouverez un exemple concret d montrant toutes ces techniques dans
177. evoir attraper les exceptions chaque ligne de code Il suffit d appeler la fonction yDisableExceptions pour commuter la librairie dans un mode o les exceptions de chaque fonction sont syst matiquement remplac es par des valeurs de retour particuli res qui peuvent tre test es par l appelant lorsque c est pertinent Le nom de la valeur de retour en cas d erreur pour chaque fonction est syst matiquement document dans la r f rence de la librairie Il suit toujours la m me logique une m thode get state retournera une valeur Y STATE INVALID une m thode get currentValue retournera une valeur Y CURRENTVALUE INVALID etc Dans tous les cas la valeur retourn e sera du type attendu et ne sera pas un pointeur nul qui risquerait de faire crasher votre programme Au pire si vous affichez la valeur sans la tester elle sera hors du cadre attendu pour la valeur retourn e Dans le cas de fonctions qui ne retournent priori pas d information la valeur de retour sera YAPI SUCCESS si tout va bien et un code d erreur diff rent en cas d chec T Quand vous travaillez sans les exceptions il est possible d obtenir un code d erreur et un message expliquant l origine de l erreur en le demandant l objet qui a retourn une erreur l aide des m thodes errType et errMessage Ce sont les m me informations qui auraient t associ es l exception si elles avaient t actives 48 w
178. exception ou retourne un code d erreur n gatif 146 www yoctopuce com 19 R f rence de l API de haut niveau YAPI Sleep YAPI ySleep Effectue une pause dans l ex cution du programme pour une dur e sp cifi e function ySleep ms_duration errmsg function Sleep ms_duration errmsg function ySleep ms_duration amp errmsg YRETCODE ySleep unsigned ms_duration string amp errmsg YRETCODE ySleep unsigned ms_duration NSError errmsg function ySleep ms_duration integer var errmsg string integer function ySleep ByVal ms_duration As Integer ByRef errmsg As String As Integer int Sleep int ms_duration ref string errmsg int Sleep long ms_duration def Sleep ms_duration errmsg None L attente est passive c est dire qu elle n occupe pas significativement le processeur de sorte a 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_duration un entier correspondant la dur e de la pause en millisecondes errmsg une cha ne de caract res pass e par r f rence dans laquelle sera stock un ventuel message d erreur Reto
179. 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 www yoctopuce com 125 19 R f rence de l API de haut niveau 19 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 lt script type text javascript src yocto_api js gt lt script gt var yoctolib require yoctolib var YAPI yoctolib YAPI var YModule yoctolib YModule require_once yocto_api php include yocto_api h import yocto_api h uses yocto_api vb yocto api vb yocto_api cs import com yoctopuce YoctoAPI YMod
180. ez 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 Thermocouple 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 a 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 et YoctoHub Wireless Vous pouvez ajouter une connectivit r seau votre Yocto Thermocouple gr ce aux hubs YoctoHub Ethernet et YoctoHub Wireless Le premier offre une connectivit Ethernet le second offre une connectivit Wifi Chacun de ces hubs peut piloter jusqu trois modules Yoctopuce et se comporte exactement comme un ordinateur normal qui ferait tourner un VirtualHub Cable
181. fct string value Console Writehanel fel get handwaneld i W 2 svallue l 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 Si vous avez besoin de garder la r f rence sur votre objet vous pouvez la stocker directement dans l objet YTemperature l aide de la fonction set _userData Il vous sera ainsi possible de la r cup rer dans la proc dure globale de callback en appelant get_userData Mise en place du callback de changement de valeur Le callback est mis en place pour une fonction Temperature donn e a l aide de la m thode registerValueCallback L exemple suivant met en place un callback pour la premi re fonction Temperature disponible YTemperature f YTemperature FirstTemperature f registerValueCallback valueChangeCallback Vous remarquerez que chaque fonction d un module peut ainsi avoir un callback diff rent Par ailleurs si vous prenez go t aux callback de changement de valeur sachez qu il ne sont pas limit s aux senseurs et que vous pouvez les utiliser avec tous les modules Yoctopuce par exemple pour tre notifi en cas de commutation d un relais Le callback p riodique Ce type de callback est automatiquement appel intervalle r guliers La fr quence d appel pe
182. fen tre vous permet entre autres de jouer avec avec votre module pour en v rifier sont fonctionnement les valeurs de temp rature y sont en effet affich es en temps r el 3 3 Configuration Si dans la liste de modules vous cliquez sur le bouton configure correspondant a votre module la fen tre de configuration apparait THRMCPL1 05BDF Edit parameters for device THRMCPL1 05BDF and click on the Save button Serial THRMCPL1 05BDF Product name Yocto Thermocouple Firmware 7726 Cugrade Logical name Luminosity ij signal leds only Device functions Each function ofthe device has a physical name and a logical name You can change the logical name using the rename button You can also setup the type of thermocouple you are using THRMCPL1 05BDF temperature1 rename Thermocouple type TYPEK x THRMCPL1 05BDF temperature2 Taname Thermocouple type TYPEK r Save Cancel Configuration du module Yocto Thermocouple Firmware Le firmware du module peut tre facilement tre mis a 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 a jour un firmware cliquez simplement sur le bouton upgrade de la fen tre de configuration et suivez les instructions Si
183. fonctionner dans les deux modes ils s agit de ports OTG On The Go Il se trouve que beaucoup d appareils portables ne fonctionnent qu en mode device ils sont con us pour tre branch s chargeur ou un ordinateur de bureau rien de plus Il est donc fortement recommand de lire attentivement les sp cifications techniques d un produit fonctionnant sous Android avant d esp rer le voir fonctionner avec des modules Yoctopuce Disposer d une version correcte d Android et de ports USB fonctionnant en mode host ne suffit malheureusement pas pour garantir un bon fonctionnement avec des modules Yoctopuce sous Android En effet certains constructeurs configurent leur image Android afin que les p riph riques autres que clavier et mass storage soit ignor s et cette configuration est difficilement d tectable En l tat actuel des choses le meilleur moyen de savoir avec certitude si un mat riel Android sp cifique fonctionne avec les modules Yoctopuce consiste essayer Mat riel support La librairie est test e et valid e sur les machines suivantes e Samsung Galaxy S3 e Samsung Galaxy Note 2 e Google Nexus 5 Google Nexus 7 Acer Iconia Tab A200 e Asus Tranformer Pad TF300T e Kurio 7 Si votre machine Android n est pas capable de faire fonctionner nativement des modules Yoctopuce il vous reste tout de m me la possibilit de contr ler distance des modules pilot s par un VirtualHub sur un autre OS ou un YoctoHub 16 4
184. function refresh var serial document getElementByld serial value if serial Detect any conected module suitable for the demo module yFirstModule nextModule if module serial modulerigeesestallNumoexi i document getElementBylId serial value serial module yFindModule serial if module isOnline document getElementByld msg value Var henly serail rmodulleigebeservalNumber O EBr html logical name module get_logicalName lt br gt html luminosity t module get_luminosity lt br gt html beacon if module get beacon Y BEACON ON html ON lt a href javascript beacon Y BEACON OFF gt switch off lt a gt lt br gt else html OFF lt a href javascript beacon Y BEACON ON gt switch on lt a gt lt br gt html upTime parseInt modulie get_upTime 1000 sec lt br gt html lt USB current tmodule get usbCurrent AN mA lt br gt html logs lt br gt lt pre gt module get_lastlogs lt pre gt lt br gt document getElementBylId data innerHTML html else document getHlementById msg value Module not connected setTimeout refresh 1000 function beacon state module set_beacon state refresh gt lt SCRIPT gt lt HEAD gt lt BODY onload refresh gt Module to use lt input id serial gt lt input id msg style color red border none r
185. g msValidity def load msValidity Par d faut lorsqu on acc de a 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 msValidity un 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 266 www yoctopuce com 19 R f rence de l API de haut niveau datalogger load_async YDataLogger Met en cache les valeurs courantes de l enregistreur de donn es avec une dur e de validit sp cifi e function load_async msValidity callback context function load_async msValidity callback context Par d faut lorsqu on acc de a 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 ret
186. ger le filtre de la fen tre de s lection de fichiers sinon la DLL n appara tra pas 64 www yoctopuce com 11 Utilisation du Yocto Thermocouple en VisualBasic NET isOnline La m thode isOnline de l objet renvoy par yFindTemperature permet de savoir si le module correspondant est pr sent et en tat de marche get_currentValue La m thode get currentValue de l objet renvoy par yFindTemperature permet d obtenir la temp rature actuelle mesur e par le capteur La valeur de retour est un nombre flottant repr sentant directement le nombre de degr s Celsius Un exemple r el Lancez Microsoft VisualBasic et ouvrez le projet exemple correspondant fourni dans le r pertoire Examples Doc GettingStarted Yocto Thermocouple de la librairie Yoctopuce Vous reconnaitrez dans cet exemple l utilisation des fonctions expliqu es ci dessus cette fois utilis es avec le d corum n cessaire en faire un petit programme d exemple concret Module Modulel Private Sub Usage Dim execname System AppDomain CurrentDomain FriendlyName Console WriteLine Usage Console WriteLine execname lt serial number gt Console WriteLine execname lt logical name gt Console WriteLine execname any System Threading Thread Sleep 2500 End End Sub Sub Main Dim argv As String System Environment GetCommandLineArgs Dim errmsg As String Dim target serial As String Dim tsensor chl ch2 As YTemperature
187. get_autoStart function get_autoStart Y_AUTOSTART_enum get_autoStart Y_AUTOSTART_enum autoStart pas function get_autoStart Integer function get_autoStart As Integer int get_autoStart int get_autoStart def get_autoStart YDataLogger target get_autoStart Retourne soit Y_AUTOSTART_OFF soit Y_AUTOSTART_ ON selon le mode d activation automatique de l enregistreur de donn es la mise sous tension En cas d erreur d clenche une exception ou retourne Y_AUTOSTART_INVALID 248 www yoctopuce com 19 R f rence de l API de haut niveau datalogger get_currentRunindex YDataLogger datalogger currentRunindex Retourne le num ro du Run actuel correspondant au nombre de fois que le module a t mis sous tension avec la fonction d enregistreur de donn es active function get_currentRunindex function get_currentRunindex function get_currentRunindex int get_currentRunindex int currentRunindex function get_currentRunIndex Longint function get_currentRunindex As Integer int get_currentRunIndex int get_currentRunindex def get_currentRunindex YDataLogger target get_currentRunindex Retourne un entier repr sentant le num ro du Run actuel correspondant au nombre de fois que le module a t mis sous tension avec la fonction d enregistreur de donn es active En cas d erreur d clenche une exception ou retourne Y_CURRENTRUNINDEX_INVALID
188. grace 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 set xxx Pour plus de d tails concernant ces fonctions utilis es reportez vous aux chapitre API Modifications des r glages du module Lorsque que vous souhaitez modifier les r glages d un module il suffit d appeler la fonction set _xxx correspondante cependant cette modification n a lieu que dans la m moire vive du module si le module red marre les modifications seront perdues Pour qu elle soient m moris es de mani re persistante il est n cessaire de demander au module de sauvegarder sa configuration courante dans sa m moire non volatile Pour cela il faut utiliser la m thode saveToFlash Inversement il est possible de forcer le module oublier ses r glages courants en utilisant la m thode revertFromFlash Ce petit exemple ci dessous vous permet changer le nom logique d un module Module Modulel Sub usage Console WriteLine usage demo lt serial or logical name gt lt new logical name gt End End Sub Sub Main Dim argv As String System Environment GetCommandLineArgs Dim errmsg As String Dim newname As String Dim m As YModule If argv Length lt gt 3 Then usage REM Setup the APT to use local USB devices IF yRegisterHub usb errmsg lt gt YAPI SUCCESS Then Console WriteLine RegisterHub error errmsg End End If m y
189. hode YModule set xxx Pour plus de d tails concernant ces fonctions utilis es reportez vous aux chapitre API Modifications des r glages du module Lorsque que vous souhaitez modifier les r glages d un module il suffit d appeler la fonction YModule set xxx correspondante cependant cette modification n a lieu que dans la m moire vive du module si le module red marre les modifications seront perdues Pour qu elle soient m moris es de mani re persistante il est n cessaire de demander au module de sauvegarder sa configuration courante dans sa m moire non volatile Pour cela il faut utiliser la m thode YModule saveToFlash Inversement il est possible de forcer le module oublier ses r glages courants en utilisant la m thode YModule revertFromFlash Ce petit exemple ci dessous vous permet changer le nom logique d un module using System Using System Collections Generic using System Ling using System Text namespace ConsoleApplicationl class Program static void usage string execname System AppDomain CurrentDomain FriendlyName Console WriteLine Usage Console WriteLine usage demo lt serial or logical name gt lt new logical name gt System Threading Thread Sleep 2500 Environment Exit 0 static void Main string args YModule m string errmsg string newname if args Length 2 usage if YAPI RegisterHub usb ref errmsg YAPI SUCCESS C
190. i 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 www yoctopuce com 217 19 R f rence de l API de haut niveau temperature get_recordedData YTemperature temperature recordedData Retourne un objet DataSet repr sentant des mesures de ce capteur pr c demment enregistr es l aide du DataLogger pour l intervalle de temps sp cifi function get_recordedData startTime endTime function get_recordedData startTime endTime function get_recordedData startTime endTime YDataSet get_recordedData s64 startTime s64 endTime YDataSet recordedData s64 startTime S64 endTime function get_recordedData startTime int64 endTime int64 TYDataSet function get_recordedData As YDataSet Y DataSet get_recordedData long startTime long endTime Y DataSet get_recordedData long startTime long endTime def get_recordedData startTime endTime YTemperature target get_recordedData startTime endTime Veuillez vous r f rer la documentation de la classe DataSet pour plus plus d informations sur la mani re d obtenir un aper u des mesures pour la p riode et comment charger progressivement une grande quantit de mesures depuis le dataLogger Cette m thode ne fonctionne que si le module utilise un firmware r cent car les objets DataSet ne sont pas support s par les firmwares ant rieurs
191. ialNumber module get_productName lt br gt module module nextModule document getElementById list innerHTML htmlcode setTimeout refresh 500 gt lt SCRIPT gt lt HEAD gt lt BODY onload refresh gt lt Hi gt Device list lt H1 gt lt lt spansid MS ES pence lt BODY gt lt HTML gt 7 4 Gestion des erreurs Lorsque vous impl mentez un programme qui doit interagir avec des modules USB vous ne pouvez pas faire abstraction de la gestion des erreurs Il y aura forc ment une occasion o un utilisateur aura d branch le p riph rique soit avant de lancer le programme soit m me en pleine op ration 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 La mani re la plus simple de contourner le probl me est celle que nous avons employ pour les petits exemples pr c dents de ce chapitre avant d acc der un module on v rifie qu il est en ligne avec la m thode isOnline et on suppose ensuite qu il va y rester pendant la fraction de seconde n cessaire ex cuter les lignes de code suivantes Ce n est pas parfait mais a peut suffire dans certains cas Il faut toutefois tre conscient qu on ne peut pas totalement exclure une erreur se produisant apr s le isOnline qui pourrait faire planter le prog
192. ie de son module h te et de son nom de fonction Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez pr alablement configur s Imaginons un module Yocto Thermocouple avec le num ros de s rie THRMCPL1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction temperature MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t temperature YTemperature FindTemperature THRMCPL1 123456 temperature temperature YTemperature FindTemperature THRMCPL1 123456 MaFonction temperature YTemperature FindTemperature MonModule temperature temperature YTemperature FindTemperature MonModule MaFonction temperature YTemperature FindTemperature MaFonction YTemperature FindTemperature renvoie un objet que vous pouvez ensuite utiliser a loisir pour contr ler le capteur de temp rature 4 Pensez a changer le filtre de la fen tre de s lection de fichiers sinon la DLL n appara tra pas 72 www yoctopuce com 12 Utilisation du Yocto Thermocouple en C isOnline La m thode YTemperature isOnline de l objet renvoy par FindTemperature permet de savoir si le module correspondant est pr sent et en tat de marche get_currentValue La m thode get_currentValue de l objet renvoy par YTemperature FindTemperature permet d obtenir la temp rature actuelle mesur
193. ifiable logicalName Texte modifiable advertisedValue Texte lecture seule unit Texte lecture seule currentValue Nombre virgule fixe lecture seule lowestValue Nombre virgule fixe modifiable highestValue Nombre virgule fixe modifiable currentRawValue Nombre virgule fixe lecture seule logFrequency Fr quence modifiable reportFrequency Fr quence modifiable calibrationParam Tableau de mots de 16 bit modifiable resolution Nombre virgule flottante modifiable sensorType Type num r modifiable dataLogger DataLogger attribut type modifiable logicalName Texte modifiable advertisedValue Texte lecture seule currentRunIndex Nombre entier lecture seule timeUTC Heure UTC modifiable recording On Off modifiable autoStart On Off modifiable clearHistory Bool en modifiable 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 www yoctopuce com 19 5 Programmation concepts g n raux 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 Thermocouple ce num ro de s rie commence toujours par THRMCPL1 Il peut servir comme point de d part pour acc der par programmation un m
194. ion est d termin par l attribut persistent autoStart autoStart Enclenchement automatique de l enregistreur de donn es la mise sous tension Cet attribut permet d activer syst matiquement l enregistreur la mise sous tension sans devoir l activer par une commande logicielle clearHistory Attribut qui peut tre mis vrai pour effacer l historique des mesures 5 6 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 C est objectivement la solution la plus simple et la plus l gante pour l utilisateur final II 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 22 www yoctopuce com 5 Programmation concepts g n raux 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 D
195. ion lin aire 1 5 points Ces transformations sont effectu es directement dans le Yocto Thermocouple ce qui signifie que vous n avez qu enregistrer les points de calibration dans la m moire flash du module et tous les calculs de correction seront effectu s de mani re totalement transparente La fonction get _currentValue renverra la valeur corrig e alors que la fonction get currentRawValue continuera de renvoyer la valeur avant correction Les points de calibration sont simplement des couples Valeur lue Valeur corrig e Voyons l influence du nombre de points de corrections sur les corrections Correction 1 point La correction par 1 point ne fait qu ajouter un d calage aux mesures Par exemple si vous fournissez le point de calibration a b toutes les valeurs mesur es seront corrig es en leur ajoutant b a de sorte ce que quand la valeur lue sur le capteur est a la fonction temperature retournera b g FO oe 20 D Z S 2 K O io S 1 5 a L Q gt 10 Se Valeur du senseur 5 10 15 20 25 30 Correction de mesures avec 1 point de calibration ici 5 10 La mise en pratique est des plus simples il suffit d appeler la m thode calibrateFromPoints de la fonction que l on d sire corriger Le code suivant applique la correction illustr e sur le graphique ci dessus la premi re fonction temperature trouv e Notez l appel la m thode saveToFlash du www yoctopuce c
196. ion saveToFlash que 100000 fois au cours de la vie du module Veillez donc ne pas appeler cette fonction depuis l int rieur d une boucle Enumeration des modules Obtenir la liste des modules connect s se fait a l aide de la fonction yFirstModule qui renvoie le premier module trouv il suffit ensuite d appeler la fonction nextModule de cet objet pour trouver les modules suivants et ce tant que la r ponse n est pas un NULL Ci dessous un petit exemple listant les module connect s include lt iostream gt include yocto api h using namespace std intomeliniint anger Const char argv BENTE errmsg Setup the API to use local USB devices if yRegisterHub usb errmsg YAPT SUCCESS Camne S MriXeiisiechelible emoa A lt lt enee lt lt nc return 1 cout lt lt Device list lt lt endl YModule module yFirstModule while module NULL coun lt lt modulle gerysenlalNumber lt lt www yoctopuce com 53 9 Utilisation du Yocto Thermocouple en C cout lt lt module gt get productName lt lt endl module module gt nextModule return D 9 3 Gestion des erreurs Lorsque vous impl mentez un programme qui doit interagir avec des modules USB vous ne pouvez pas faire abstraction de la gestion des erreurs Il y aura forc ment une occasion o un utilisateur aura d branch le p riph rique soit avant de lancer le programme soit m me en pl
197. ir les recabler Plusieurs solutions s offrent a vous Vous pouvez raccorder les sous modules en soudant des fils lectriques tout simples mais vous obtiendrez un meilleur r sultat avec du cable nappe au pas 1 27 mm Utilisez de pr f rence du cable avec des conducteurs mono brin plut t que du multi brin les cables mono brin sont un peu moins souples mais nettement plus facile a souder D port du capteur l aide de simple 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 Si vous raccordez un sous module de votre Yocto Thermocouple un autre type de module par exemple un Yocto Temperature cela ne marchera pas et vous risquez fort d endommager votre mat riel 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
198. irie Yoctopuce votre IncludePath et d ajouter tous les fichiers de ce r pertoire y compris le sous r pertoire yapi votre projet Pour que votre projet se construise ensuite correctement il faudra linker avec votre projet les librairies systemes requises a savoir e Pour Windows les librairies sont mises automatiquement e Pour Mac OS X IOKit framework et CoreFoundation framework e Pour Linux libm libpthread libusb1 0 et libstdc Int gration en librairie statique L int gration de de la librairie Yoctopuce sous forme de librairie statique est une mani re plus simple de construire un petit ex cutable utilisant des modules Yoctopuce Elle permet une compilation rapide du programme en une seule commande Elle ne requiert pas non plus l installation d une librairie dynamique sp cifique a Yoctopuce sur le syst me final tout est dans l ex cutable Pour int grer la librairie statique Yoctopuce a votre projet vous devez inclure le r pertoire Sources de la librairie Yoctopuce a votre IncludePath et ajouter le sous r pertoire de Binaries correspondant a votre syst me d exploitation a votre LibPath Ensuite pour que votre projet se construise ensuite correctement il faudra linker avec votre projet la librairie Yoctopuce et les librairies syst mes requises e Pour Windows yocto static lib e Pour Mac OS X libyocto static a IOKit framework et CoreFoundation framework e Pour Linux libyocto static a libm libpthrea
199. is 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 Les fonctions fournies par le module Yocto Thermocouple sont les deux fonctions temperature1 et temperature2 correspondant chacun des deux canaux Cliquez simplement sur le bouton rename correspondant pour leur affecter un nouveau nom logique Type de thermocouple Par d faut les deux deux canaux sont configur s pour travailler avec des thermocouples de type K qui sont les plus r pandus et les moins chers Si vous souhaitez utiliser un autre type de thermocouple il vous faudra changer le r glage de la fonction correspondante www yoctopuce com 11 12 www yoctopuce com 4 Montage et connectique Ce chapitre fournit des explications importantes pour utiliser votre module Yocto Thermocouple 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 vou
200. ivalCallback void yRegisterDeviceArrivalCallback yDeviceUpdateCallback arrivalCallback procedure yRegisterDeviceArrivalCallback arrivalCallback yDeviceUpdateFunc procedure yRegisterDeviceArrivalCallback ByVal arrivalCallback As yDeviceUpdateFunc void RegisterDeviceArrivalCallback yDeviceUpdateFunc arrivalCallback synchronized static void RegisterDeviceArrivalCallback DeviceArrivalCallback arrivalCallback def RegisterDeviceArrivalCallback arrivalCallback Le callback sera appel pendant l xecution de la fonction yHandleDeviceList que vous devrez appeler r guli rement Param tres arrivalCallback une proc dure qui prend un YModu le en param tre ou null 138 www yoctopuce com 19 R f rence de l API de haut niveau YAPI RegisterDeviceRemovalCallback YAPI yRegisterDeviceRemovalCallback Enregistre une fonction de callback qui sera appel e chaque fois qu un module est d branch function yRegisterDeviceRemovalCallback removalCallback function RegisterDeviceRemovalCallback removalCallback function yRegisterDeviceRemovalCallback removalCallback void yRegisterDeviceRemovalCallback yDeviceUpdateCallback removalCallback void yRegisterDeviceRemovalCallback yDeviceUpdateCallback removalCallback procedure yRegisterDeviceRemovalCallback removalCallback yDeviceUpdateFunc procedure yRegisterDeviceRemovalCallback ByVal removalCallback As yDeviceUpdateFunc void RegisterDeviceRemovalCal
201. ivement Le changement de mode de fonctionnement est trivial il suffit de changer un param tre dans l appel yRegisterHub 5 7 Programmation par o commencer Arriv ce point du manuel vous devriez conna tre l essentiel de la th orie propos de votre Yocto Thermocouple 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 Yoctopuce 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 maitriserez 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 Thermocouple 1 http www yoctopuce com FR libraries php www yoctopuce com 25 26 www yoctopuce com 6 Utilisation du Yocto Thermocouple en ligne de commande Lorsque vous d sirez effectuer une op ration ponctuelle sur votre Yocto Thermocouple comme la lecture d une valeur le changement d un nom logique etc vous pouvez bien sur utiliser le Virtual Hub mais il existe une m thode encore plus simple rapide et efficace l API e
202. la librairie de programmation Yoctopuce de chaque langage L exemple se trouve dans le r pertoire Examples Prog EventBased 17 2 L enregistreur de donn es Votre Yocto Thermocouple est quip d un enregistreur de donn es aussi appel datalogger capable d enregistrer en continu les mesures effectu es par le module La fr quence d enregistrement maximale est de cent fois par secondes i e 100 s et la fr quence minimale est de une fois par heure i e 1 h Lorsque la fr quence sup rieure ou gale 1 s la mesure repr sente une valeur instantan e Lorsque la fr quence est inf rieure l enregistreur stocke non seulement une valeur moyenne mais aussi les valeurs minimale et maximale observ es durant la p riode sur la base d un chantillonnage effectu par le module La m moire flash de l enregistreur de donn es permet d enregistrer environ 500 000 mesures instantan es ou 125 000 mesures moyenn es Lorsque la m moire du datalogger est satur e les mesures les plus anciennes sont automatiquement effac es Prenez garde ne pas laisser le datalogger fonctionner inutilement haute vitesse le nombre d effacements possibles d une m moire flash est limit typiquement 100 000 cycles d criture effacement A la vitesse maximale l enregistreur peut consommer plus de 100 cycles par jour Notez aussi qu il se sert rien d enregistrer des valeurs plus rapidement que la fr quence de mesure du capteur lui m me
203. la m me chose en seule fois l aide de l option s YModule s THRMCPL1 12346 set logicalName MonPremierModule Attention le nombre de cycles d criture de la m moire non volatile du module est limit Pass cette limite plus rien ne garantit que la sauvegarde des r glages se passera correctement Cette limite li e la technologie employ e par le micro processeur du module se situe aux alentour de 100000 cycles Pour r sumer vous ne pouvez employer la commande saveToFlash que 100000 fois au cours de la vie du module Veillez donc ne pas appeler cette commande depuis l int rieur d une boucle 6 5 Limitations L API en ligne de commande est sujette la m me limitation que les autres API il ne peut y avoir q une seule application la fois qui acc de aux modules de mani re native Par d faut l API en ligne de commande fonctionne en natif Cette limitation peut ais ment tre contourn e en utilisant un Virtual Hub il suffit de faire tourner le VirtualHub sur la machine concern e et d utiliser les executables de l API en ligne de commande avec l option r par exemple si vous utilisez YModule inventory 3 http www yoctopuce com FR virtualhub php www yoctopuce com 29 6 Utilisation du Yocto Thermocouple en ligne de commande Vous obtenez un inventaire des modules connect s par USB en utilisant un acc s natif Si il y a d j une autre commande en cours qui acc de aux modules en natif cela ne fonctio
204. lback yDeviceUpdateFunc removalCallback synchronized static void RegisterDeviceRemovalCallback DeviceRemovalCallback removalCallback def RegisterDeviceRemovalCallback removalCallback Le callback sera appel pendant l xecution de la fonction yHandleDeviceList que vous devrez appeler r guli rement Param tres removalCallback une proc dure qui prend un YModu le en param tre ou null www yoctopuce com 139 19 R f rence de l API de haut niveau YAPI RegisterHub YAPI yRegisterHub Configure la librairie Yoctopuce pour utiliser les modules connect s sur une machine donn e function yRegisterHub url errmsg node js function RegisterHub url errmsg php function yRegisterHub url amp errmsg YRETCODE yRegisterHub const string amp url string amp errmsg YRETCODE yRegisterHub NSString url NSError errmsg function yRegisterHub url string var errmsg string integer function yRegisterHub ByVal url As String ByRef errmsg As String As Integer int RegisterHub string url ref string errmsg synchronized static int RegisterHub String url def RegisterHub url errmsg None 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 riel
205. le sans erreur En cas d erreur d clenche une exception ou retourne un code d erreur n gatif 186 www yoctopuce com 19 R f rence de l API de haut niveau module gt revertFromFlash YModule Recharge les r glages stock s dans le m moire non volatile du module comme a la mise sous tension du module function revertFromFlash function revertFromFlash function revertFromFlash int revertFromFlash int revertFromFlash function revertFromFlash Longint function revertFromFlash As Integer int revertFromFlash int revertFromFlash def revertFromFlash 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 www yoctopuce com 187 19 R f rence de l API de haut niveau module saveToFlash Sauve les r glages courants dans la m moire non volatile du module function saveToFlash function saveToFlash function saveToFlash cpp Jint saveToFlash int saveToFlash pas function saveToFlash Longint vb function saveToFlash As Integer cs__ int saveToFlash java int saveToFlash def saveToFlash YModule target saveToFlash YModule 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
206. les 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 II vous suffit de configuer le hub pour qu il appelle votre script a intervalle r gulier Ce mode de fonctionnement n est disponible actuellement qu en PHP et en Node JS Attention seule une application peut fonctionner a la fois sur une machine donn e en acc s direct a 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
207. llback YAPI 137 RegisterDeviceRemovalCallback YAPI 138 RegisterHub YAPI 139 RegisterHubDiscoveryCallback YAPI 141 RegisterLogFunction YAPI 142 registerTimedReportCallback YTemperature 229 registerValueCallback YDataLogger 268 registerValueCallback YTemperature 230 revertFromFlash YModule 186 S saveToFlash YModule 187 SelectArchitecture YAPI 143 Senseurs 115 S quence 276 Service 22 set_autoStart YDataLogger 269 set_beacon YModule 188 set_highestValue YTemperature 231 set_logFrequency YTemperature 232 set_logicalName YDataLogger 270 set_logicalName YModule 189 set_logicalName YTemperature 233 set_lowestValue YTemperature 234 set_luminosity YModule 190 set_recording YDataLogger 271 set_reportFrequency YTemperature 235 set_resolution YTemperature 236 set_sensorType YTemperature 237 set_timeUTC YDataLogger 272 set_usbBandwidth YModule 191 set_userData YDataLogger 273 set_userData YModule 192 set_userData YTemperature 238 SetDelegate YAPI 144 SetTimeout YAPI 145 Sleep YAPI 146 Sources 85 Support s 119 T Temperature 21 28 31 39 49 57 64 72 79 86 91 100 196 Test 9 Thermocouple 14 triggerFirmwareUpdate YModule 193 U UnregisterHub YAPI 147 UpdateDeviceList YAPI 148 UpdateDeviceList_async YAPI 149 V Valeur 289 Virtual 97 119 Visual 63 71 VisualBasic 63 W wait_async YDataLogger 274 wait_async YModule 194 wait_async YTemperature 239 Y YAPI 141
208. 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 capteurs Le Yocto Thermocouple est livr avec un thermocouple de type K mais il est con u pour fonctionner avec la plupart des thermocouples disponibles sur le march Le type de thermocouple va d terminer la plage de temp rature utilisable Type de thermocouple Plage d utilisation Type K 200 1372 C Type E 200 1000 C 1 court court court long long long court court court 2 support yoctopuce com 6 www yoctopuce com 2 Pr sentation Type J 210 1200 C Type N 200 1300 C Type R 50 1760 C Type S 50 1760 C Type T 200 400 C Attention il ne s agit ici que des valeurs que le module Yocto Thermocouple est capable de mesure
209. lors de l utilisation de l enregistreur de donn es datalogger get_errorType Retourne le code d erreur correspondant a la derni re erreur survenue lors de l utilisation de l enregistreur de donn es datalogger get_friendlyName www yoctopuce com 241 19 R f rence de l API de haut niveau Retourne un identifiant global de l enregistreur de donn es au format NOM_ MODULE NOM_FONCTION datalogger get_functionDescriptor Retourne un identifiant unique de type YF UN_DESCR correspondant la fonction datalogger get_functionld Retourne l identifiant mat riel de l enregistreur de donn es sans r f rence au module datalogger get_hardwareld Retourne l identifiant mat riel unique de l enregistreur de donn es au format SERIAL FUNCTIONID datalogger get_logicalName Retourne le nom logique de l enregistreur de donn es datalogger get_module Retourne l objet YModule correspondant au module Yoctopuce qui h berge la fonction datalogger get module async callback context Retourne l objet YModule correspondant au module Yoctopuce qui h berge la fonction datalogger get_recording Retourne l tat d activation de l enregistreur de donn es datalogger get_timeUTC Retourne le timestamp Unix de l heure UTC actuelle lorsqu elle est connue datalogger get_userData Retourne le contenu de l attribut userData pr c demment stock l aide de la m thode se
210. lude lyocto api h include yocto_temperature h include lt iostream gt include lt stdlib h gt using namespace std static void usage void cout lt lt usage demo lt seriial_ number gt lt lt endl COLE demo lt logical name gt lt lt endl cour demo any use any discovered device lt lt endl u64 now yGetTickCount dirty active wait loop while yGetTickCount now lt 3000 rane ilps ink mMainiint argc const char ts col string errmsg target YTemperature sensor rE axge 2 4 usage target string argv 1 Setup the API to use local USB devices if yRegisterHub usb errmsg YAPI SUCCESS cerr i lt Regus berHUbNerhEOr lt lt errs CNE NCIS return 1 if target any tsensor yFirstTemperature if tsensor NULL cout lt lt No module connected check USB cable lt lt endl return 1 else tsensor yFindTemperature target temperaturel YTemperature t1 yFindTemperature tsensor gt get module gt get_serialNumber temperaturel YTemperature t2 yFindTemperature tsensor gt get module gt get serialNumber temperature2 while 1 tf lel SOonlane ON fe2 gt tsOnlane i cout lt lt Module not connected check identification and USB cable break Coble ICE TEAM lt lt jellaSeicie CO EU TE MEN elec EN lt lt EMEULE cout lt lt Mehanne M2 NES C2 Te c
211. m M As ymodule Dim errmsg As String REM Setup the API to use local USB devices Tf yRegisterHub usb errmsg lt gt YAPT SUCCESS Then Console WriteLine RegisterHub error errmsg End End If Console WriteLine Device list M yFirstModule While M IsNot Nothing Cons olen Wrakeiamel Maceigys ere rcrlINumoe n cian SNS eE prod C ENAMen Le M M nextModule End While End Sub End Module 11 5 Gestion des erreurs Lorsque vous impl mentez un programme qui doit interagir avec des modules USB vous ne pouvez pas faire abstraction de la gestion des erreurs Il y aura forc ment une occasion o un utilisateur aura d branch le p riph rique soit avant de lancer le programme soit m me en pleine op ration La librairie Yoctopuce est pr vue pour vous aider a 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 La mani re la plus simple de contourner le probl me est celle que nous avons employ pour les petits exemples pr c dents de ce chapitre avant d acc der un module on v rifie qu il est en ligne avec la m thode isOnline et on suppose ensuite qu il va y rester pendant la fraction de seconde n cessaire ex cuter les lignes de code suivantes Ce n est pas parfait mais a peut suffire dans certains cas II faut toutefois tre conscient qu on ne peut pas totalement exclure une erreur
212. m gt v int get_dataStreams ArrayList lt YDataStream gt v def get_dataStreams v L appelant doit passer par r f rence un tableau vide pout stocker les objets YDataStream et la m thode va les remplire avec des objets d crivant les s quences de donn es disponibles Cette m thode est pr serv e pour maintenir la compatibilit avec les applications existantes Pour les nouvelles applications il est pr f rable d utiliser la m thode get_dataSets ou d appeler directement la m thode get_recordedData sur l objet repr sentant le capteur d sir Param tres v un tableau de YDataStreams qui sera rempli avec les s quences trouv 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 www yoctopuce com 251 19 R f rence de l API de haut niveau datalogger get_errorMessage YDataLogger datalogger errorMessage Retourne le message correspondant la derni re erreur survenue lors de l utilisation de l enregistreur de donn es function get_errorMessage function get_errorMessage function get_errorMessage string get_errorMessage NSString errorMessage function get_errorMessage string function get_errorMessage As String string get_errorMessage String get_errorMessage def get_errorMessage Cette m thode est principalement utile lorsque la librairie Yoctopu
213. meFmt dd MMM yyyy hh mm ss fff string logFmt from 0 to 1 average 2 0 00 3 Console WriteLine String Format logFmt summary get_startTimeUTC_asDateTime ToString timeFmt summary get_endTimeUTC_asDateTime ToString timeFmt summary get_averageValue sensor get_unit Les appels suivants loadMore chargent les mesures Console WriteLine loading details int progress do Console Nerik eid progress dataset loadMore while progress lt 100 Ca y est toutes les mesures sont la iivsi lt YMeasure details dataset ger measunesi i foreach YMeasure m in details Console WriteLine String Format logFmt m get_startTimeUTC_asDateTime ToString timeFmt m get_endTimeUTC_asDateTime ToString timeFmt MCE EWCIEACEWENLUG r SCmsor Jeune Vous trouverez un exemple complet d montrant cette s quence dans la librairie de programmation Yoctopuce de chaque langage L exemple se trouve dans le r pertoire Examples Prog DataLogger Horodatage Le Yocto Thermocouple n ayant pas de batterie il n est pas capable de deviner tout seul l heure qu il est au moment de sa mise sous tension N anmoins le Yocto Thermocouple va automatiquement essayer de se mettre l heure de l h te auquel il est connect afin de pouvoir correctement dater les mesures du datalogger e Lorsque le Yocto Thermocouple est branch un ordinateur ex cutant soit le VirtualHub soit un programme quelconq
214. moment ou la mesure a d but le moment ou la mesure s est termin e la valeur minimale observ e dans l intervalle de temps la valeur moyenne observ e dans l intervalle de temps la valeur maximale observ e dans l intervalle de temps Avant d appeler cette m thode vous devez appeler loadMore pour charger des donn es depuis l enregistreur sur le module L appel doit tre r p t plusieurs fois pour charger toutes les donn es mais vous pouvez commencer utiliser les donn es disponibles avant qu elles n aient t toutes charg es Les mesures les plus anciennes sont toujours charg es les premi res et les plus r centes en dernier De ce fait les timestamps dans la table des mesures sont normalement par ordre chronologique La seule exception est dans le cas o il y a eu un ajustement de l horloge UTC de l enregistreur de donn es pendant l enregistrement Retourne un tableau d enregistrements chaque enregistrement repr sentant une mesure effectu e un moment pr cis En cas d erreur d clenche une exception ou retourne un tableau vide www yoctopuce com 281 19 R f rence de l API de haut niveau dataset get_preview YDataSet dataset preview Retourne une version r sum e des mesures qui pourront tre obtenues de ce YDataSet sous forme d une liste d objets YMeasure function get_preview function get_preview function get_preview vector lt YMeasure gt get_preview
215. msg None Il n est pas indispensable d appeler yInitAPTI 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 mode un 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 errmsg une 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 136 www yoctopuce com 19 R f rence de l API de haut niveau YAPI PreregisterHub yPreregisterHub Alternative plus tolerante a RegisterHub function yPreregisterHub url errmsg function PreregisterHub url errmsg function yPreregisterHub url amp errmsg YRETCODE yPreregisterHub const string amp url string amp errmsg YRETCODE yPreregisterHub NSString url NSError errmsg function yPreregisterHub url string var errmsg string integer function yPreregisterHub ByVal url As S
216. n writeln errmsg halt end searches for the HTTP header end Pp pos 13 10 13 10 data displays the response minus the HTTP header writeln copy data pt4 length data p 3 change the luminosity if yapiHTTPRequest serial setValue data sizeof dataBuffer fullsize errmsg lt 0 then begin writeln errmsg halte end end 122 www yoctopuce com 18 Utilisation avec des langages non support s 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 a null Cette fonction retourne un entier n gatif en cas d erreur ou z ro dans le cas contraire La fonction yapiGetDevicelnfo permet de r cup rer le
217. n ligne de commande L API en ligne de commande se pr sente sous la forme d un ensemble d ex cutables un par type de fonctionnalit offerte par l ensemble des produits Yoctopuce Ces ex cutables sont fournis pr compil s pour toutes les plateformes OS officiellement support s par Yoctopuce Bien entendu les sources de ces ex cutables sont aussi fournies 6 1 Installation T l chargez l API en ligne de commande Il n y a pas de programme d installation lancer copiez simplement les ex cutables correspondant votre plateforme OS dans le r pertoire de votre choix Ajoutez ventuellement ce r pertoire votre variable environnement PATH pour avoir acc s aux ex cutables depuis n importe o C est tout il ne vous reste plus qu brancher votre Yocto Thermocouple ouvrir un shell et commencer travailler en tapant par exemple YTemperature any get currentValue Sous Linux pour utiliser l API en ligne de commande vous devez soit tre root soit d finir une r gle udev pour votre syst me Vous trouverez plus de d tails au chapitre Probl mes courants 6 2 Utilisation description g n rale Tous les ex cutables de la l API en ligne de commande fonctionnent sur le m me principe ils doivent tre appel s de la mani re suivante Executable options cible commande param tres Les options g rent le fonctionnement global des commandes elles permettent par exemple de piloter des modules distance tr
218. nappe mono brin Si vous d sirez d porter la partie capteur du module Yocto Thermocouple l aide d un cable nappe soud directement au circuit imprim utilisez de pr f rence du cable nappe tam mono brin c est le plus facile souder Dans tous les cas il vous faudra 4 fils espac s de 1 27mm Ce m me c ble peut aussi tre utilis pour souder un fil directement entre le module Yocto Thermocouple et un micro hub USB pour viter l encombrement d un cable USB Bo tier Votre Yocto Thermocouple 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 Yoctopuce Le bo tier recommand pour votre Yocto Thermocouple est le mod le YoctoBox Short Thick Black 4 http www yoctopuce com EN products category enclosures www yoctopuce com 3 1 Introduction Vous pouvez installer votre Yocto Thermocouple dans un bo tier optionnel www yoctopuce com 2 Pr sentation FEI Plies or QI d e d E o 1 Prise USB micro B 3 Yocto led 2 Yocto bouton 4 Branchement thermocouple 1 5 Branchement thermocouple 2 2 1 Les l ments communs Tous les Yocto modules ont un certain nombre de fonctionnalit
219. ne boucle Enumeration des modules Obtenir la liste des modules connect s se fait l aide de la fonction YModule yFirstModule qui renvoie le premier module trouv il suffit ensuite d appeler la mehode nextModule de cet objet pour trouver les modules suivants et ce tant que la r ponse n est pas un null Ci dessous un petit exemple listant les module connect s usr bin python coding utf 8 import os sys from yocto api import errmsg YRefParam Setup the API to use local USB devices if YAPI RegisterHub usb errmsg YAPI SUCCESS SVS 1Cx1 Gani ernronLsSEri erEemso prine Device iisti module YModule FirstModule while module is not None print module get_serialNumber module get productName module module nextModule 14 5 Gestion des erreurs Lorsque vous impl mentez un programme qui doit interagir avec des modules USB vous ne pouvez pas faire abstraction de la gestion des erreurs Il y aura forc ment une occasion o un utilisateur aura d branch le p riph rique soit avant de lancer le programme soit m me en pleine op ration 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 La mani re la plus simple de contourner le probl me est celle que nous avons employ pour les petits exemples pr c dent
220. ne valeur parmi Y_SENSORTYPE_DIGI ENSORTYPE _ TYPI Y_SENSORTYPE TYPE _E Y_SENSORTYPE RTYPE_TYPE Y_SENSORTYPE_TYPE_R Y_SENSORTYPE_ RTYPE_ TYPE Y_SENSORTYPE_PT100_4WIRES Y_SI T1LOO_3WIRES Y_SENSORTYPE_PT100_2WIRES 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 238 www yoctopuce com 19 R f rence de l API de haut niveau temperature set_userData YTemperature temperature setUserData 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 function set_userData data function set_userData data function set_userData data void set_userData void data void setUserData void data procedure set_userData data Tobject procedure set_userData ByVal data As Object void set_userData object data void set_userData Object data def 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 data objet quelconque m moriser www yoctopuce com 239 19 R f rence de l API de haut niveau temperature wait _async YTemperature Attend que toutes les commandes asynchrones en cours d ex cu
221. neeeeeeneeeeeeaaeeeseaeeeseeneeeeeeneeeeeeneeeeegs 22 5 6 Quelle interface Native DLL ou Service ooo cece cccccceccccseeeececeseeueceeessceeeeeeeueeeaeeeeseuaneeees 22 5 7 Programmation par OU commencer sisi 25 6 Utilisation du Yocto Thermocouple en ligne de commande 27 Gti 1nstallation a at Rte ant deck cupid a bt PS Ne Pr ne PER Mere tt 27 6 2 Utilisation description g n rale issus 27 6 3 Contr le de la fonction Temperature oo eeeeeeseeeeeeneeeeeeneeeeeaeeeteeeeeeeeaeeeeteeeeeteneeeeeeaas 28 6 4 Contr le de la partie module sise 29 GB Sz ImMIANONS fess eset E nee Meese CN ae SR Pes 23st ea tre te TEN 29 7 Utilisation du Yocto Thermocouple en Javascript 0 0 00 cee 31 LS Preparation sesia oa A dete eesieceh e beter atten teen ete teat 31 7 2 Contr le de la fonction Temperature ooo cece eeseeeeeeneeeeeeneeeeeeaeeeeeeeeeseeeeeeseeeeeteneeeeeeaes 31 7 3 Contr le de la partie module sisi 33 FAS Gestion des erreurs E RAR de nee ities aes ne Tage es ed ne rate tata 36 8 Utilisation du Yocto Thermocouple en PHP eects 39 81 Pr paration Era at EE ne a Ca ear aise iy EEE 39 8 2 Contr le de la fonction Temperature ooo eee ceseeeeeeneeeeeeneeeeeeaeeeeeeeeesseeeeeseieeeessneeeeeeaes 39 8 3 Contr le de la partie module sise 41 8 4 API par callback HTTP et filtres NAT in 44 8 5 G stion des rreurs ess dressent tan tte ere 47 9 Utilisation d
222. nent d un ordinateur La fonction DataLogger contr le les param tres globaux de cet enregistreur de donn es logicalName Cha ne de caract res contenant le nom logique de l enregistreur de donn es 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 l enregistreur de donn es Si deux enregistreurs de donn es 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 l enregistreur de donn es et qui sera publi e automatiquement jusqu au hub parent Pour un enregistreur de donn es la valeur publi e sont tat d activation ON ou OFF currentRunindex Num ro du Run actuel correspondant au nombre de fois que le module a t mis sous tension avec la fonction d enregistreur de donn es active timeUTC Heure UTC courante lorsque l on d sire associer une r f rence temporelle absolue aux donn es enregistr es Cette heure doit tre configur e explicitement par logiciel recording Etat d activit de l enregistreur de donn es L enregistreur peut tre enclanch ou d clanch volont par cet attribut mais son tat la mise sous tens
223. nes de code pour piloter un Yocto Thermocouple Voici le squelette d un fragment de code Java qui utilise la fonction Temperature sol On r cup re l objet repr sentant le module ici connect en local sur USB VAPIARegMSEer AUDI IMOR OT temperature YTemperature FindTemperature THRMCPL1 123456 temperature Pour g rer le hot plug on v rifie que le module est la if temperature isOnline t Use temperature get ecurrentVvalue 1 www yoctopuce com FR libraries php 2 www yoctopuce com FR virtualhub php www yoctopuce com 91 15 Utilisation du Yocto Thermocouple en Java feel Voyons maintenant en d tail ce que font ces quelques lignes YAPI RegisterHub La fonction YAPI RegisterHub initialise l API de Yoctopuce en indiquant o les modules doivent tre recherch s Le param tre est l adresse du virtual hub capable de voir les modules Si initialisation se passe mal une exception sera g n r e YTemperature FindTemperature La fonction YTemperature FindTemperature permet de retrouver un capteur de temp rature en fonction du num ro de s rie de son module h te et de son nom de fonction Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez pr alablement configur s Imaginons un module Yocto Thermocouple avec le num ros de s rie THRMCPL1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction temperature MaFonction les cinq appels suivants sero
224. newname string 82 www yoctopuce com 13 Utilisation du Yocto Thermocouple en Delphi begin Setup the API to use local USB devices if yRegisterHub usb errmsg lt gt YAPI SUCCESS then begin Write RegisterHub error errmsg exit end module yFindModule serial if not module isOnline then begin writeln Module not connected exit end Writeln Current logical name Write Enter new name Uae Readln newname if not yCheckLogicalName newname then begin Writeln invalid logical name exit end module set_logicalName newname module saveToFlash Writeln logical name is now end check identification and USB cable tmodule get_logicalName module get_logicalName Attention le nombre de cycles d criture de la m moire non volatile du module est limit Pass cette limite plus rien ne garantit que la sauvegarde des r glages se passera correctement Cette limite li e la technologie employ e par le micro processeur du module se situe aux alentour de 100000 cycles Pour r sumer vous ne pouvez employer la fonction saveToFlash que 100000 fois au cours de la vie du module Veillez donc ne pas appeler cette fonction depuis l int rieur d une boucle num ration des modules Obtenir la liste des modules connect s se fait l aide de la fonction yFirstModule qui renvoie le premier module trouv il suffit ensuite d appeler la fonc
225. ng get_functionld String get_functionld def get_functionld Par example relay1 Retourne une cha ne de caract res identifiant le capteur de temp rature ex relay1 En cas d erreur d clenche une exception ou retourne Y_FUNCTIONID_INVALID 210 www yoctopuce com 19 R f rence de l API de haut niveau temperature get_hardwareld YTemperature temperature hardwareld Retourne l identifiant mat riel unique du capteur de temp rature au format SERIAL FUNCTIONID function get_hardwareld function get_hardwareld function get_hardwareld string get_hardwareld NSString hardwareld function get_hardwareld As String string get_hardwareld String get_hardwareld def get_hardwareld L identifiant unique est compos du num ro de s rie du module et de l identifiant mat riel du capteur de temp rature par example RELAYLO1 123456 relayl Retourne une cha ne de caract res identifiant le capteur de temp rature ex RELAYLO1 123456 relayl En cas d erreur d clenche une exception ou retourne Y_HARDWAREID_INVALID www yoctopuce com 211 19 R f rence de l API de haut niveau temperature get_highestValue temperature highestValue Retourne la valeur maximale observ e function get_highestValue function get_highestValue function get_highestValue double get_highestValue double highestValue functi
226. ni beaucoup de fonctions qui retournent des objets Vous ne devez jamais d sallouer ces objets vous m me Ils seront d sallou s automatiquement par l API la fin de l application Afin des les garder simples tous les exemples fournis dans cette documentation sont des applications consoles Il va de soit que que les fonctionnement des librairies est strictement identiques si vous les int grez dans une application dot e d une interface graphique 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 9 1 Contr le de la fonction Temperature Il suffit de quelques lignes de code pour piloter un Yocto Thermocouple Voici le squelette d un fragment de code C qui utilise la fonction Temperature ne luce mu yO cloOmap isla include yocto temperature h CRI String errmsg YTemperature temperature 1 http www microsoft com visualstudio en us products 2010 editions visual cpp express www yoctopuce com FRilibraries php www yoctopuce com 49 9 Utilisation du Yocto Thermocouple en C On r cup re l objet repr sentant le module ici connect en local sur USB yRegisterHub usb errmsg temperature yFindTemperature THRMCPL1 123456 temperature Pour g rer le hot plug on v rifie que le module est l if temperature gt isOnline VRUCIMMSerStemperaeure get curreneValue Voyons m
227. nline_async callback context function isOnline_async callback context Si les valeurs des attributs en cache du capteur de temp rature 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 callback fonction 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 context contexte 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 www yoctopuce com 225 19 R f rence de l API de haut niveau temperature load YTemperature Met en cache les valeurs courantes du capteur de temp rature avec une dur e de validit sp cifi e is__ function load msValidity nodejs function load msValidity php function load msValidity YRETCODE load int msValidity YRETCODE load int msValidity function load msValidity integer YRETCODE function load ByVal msValidity As
228. nload pathname function download pathname string download string pathname NSData download NSString pathname function download pathname string TByteArray function download As Byte def download pathname YModule target download pathname Param tres pathname nom complet du fichier Retourne le contenu du fichier charg En cas d erreur d clenche une exception ou retourne un contenu vide www yoctopuce com 157 19 R f rence de l API de haut niveau module gt functionCount YModule Retourne le nombre de fonctions sans compter l interface module existant sur le module function functionCount function functionCount function functionCount cpp int functionCount int functionCount pas function functionCount integer v function functionCount As Integer cs__ int functionCount def 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 158 www yoctopuce com 19 R f rence de l API de haut niveau module functionid YModule Retourne l identifiant mat riel de la ni me fonction du module function functionid functionindex function functionld functionindex function functionld functionindex string functionld int functionindex NSString functionld int functionindex function functionld functionindex int
229. nnera pas Mais si vous lancez un virtual hub et que vous lancez votre commande sous la forme YModule r 127 0 0 1 inventory cela marchera parce que la commande ne sera plus ex cut e nativement mais travers le Virtual Hub Notez que le Virtual Hub compte comme une application native 30 www yoctopuce com 7 Utilisation du Yocto Thermocouple en Javascript Javascript n est probablement pas le premier langage qui vous serait venu l esprit pour contr ler du mat riel mais il pr sente l immense avantage d tre tr s facile mettre en oeuvre avec Javascript il ne vous faudra qu un diteur de texte et un browser internet pour r aliser vos premiers essais Au moment de l criture de ce manuel la librairie Javascript fonctionne avec n importe quel browser r cent sauf Opera Il est probable que qu Opera finira un jour par fonctionner avec la librairie Yoctopuce mais pour l instant ce n est pas le cas Javascript fait partie de ces langages qui ne vous permettront pas d acc der directement aux couches mat rielles de votre ordinateur C est pourquoi vous devrez faire tourner la passerelle de Yoctopuce appel e VirtualHub sur la machine laquelle sont branch s les modules 7 1 Pr paration Connectez vous sur le site de Yoctopuce et t l chargez les l ments suivants e La librairie de programmation pour Javascript Le programme VirtualHub pour Windows Mac OS X ou Linux selon l OS que vous utilisez D c
230. ns il est possible d obtenir un code d erreur et un message expliquant l origine de l erreur en le demandant l objet qui a retourn une erreur l aide des m thodes errType et errMessage Ce sont les m me informations qui auraient t associ es l exception si elles avaient t actives 9 4 Int gration de la librairie Yoctopuce en C Selon vos besoins et vos pr f rences vous pouvez tre men int grer de diff rentes mani res la librairie vos projets Cette section explique comment impl menter les diff rentes options 54 www yoctopuce com 9 Utilisation du Yocto Thermocouple en C Int gration au format source L int gration de toutes les sources de la librairie dans vos projets a plusieurs avantages Elle garanti le respect des conventions de compilation de votre projet 32 64 bits inclusion des symboles de debug caract res unicode ou ASCII etc e Elle facilite le d boggage si vous cherchez la cause d un probl me li la librairie Yoctopuce e Elle r duit les d pendances sur des composants tiers par exemple pour parer au cas o vous pourriez tre men recompiler ce projet pour une architecture diff rente dans de nombreuses ann es e Elle ne requiert pas l installation d une librairie dynamique sp cifique Yoctopuce sur le syst me final tout est dans l ex cutable Pour int grer le code source le plus simple est d inclure simplement le r pertoire Sources de la libra
231. nt strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t temperature YTemperature FindTemperature THRMCPL1 123456 temperature temperature YTemperature FindTemperature THRMCPL1 123456 MaFonction temperature YTemperature FindTemperature MonModule temperature temperature YTemperature FindTemperature MonModule MaFonction temperature YTemperature FindTemperature MaFonction YTemperature FindTemperature renvoie un objet que vous pouvez ensuite utiliser a loisir pour contr ler le capteur de temp rature isOnline La m thode YTemperature isOnline de l objet renvoy par FindTemperature permet de savoir si le module correspondant est pr sent et en tat de marche get_currentValue La m thode get _currentValue de l objet renvoy par YTemperature FindTemperature permet d obtenir la temp rature actuelle mesur e par le capteur La valeur de retour est un nombre flottant repr sentant directement le nombre de degr s Celsius Un exemple r el Lancez votre environnement java et ouvrez le projet correspondant fourni dans le r pertoire Examples Doc GettingStarted Yocto Thermocouple de la librairie Yoctopuce Vous reconnaitrez dans cet exemple l utilisation des fonctions expliqu es ci dessus cette fois utilis es avec le d corum n cessaire a en faire un petit programme d exemple concret import com yoctopuce YoctoAPI public class Demo
232. octonappnpME yRegisterHub callback 46 www yoctopuce com 8 Utilisation du Yocto Thermocouple en PHP La suite du code reste strictement identique Sur l interface du VirtualHub il y a en bas de la fen tre de configuration de l API par callback HTTP un bouton qui permet de tester l appel au script PHP Il est noter que le script PHP qui contr le les modules distance via l API par callback HTTP ne peut tre appel que par le VirtualHub En effet il a besoin des informations post es par le VirtualHub pour fonctionner Pour coder un site Web qui contr le des modules Yoctopuce de mani re interactive il faudra cr er une interface utilisateur qui stockera dans un fichier ou une base de donn es les actions effectuer sur les modules Yoctopuce Ces actions seront ensuite lues puis ex cut s par le script de contr le Probl mes courants Pour que l API par callback HTTP fonctionne l option de PHP allow_url_fopen doit tre activ e Certains h bergeurs de site web ne l activent pas par d faut Le probl me se manifeste alors avec l erreur suivante error URL file access is disabled in the server configuration Pour activer cette option il suffit de cr er dans le m me r pertoire que le script PHP de contr le un fichier htaccess contenant la ligne suivante php flag allow url fopen On Selon la politique de s curit de l h bergeur il n est parfois pas possible d autoriser cette opti
233. octopuce depuis un langage de programmation non support 18 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 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 18 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
234. odule 162 www yoctopuce com 19 R f rence de l API de haut niveau module get_errorMessage YModule module errorMessage Retourne le message correspondant la derni re erreur survenue lors de l utilisation de l objet module function get_errorMessage function get_errorMessage function get_errorMessage string get_errorMessage NSString errorMessage function get_errorMessage string function get_errorMessage As String string get_errorMessage String get_errorMessage def get_errorMessage Cette m thode est principalement utile lorsque la librairie Yoctopuce est utilis e en d sactivant la gestion des exceptions Retourne une chaine de caract res correspondant au message de la derni re erreur qui s est produit lors de l utilisation du module www yoctopuce com 163 19 R f rence de l API de haut niveau module get_errorType YModule module errorType Retourne le code d erreur correspondant la derni re erreur survenue lors de l utilisation de l objet module function get_errorType function get_errorType function get_errorType YRETCODE get_errorType function get_errorType YRETCODE function get_errorType As YRETCODE YRETCODE get_errorType int get_errorType def get_errorType Cette m thode est principalement utile lorsque la librairie Yoctopuce est utilis e en d sactivant la gestion des exceptions Ret
235. odule 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 40 en usine productRelease Num ro de r vision du module hardware preprogrammed at the factory 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 up
236. oid Vous devrez les int grer dans vos propres applications Android pour les faire fonctionner En revanche vous pourrez trouver des applications compl tes dans les exemples fournis avec la librairie Java pour Android 16 3 Compatibilit Dans un monde id al il suffirait d avoir un t l phone sous Android pour pouvoir faire fonctionner des modules Yoctopuce Malheureusement la r alit est l g rement diff rente un appareil tournant sous Android doit r pondre un certain nombre d exigences pour pouvoir faire fonctionner des modules USB Yoctopuce en natif 1 www yoctopuce com FR libraries php www yoctopuce com 97 16 Utilisation du Yocto Thermocouple avec Android Android 4 x Android 4 0 api 14 et suivants sont officiellement support s Th oriquement le support USB host fonctionne depuis Android 3 1 Mais sachez que Yoctopuce ne teste r guli rement l API Java pour Android qu partir de Android 4 Support USB host Il faut bien s r que votre machine dispose non seulement d un port USB mais il faut aussi que ce port soit capable de tourner en mode host En mode host la machine prend litt ralement le contr le des p riph riques qui lui sont raccord s Les ports USB d un ordinateur bureau par exemple fonctionnent mode host Le pendant du mode host est le mode device Les clefs USB par exemple fonctionnent en mode device elles ne peuvent qu tre contr l es par un host Certains ports USB sont capables de
237. om 115 17 Programmation avanc e module h bergeant la fonction de mani re ce que le module n oublie pas la calibration d s qu il sera d branch Double ValuesBefore 5 Double ValuesAfter 10 YTemperature f YTemperature FirstTemperature f calibrateFromPoints ValuesBefore ValuesAfter f get module saveToFlash Correction 2 points La correction 2 points permet d effectuer la fois un d calage et une multiplication par un facteur donn entre deux points Si vous fournissez les deux points a b et c d le r sultat de la fonction sera multipli par d b c a dans l intervalle a c et d cal de sorte ce que quand la valeur lue par le senseur est a ou c la fonction temperature retournera b ou respectivement d A l ext rieur de l intervalle a c les valeurs seront simplement d cal es de sorte pr server la continuit des mesures une augmentation de 1 sur la valeur lue par le senseur induira une augmentation de 1 sur la valeur retourn e 20 5 5 c O s 153 SF lt gt 10 5 Valeur du senseur i 5 10 15 20 25 30 Correction de mesures avec 2 points de calibrations 10 5 et 25 10 Le code permettant de programmer cette calibration est tr s similaire au code pr c dent Double ValuesBefore 10 25 Double ValuesAfter 5 10 YTemperature f YTemperature FirstTemperature f calibrateFromPoints ValuesBefore ValuesAfter f get module
238. ommercial du module pr programm en usine function get_productName function get_productName function get_productName string get_productName NSString productName function get_productName string function get_productName As String string get_productName String get_productName def get_productName YModule target get_productName Retourne YModule 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 www yoctopuce com 173 19 R f rence de l API de haut niveau module get_productRelease YModule module productRelease Retourne le num ro de version mat riel du module pr programm en usine function get_productRelease function get_productRelease function get_productRelease int get_productRelease int productRelease pas function get_productRelease Longint v function get_productRelease As Integer int get_productRelease int get_productRelease def get_productRelease 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 174 www yoctopuce com 19 R f rence de l API de haut niveau module get_rebootCountdown YModule module
239. ompressez les fichiers de la librairie dans un r pertoire de votre choix branchez vos modules lancez le programme VirtualHub et vous pouvez commencer vos premiers test Vous n avez pas besoin d installer de driver 7 2 Contr le de la fonction Temperature Il suffit de quelques lignes de code pour piloter un Yocto Thermocouple Voici le squelette d un fragment de code JavaScript qui utilise la fonction Temperature lt SCRIPT type text javascript src yoctohapi js gt lt SCRIPT gt lt SCRIPT type text javascript sre yocto temperature js gt lt SCRIPI gt On r cup re l objet repr sentant le module a travers le VirtualHub local yRegisterHub http 127 0 0 1 4444 var temperature yFindTemperature THRMCPL1 123456 temperature Pour g rer le hot plug on v rifie que le module est l 1 En fait d s qu Opera impl mentera le support pour le header HTTP Access Control Allow Origin E www yoctopuce com FR libraries php 3 www yoctopuce com FR virtualhub php www yoctopuce com 31 7 Utilisation du Yocto Thermocouple en Javascript if temperature isOnline VAUCIMMSerMEemperatunengetseurrentlVanuel Voyons maintenant en d tail ce que font ces quelques lignes yocto_api js et yocto_temperature js Ces deux includes Javascript permettent d avoir acc s aux fonctions permettant de g rer les modules Yoctopuce yocto api js doit toujours tre inclus yocto temperature js est n cessaire po
240. on la racine du site web o m me d installer des scripts PHP recevant des donn es par un POST HTTP Dans ce cas il suffit de placer le script PHP dans un sous r pertoire Limitations Cette m thode de fonctionnement qui permet de passer les filtres NAT moindre frais a malgr tout un prix Les communications tant initi es par le Virtual Hub intervalle plus ou moins r gulier le temps de r action un v nement est nettement plus grand que si les modules Yoctopuce taient pilot s en direct Vous pouvez configurer le temps de r action dans la fen tre ad hoc du Virtual Hub mais il sera n cessairement de quelques secondes dans le meilleur des cas Le mode Yocto AP par callback HTTP n est pour l instant disponible qu en PHP et Node JS 8 5 Gestion des erreurs Lorsque vous impl mentez un programme qui doit interagir avec des modules USB vous ne pouvez pas faire abstraction de la gestion des erreurs Il y aura forc ment une occasion o un utilisateur aura d branch le p riph rique soit avant de lancer le programme soit m me en pleine op ration 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 La mani re la plus simple de contourner le probl me est celle que nous avons employ pour les petits exemples pr c dents de ce chapitre avant d acc
241. on get_highestValue double v _ function get_highestValue As Double double get_highestValue double get_highestValue def get_highestValue YTemperature target get_highestValue Retourne une valeur num rique repr sentant la valeur maximale observ e YTemperature En cas d erreur d clenche une exception ou retourne Y_HIGHESTVALUE_INVALID 212 www yoctopuce com 19 R f rence de l API de haut niveau temperature get_logFrequency YTemperature temperature logFrequency Retourne la fr quence d enregistrement des mesures dans le datalogger ou OFF si les mesures ne sont pas stock es dans la m moire de l enregistreur de donn es function get_logFrequency function get_logFrequency function get_logFrequency string get_logFrequency NSString logFrequency function get_logFrequency string function get_logFrequency As String string get_logFrequency String get_logFrequency def get_logFrequency YTemperature target get_logFrequency Retourne une cha ne de caract res repr sentant la fr quence d enregistrement des mesures dans le datalogger ou OFF si les mesures ne sont pas stock es dans la m moire de l enregistreur de donn es En cas d erreur d clenche une exception ou retourne Y_LOGFREQUENCY_INVALID www yoctopuce com 213 19 R f rence de l API de haut niveau temperature get_logicalName YTemperature tempera
242. onsole WriteLine RegisterHub error errmsg Environment Exit 0 m YModule FindModule args 0 use serial or logical name if mes ONENE newname args 1 if YAPI CheckLogicalName newname Console WriteLine Invalid name newname Environment Exit 0 www yoctopuce com 75 12 Utilisation du Yocto Thermocouple en C meset logicalName newname m saveloElash 7 do not forget this Console Werte Module serial i mgereserval Numbers i Console WriteLine name m get logicalName else Console Write not connected check identification and USB cable Attention le nombre de cycles d criture de la m moire non volatile du module est limit Pass cette limite plus rien ne garantit que la sauvegarde des r glages se passera correctement Cette limite li e la technologie employ e par le micro processeur du module se situe aux alentour de 100000 cycles Pour r sumer vous ne pouvez employer la fonction YModule saveToFlash que 100000 fois au cours de la vie du module Veillez donc ne pas appeler cette fonction depuis l int rieur d une boucle Enumeration des modules Obtenir la liste des modules connect s se fait a l aide de la fonction YModule yFirstModule qui renvoie le premier module trouv il suffit ensuite d appeler la m thode nextModule de cet objet pour trouver les modules suivants et ce tant que la r ponse n est pas un
243. onter cette fiche pour d gager les extr mit s d nud s du thermocouple et raccorder ce dernier au Yocto Thermocouple Les fiches standard de thermocouple peuvent tre d mont es pour d gager l extr mit d nud e du cable Attention les thermocouples sont polaris s vous devez les connecter dans le bon sens Si vous ne connaissez pas la polarit de votre thermocouple connectez le dans n importe quel sens et v rifiez que la temp rature report e par le Yocto Thermocouple monte quand vous chauffez l extr mit du thermocouple si elle descend votre thermocouple est branch l envers Sur le thermocouple livr en standard avec votre Yocto Thermocouple le fil vert est le positif 4 3 D porter la partie capteur Le module Yocto Thermocouple est con u pour pouvoir tre s par en deux morceaux afin de vous permettre de d porter le capteur 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 deux sous modules s par s vous pouvez poncer sans risque les parties qui d passent Le module Yocto Thermocouple est con u pour pouvoir tre s par en deux parties 1 Utilisez le VirtualHub pour a 14 www yoctopuce com 4 Montage et connectique 5 0 oO Cablage des sous modules une fois ceux ci s par s Une fois les modules s par s vous allez devo
244. our pour viter de bloquer la machine virtuelle Javascript avec une attente active gt Param tres msValidity un entier correspondant la dur e de validit attribu e aux les param tres charg s en millisecondes callback fonction 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 YAPT_ SUCCESS context contexte 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 www yoctopuce com 267 19 R f rence de l API de haut niveau datalogger nextDataLogger YDataLogger Continue l num ration des enregistreurs de donn es commenc e a l aide de yFirstDataLogger 5s function nextDataLogger node js function nextDataLogger prp _ function nextDataLogger cpe_ YDataLogger nextDataLogger YDataLogger nextDataLogger function nextDataLogger TYDataLogger ve function nextDataLogger As YDataLogger YDataLogger nextDataLogger YDataLogger nextDataLogger def nextDataLogger Retourne un pointeur sur un objet YDataLogger accessible en ligne ou nul 1 lorsque l num ration est termin e 268 www yoctopuce com 19 R f rence de l API de haut niveau datalogger registerValueCallback
245. our lui indiquer le type de thermocouple connect T U f T T2 T2 La tension l extr mit libre d un thermocouple d pend de la diff rence de temp rature entre ses deux extr mit s De base un thermocouple ne permet que de calculer que la diff rence de temp rature entre ses deux extr mit s Pour calculer un temp rature absolue au point de soudure du thermocouple le point de mesure il faut conna tre la temp rature absolue l autre extr mit c est dire l endroit pr cis o l on mesure la tension cr e par le thermocouple II suffit alors d ajouter la diff rence de temp rature calcul e d apr s la tension cr e et l on peut conna tre tr s pr cis ment la temp rature du point de mesure C est ce que fait le Yocto Thermocouple de mani re totalement transparente Si vous devez rallonger un thermocouple n utilisez surtout pas du fil lectrique standard mais une rallonge thermocouple utilisant les m mes mat riaux que votre thermocouple Attention plus un thermocouple est long il risque d tre impr cis en raison de sa r sistance interne et des parasites qu il est susceptible de ramasser un thermocouple trop long tendance se comporter comme une antenne Souvent il sera plus simple et moins on reux de d porter la partie capteur du Yocto Thermocouple plut t que d essayer d utiliser un thermocouple tr s long Si vous d cidez de raccourcir un thermocouple veillez ce que les deux fils res
246. ourne un nombre correspondant au code de la derni re erreur qui s est produit lors de l utilisation du module 164 www yoctopuce com 19 R f rence de l API de haut niveau module gt get_firmwareRelease YModule module gt firmwareRelease Retourne la version du logiciel embarqu du module function get_firmwareRelease function get_firmwareRelease function get_firmwareRelease string get_firmwareRelease NSString firmwareRelease function get_firmwareRelease string function get_firmwareRelease As String string get_firmwareRelease String get_firmwareRelease def get_firmwareRelease 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 www yoctopuce com 165 19 R f rence de l API de haut niveau module get_hardwareld YModule module gt hardwareld Retourne l identifiant unique du module function get_hardwareld function get_hardwareld function get_hardwareld string get_hardwareld NSString hardwareld function get_hardwareld As String string get_hardwareld String get_hardwareld def get_hardwareld L identifiant unique est compos du num ro de s rie du module suivi de la cha ne module Retourne une chaine de caract res identifiant la fonction
247. ourne un code d erreur n gatif www yoctopuce com 191 19 R f rence de l API de haut niveau module set_usbBandwidth YModule module setUsbBandwidth Modifie le nombre d interface USB utilis par le module function set_usbBandwidth newval function set_usbBandwidth newval function set_usbBandwidth newval int set_usbBandwidth Y_USBBANDWIDTH_enum newval int setUsbBandwidth Y_USBBANDWIDTH_enum newval pas function set_usbBandwidth newval Integer integer v function set_usbBandwidth ByVal newval As Integer As Integer int set_usbBandwidth int newval int set_usbBandwidth int newval def set_usbBandwidth newval YModule target set_usbBandwidth newval Vous devez red marrer le module apr s avoir chang ce r glage Param tres newval soit Y_USBBANDWIDTH_ SIMPLE soit Y_USBBANDWIDTH_ DOUBLE selon le nombre d interface USB utilis 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 192 www yoctopuce com 19 R f rence de l API de haut niveau module gt set_userData YModule module setUserData Enregistre un contexte libre dans l attribut userData de la fonction afin de le retrouver plus tard a l aide de la m thode get_userData function set_userData data function set_userData data function set_userData data void set_userData
248. pansichar integer cdecl external yapi dill name yapiInitAPI function yapiUpdateDeviceList force integer errmsg pansichar integer cdecl external yapi dill name yaplUpdateDevicelist function yapiGetAllDevices buffer pointer Mess Eze ES ger Vasmmeededsizertneeger errmsg pansi chani integer a cdecls external yapi dilil name yapiGetAllDevices www yoctopuce com 123 18 Utilisation avec des langages non support s function apiGetDevicelnfo d integer var infos yDevicest errmsg pansichar integer cdecl external yapi dill name yapilGetDevicelInto var errmsgBuffer array 0 256 of ansichar dataBuffer a eraci DOUe A Oe eea max of 128 USB devices errmsg data T panstenat neededsize i integer devinfos yDevicest begin errmsg CerrmsgBuffer API initialisation if yapiInitAPI 1 errmsg lt 0 then begin writeln errmsg hanit end forces a device inventory if yapiUpdateDeviceList 1 errmsg lt 0 then begin writeln errmsg halt endy loads all device handles into dataBuffer if yapiGetAllDevices dataBuffer sizeof dataBuffer neededsize errmsg lt 0 then begin writeln errmsg halte endy gets device info from each handle for i 0 to neededsize div sizeof integer 1 do begin if apiGetDevicelnfo dataBuffer i devinfos errmsg lt 0 then begin writeln errmsg halt end writeln pansichar devinfos serial pansichar devinfos pro
249. 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 www yoctopuce com 119 18 Utilisation avec des langages non support s 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 xmli 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 Thermocouple avec le num ro de de s rie THRMCPL1 12345 et le nom logique monModule l URL suivante permettra de conna tre l tat du module http 127 0 0 1 4444 bySerial THRMCPL1 12345 api module tx
250. plorer en particulier IE 9 de Windows 7 qui refuse d ouvrir des connections r seau lorsqu il travaille sur un fichier local Pour utiliser Internet Explorer vous devez donc mettre les pages sur un serveur web Aucun probl me par contre avec Chrome Firefox ou Safari Si le Yocto Thermocouple n est pas branch sur la machine o fonctionne le navigateur internet remplacez dans l exemple l adresse 127 0 0 1 par l adresse IP de la machine o est branch le Yocto Thermocouple et o vous avez lanc le VirtualHub lt HTML gt lt HEAD gt lt TITLE gt Hello World lt TITLE gt lt SCRIPT type text javascript src lyocto api js gt lt SCRIPT gt lt SCRIPT type text javascript src yocto temperature js gt lt SCRIPT gt lt SCRIPT language javascriptl 5 type text JavaScript gt Sho Setup the API to use the VirtualHub on local machine if yRegisterHub http 127 0 0 1 4444 YAPI SUCCESS aleme tGannor contact Vireual Hub on 270m0 Imi function refresh var temp serial document getElementBylId serial value if serial or use any conected module suitable for the demo temp yFirstTemperature if temp serial temp module get serialNumber document getElementByld serial value serial templ yFindTemperature serial temperaturel temp2 yFindTemperature serial temperature2 if templ isOnline document gethlementByid msgq value
251. port com yoctopuce YoctoAPI YAPI import com yoctopuce YoctoAPI YAPI Exception import com yoctopuce YoctoAPI YModule public class Inventory extends Activity Override public void onCreate Bundle savedInstanceState super onCreate savedinstanceState setContentView R layout inventory public void refreshInventory View view LinearLayout layout LinearLayout findViewById R id inventoryList layout removeAllViews cry YAPI UpdateDeviceList YModule module YModule FirstModule while module null Staing ines nodules getaserialiNumbex sp ls moduleriget yproduciName ia TextView tx new TextView this tx setText line layout addView tx module module nextModule eetehi TART IExceptionite ii e printStackTrace Override protected void onStart SUper onstartci try YAPI EnableUSBHost this YAPE RegisterHub usb Pcale cha VAP Tah lt Ce peor te cprinesteckiracen t 106 www yoctopuce com 16 Utilisation du Yocto Thermocouple avec Android refreshInventory null Override protected void onStop super onStop YAPI FreeAPI 16 7 Gestion des erreurs Lorsque vous impl mentez un programme qui doit interagir avec des modules USB vous ne pouvez pas faire abstraction de la gestion des erreurs Il y aura forc ment une occasion o un utilisateur aura d branch le p riph rique soit avant de lancer le
252. porter au mieux pour interpr ter les erreurs signal es par la librairie La mani re la plus simple de contourner le probl me est celle que nous avons employ pour les petits exemples pr c dents de ce chapitre avant d acc der un module on v rifie qu il est en ligne avec la m thode isOnline et on suppose ensuite qu il va y rester pendant la fraction de seconde n cessaire ex cuter les lignes de code suivantes Ce n est pas parfait mais a peut suffire dans certains cas II faut toutefois tre conscient qu on ne peut pas totalement exclure une erreur se produisant apr s le isOnline qui pourrait faire planter le programme La seule mani re de l viter est d impl menter une des deux techniques de gestion des erreurs d crites ci dessous 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 e Si votre code attrape l exception au vol et la g re et tout se passe bien e Si votre programme tourne dans le debugger vous pourrez relativement facilement d terminer o le probl me s est produit et voir le message explicatif li l exception e Sinon l exception va crasher votre programme boum Comme cette derni re situation n
253. programme soit m me en pleine op ration 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 La mani re la plus simple de contourner le probl me est celle que nous avons employ pour les petits exemples pr c dents de ce chapitre avant d acc der un module on v rifie qu il est en ligne avec la m thode isOnline et on suppose ensuite qu il va y rester pendant la fraction de seconde n cessaire ex cuter les lignes de code suivantes Ce n est pas parfait mais a peut suffire dans certains cas Il faut toutefois tre conscient qu on ne peut pas totalement exclure une erreur se produisant apr s le isOnline qui pourrait faire planter le programme Dans l API java pour Android le traitement d erreur est impl ment au moyen d exceptions Vous devrez donc intercepter et traiter correctement ces exceptions si vous souhaitez avoir un projet fiable qui ne crashera pas des que vous d brancherez un module www yoctopuce com 107 108 www yoctopuce com 17 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 Thermocouple Ce chapitre pr sente de fa on plus g n rale une utilisation plus avanc e de votre module Les exemples sont donn s
254. ptions Setup the API to use the VirtualHub on local machine if yRegisterHub http 127 0 0 1 4444 YAPI SUCCESS alest MCannor Contact Virtual l H bkon e270 OR nr var module function refresh var serial document getElementByld serial value if serial Detect any conected module suitable for the demo module yFirstModule nextModule if module serial moduler get serialNumper Ji document getElementBylId serial value serial module yFindModule serial if module isOnline document gethlementByid msg value document getElementById curName value module get_logicalName else document getHlementById msg value Module not connected setTimeout refresh 1000 function save var newname document getElementByld newName value if yCheckLogicalName newname alert invalid logical name SUN module set logicalName newname module saveToFlash gt lt SCRIPT gt lt HEAD gt lt BODY onload refresh gt Module to use lt input id serial gt lt input id msg style color red border none readonly gt lt br gt Current name lt input id curName readonly gt lt br gt New logical name lt input id newName gt lt a href javascript save gt Save lt a gt lt BODY gt lt HTML gt Attention le nombre de cycle d criture de la m moire non volatile du module est limit
255. r Pour atteindre ces plages de valeurs vous devez en plus vous assurer que l isolant utilis pour fabriquer votre thermocouple supporte aussi les temp ratures que vous d sirez utiliser En g n ral plus les temp ratures sont extr mes plus le thermocouple sera cher Le thermocouple fourni avec votre Yocto Thermocouple est une variante courante de thermocouple souple utilisant du PFTE qui supporte les temp ratures de 75 260 C Fonctionnement d un thermocouple Un thermocouple est constitu de deux fils m talliques utilisant deux alliages m talliques sp cifiques Les deux fils sont mis en contact par une soudure une extr mit La mise en contact de ces alliages cette extr mit le point de mesure fait appara tre une tr s faible tension quelques microvolts l autre extr mit des fils que l on branchera dans un instrument de mesure tel que le Yocto Thermocouple Bien que tr s faible cette tension est quantifiable et varie en fonction de la diff rence de temp rature entre l extr mit soud e et l extr mit o l on mesure la diff rence de potentiel Elle permet donc d en d duire la diff rence de temp rature entre les deux extr mit s du thermocouple Bien sur la variation n est pas simplement proportionnelle la diff rence de temp rature et d pend aussi des alliages utilis s C est pour cela que l on classe les thermocouples en plusieurs types et que vous devez configurer votre Yocto Thermocouple p
256. r de temp rature la valeur publi e est la valeur mesur e unit Courte cha ne de catact res repr sentant l unit dans laquelle la valeur mesur e est exprim e currentValue Temp rature actuelle en degr s Celsius sous forme de nombre virgule lowestValue Temp rature minimale observ e sous forme de nombre virgule highestValue Temp rature maximale observ e sous forme de nombre virgule logFrequency Fr quence d enregistrement des mesures dans le datalogger ou OFF si les mesures ne doivent pas tre stock es dans la m moire de l enregistreur de donn es reportFrequency Fr quence de notification p riodique des valeurs mesur es ou OFF si les notifications p riodiques de valeurs sont d sactiv es calibration Param Param tres de calibration suppl mentaires par exemple pour compenser l effet d un bo tier sous forme de tableau d entiers 16 bit resolution R solution de la mesure pr cision de la repr sentation mais pas forc ment de la mesure elle m me sensorType Type de senseur utilis pour r aliser la mesure de temp rature Le senseur peut tre soit digital soit un type de thermocouple www yoctopuce com 21 5 Programmation concepts g n raux 5 5 Interface de la fonction DataLogger Les capteurs de Yoctopuce sont quip s d une m moire non volatile permettant de m moriser les donn es mesur es d une mani re autonome sans n cessiter le suivi perma
257. r moyenne observ e durant l intervalle de temps couvert par la mesure function get_averageValue function get_averageValue function get_averageValue double get_averageValue double averageValue function get_averageValue double function get_averageValue As Double double get_averageValue double get_averageValue def get_averageValue Retourne un nombre d cimal correspondant la valeur moyenne observ e 290 www yoctopuce com 19 R f rence de l API de haut niveau measure get_endTimeUTC YMeasure measure endTimeUTC Retourne l heure absolue de la fin de la mesure sous forme du nombre de secondes depuis le 1er janvier 1970 UTC date heure au format Unix function get_endTimeUTC function get_endTimeUTC function get_endTimeUTC double get_endTimeUTC double endTimeUTC function get_endTimeUTC double function get_endTimeUTC As Double double get_endTimeUTC double get_endTimeUTC def get_endTimeUTC Lors que l enregistrement de donn es se fait une fr quence sup rieure une mesure par seconde le timestamp peuvent inclurent une fraction d cimale Retourne un nombre r el positif correspondant au nombre de secondes coul es entre le 1er janvier 1970 UTC et la fin de la mesure www yoctopuce com 291 19 R f rence de l API de haut niveau measure get_maxValue YMeasure measure maxValue Retourne la plu
258. r seconde s par minute m ou par heure h La valeur par d faut est 1 s L exemple suivant configure la fr quence d enregistrement 15 mesures par minute pour le premier capteur trouv quel que soit son type YSensor sensor YSensor FirstSensor sencor Serl oOgune quency ualo mus Pour conomiser la m moire flash il est possible de d sactiver l enregistrement des mesures pour une fonction donn e Pour ce faire il suffit d utiliser la valeur OFF sensor set_logFrequency OFF Limitation Le Yocto Thermocouple ne peut pas utiliser des fr quences diff rentes pour les notifications p riodiques et pour l enregistrement dans le datalogger Il est possible de d sactiver l une ou l autre de ces fonctionnalit s ind pendamment mais si les deux sont activ es elles fonctionnent n cessairement la m me fr quence R cup ration des donn es Pour r cup rer les donn es enregistr es dans la m moire flash du Yocto Thermocouple il faut appeler la m thode get recordedData de la fonction d sir e en sp cifiant l intervalle de temps qui nous int resse L intervalle de temps est donn e l aide du timestamp UNIX de d but et de fin Il est aussi possible de sp cifier 0 pour ne pas donner de limite de d but ou de fin La fonction get _recordedData ne retourne pas directement un tableau de valeurs mesur es car selon la quantit de donn es leur chargement pourrait potentiellement prendre trop de
259. ra une valeur diff rente de YAPI SUCCESS et retournera via le param tre errmsg un explication du probl me yFindTemperature La fonction yFindTemperature permet de retrouver un capteur de temp rature en fonction du num ro de s rie de son module h te et de son nom de fonction Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez pr alablement configur s Imaginons un module Yocto Thermocouple avec le num ros de s rie THRMCPL1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction temperature MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t 58 www yoctopuce com 10 Utilisation du Yocto Thermocouple en Objective YTemperature temperature yFindTemperature THRMCPL1 123456 temperature YTemperature temperature yFindTemperature THRMCPL1 123456 MaFonction YTemperature temperature yFindTemperature MonModule temperature YTemperature temperature yFindTemperature MonModule MaFonction YTemperature temperature yFindTemperature MaFonction yFindTemperature renvoie un objet que vous pouvez ensuite utiliser a loisir pour contr ler le capteur de temp rature isOnline La m thode isOnline de l objet renvoy par yFindTemperature permet de savoir si le module correspondant est pr sent et en tat de marche get_current
260. ramme La seule mani re de l viter est d impl menter une des deux techniques de gestion des erreurs d crites ci dessous 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 e Si votre code attrape l exception au vol et la g re et tout se passe bien e Si votre programme tourne dans le debugger vous pourrez relativement facilement d terminer o le probl me s est produit et voir le message explicatif li l exception e Sinon l exception va crasher votre programme boum Comme cette derni re situation n est pas la plus souhaitable la librairie Yoctopuce offre une autre alternative pour la gestion des erreurs permettant de faire un programme robuste sans devoir 36 www yoctopuce com 7 Utilisation du Yocto Thermocouple en Javascript attraper les exceptions chaque ligne de code Il suffit d appeler la fonction yDisableExceptions pour commuter la librairie dans un mode o les exceptions de chaque fonction sont syst matiquement remplac es par des valeurs de retour particuli res qui peuvent tre test es par l appelant lorsque c est pertinent Le nom de la valeur de retour en cas d erreur pour chaque fonction est syst m
261. rants en utilisant la m thode YModule revertFromFlash Ce petit exemple ci dessous vous permet changer le nom logique d un module usr bin python ip i COCO SE import os sys from yocto api import def usage sys exit usage demo lt serial or logical name gt lt new logical name gt if len sys argv 3 usage errmsg YRefParam if YAPI RegisterHub usb errmsg YAPI SUCCESS Ssys exie Registerkub errors str eremsg m YModule FindModule sys argv 1 use serial or logical name ii m isOnlinell newname sys argv 2 if not YAPI CheckLogicalName newname sys exit Invalid name newname m set_logicalName newname m saveToFlash do not forget this print Module serial m get_serialNumber name m get_logicalName else sys ext t not connected cheek identitilcarion and USB cabile Attention le nombre de cycles d criture de la m moire non volatile du module est limit Pass cette limite plus rien ne garantit que la sauvegarde des r glages se passera correctement Cette limite li e la technologie employ e par le micro processeur du module se situe aux alentour de 100000 cycles Pour r sumer vous ne pouvez employer la fonction YModule saveToFlash que 88 www yoctopuce com 14 Utilisation du Yocto Thermocouple en Python 100000 fois au cours de la vie du module Veillez donc ne pas appeler cette fonction depuis l int rieur d u
262. rature logicalName Assez logiquement les attributs peuvent tre modifi s de la m me mani re http 127 0 0 1 4444 bySerial THRMCPL1 12345 api temperature logicalName maFonction Vous trouverez la liste des attributs disponibles pour votre Yocto Thermocouple au d but du chapitre Programmation concepts g n raux 120 www yoctopuce com 18 Utilisation avec des langages non support s 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 THRMCPL1 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 THRMCPL1 12345 dataLogger json id temperature utc 1389801080 18 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 Filename Plateforme libyapi dylib Max OS X libyapi amd64 so Linux Intel 64 bits libyapi armel so Linux ARM EL libyapi armhf so Linux ARM
263. rcer 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 www yoctopuce com 121 18 Utilisation avec des langages non support s 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
264. rding function get_recording Integer function get_recording As Integer int get_recording int get_recording def get_recording YDataLogger target get_recording Retourne donn es YDataLogger soit Y_RECORDING_OFF soit Y_RECORDING_ON selon l tat d activation de l enregistreur de En cas d erreur d clenche une exception ou retourne Y_RECORDING_INVALID www yoctopuce com 261 19 R f rence de l API de haut niveau datalogger get_timeUTC YDataLogger datalogger timeUTC Retourne le timestamp Unix de l heure UTC actuelle lorsqu elle est connue function get_timeUTC function get_timeUTC function get_timeUTC s64 get_timeUTC s64 timeUTC function get_timeUTC int64 function get_timeUTC As Long long get_timeUTC long get_timeUTC def get_timeUTC YDataLogger target get_timeUTC Retourne un entier repr sentant le timestamp Unix de l heure UTC actuelle lorsqu elle est connue En cas d erreur d clenche une exception ou retourne Y_TIMEUTC_INVALID 262 www yoctopuce com 19 R f rence de l API de haut niveau datalogger get_userData YDataLogger datalogger userData Retourne le contenu de l attribut userData pr c demment stock l aide de la m thode set_userData function get_userData function get_userData function get_userData void get_userData void userData function get_userData
265. re un objet d l gu qui doit se conformer au procole YDeviceHotPlug void ySetDelegate id object Les methodes yDeviceArrival et yDeviceRemoval seront appel es pendant l xecution de la fonction yHandleDeviceList que vous devrez appeler r guli rement Param tres object un objet qui soit se conformer au procol YAPIDelegate ounil www yoctopuce com 145 19 R f rence de l API de haut niveau YAPI SetTimeout YAPI ySetTimeout Appelle le callback sp cifi apr s un temps d attente sp cifi function ySetTimeout callback ms_timeout arguments function SetTimeout callback ms_timeout arguments Cette fonction se comporte plus ou moins comme la fonction Javascript set Timeout 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 callback la 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_timeout un entier correspondant la dur e de l attente en millisecondes arguments des arguments suppl mentaires peuvent tre fournis pour tre pass s la fonction de callback si n cessaire pas support sous Microsoft Internet Explorer Retourne YAPI_SUCCESS si l op ration se d roule sans erreur En cas d erreur d clenche une
266. registreur de donn es la mise sous tension function set_autoStart newval function set_autoStart newval function set_autoStart newval int set_autoStart Y_AUTOSTART_enum newval int setAutoStart Y_AUTOSTART_enum newval pas function set_autoStart newval Integer integer _vb function set_autoStart ByVal newval As Integer As Integer int set_autoStart int newval int set_autoStart int newval def set_autoStart newval Y DataLogger target set_autoStart newval N oubliez pas d appeler la m thode saveToFlash du module si le r glage doit tre pr serv Param tres newval soit Y_AUTOSTART_ OFF soit Y_AUTOSTART_ ON selon le mode d activation automatique de l enregistreur de donn es la mise sous tension 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 270 www yoctopuce com 19 R f rence de l API de haut niveau datalogger set_logicalName datalogger setLogicalName Modifie le nom logique de l enregistreur de donn es function set_logicalName newval function set_logicalName newval function set_logicalName newval int set_logicalName const string amp newval int setLogicalName NSString newval function set_logicalName newval string integer function set_logicalName ByVal newval As String As Integer int set_logicalName string newval int set_logi
267. requency newval int set_reportFrequency const string amp newval int setReportFrequency NSString newval function set_reportFrequency newval string integer function set_reportFrequency ByVal newval As String As Integer int set_reportFrequency string newval int set_reportFrequency String newval def set_reportFrequency newval YTemperature target set_reportFrequency newval La fr quence peut tre sp cifi e en mesures par secondes en mesures par minutes par exemple 15 m ou en mesures par heure par exemple 4 h Pour d sactiver les notifications p riodiques pour cette fonction utilisez la valeur OFF Param tres newval une cha ne de caract res repr sentant la fr quence de notification p riodique des valeurs mesur 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 236 www yoctopuce com 19 R f rence de l API de haut niveau temperature set_resolution temperature setResolution Modifie la r solution des valeurs physique mesur es function set_resolution newval function set_resolution newval function set_resolution newval int set_resolution double newval int setResolution double newval function set_resolution newval double integer function set_resolution ByVal newval As Double As Integer int set_resolution double newval int set_resolu
268. resse d une autre machine sur laquelle tournerait un autre VirtualHub yFindTemperature La fonction yFindTemperature permet de retrouver un capteur de temp rature en fonction du num ro de s rie de son module h te et de son nom de fonction Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez pr alablement configur s Imaginons un module Yocto Thermocouple avec le num ros de s rie THRMCPL1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction temperature MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t Stemperature yFindTemperature THRMCPL1 123456 temperature Stemperature yFindTemperature THRMCPL1 123456 MaFonction Stemperature yFindTemperature MonModule temperature Stemperature yFindTemperature MonModule MaFonction Stemperature yFindTemperature MaFonction yFindTemperature renvoie un objet que vous pouvez ensuite utiliser loisir pour contr ler le capteur de temp rature isOnline La m thode isOnline de l objet renvoy par yFindTemperature permet de savoir si le module correspondant est pr sent et en tat de marche get_currentValue La m thode get currentValue de l objet renvoy par yFindTemperature permet d obtenir la temp rature actuelle mesur e par le capteur La valeur de retour est un nombre flottan
269. retourne un code d erreur n gatif 272 www yoctopuce com 19 R f rence de l API de haut niveau datalogger set_timeUTC YDataLogger datalogger setTimeUTC Modifie la r f rence de temps UTC afin de l attacher aux donn es enregistr es function set_timeUTC newval function set_timeUTC newval function set_timeUTC newval int set_timeUTC s64 newval int setTimeUTC s64 newval function set_timeUTC newval int64 integer function set_timeUTC ByVal newval As Long As Integer int set_timeUTC long newval int set_timeUTC long newval def set_timeUTC newval YDataLogger target set_timeUTC newval Param tres newval un entier repr sentant la r f rence de temps UTC afin de l attacher aux donn es enregistr 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 www yoctopuce com 273 19 R f rence de l API de haut niveau datalogger set_userData YDataLogger datalogger setUserData Enregistre un contexte libre dans l attribut userData de la fonction afin de le retrouver plus tard a l aide de la m thode get_userData function set_userData data function set_userData data function set_userData data void set_userData void data void setUserData void data procedure set_userData data Tobject procedure set_userData ByVal data As Object
270. ring amp name BOOL yCheckLogicalName NSString name function yCheckLogicalName name string boolean function yCheckLogicalName ByVal name As String As Boolean bool CheckLogicalName string name boolean CheckLogicalName String name def 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 name une cha ne de caract res contenant le nom v rifier Retourne true sile nom est valide false dans le cas contraire 128 www yoctopuce com 19 R f rence de l API de haut niveau YAPI DisableExceptions yDisableExceptions D sactive l utilisation d exceptions pour la gestion des erreurs function yDisableExceptions function DisableExceptions function yDisableExceptions void yDisableExceptions void yDisableExceptions procedure yDisableExceptions procedure yDisableExceptions void DisableExceptions def DisableExceptions YAPI 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 www yoctopuce com 129 19 R f rence de l API de haut niveau YAPI EnableExceptions YAPI yEnableExceptions R active l utilisation d exceptions pour la gestion des erreurs fun
271. ring describe NSString describe function describe string function describe As String string describe String describe def 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 relayl RELAYLO1 123456 relayl1 si le module est d j connect ou Relay BadCustomeName relayl 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 capteur de temp rature ex Relay MyCustomName relayl RELAYLO1 123456 relayl 202 www yoctopuce com 19 R f rence de l API de haut niveau temperature get_advertisedValue YTemperature temperature advertisedValue Retourne la valeur courante du capteur de temp rature pas plus de 6 caract res function get_advertisedValue function get_advertisedValue function get_advertisedValue string get_advertisedValue NSString advertisedValue function get_advertisedValue string function get_adverti
272. riptor Retourne un identifiant unique de type YF UN_DESCR correspondant a la fonction temperature get_functionld Retourne l identifiant mat riel du capteur de temp rature sans r f rence au module temperature get_hardwareld 196 www yoctopuce com 19 R f rence de l API de haut niveau Retourne l identifiant mat riel unique du capteur de temp rature au format SERIAL FUNCTIONID temperature get_highestValue Retourne la valeur maximale observ e temperature get_logFrequency Retourne la fr quence d enregistrement des mesures dans le datalogger ou OFF si les mesures ne sont pas stock es dans la m moire de l enregistreur de donn es temperature get_logicalName Retourne le nom logique du capteur de temp rature temperature get_lowestValue Retourne la valeur minimale observ e temperature get_module Retourne l objet YModu le correspondant au module Yoctopuce qui h berge la fonction temperature get module async callback context Retourne l objet YModu le correspondant au module Yoctopuce qui h berge la fonction temperature get_recordedData startTime endTime Retourne un objet DataSet repr sentant des mesures de ce capteur pr c demment enregistr es l aide du DataLogger pour l intervalle de temps sp cifi temperature get_reportFrequency Retourne la fr quence de notification p riodique des valeurs mesur es ou OFF si les notific
273. rne 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 www yoctopuce com 183 19 R f rence de l API de haut niveau module load_async YModule Met en cache les valeurs courantes du module avec une dur e de validit sp cifi e function load_async msValidity callback context function load_async msValidity callback context Par d faut lorsqu on acc de a 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 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 msValidity un entier correspondant la dur e de validit attribu e aux les param tres charg s en millisecondes callback fonction 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 YAPT_ SUCCESS context context
274. rouver un capteur de temp rature d apr s un identifiant donn function yFindTemperature func function FindTemperature func function yFindTemperature func YTemperature yFindTemperature const string amp func YTemperature yFindTemperature NSString func function yFindTemperature func string TYTemperature function yFindTemperature ByVal func As String As YTemperature YTemperature FindTemperature string func YTemperature FindTemperature String func def FindTemperature func L identifiant peut tre sp cifi sous plusieurs formes e NomLogiqueFonction e NoSerieModule ldentifiantFonction e NoSerieModule NomLogiqueFonction e NomLogiqueModule ldentifiantMat riel e NomLogiqueModule NomLogiqueFonction Cette fonction n exige pas que le capteur de temp rature soit en ligne au moment ou elle est appel e l objet retourn sera n anmoins valide Utiliser la m thode YTemperature isOnline pour tester si le capteur de temp rature 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 func une cha ne de caract res qui r f rence le capteur de temp rature sans ambigu t Retourne un objet de classe YTemperature qui permet ensuite de contr ler le capteur de temp rature www yo
275. rt yocto api h static void usage const char exe NSLog usage s lt serial gt lt newLogicalName gt n exe exit l int Main ink arger const char arov ih NSError error autoreleasepool Setup the API to use local USB devices if yRegisterHub usb amp error YAPT SUCCESS NSiogi Regisiterhub error 26 error localiizedDescrrpevon i return 1 Lijance 2 usage argv 0 NSString serial or name NSString stringWithUTF8String argv 1 YModule module yFindModule serial or name use serial or logical name if module isOnline if arge gt 3 NSString newname NSString stringWithUTF8String argv 2 if yCheckLogicalName newname NSLog Invalid name n newname usage argv 0 module logicalName newname module saveToFlash NSLog Current name n module logicalName oO fic u oO NSLog not connected check identification and USB cable n serial or name Attention le nombre de cycles d criture de la m moire non volatile du module est limit Pass cette limite plus rien ne garantit que la sauvegarde des r glages se passera correctement Cette limite li e la technologie employ e par le micro processeur du module se situe aux alentour de 100000 cycles Pour r sumer vous ne pouvez employer la fonction saveToFlash que 100000 fois au 60 www yoctopuce com 10 Utilisation du Yocto Thermocouple en Objecti
276. s Yoctopuce install s derri re un filtre NAT tel qu un routeur DSL par exemple et ce sans avoir un ouvrir un port L application typique est le contr le de modules Yoctopuce situ s sur r seau priv depuis un site Web publique Le filtre NAT avantages et inconv nients Un routeur DSL qui effectue de la traduction d adresse r seau NAT fonctionne un peu comme un petit central t l phonique priv les postes internes peuvent s appeler l un l autre ainsi que faire des appels vers l ext rieur mais vu de l ext rieur il n existe qu un num ro de t l phone officiel attribu au central t l phonique lui m me Les postes internes ne sont pas atteignables depuis l ext rieur www mysite com 192 168 0 1 64 136 20 37 192 168 0 101 A 46 14 51 32 AS 192 168 0 102 a Configuration DSL typique les machines du LAN sont isol es de l ext rieur par le router DSL Ce qui transpos en terme de r seau donne les appareils connect s sur un r seau domestique peuvent communiquer entre eux en utilisant une adresse IP locale du genre 192 168 xxx yyy et contacter des serveurs sur Internet par leur adresse publique mais vu de l ext rieur il n y a qu une seule adresse IP officielle attribu e au routeur DSL exclusivement Les diff rents appareils r seau ne sont pas directement atteignables depuis l ext rieur C est assez contraignant mais c est une protection relativement efficace contre les intrusions r pon
277. s 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 Thermocouple 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 www yoctopuce com 13 4 Montage et connectique existe d autres 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 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 Branchement du thermocouple Pour brancher un thermocouple sur votre Yocto Thermocouple vissez simplement son extr mit dans le bornier Beaucoup de thermocouples du march sont livr s avec une fiche il suffit de d m
278. s de ce chapitre avant d acc der un module on v rifie qu il est en ligne avec la m thode isOnline et on suppose ensuite qu il va y rester pendant la fraction de seconde n cessaire ex cuter les lignes de code suivantes Ce n est pas parfait mais a peut suffire dans certains cas Il faut toutefois tre conscient qu on ne peut pas totalement exclure une erreur se produisant apr s le isOnline qui pourrait faire planter le programme La seule mani re de l viter est d impl menter une des deux techniques de gestion des erreurs d crites ci dessous 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 e Si votre code attrape l exception au vol et la g re et tout se passe bien e Si votre programme tourne dans le debugger vous pourrez relativement facilement d terminer o le probl me s est produit et voir le message explicatif li l exception e Sinon l exception va crasher votre programme boum Comme cette derni re situation n est pas la plus souhaitable la librairie Yoctopuce offre une autre alternative pour la gestion des erreurs permettant de faire un programme robuste sans devoir attraper les exceptions chaque ligne
279. s grande valeur observ e durant l intervalle de temps couvert par la mesure function get_maxValue function get_maxValue function get_maxValue double get_maxValue double maxValue function get_maxValue double v function get_maxValue As Double double get_maxValue double get_maxValue def get_maxValue Retourne un nombre d cimal correspondant la plus grande valeur observ e 292 www yoctopuce com 19 R f rence de l API de haut niveau measure get_minValue YMeasure measure minValue Retourne la plus petite valeur observ e durant l intervalle de temps couvert par la mesure function get_minValue function get_minValue function get_minValue double get_minValue double minValue function get_minValue double function get_minValue As Double double get_minValue double get_minValue def get_minValue Retourne un nombre d cimal correspondant la plus petite valeur observ e www yoctopuce com 293 19 R f rence de l API de haut niveau measure get_startTimeUTC YMeasure measure startTimeUTC Retourne l heure absolue du d but de la mesure sous forme du nombre de secondes depuis le 1er janvier 1970 UTC date heure au format Unix function get_startTimeUTC function get_startTimeUTC function get_startTimeUTC double get_startTimeUTC double startTimeUTC function get_startTimeUTC
280. s 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 Type bytes Description vendorid int 4 ID USB de Yoctopuce deviceid int 4 ID USB du module devrelease int 4 Version du module nbinbterfaces int 4 Nombre d interfaces USB utilis e par le module manufacturer char 20 Yoctopuce null termin productname char 28 Mod le null termin serial char 20 Num ro de s rie null termin logicalname char 20 Nom logique null termin firmware char 22 Version du firmware null termin beacon byte 1 Etat 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 dil pour lister les modules connect s device description structure type yDeviceSt packed record vendorid gt word deviceid word devrelease Word nbinbterfaces DA sr manufacturer O euereeiy ile sil wae ans eha productname array TOTT oe ans chiara serial Jar cay Me ily wae amns ehan logicalname Tarca TO TO INC ans eha firmware Tarca TOC 2 NC ansieae beacon OV end Dili FUOCO Limp Ome function yapilnitAPI mode integer errmsg
281. s 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
282. s 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 PHP fait lui aussi partie de ces langages qui ne vous permettront pas d acc der directement aux couches mat rielles de votre ordinateur C est pourquoi vous devrez faire tourner un hub virtuel sur la machine laquelle sont branch s les modules Pour d marrer vos essais en PHP vous allez avoir besoin d un serveur PHP 5 3 ou plus de pr f rence en local sur votre machine Si vous souhaiter utiliser celui qui se trouve chez votre provider internet c est possible mais vous devrez probablement configurer votre routeur ADSL pour qu il accepte et forwarde les requ tes TCP sur le port 4444 8 1 Pr paration Connectez vous sur le site de Yoctopuce et t l chargez les l ments suivants La librairie de programmation pour PHP Le programme VirtualHub pour Windows Mac OS X ou Linux selon l OS que vous utilisez D compressez les fichiers de la librairie dans un r pertoire de votre choix accessible votre serveur web branchez vos modules lancez le programme VirtualHub et vous pouvez commencer vos premiers test Vous n avez pas besoin d installer de driver 8 2 Contr le de la fonction Temperature Il suffit de quelques lignes de code pour piloter un Yocto Thermocouple Voici le squelette
283. se Les r ponses aux requ tes venant des machines du LAN sont rout es 44 www yoctopuce com 8 Utilisation du Yocto Thermocouple en PHP requ te D Si Mais les requ tes venant de l ext rieur sont bloqu es Voir Internet sans tre vu repr sente un avantage de s curit norme Cependant cela signifie qu a priori on ne peut pas simplement monter son propre serveur Web publique chez soi pour une installation domotique et offrir un acc s depuis l ext rieur Une solution ce probl me pr conis e par de nombreux vendeurs de domotique consiste donner une visibilit externe au serveur de domotique lui m me en ouvrant un port et en ajoutant une r gle de routage dans la configuration NAT du routeur DSL Le probl me de cette solution est qu il expose le serveur de domotique aux attaques externes L API par callback HTTP r soud ce probl me sans qu il soit n cessaire de modifier la configuration du routeur DSL Le script de contr le des modules est plac sur un site externe et c est le Virtual Hub qui est charg de l appeler intervalle r gulier VirtualHub yoctocontrol php C L API par callback HTTP utilise le VirtualHub et c est lui qui initie les requ tes requ te r ponse Configuration L API callback se sert donc du Virtual Hub comme passerelle Toutes les communications sont initi es par le Virtual Hub ce sont donc des communication sortantes et par cons quent parfait
284. sedValue As String string get_advertisedValue String get_advertisedValue def get_advertisedValue YTemperature target get_advertisedValue Retourne une chaine de caract res repr sentant la valeur courante du capteur de temp rature pas plus de 6 caract res En cas d erreur d clenche une exception ou retourne Y_ADVERTISEDVALUE_INVALID www yoctopuce com 203 19 R f rence de l API de haut niveau temperature get_currentRawValue YTemperature temperature currentRawValue Retourne la valeur brute retourn e par le capteur sans arrondi ni calibration function get_currentRawValue function get_currentRawValue function get_currentRawValue double get_currentRawValue double currentRawValue function get_currentRawValue function get_currentRawValue double get_currentRawValue double get_currentRawValue def get_currentRawValue YTemperature target get_currentRawValue a double As Double P SS Retourne une valeur num rique repr sentant la valeur brute retourn e par le capteur sans arrondi ni calibration En cas d erreur d clenche une exception ou retourne Y_CURRENTRAWVALUE_INVALID 204 www yoctopuce com 19 R f rence de l API de haut niveau temperature get_currentValue temperature currentValue Retourne la valeur mesur e actuelle function get_currentValue function get_currentValue function get_currentValue double get_c
285. 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 et 10 8 Mountain Lion Yoctopuce teste r guli rement le bon fonctionnement des modules sur Mac OS X 10 6 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 0 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
286. t 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 THRMCPL1 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 THRMCPL1 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 temperature il suffit de construire l URL suivante http 127 0 0 1 4444 bySerial THRMCPL1 12345 api temperature 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 a celle utilis e avec les modules par exemple http 127 0 0 1 4444 bySerial THRMCPL1 12345 api tempe
287. t repr sentant directement le nombre de degr s Celsius Un exemple r el Ouvrez votre diteur de texte pr f r recopiez le code ci dessous sauvez le dans un r pertoire accessible par votre serveur web PHP avec les fichiers de la librairie et ouvrez la page avec votre browser favori Vous trouverez aussi ce code dans le r pertoire Examples Doc GettingStarted Yocto Thermocouple de la librairie Yoctopuce 4 Si vous n avez pas d diteur de texte utilisez Notepad plut t que Microsoft Word 40 www yoctopuce com 8 Utilisation du Yocto Thermocouple en PHP Vous reconnaitrez dans cet exemple l utilisation des fonctions expliqu es ci dessus cette fois utilis es avec le d corum n cessaire en faire un petit programme d exemple concret lt HTML gt lt HEAD gt lt TITLE gt Hello World lt TITLE gt lt HEAD gt lt BODY gt lt php include NMyoctosapipnp include yocto temperature php Use explicit error handling rather than exceptions yDisableExceptions Setup the API to use the VirtualHub on local machine it yRegisterHub http 127 0 0 1 34444 Serrmsg YAPE SUCCESS die Cannot contact VirtualHub on 127 0 0 1 Sserial 5 GET seriall Serre Wes VN af Check if a specified module is available online Stemp yFindTemperature S serial temperaturel if temp gt isOnline die Module not connected check serial and USB cable reles or use any
288. t pas un langage de programmation c est un syst me d exploitation d velopp par Google pour les appareils portables tels que smart phones et tablettes Mais il se trouve que sous Android tout est programm avec le m me langage de programmation Java En revanche les paradigmes de programmation et les possibilit s d acc s au hardware sont l g rement diff rentes par rapport au Java classique ce qui justifie un chapitre part sur la programmation Android 16 1 Acc s Natif et Virtual Hub Contrairement l API Java classique l API Java pour Android acc de aux modules USB de mani re native En revanche comme il n existe pas de VirtualHub tournant sous Android il n est pas possible de prendre le contr le distance de modules Yoctopuce pilot s par une machine sous Android Bien s r l API Java pour Android reste parfaitement capable de se connecter un VirtualHub tournant sur un autre OS 16 2 Pr paration Connectez vous sur le site de Yoctopuce et t l chargez la librairie de programmation pour Java pour Android La librairie est disponible en fichiers sources mais elle aussi disponible sous la forme d un fichier jar Branchez vos modules d compressez les fichiers de la librairie dans le r pertoire de votre choix Et configurez votre environnement de programmation Android pour qu il puisse les trouver Afin de les garder simples tous les exemples fournis dans cette documentation sont des fragments d application Andr
289. t__userData datalogger isOnline V rifie si le module h bergeant l enregistreur de donn es est joignable sans d clencher d erreur datalogger isOnline_async callback context V rifie si le module h bergeant l enregistreur de donn es est joignable sans d clencher d erreur datalogger load msValidity Met en cache les valeurs courantes de l enregistreur de donn es avec une dur e de validit sp cifi e datalogger load_async msValidity callback context Met en cache les valeurs courantes de l enregistreur de donn es avec une dur e de validit sp cifi e datalogger nextDataLogger Continue l num ration des enregistreurs de donn es commenc e l aide de yFirstDataLogger datalogger registerValueCallback callback Enregistre la fonction de callback qui est appel e a chaque changement de la valeur publi e datalogger set_autoStart newval Modifie le mode d activation automatique de l enregistreur de donn es la mise sous tension datalogger set_logicalName newval Modifie le nom logique de l enregistreur de donn es datalogger set_recording newval Modifie l tat d activation de l enregistreur de donn es datalogger set_timeUTC newval Modifie la r f rence de temps UTC afin de l attacher aux donn es enregistr es datalogger 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 g
290. teeeeeeeeeeteeeeeeneeeeees 125 191 E0nCtions g n rales A E Se mn De ner E 126 19 2 Interface de contr le du module ooo eee eeeeeeeeeeeeeeeeeneeeeeeaeeeeeeaeaeeeeeaeeeenaeeeeeneeeeeeaaes 151 19 3 Interface de la fonction Temperature ooo ee ceceeeeeneeceeeeeeeeeeeeeeeseaeeeeseeeeeseeeeeseieeeeteeees 196 19 4 Interface de la fonction DataLogger eee eceeeeneeeeseneeeeeeeeeeeeeeeeeeeeaeeeeteeeeeseneaeeneaaaes 241 19 5 S quence de donn es enregistr es eeeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeessaeeeeseaaeeeeeaeeeee 276 19 6 Valeur MESU A sn sssmmn MAIN iets ceevesedecdanthstiaigied Aaa Ea dea raaa Sa iia aA raia 289 20 Probl mes courants 1154 a nee nn ee 295 ZO SV LIN eT USB 48008 nn nes eo Men ES de heel ni Ne date ET conte 295 20 2 Plateformes ARM HF et EL ou eeeeeceeceseeeecesneeeeneeceeeeneeeeneaeeesaaaeeneaaaeeneeseeeeeseneeeeneneeees 296 21 Caract ristiques 2 6 00 hia homme amet 297 Blueprint assiette met deena tal detente 299 1 Introduction Le module Yocto Thermocouple est un module de 45x20mm mm qui permet de mesurer par USB la temp rature l aide de thermocouples Il dispose de deux canaux dont la pr cision est de 1 C 1 Le module Yocto Thermocouple Yoctopuce vous remercie d avoir fait l acquisition de ce Yocto Thermocouple 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 Thermocouple soit facil
291. tem nO Imports System Environment Module Modulel Sub usage Console WriteLine usage demo lt serial or logical name gt ON OFF End End Sub Sub Main Dim argv As String Dim errmsg As String Dim m As ymodule System Environment GetCommandLineArgs we Tf yRegisterHub usb errmsg lt gt YAPI SUCCESS Then Console WriteLine RegisterHub error errmsg End Bod If If argv Length lt 2 Then usage m yFindModule argv 1 REM use serial or logical name If m isOnline Then Lt argv length gt 2 Then If argv 2 ON Then m set beacon Y BEACON ON If argv 2 OFF Then m set beacon Y BEACON OFF End If Console Write Console Write Console Write Line serial Line logical name Line luminosity m get serialNumber m get logicalName Po situ meget luminosity 0 Console Write beacon mA If m get beacon Y BEACON ON Then Console WriteLine ON Else Console WriteLine OFF End If Console WriteLine upTime Str m get upTime 100 Consoles WriteLine USB current Sitr m iget usbeurment Console WriteLine Logs Console WriteLine m get lastLogs Else a Console WriteLine argv 1 not connected check identifica Emel is End Sub End Module I Da seo LL mA tion and USB cable 66 www yoctopuce com 11 Utilisation du Yocto Thermocouple en VisualBasic NET Chaque propri t xxx du module peut tre lue
292. tent de la m me longueur Il existe des thermocouples qui sont lectriquement isol s et d autres qui ne le sont pas comme celui livr en standard avec votre Yocto Thermocouple Si vous devez mesurer la temp rature d un objet susceptible de se trouver sous tension utilisez un thermocouple isol sinon vous risquez de d truire votre Yocto Thermocouple et probablement votre ordinateur www yoctopuce com 7 www yoctopuce com 3 Premiers pas Arriv ce chapitre votre Yocto Thermocouple 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 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 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 Logical Name Description Action b0 VirtualHub configure v iew log file Yocto Thermocouple configure view log file beacon fe Show device functions
293. tion double newval def set_resolution newval YTemperature target set_resolution newval YTemperature La r solution correspond la pr cision de l affichage des mesures Elle ne change pas la pr cision de la mesure elle m me r Param tres Retourne YAPI_SUCCESS si l op ration se d roule sans erreur newval une valeur num rique repr sentant la r solution des valeurs physique mesur es En cas d erreur d clenche une exception ou retourne un code d erreur n gatif www yoctopuce com 237 19 R f rence de l API de haut niveau temperature set _sensorType YTemperature temperature setSensorType Change le type de senseur utilis par le module function set_sensorType newval function set_sensorType newval function set_sensorType newval int set_sensorType Y_SENSORTYPE_enum newval int setSensorType Y_SENSORTYPE_enum newval _pas function set_sensorType newval Integer integer _vb function set_sensorType ByVal newval As Integer As Integer int set_sensorType int newval int set_sensorType int newval def set_sensorType newval YTemperature target set_sensorType newval Cette function sert sp cifier le type de thermocouple K E etc raccord au module Cette fonction n aura pas d effet si le module utilise un capteur digital N oubliez pas d appeler la m thode saveToFlash du module si le r glage doit tre pr serv Param tres newval u
294. tion describe string describe NSString describe function describe string function describe As String string describe String describe def 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 relayl RELAYLO1 123456 relayl1 si le module est d j connect ou Relay BadCustomeName relayl 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 l enregistreur de donn es ex Relay MyCustomName relayl RELAYLO1 123456 relayl www yoctopuce com 245 19 R f rence de l API de haut niveau datalogger forgetAllDataStreams YDataLogger Efface tout l historique des mesures de l enregistreur de donn es function forgetAllDataStreams function forgetAllDataStreams function forgetAllDataStreams int forgetAllDataStreams int forgetAllDataStreams pas_ function forgetAllDataStreams Longint vo function forgetAllDataStreams
295. tion du probl me yFindTemperature La fonction yFindTemperature permet de retrouver un capteur de temp rature en fonction du num ro de s rie de son module h te et de son nom de fonction Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez pr alablement configur s Imaginons un module Yocto Thermocouple avec le num ros de s rie THRMCPL1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction temperature MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t temperature yFindTemperature THRMCPL1 123456 temperature temperature yFindTemperature THRMCPL1 123456 MaFonction temperature yFindTemperature MonModule temperature temperature yFindTemperature MonModule MaFonction temperature yFindTemperature MaFonction yFindTemperature renvoie un objet que vous pouvez ensuite utiliser a loisir pour contr ler le capteur de temp rature isOnline La m thode isOnline de l objet renvoy par yFindTemperature permet de savoir si le module correspondant est pr sent et en tat de marche get_currentValue La m thode get currentValue de l objet renvoy par yFindTemperature permet d obtenir la temp rature actuelle mesur e par le capteur La valeur de retour est un nombre flottant repr sentant directement le nombre de degr s Celsius
296. tion nextModule de cet objet pour trouver les modules suivants et ce tant que la r ponse n est pas un nil Ci dessous un petit exemple listant les module connect s program inventory SAPPTYPE CONSOLE Wises Sysutils yocto api var module TYModule SEMMSG eS ten begin Setup the API to use local USB devices if yRegisterHub usb errmsg lt gt YAPI SUCCESS then begin Write RegisterHub error exit end errmsg Writeln Device list module yFirstModule while module lt gt nil do began Writeln module get serialNumber module module module nextModule end end IGetaproductNamel t a NEN www yoctopuce com 83 13 Utilisation du Yocto Thermocouple en Delphi 13 4 Gestion des erreurs Lorsque vous impl mentez un programme qui doit interagir avec des modules USB vous ne pouvez pas faire abstraction de la gestion des erreurs Il y aura forc ment une occasion o un utilisateur aura d branch le p riph rique soit avant de lancer le programme soit m me en pleine op ration 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 La mani re la plus simple de contourner le probl me est celle que nous avons employ pour les petits exemples pr c dents de ce chapitre avant d acc der un module on v
297. tion si elles avaient t actives 90 www yoctopuce com 15 Utilisation du Yocto Thermocouple en Java Java est un langage orient objet d velopp par Sun Microsystem Son principal avantage est la portabilit mais cette portabilit a un co t Java fait une telle abstraction des couches mat rielles qu il est tr s difficile d interagir directement avec elles C est pourquoi l API java standard de Yoctopuce ne fonctionne pas en natif elle doit passer par l interm diaire d un VirtualHub pour pouvoir communiquer avec les modules Yoctopuce 15 1 Pr paration Connectez vous sur le site de Yoctopuce et t l chargez les l ments suivants e La librairie de programmation pour Java Le programme VirtualHub pour Windows Mac OS X ou Linux selon l OS que vous utilisez La librairie est disponible en fichier sources mais elle aussi disponible sous la forme d un fichier jar Branchez vos modules D compressez les fichiers de la librairie dans un r pertoire de votre choix Lancez le programme VirtualHub et vous pouvez commencer vos premiers test Vous n avez pas besoin d installer de driver Afin de les garder simples tous les exemples fournis dans cette documentation sont des applications consoles Il va de soit que que le fonctionnement des librairies est strictement identiques si vous les int grez dans une application dot e d une interface graphique 15 2 Contr le de la fonction Temperature Il suffit de quelques lig
298. tion sur le module soient termin es et appelle le callback pass en param tre function wait_async callback context 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 callback fonction 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 context contexte fourni par l appelant et qui sera pass tel quel la fonction de callback Retourne rien du tout 240 www yoctopuce com 19 R f rence de l API de haut niveau 19 4 Interface de la fonction DataLogger Les capteurs de Yoctopuce sont quip s d une m moire non volatile permettant de m moriser les donn es mesur es d une mani re autonome sans n cessiter le suivi permanent d un ordinateur La fonction DataLogger contr le les param tres globaux de cet enregistreur de donn es Pour utiliser les fonctions d crites ici vous devez inclure lt script type text javascript src yocto_datalogger js gt lt script gt var yoctolib require yoctolib var YDataLogger yoctolib YDataLogger require_once yocto_datalogger php include yocto_datalogger h import yocto_datalogger h uses yocto_datalogger yocto_datalogger
299. tre 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 20 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 296 www yoctopuce com 21 Caract ristiques Vous trouverez r sum es ci dessous les principales Yocto Thermocouple Senseur Largeur Longueur Poids Connecteur USB Canaux Frequence de rafra chissement Pr cision Sensibilit Temp rature Max Temp rature Min Syt me d exploitation support s Drivers API SDK Librairie USB TCP API SDK Librairie seul TCP RoHS USB Vendor ID USB Device ID Boiter recommand Cables et boitiers Type K E J N R S T 20 mm 45 mm 45g micro B 2
300. tring ByRef errmsg As String As Integer int PreregisterHub string url ref string errmsg synchronized static int PreregisterHub String url def PreregisterHub url errmsg None YAPI 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 II 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 YAPI_SUCCESS si l op ration se d roule sans erreur Param tres url une cha ne de caract res contenant usb callback ou l URL racine du VirtualHub utiliser errmsg une cha ne de caract res pass e par r f rence dans laquelle sera stock un ventuel message d erreur Retourne En cas d erreur d clenche une exception ou retourne un code d erreur n gatif www yoctopuce com 137 19 R f rence de l API de haut niveau YAPI RegisterDeviceArrivalCallback YAPI yRegisterDeviceArrivalCallback Enregistre une fonction de callback qui sera appel e a chaque fois qu un module est branch function yRegisterDeviceArrivalCallback arrivalCallback nodejs function RegisterDeviceArrivalCallback arrivalCallback function yRegisterDeviceArrivalCallback arrivalCallback void yRegisterDeviceArrivalCallback yDeviceUpdateCallback arr
301. tte limite plus rien ne garantit de que la sauvegarde des r glages se passera correctement Cette limite li la technologie employ par le micro processeur du module se situe aux alentour de 100000 cycles Pour r sumer vous ne pouvez employer la fonction saveToFlash que 100000 fois au cours de la vie du module Veillez donc ne pas appeler cette fonction depuis l int rieur d une boucle Enum ration des modules Obtenir la liste des modules connect s se fait a l aide de la fonction yFirstModule qui renvoie le premier module trouv il suffit ensuite d appeler la fonction nextModule de cet objet pour trouver les modules suivants et ce tant que la r ponse n est pas un NULL Ci dessous un petit exemple listant les module connect s lt HTML gt lt HEAD gt lt TITLE gt inventory lt TITLE gt lt HEAD gt lt BODY gt lt H1 gt Device list lt H1 gt SI lt php include yocto api php yRegisterHub http 127 0 0 1 4444 Smodule yFirstModule while is null Smodule printf ss s lt br gt module gt get_serialNumber module gt get productName www yoctopuce com 43 8 Utilisation du Yocto Thermocouple en PHP Smodule Smodule gt nextModule o gt lt I gt lt BODY gt lt HTML gt 8 4 API par callback HTTP et filtres NAT La librairie PHP est capable de fonctionner dans un mode sp cial appel Yocto API par callback HTTP Ce mode permet de contr ler des module
302. ture logicalName Retourne le nom logique du capteur de temp rature function get_logicalName function get_logicalName function get_logicalName string get_logicalName NSString logicalName function get_logicalName string function get_logicalName As String string get_logicalName String get_logicalName def get_logicalName YTemperature target get_logicalName 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 214 www yoctopuce com 19 R f rence de l API de haut niveau temperature get_lowestValue temperature lowestValue Retourne la valeur minimale observ e function get_lowestValue function get_lowestValue function get_lowestValue double get_lowestValue double lowestValue function get_lowestValue double function get_lowestValue As Double double get_lowestValue double get_lowestValue def get_lowestValue YTemperature target get_lowestValue Retourne une valeur num rique repr sentant la valeur minimale observ e YTemperature En cas d erreur d clenche une exception ou retourne Y_LOWESTVALUE_INVALID www yoctopuce com 215 19 R f rence de l API de haut niveau temperature get_module YTemperature temperature module Retourne l objet YModule correspondant au module Yoctop
303. u Yocto Thermocouple en C ouo eccccccccccccceseesesteeseeseesneseeeneens 49 9 1 Contr le de la fonction Temperature ooo ee eeeeeeeeeeeeeeneeeeeeneeeeeeaeeeteeeeeeeeeeeeseeeeeteneeeeeeaes 49 9 2 Contr le de la partie module sisi 51 9 3 Gestion des r UrS oid be Dette dre E tete et Adasen el aed 54 9 4 Int gration de la librairie Yoctopuce en C oe eeeccecece cee eeeeeeeeeeeeeeeeeaeeeeeesentcneeeeeeeteneneeeeeess 54 10 Utilisation du Yocto Thermocouple en Objective 0 0 0 cc ee 57 10 1 Contr le de la fonction Temperature o oo eeeeeeeeeeneeeeeeeeeeeeeeeeeseaeeeessaeeeeeeaeeesseneeeeenaeees 57 10 2 Contr le de la partie module sis 59 10 3 Gestiondes erreurs een A TR net Ace toe nn nt eae le 61 11 Utilisation du Yocto Thermocouple en VisualBasic NET 63 dle AcINStallatiOn Hesse rent ee ee en tale a nn eben tales 63 11 2 Utilisation l API yoctopuce dans un projet Visual Basic oe eeeeeeeeneeeeeneeeeteneeeeeeaees 63 11 3 Contr le de la fonction Temperature o oo eeeeeeeeeeeneeeeseneeeeeeeeeeseaeeeeseaeeeessaeeetseieeeeeeaeees 64 11 4 Contr le de la partie module sisi 66 11 5 Gesti n des erreurs oirra iil nd valves nthe dvi die aaae termin e londres 68 12 Utilisation du Yocto Thermocouple en C oo cesteeceeseeseeseeneeees 71 V2 1 Installation assis tetra ae aed eesti ee ovine laden sheen eid dede 71 12 2 Utilisation l API yoctopuce dans un projet Visu
304. uce com 19 R f rence de l API de haut niveau temperature registerValueCallback YTemperature Enregistre la fonction de callback qui est appel e chaque changement de la valeur publi e function registerValueCallback callback function registerValueCallback callback function registerValueCallback callback int registerValueCallback YTemperatureValueCallback callback int registerValueCallback YTemperatureValueCallback callback function registerValueCallback callback TYTemperatureValueCallback Longint function registerValueCallback As Integer int registerValueCallback ValueCallback callback int registerValueCallback UpdateCallback callback def registerValueCallback callback Ce callback n est appel que durant l ex cution de ySleep ou yHandleEvents Cela permet a 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 callback la 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 www yoctopuce com 231 19 R f rence de l API de haut niveau temperature set_high
305. uce qui h berge la fonction is function get module node js function get_module php_ function get_module YModule get_module YModule module function get_module TYModule function get_module As YModule YModule get_module YModule get_module def 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 216 www yoctopuce com 19 R f rence de l API de haut niveau temperature get_ module async YTemperature temperature module_async Retourne l objet YModule correspondant au module Yoctopuce qui h berge la fonction function get_module_async callback context 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 gt Param tres callback fonction 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 context contexte fourn
306. ue utilisant la librairie Yoctopuce il recevra l heure de cet ordinateur e Lorsque le Yocto Thermocouple est branch un YoctoHub Ethernet il recevra par ce biais l heure que le YoctoHub a obtenu par le r seau depuis un serveur du pool ntp org e Lorsque le Yocto Thermocouple est branch un YoctoHub Wireless il recevra de celui ci l heure maintenue par son horloge RTC pr c demment obtenue par le r seau ou par un ordinateur e Lorsque le Yocto Thermocouple est branch un appareil mobile Android il recevra de celui ci l heure actuelle pour autant qu une application utilisant la librairie Yoctopuce soit lanc e Si aucune de ces conditions n est remplie par exemple si le module est simplement connect un chargeur USB le Yocto Thermocouple fera de son mieux pour donner une date vraisemblable aux mesures en repartant de l heure des derni res mesures enregistr es Ainsi vous pouvez mettre l heure un Yocto Thermocouple autonome en le branchant sur un t l phone Android lan ant un enregistrement de donn es puis en le re branchant tout seul sur un chargeur USB Soyez toutefois conscients que sans source de temps externe l horloge du Yocto Thermocouple peut d river petit petit en principe pas plus de 0 3 2 L objet YMeasure du datalogger est exactement du m me type que ceux qui sont pass s aux fonctions de callback p riodique 114 www yoctopuce com 17 Programmation avanc e 17 3 Calibration
307. ule from yocto_api import 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 yGetAP Version 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 ylnitAPI mode errmsg Initialise la librairie de programmation de Yoctopuce explicitement yPreregisterHub url errmsg Alternative plus tolerante a RegisterHub yRegisterDeviceArrivalCallback arrivalCallback Enregistre une fonction de callback qui sera appel e a chaque fois qu un module est branch yRegisterDeviceRemovalCallback removalCallback Enregistre une fonction de callback qui sera appel e a 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 callback 126 www yoctopuce com 19 R f rence de l API de haut niveau Enregistre une fon
308. ule red marre les modifications seront perdues Pour qu elle soient m moris es de mani re persistante il est n cessaire de demander au module de sauvegarder sa configuration courante dans sa m moire non volatile Pour cela il faut utiliser la m thode YModule saveToFlash Inversement il est possible de forcer le module oublier ses r glages courants en utilisant la m thode YModule revertFromFlash Ce petit exemple ci dessous vous permet changer le nom logique d un module package com yoctopuce doc_ examples import android app Activity import android os Bundle import android view View import android widget AdapterView import android widget AdapterView OnItemSelectedListener import android widget ArrayAdapter import android widget EditText import android widget Spinner import android widget TextView import android widget Toast import com yoctopuce YoctoAPI YAPI import com yoctopuce YoctoAPI YAPI Exception import com yoctopuce YoctoAPI YModule public class SaveSettings extends Activity implements OnItemSelectedListener private ArrayAdapter lt String gt aa private YModule module null Override public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R layout savesettings Spinner my spin Spinner findViewById R id spinnerl 104 www yoctopuce com 16 Utilisation du Yocto Thermocouple avec Android my spin setOnItemSele
309. um ro mineur soit gal ou sup rieur Le num ro de build n est pas significatif par rapport a la compatibilit de la librairie Retourne une cha ne de caract res d crivant la version de la librairie www yoctopuce com 133 19 R f rence de l API de haut niveau YAPI GetTickCount YAPI yGetTickCount Retourne la valeur du compteur monotone de temps en millisecondes function yGetTickCount nodejs function GetTickCount function yGetTickCount u64 yGetTickCount u64 yGetTickCount function yGetTickCount u64 vo _ function yGetTickCount As Long ulong GetTickCount long GetTickCount def 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 134 www yoctopuce com 19 R f rence de l API de haut niveau YAPI HandleEvents YAPI yHandleEvents Maintient la communication de la librairie avec les modules Yoctopuce function yHandleEvents errmsg function HandleEvents errmsg function yHandleEvents amp errmsg YRETCODE yHandleEvents string amp errmsg YRETCODE yHandleEvents NSError errmsg function yHandleEvents var errmsg string integer function yHandleEvents ByRef errmsg As String As YRETCODE YRETCODE HandleEvents ref string errmsg int HandleEvents
310. une mani re similaire vous trouverez ci dessous un simple programme d exemple affichant les principaux param tres d un module et permettant d activer la balise de localisation import com yoctopuce YoctoAPI import java util logging Level import java util logging Logger public class Demo public static void main String args try setup the API to use local VirtualHub APPRIS Er AUDIMRETEAOPIONNMIRN EE catch YAPT Exception ex System out printin lCannot contact VirtualHub on 127 0 0 2 ex getLocalizedMessage System out println Ensure that the VirtualHub application is running System exit 1 System out println usage demo serial or logical name ON OFF YModule module if args length 0 module YModule FirstModule if module null System out println No module connected check USB cable System exit 1 else module YModule FindModule args 0 use serial or logical name www yoctopuce com 93 15 Utilisation du Yocto Thermocouple en Java DEV 4 if args length gt 1 if args 1 equalsIgnoreCase ON module setBeacon YModule BEACON ON elas i module setBeacon YModule BEACON OFF System out printin serial module get serialNumber System out println logical name module get_logicalName System out println luminosity module get_luminosity if module get beacon YModule BEACON ON S
311. ur g rer les modules contenant un capteur de temp rature comme le Yocto Thermocouple yRegisterHub La fonction yRegisterHub permet d indiquer sur quelle machine se trouve les modules Yoctopuce ou plus exactement la machine sur laquelle tourne le programme VirtualHub Dans notre cas l adresse 127 0 0 1 4444 indique la machine locale en utilisant le port 4444 le 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 yFindTemperature La fonction yFindTemperature permet de retrouver un capteur de temp rature en fonction du num ro de s rie de son module h te et de son nom de fonction Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez pr alablement configur s Imaginons un module Yocto Thermocouple avec le num ros de s rie THRMCPL1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction temperature MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t var temperature yFindTemperature THRMCPL1 123456 temperature var temperature yFindTemperature THRMCPL1 123456 MaFonction var temperature yFindTemperature MonModule temperature var temperature yFindTemperature MonModule MaFonction var temperature yFindTemperature MaFonction
312. ures disponibles sous forme du nombre de secondes depuis le 1er janvier 1970 date heure au format Unix function get_endTimeUTC function get_endTimeUTC function get_endTimeUTC s64 get_endTimeUTC s64 endTimeUTC function get_endTimeUTC int64 function get_endTimeUTC As Long long get_endTimeUTC long get_endTimeUTC def get_endTimeUTC Lorsque l objet YDataSet est cr l heure de fin est celle qui a t pass e en param tre la fonction get_dataSet D s le premier appel la m thode 1oadMore l heure de fin est mise jour la derni re mesure effectivement disponible dans l enregistreur de donn es pour la plage sp cifi e Retourne un entier positif correspondant au nombre de secondes coul es entre le 1er janvier 1970 et la derni re mesure 278 www yoctopuce com 19 R f rence de l API de haut niveau dataset get_functionld YDataSet dataset functionld Retourne l identifiant mat riel de la fonction qui a effectu les mesures sans r f rence au module function get_functionld function get_functionld function get_functionld string get_functionld NSString functionld function get_functionld string function get_functionld As String string get_functionld String get_functionld def get_functionld Par example temperaturel Retourne une cha ne de caract res identifiant la fonction ex temperaturel
313. ures sont stock es dans le r pertoire cdi L API va charger automatiquement le bon fichier lors de son initialisation Vous n aurez donc pas vous en soucier Si un jour vous deviez vouloir recompiler la librairie dynamique vous trouverez tout son code source dans la librairie Yoctopuce pour le C Afin de les garder simples tous les exemples fournis dans cette documentation sont des applications consoles Il va de soit que que le fonctionnement des librairies est strictement identiques si vous les int grez dans une application dot e d une interface graphique 1 http www python org download www yoctopuce com FR libraries php SO www yoctopuce com 85 14 Utilisation du Yocto Thermocouple en Python 14 3 Contr le de la fonction Temperature Il suffit de quelques lignes de code pour piloter un Yocto Thermocouple Voici le squelette d un fragment de code Python qui utilise la fonction Temperature Lssel errmsg YRef Param On r cup re l objet repr sentant le module ici connect en local sur USB YAPI RegisterHub usb errmsg temperature YTemperature FindTemperature THRMCPL1 123456 temperature Pour g rer le hot plug on v rifie que le module est la if temperature isOnline Use temperature get_currentValue hoo ail Voyons maintenant en d tail ce que font ces quelques lignes YAPI RegisterHub La fonction YAPI RegisterHub initialise l API de Yoctopuce en indiquant o les modules
314. urne 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 www yoctopuce com 147 19 R f rence de l API de haut niveau YAPI UnregisterHub YAPI yUnregisterHub Configure la librairie Yoctopuce pour ne plus utiliser les modules connect s sur une machine pr alablement enregistrer avec RegisterHub _is function yUnregisterHub url node js function UnregisterHub url function yUnregisterHub url void yUnregisterHub const string amp url void yUnregisterHub NSString url procedure yUnregisterHub url string procedure yUnregisterHub ByVal url As String cs void UnregisterHub string url synchronized static void UnregisterHub String url def UnregisterHub url Param tres url une cha ne de caract res contenant usb ou 148 www yoctopuce com 19 R f rence de l API de haut niveau YAPI UpdateDeviceList YAPI yUpdateDeviceList Force une mise a jour de la liste des modules Yoctopuce connect s function yUpdateDeviceList errmsg function UpdateDeviceList errmsg function yUpdateDeviceList amp errmsg YRETCODE yUpdateDeviceList string amp errmsg YRETCODE yUpdateDeviceList NSError errmsg function yUpdateDeviceList var errmsg string integer function yUpdateDeviceList ByRef errmsg As String As YRETCODE YRETCODE UpdateDeviceList ref string errmsg int Upd
315. urrent Value OS NCE SOS endl cour c lt Mapress CErI Cko esi e a eend ySleep 1000 errmsg Ja return 0 9 2 Contr le de la partie module Chaque module peut tre contr l d une mani re similaire vous trouverez ci dessous un simple programme d exemple affichant les principaux param tres d un module et permettant d activer la balise de localisation include lt iostream gt include lt stdlib h gt www yoctopuce com 51 9 Utilisation du Yocto Thermocouple en C include yocto api h using namespace std static void usage const char exe cout lt lt usage lt lt exe lt lt lt serial or logical name gt ON OFF lt lt endl exit 1i int mamine acoe const char aroni SEEN errmsg Setup the API to use local USB devices if yRegisterHub usb errmsg YAPT SUCCESS Geiee lt lt Wikenisiceneltitle error WY lt lt eiciamse lt lt end return 1 Tilerge 2 usage argv 0 YModule module yFindModule argv 1 use serial or logical name if module gt isOnline if ange 2 4 if steingvargvilz on module gt set beacon Y BEACON ON else module gt set beacon Y BEACON OFF co t lt lt Mserial lt lt module gt get_serialNumber lt lt endl cout lt lt logical name lt lt module gt get_logicalName lt lt endl cout lt lt luminosity lt lt module gt get luminosity lt lt endl cout lt lt
316. urrentValue double currentValue function get_currentValue double function get_currentValue As Double double get_currentValue double get_currentValue def get_currentValue YTemperature target get_currentValue Retourne une valeur num rique repr sentant la valeur mesur e actuelle YTemperature En cas d erreur d clenche une exception ou retourne Y_CURRENTVALUE_INVALID www yoctopuce com 205 19 R f rence de l API de haut niveau temperature get_errorMessage YTemperature temperature errorMessage Retourne le message correspondant la derni re erreur survenue lors de l utilisation du capteur de temp rature function get_errorMessage function get_errorMessage function get_errorMessage string get_errorMessage NSString errorMessage function get_errorMessage string function get_errorMessage As String string get_errorMessage String get_errorMessage def get_errorMessage Cette m thode est principalement utile lorsque la librairie Yoctopuce est utilis e en d sactivant la gestion des exceptions Retourne une chaine de caract res correspondant au message de la derni re erreur qui s est produit lors de l utilisation du capteur de temp rature 206 www yoctopuce com 19 R f rence de l API de haut niveau temperature get_errorType YTemperature temperature errorType Retourne le code d erreur correspondant la
317. us les exemples fournis dans cette documentation sont des applications consoles Il va de soit que que les fonctionnement des librairies est strictement identiques si vous les int grez dans une application dot e d une interface graphique 12 3 Contr le de la fonction Temperature Il suffit de quelques lignes de code pour piloter un Yocto Thermocouple Voici le squelette d un fragment de code C qui utilise la fonction Temperature ES String errmsg YTemperature temperature On r cup re l objet repr sentant le module ici connect en local sur USB YAPI RegisterHub usb errmsg temperature YTemperature FindTemperature THRMCPL1 123456 temperature Pour g rer le hot plug on v rifie que le module est l if temperature isOnline T7 Uciliser temperature get current Value i Voyons maintenant en d tail ce que font ces quelques lignes YAPI RegisterHub La fonction YAPI RegisterHub initialise l API de Yoctopuce en indiquant o les modules doivent tre recherch s Utilis e avec le param tre usb elle permet de travailler avec les modules connect s localement la machine Si l initialisation se passe mal cette fonction renverra une valeur diff rente de YAPI SUCCESS et retournera via le param tre errmsg une explication du probleme YTemperature FindTemperature La fonction YTemperature FindTemperature permet de retrouver un capteur de temp rature en fonction du num ro de s r
318. ut tre configur e individuellement pour chaque senseur avec des fr quences pouvant aller de cent fois par seconde une fois par heure Le callback prend en param tre la fonction concern e et la valeur mesur e sous forme d un objet YMeasure Contrairement au callback de changement de valeur qui ne contient que la nouvelle valeur instantan e l objet YMeasure peut donner la valeur minimale moyenne et maximale observ e depuis le dernier appel du callback p riodique De plus il contient aussi l indication de l heure exacte qui correspond la mesure de sorte pouvoir l interpr ter correctement m me en diff r static void periodicCallback YTemperature fct YMeasure measure Console Writelhine tet get hardware trdim U measure get_averageValue Mise en place du callback p riodique Le callback est mis en place pour une fonction Temperature donn e a l aide de la m thode registerTimedReportCallback Pour que le callback p riodique soit appel il faut aussi sp cifier la fr quence d appel a l aide de la m thode set _reportFrequency sinon le callback p riodique est d sactiv par d faut La fr quence est sp cifi sous forme textuelle comme pour l enregistreur de donn es en sp cifiant le nombre d occurrences par seconde s par minute m ou par heure h La fr quence maximale est 100 fois par seconde i e 100 s et fr quence minimale est 1 fois par heure i e 1 h Lorsque la fr quence sup ri
319. ut niveau temperature registerTimedReportCallback YTemperature Enregistre la fonction de callback qui est appel e a chaque notification p riodique _is function registerTimedReportCallback callback node js function registerTimedReportCallback callback php function registerTimedReportCallback callback int registerTimedReportCallback YTemperatureTimedReportCallback callback int registerTimedReportCallback YTemperatureTimedReportCallback callback pas function registerTimedReportCallback callback TYTemperatureTimedReportCallback Longint vb function registerTimedReportCallback As Integer int registerTimedReportCallback TimedReportCallback callback int registerTimedReportCallback TimedReportCallback callback def registerTimedReportCallback callback Ce callback n est appel que durant l ex cution de ySleep o yHandleEvents Cela permet a 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 callback la fonction de callback a rappeler ou un pointeur nul La fonction de callback doit accepter deux arguments l object fonction dont la valeur a chang et un objet YMeasure d crivant la nouvelle valeur publi e 230 www yoctop
320. ve cours de la vie du module Veillez donc ne pas appeler cette fonction depuis l int rieur d une boucle Enumeration des modules Obtenir la liste des modules connect s se fait a l aide de la fonction yFirstModule qui renvoie le premier module trouv il suffit ensuite d appeler la fonction nextModule de cet objet pour trouver les modules suivants et ce tant que la r ponse n est pas un NULL Ci dessous un petit exemple listant les module connect s import lt Foundation Foundation h gt import yocto api h int Mean Pone ange Const cher argv NSError error autoreleasepool Setup the API to use local USB devices if yRegisterHub usb amp error YAPT SUCCESS NSLog RegisterHub error n error localizedDescription return 1 NSLog Device list n YModule module yFirstModule while module nil NSLog 3 module serialNumber module productName module module nextModule return 0 10 3 Gestion des erreurs Lorsque vous impl mentez un programme qui doit interagir avec des modules USB vous ne pouvez pas faire abstraction de la gestion des erreurs Il y aura forc ment une occasion o un utilisateur aura d branch le p riph rique soit avant de lancer le programme soit m me en pleine op ration La librairie Yoctopuce est pr vue pour vous aider a supporter ce genre de comportements mais votre code doit n anmoins tre fait pour se com
321. w yoctopuce com 255 19 R f rence de l API de haut niveau datalogger get_functionld YDataLogger datalogger functionld Retourne l identifiant mat riel de l enregistreur de donn es sans r f rence au module function get_functionld function get_functionld function get_functionid string get_functionld NSString functionld vo function get_functionld As String string get_functionld String get_functionld def get_functionld Par example relay1 Retourne une cha ne de caract res identifiant l enregistreur de donn es ex relay1 En cas d erreur d clenche une exception ou retourne Y_FUNCTIONID_INVALID 256 www yoctopuce com 19 R f rence de l API de haut niveau datalogger get_hardwareld YDataLogger datalogger hardwareld Retourne l identifiant mat riel unique de l enregistreur de donn es au format SERIAL FUNCTIONID function get_hardwareld function get_hardwareld function get_hardwareld string get_hardwareld NSString hardwareld function get_hardwareld As String string get_hardwareld String get_hardwareld def get_hardwareld L identifiant unique est compos du num ro de s rie du module et de l identifiant mat riel de l enregistreur de donn es par example RELAYLO1 123456 relayl Retourne une cha ne de caract res identifiant l enregistreur de donn es ex RELAYLO1 123456 relayl1
322. ww yoctopuce com 9 Utilisation du Yocto Thermocouple en C Le C n est pas le langage le plus simple ma triser Pourtant si on prend soin se limiter aux fonctionnalit s essentielles c est un langage tout fait utilisable pour des petits programmes vite faits et qui a l avantage d tre tr s portable d un syst me d exploitation l autre Sous Windows tous les exemples et les mod les de projet sont test s avec Microsoft Visual Studio 2010 Express disponible gratuitement sur le site de Microsoft 1 Sous Mac OS X tous les exemples et les mod les de projet sont test s avec XCode 4 disponible sur l App Store Par ailleurs aussi bien sous Mac OS X que sous Linux vous pouvez compiler les exemples en ligne de commande avec GCC en utilisant le GNUmakefile fourni De m me sous Windows un Makefile pour permet de compiler les exemples en ligne de commande et en pleine connaissance des arguments de compilation et link Les librairies Yoctopuce pour C vous sont fournies au format source dans leur int gralit Une partie de la librairie de bas niveau est crite en C pur sucre mais vous n aurez priori pas besoin d interagir directement avec elle tout a t fait pour que l interaction soit le plus simple possible depuis le C La librairie vous est fournie bien entendu aussi sous forme binaire de sorte pouvoir la linker directement si vous le pr f rez Vous allez rapidement vous rendre compte que l API C defi
323. xt Si les valeurs des attributs en cache de l enregistreur de donn es 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 callback fonction 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 context contexte 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 www yoctopuce com 265 19 R f rence de l API de haut niveau datalogger load YDataLogger Met en cache les valeurs courantes de l enregistreur de donn es avec une dur e de validit sp cifi e is__ function load msValidity nodejs function load msValidity php function load msValidity YRETCODE load int msValidity YRETCODE load int msValidity function load msValidity integer YRETCODE function load ByVal msValidity As Integer As YRETCODE YRETCODE load int msValidity int load lon
324. ystem out printlin beacon ON Glee d System out printin beacon OEM System out printin upTime U a OCM oe tau lame TOOU ESS CUS SyStem our prune MUSE current 9 modullegetsusbeCurrenta ss i mA i System out println logs n module get lastLogs INCacchAMAPISEree bone System out println args 1 not connected check identification and USB eable VAIP MEME CABINE Chaque propri t xxx du module peut tre lue gr ce une m thode du type YModule get xxxx et les propri t s qui se sont pas en lecture seule peuvent tre modifi es l aide de la m thode YModule set xxx Pour plus de d tails concernant ces fonctions utilis es reportez vous aux chapitre API Modifications des r glages du module Lorsque que vous souhaitez modifier les r glages d un module il suffit d appeler la fonction YModule set xxx correspondante cependant cette modification n a lieu que dans la m moire vive du module si le module red marre les modifications seront perdues Pour qu elle soient m moris es de mani re persistante il est n cessaire de demander au module de sauvegarder sa configuration courante dans sa m moire non volatile Pour cela il faut utiliser la m thode YModule saveToFlash Inversement il est possible de forcer le module oublier ses r glages courants en utilisant la m thode YModule revertFromFlash Ce petit exemple ci dessous vous permet changer le nom logique d un module
325. z Yoctopuce devices can be controled through remote PHP scripts That Yocto AP caliback protocol is designed so it can pass trough NAT filters without opening ports See your device user manual PHP programming section for more details 2 Specify the URL to use for reporting values HTTPS protocol is not yet supported Callback URL http tiwww mysite com yoctotest yoctocontrol php 3 If your callback requires authentication enter credentials here Digest authentication is recommended but Basic authentication works as well Username lyorto Password ES 4 Setup the desired frequency of notifications No less than 3 seconds between two notification But notify after 600 seconds in any case 5 Press on the Test button to check your parameters 6 When everything works press on the OK button Tesi 04 Cance Et choisir Yocto API callback ll suffit alors de d finir l URL du script PHP et si n cessaire le nom d utilisateur et le mot de passe pour acc der a cette URL Les m thodes d authentification support es sont basic et digest La seconde est plus s re que la premi re car elle permet de ne pas transf rer le mot de passe sur le r seau Utilisation Du point de vue du programmeur la seule diff rence se trouve au niveau de l appel a la fonction yRegisterHub au lieu d utiliser une adresse IP il faut utiliser la cha ne callback ou http callback qui est quivalent include My

Download Pdf Manuals

image

Related Search

Related Contents

ク - ZERO-G  2 - Voltimum  User Manual - Volutone.com  True Confocal Scanner Leica TCS SP2 User Manual  詳しい仕様については、こちらをご覧ください。    User ManUal - FOTO KARMI  よくある質問  VGN-FW280J/H  LG BE06LU10  

Copyright © All rights reserved.
Failed to retrieve file