Home

Yocto-Amp, Mode d`emploi

image

Contents

1. www yoctopuce com 231 21 R f rence de l API de haut niveau current registerValueCallback YCurrent Enregistre la fonction de callback qui est appel e a chaque changement de la valeur publi e is function registerValueCallback callback node js function registerValueCallback callback php function registerValueCallback callback int registerValueCallback YCurrentValueCallback callback int registerValueCallback YCurrentValueCallback callback pas function registerValueCallback callback TYCurrentValueCallback Longint vb 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 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 la cha ne de caract re d crivant la nouvelle valeur publi e 232 www yoctopuce com 21 R f rence de l AP
2. gt lt SCRIP 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 DC lt input id DC size 5 readonly gt mA lt br gt AC lt input id AC size 5 readonly gt mA lt BODY gt lt HTML gt 9 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 SCRIPI gt lt SCRIPT language javascriptl 5 type text JavaScript gt al www yoctopuce com 35 9 Utilisation du Yocto Amp 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 YAPI SUCCESS alert Me anno Contact Virtcual Hublon le OR Oran ir 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 modulerigeesestallNumoexi i document getElementBylId serial value serial module yFindModule serial
3. 16 3 Contr le de la fonction Current Il suffit de quelques lignes de code pour piloter un Yocto Amp Voici le squelette d un fragment de code Python qui utilise la fonction Current ssel errmsg YRefParam On r cup re l objet repr sentant le module ici connect en local sur USB YAPI RegisterHub usb errmsg current YCurrent FindCurrent YAMPMK01 123456 current1 Pour g rer le hot plug on v rifie que le module est la if current isOnline Use current get_currentValue Loo oll 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 l objet errmsg une explication du probl me YCurrent FindCurrent La fonction YCurrent FindCurrent permet de retrouver un capteur de courant 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 Amp avec le num ros de s rie YAMPMK01 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction current MaFonction les
4. Save Cancel Configuration du module Yocto Amp 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 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 12 www yoctopuce com 5 Premiers pas Nom logique du module Le nom logique est un nom choisi par vous qui vous permettra d acc der a votre module de la m me mati re qu un nom de fichier vous permet d acc der a 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
5. 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 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 ou
6. Vous avez alors le choix entre simplement ajouter ces fichiers a 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 tous les exemples fournis dans cette documentation sont des applications consoles 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 14 3 Contr le de la fonction Current Il suffit de quelques lignes de code pour piloter un Yocto Amp Voici le squelette d un fragment de code C qui utilise la fonction Current AI Sting errmsg YCurrent current On r cup re l objet repr sentant le module ici connect en local sur USB YAPI Registe
7. 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 21 R f rence de l API de haut niveau datalogger get_timeUTC 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 YDataLogger 262 www yoctopuce com 21 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 Tobject function ge
8. 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 le capteur de courant ex re lay1 En cas d erreur d clenche une exception ou retourne Y_FUNCTIONID_INVALID 212 www yoctopuce com 21 R f rence de l API de haut niveau current get_hardwareld YCurrent current hardwareld Retourne l identifiant mat riel unique du capteur de courant 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 courant par example RELAYLO1 123456 relayl Retourne une cha ne de caract res identifiant le capteur de courant ex RELAYLO1 123456 relayl En cas d erreur d clenche une exception ou retourne Y_HARDWAREID_INVALID www yoctopuce com 213 21 R f rence de l API de haut niveau current get_highestValue current highestValue Retourne la valeur maximale observ e function get_highestValue function get_highestValue function get_highestValue double get_highestValue double highestValue fun
9. 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 172 www yoctopuce com 21 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_PERSISTENTSETTINGS_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 c
10. 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 yFindCurrent La fonction yFindCurrent permet de retrouver un capteur de courant 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 Amp avec le num ros de s rie YAMPMKO1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction current 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 current yFindCurrent YAMPMK01 123456 current1 var current yFindCurrent YAMPMK01 123456 MaFonction var current yFindCurrent MonModule current1 var current yFindCurrent MonModule MaFonction var current yFindCurrent MaFonction lt yFindCurrent renvoie un objet que vous pouvez ensuite utiliser loisir pour contr ler le capteur de courant isOnline La m thode isOnline de l objet re
11. 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 nams U lt lt module get VogicallName lt lt endl else cout lt lt argv 1 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 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 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 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 int main int arge const char argv String errmsg www yoctopuce com 55 11 Utilisation d
12. 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 forcer un scan mat riel Le param tre errmsg devra pointer sur un buffer de 255 caract res pour r cup rer un ventuel message d erreur Ce pointeur peut aussi tre null Cette fonction retourne un entier n gatif en cas d erreur ou z ro dans le cas contraire Enfin la fonction yapiHTTPRequest permet d envoyer des requ tes HTTP l API REST du module Le param tre device devra contenir le num ro de s rie ou le nom logique du module que vous cherchez attei
13. 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 QE Ol coe coun seligsiakeletelie errmsg data pansichar LUE AS 71e Neger const serial YAMPMK01 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 begin 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 walt end end 124 www yoctopuce com 20 Utilisation avec des langages non support s Inventaire des modules Pour pr
14. 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 140 www yoctopuce com 21 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 RegisterDeviceRemovalCallback 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 141 21 R f rence de l API de haut niveau YAPI Regist
15. 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 21 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 instance trouv e sera renvoy e
16. If m isOnline Then Lf argv length gt 2 Then ff arov 2 ON Then m set beacon Y BEACON ON If argv 2 OFF Then m set beacon Y BEACON OFF End TE Console WriteLine serial mn get ser taliNumber Console WriteLine logical name m get_logicalName Console WriteLine luminosity M Situ mage Luminosity ON Console Write beacon mi If m get beacon Y BEACON ON Then Console WriteLine ON Else Console WriteLine OFF jajavel Ise Console WriteLine upTime U e Siei meet tomine y L000 ar 4 sewu Consoles Wrettehine MUSB Current 4 Str m get usb urnent E mA Console WriteLine Logs Console WriteLine m get_lastLogs Else Console WriteLine argv 1 not connected check identification and USB cable late Ibe End Sub End Module 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 68 www yoctopuce com 13 Utilisation du Yocto Amp en VisualBasic NET 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 p
17. Smodule Smodule skip VirtualHub Smodule gt nextModule LE S nuli omodulle iy die No module connected check USB cable else Sserial module gt get serialnumber Print Module to use lt input name serial value Sserial gt lt br gt JENCSSELSSGENINL newname 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 lt input name newname value maxlength 19 gt lt br gt print New name 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 cette limite plus rien ne garantit de que la sauvegarde des r glages se passera correctement Cette limite li a 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 a 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
18. Writeln logical name is now module get_logicalName end 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 fonction 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 uses Sysutils yocto api var module TYModule errmsg string pegam Setup the API to use local USB devices if yRegisterHub usb errmsg lt gt YAPI SUCCESS then begin Write RegisterHub error errmsg exit end Writeln Device list module yFirstModule while module lt gt nil do begin Writeln module get_serialNumber module module module nextModule end end AC cEMPBOGUCeENameN Eranko www yoctopuce com 85 15 Util
19. aa 106 www yoctopuce com 18 Utilisation du Yocto Amp avec Android Override protected void onStart super onStart ery 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 PACA chNVAPISErCepEsonMe t e prinestacklrace refresh Spinner with detected relay aa notifyDataSetChanged Override protected void onStop super onStop YAPI FreeAPI private void DisplayModulelnfo TextView field if module null return cry 4 YAPI UpdateDeviceList fixme field TextView findViewById R id logicalnamefield field setText module getLogicalName eatoni TARTE ception eii e printStackTrace 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 arg0 public void saveName View view if module null SEVEN EditText edit EditText findViewById R id newname String newname edit getText toString try if YAPI CheckLogicalName newname Toast makeText getApplicationContext Invalid name newname Toast LENGTH LONG show retu
20. 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 139 21 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 arrivalCallback 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
21. 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 E words 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 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 125 20 Utilisation avec des langages non support s function apiGetDevice
22. me Les postes internes ne sont pas atteignables depuis l ext rieur www mysite com 192 168 0 1 51962090 192 168 0 101 LA Re _ ee Sa i 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 ponse Les r ponses aux requ tes venant des machines du LAN sont rout es 46 www yoctopuce com 10 Utilisation du Yocto Amp 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
23. 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 37 9 Utilisation du Yocto Amp 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 serialNumber 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 9 4
24. 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 21 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 21 R f rence de l API de haut niveau 21 5 Sequence 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 Lorsque l objet YDat
25. rence de l API de haut niveau current isOnline_async YCurrent V rifie si le module h bergeant le capteur de courant 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 en cache du capteur de courant 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 226 www yoctopuce com 21 R f rence de l API de haut niveau current load YCurrent Met en cache les valeurs courantes du capteur de courant avec une dur e de validit sp cifi e function load msValidity function load msValidity function load msValid
26. 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 151 21 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 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
27. si vous utilisez une version ant rieure il est possible que vous ayez reconstruire la structure de ces projets 14 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 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 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 73 14 Utilisation du Yocto Amp en C
28. 10 Hz DC 5 mA 3 2 mA 1 2 mA 0 3 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 0x001F YoctoBox Long Thick Black Vents www yoctopuce com 297 23 Caract ristiques 298 www yoctopuce com 56 15 5 15 5 A D Q o o pranan 200801 y d wweoo fs EN JO soraz om ise Live tho de ce al omnem J I ES U Ke Vv OREO OJAHOI O a io 4 5 MAX All dimensions are in mm Toutes les dimensions sont en mm Yocto Amp A4 Scale Echelle Index A Acc s 99 Accessoires 3 Activer 100 Alimentation 17 Alternatif 9 Android 99 100 Avanc e 111 Basic 65 Blueprint 299 Branchements 16 C C 73 C 51 57 calibrateFromPoints YCurrent 202 Calibration 117 Callback 46 Caract ristiques 297 CheckLogicalName YAPI 129 Commande 29 121 Commencer 27 Compatibilit 99 Concepts 19 Configuration 12 Connectique 15 Contraintes 17 Contr le 21 30 33 35 41 43 51 54 59 61 66 68 74 76 81 83 88 89 93 95 102 104 153 Courant 9 Cour
29. 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 160 www yoctopuce com 21 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 integer 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
30. C est pourquoi vous devrez faire tourner un hub virtuel sur la machine a 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 10 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 10 2 Contr le de la fonction Current ll suffit de quelques lignes de code pour piloter un Yocto Amp Voici le squelette d un fragment de code PHP qui utilise la fonction Current inelude yoctonap php include MyoOcEOmcurEemnt pln 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 41 10 Utilisation du Yocto Amp en PHP On r cup re l objet repr sentant le module a tra
31. Le mode Yocto AP par callback HTTP n est pour l instant disponible qu en PHP et Node JS 10 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 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 49 10 Utilisation du Yocto Amp en PHP La m thode recommand e par la plupart des langages de programmation
32. Pr paration AS Mie a HT nn T A A EE Bee rt 81 15 2 Contr le de la fonction Current iii 81 15 3 Controlede la partie mod le sn mines nn nee 83 15 4 Gestion des rreurs repi a eaa eiiie sou capebagdeuadeevbebeaueeedaenelesdoiedeeeeetes 86 16 Utilisation du Yocto Amp en Python oo ccc ces eeseeseeseeteeteenesneseeees 87 16 1 Fichiers SOUT OS vz 2ecciccckscete alerte etre een era estate tele annee rte ede nitrate E 87 16 2LIbralrie dyYAAMIQUE SRE RES nier TA MS ee eter Te aaee 87 16 3 Contr le de la fonction Current iii 88 16 4 Contr le de la partie module sis 89 16 5 Gestion d s rreurs 22228000 ct deceaivcdcedccescocendeduledssiscuevecdeveeceoaeteduvssibeuagecdancedestecelesesaase 91 17 Utilisation du Yocto Amp en Java oon eee cee eeeeeseeeeeeeseteeesesneeneeneeneeeens 93 17 Preparation sine date nn ne terne ete dinars terne nr 93 17 2 Contr le de la fonction Current sise 93 17 3 Contr le de la partie module sisi 95 12 4 Gestion des 6rreurs 528222 nernrnenednnns da Ann hatin een needa 98 18 Utilisation du Yocto Amp avec Android oo teecee testes eeeeeeeeees 99 18 1 Acces Natit et Virtual HUD stirii iaria eiaei lee eiiie a ea eea ieia 99 182 Prepara ON ss n s mme nn A a a Penn aaa aa aaae A Sa A de ea aaa ai 99 18 32 Compatibilit arsine secs e e E e a ude aE a E aE EESE 99 18 4 Activer le port USB sous Android essssesssesesssessrisesrrtertrnstrrrnstrtntrinnantiannetnanntennnnennntenne 100 18 5 Contr le de l
33. R id acfield VLEN SEETI Sein peO mM cen a ie aen EE SENEO CerCurremeVelUuel ae Sensor Cerewimaltc Ie eeta A eeen e i e printStackTrace handler postDelayed this 1000 18 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 util Log 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 private YModule module null Override public void onCreate Bundle savedInstanceState super onCreate savedInstanceState 104 www yoctopuce com 18 Utilisation du Yocto Amp avec Android setContentView R layout modulecontrol Spinner my spin Spinner findViewById R id spinner1 nVMSpineserOnieemoclecredisrenemchas aa new ArrayAdapter lt Strin
34. 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 157 21 R f rence de l API de haut niveau module describe YModule 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 Retourne une chaine de caract res d crivant le module 158 www yoctopuce com 21 R f rence de l API de haut niveau module gt download YModule T l charge le fichier choisi du module et retourne son contenu function download pathname function download 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 159 21 R f rence de l
35. 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 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
36. 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 21 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 NSMutableArray
37. a 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 Amp 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 Amp 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 a l heure un Yocto Amp 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 Amp 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 116 www yoctopuce com 19 Programmation avanc e 19 3 Calibration des senseurs Votre module Yocto Amp 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
38. aide de l ex cutable YModule Par exemple pour obtenir la liste de tous les modules connect s utilisez 30 www yoctopuce com 8 Utilisation du Yocto Amp en ligne de commande 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 gr ce 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 Parexemple YModule YAMPMK0O1 12346 set logicalName MonPremierModule YModule YAMPMK0O1 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 YAMPMK0O1 12346 set logicalName MonPremierModule YModule YAMPMK0O1 12346 saveToFlash Notez que vous pouvez faire la m me chose e
39. 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 a 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 cables 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 Amp 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 Bo tier Votre Yocto Amp 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 propo
40. 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 16 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 architectures 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 87 16 Utilisation du Yocto Amp en Python
41. cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t current YCurrent FindCurrent YAMPMK0O1 123456 currentl current YCurrent FindCurrent YAMPMK01 123456 MaFonction current YCurrent FindCurrent MonModule current1 current YCurrent FindCurrent MonModule MaFonction current YCurrent FindCurrent MaFonction YCurrent FindCurrent renvoie un objet que vous pouvez ensuite utiliser a loisir pour contr ler le capteur de courant isOnline La m thode YCurrent isOnline de l objet renvoy par FindCurrent 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 YCurrent FindCurrent permet d obtenir le Courant mesur par le capteur La valeur de retour est un nombre repr sentant directement la valeur en mA Un exemple r el Lancez votre interpr teur Python et ouvrez le script correspondant fourni dans le r pertoire Examples Doc GettingStarted Yocto Amp 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 88 www yoctopuce com 16 Utilisation du Yocto Amp en Python usr bin python coding utf 8 import os sys tron yoctolapi Import from yo
42. clenche une exception ou retourne Y_HARDWAREID_INVALID www yoctopuce com 257 21 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 21 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 21 R f rence de l API de hau
43. com FR virtualhub php www yoctopuce com 31 8 Utilisation du Yocto Amp en ligne de commande cela marchera parce que la commande ne sera plus ex cut e nativement mais a travers le Virtual Hub Notez que le Virtual Hub compte comme une application native 32 www yoctopuce com 9 Utilisation du Yocto Amp 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 9 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 compressez les fichiers de la librairie
44. 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 9 2 Contr le de la fonction Current Il suffit de quelques lignes de code pour piloter un Yocto Amp Voici le squelette d un fragment de code JavaScript qui utilise la fonction Current lt SCRIPT type text javascript src lyoctohapi js gt lt SCRIPT gt lt SCRIPT type text javascript sre yocto current 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 current yFindCurrent YAMPMK01 123456 current1 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 33 9 Utilisation du Yocto Amp en Javascript if current isOnline 1 emia ser Current Get cumrent Valne yl Voyons maintenant en d tail ce que font ces quelques lignes yocto_api js et yocto_current 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 current js est n cessaire pour g rer les modules contenant un capteur de courant comme le Yocto Amp yRegisterHub
45. 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 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 185 21 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
46. 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 138 www yoctopuce com 21 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 String 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
47. 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 64 www yoctopuce com 13 Utilisation du Yocto Amp 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
48. 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 56 www yoctopuce com 11 Utilisation du Yocto Amp en C m thodes errType et errMessage Ce sont les m me informations qui auraient t associ es l exception si elles avaient t actives 11 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 Int gration au format source L int gration de toutes les sources de la librairie dans vos projets a p
49. donnez le m me nom logique a 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 compris la Yocto Led Si vous branchez un module et que rien ne s allume cela veut peut tre dire que sa luminosit a t r gl e z ro Nom logique des fonctions Chaque module Yoctopuce a un num ro de s rie et un nom logique De mani re analogue chaque fonction pr sente sur chaque module Yoctopuce a un nom mat riel et un nom logique ce dernier pouvant tre librement choisi par l utilisateur Utiliser des noms logiques pour les fonctions permet une plus grande flexibilit au niveau de la programmation des modules Les deux fonctions fournies par le module Yocto Amp sont les fonctions CurrentDC et CurrentAC Cliquez simplement sur le bouton rename correspondant pour affecter un nouveau nom logique a une des fonctions www yoctopuce com 13 14 www yoctopuce com 6 Montage et connectique Ce chapitre fournit des explications importantes pour utiliser votre module Yocto Amp en sit
50. 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 112 www yoctopuce com 19 Programmation avanc e Le callback de changement de valeur Ce type de callback est appel lorsque un capteur de courant 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 1 caract res static void valueChangeCallback YCurrent fct string value Console Writehinel fee get hardrarserdi U value Dans la plupart des langages les callbacks doivent tre des proc d
51. endl Geeibe il 5 int maini ink arge const char Parovi String errmsg Setup the API to use local USB devices if yRegisterHub usb errmsg YAPT SUCCESS Cinta lt lt RE OES ee HU Die tata je ER a EMS CRE comely return 1 tiilerge 2 usage argv 0 YModule module yFindModule argv 1 use serial or logical name if module gt isOnline die arga 2 4 if string argv 2 ON module gt set beacon Y BEACON ON elga module gt set beacon Y BEACON OFF cout lt lt alse radiale lt lt module gt get_serialNumber lt lt endl Cout lt lt oguieclamame Y lt lt modules gqeumlogaicalNamen lt lt erci Cout lt Tms Ey Tee module eget Piumino s VO noi cout lt lt beacon e if module gt get beacon Y BEACON ON COURONNE endli else cour lt OFP lt lt tend Cour SS um ame iso dike Germup hime T VO OO lt a esccl lt lt endl cout lt lt USB current 1 momie ter MCE lt lt Wo A lt lt ene cout lt lt Mrogs Men lt lt module get lastlogs lt lt endi 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 utili
52. 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 21 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_logicalName String new
53. 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 21 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 En cas d erreur d
54. 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 126 www yoctopuce com 21 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 Amp La syntaxe et les types pr cis peuvent varier d un langage l autre mais sauf avis contraire toutes sont disponibles dans chaque language Pour une information plus pr cise sur les types des arguments et des valeurs de retour dans un langage donn veuillez vous r f rer au fichier de d finition pour ce langage yocto api ainsi que les autres fichiers yocto d finissant les interfaces des fonctions Dans les langages qui supportent les exceptions toutes ces fonctions vont par d faut g n rer des exceptions en cas d erreur plut t que de retourner la valeur d erreur document e pour chaque fonction afin de faciliter le d boguage Il est toutefois possible de d sactiver l utilisation d exceptions l aide de la fonction yDisableExceptions si l on pr f re travailler avec des valeurs de retour d erreur Ce chapitre ne reprend pas en d tail les concepts de programmation d crits plus t t afin d offrir une
55. 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 YCurrent target get_advertisedValue Retourne une cha ne de caract res repr sentant la valeur courante du capteur de courant pas plus de 6 caract res En cas d erreur d clenche une exception ou retourne Y_ADVERTISEDVALUE_INVALID www yoctopuce com 205 21 R f rence de l API de haut niveau current get_currentRawValue YCurrent current 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 YCurrent 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 206 www yoctopuce com 21 R f rence de l API de haut niveau current get_
56. 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 21 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 Param tres 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 21 R f rence de l API de haut niveau 21 6 Valeur mesur e Les objets YMeasure sont utilis s dans l interface de programmation Yoctopuce
57. 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 177 21 R f rence de l API de haut niveau module gt get_serialNumber YModule 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 une chaine de caract res repr sentant le num ro de s rie du module pr programm en usine En cas d erreur d clenche une exception ou retourne Y_SERIALNUMBER_INVALID 178 www yoctopuce com 21 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
58. 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 181 21 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 182 www yoctopuce com 21 R f rence de l API de haut niveau module gt 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 exceptio
59. 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 154 www yoctopuce com 21 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_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 www yoctopuce com 155 21 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 str
60. 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 readonly 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 fonc
61. 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 Amp 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 1 support yoctopuce com www yoctopuce com 1 Introduction Yoctopuce fourni les librairies logicielles permettant de piloter ses modules pour les syst mes d exploitation suivants Windows Mac OS X Linux et Android Les modules Yoctopuce ne n cessitent pas l installation de driver ou pilote sp cifiques car ils utilisent le driver 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 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 l
62. 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 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 www yoctopuce com 69 13 Utilisation du Yocto Amp en VisualBasic NET Sub Main Dim M As ymodule Dim errmsg As String REM Setup the API to use local USB devices If yRegisterHub usb errmsg lt gt YAPI SUCCESS Then Console WriteLine RegisterHub error errmsg End End If Console WriteLine Device list M yFirstModule While M IsNot Nothing Cons oer Wrakeiame Mec eins cre rcllINUmoe a ctu ete Ciempioc uc E Namen act a M M nextModule End While End Sub End Module 13 5 Gestion des erreurs Lorsque vous impl mentez un programme qui doit interagir avec des modules USB
63. ler plusieurs projets depuis la m me machine codez vos applications pour qu elle acc dent aux modules via un VirtualHub plut t que nativement Le changement de mode de fonctionnement est trivial il suffit de changer un param tre dans l appel a yRegisterHub 7 7 Programmation par ou commencer Arriv a ce point du manuel vous devriez conna tre l essentiel de la th orie propos de votre Yocto Amp 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 Amp 1 http www yoctopuce com FR libraries php www yoctopuce com 27 28 www yoctopuce com 8 Utilisation du Yocto Amp en ligne de commande Lorsque vous d sirez effectuer une op ration ponctuelle sur votre Yocto Amp comme la lecture d une valeur le changement d un nom logique etc vous pouvez bien sur
64. logique du capteur de courant 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 Y Current target get_logicalName Retourne une chaine de caract res repr sentant le nom logique du capteur de courant En cas d erreur d clenche une exception ou retourne Y_LOGICALNAME_INVALID 216 www yoctopuce com 21 R f rence de l API de haut niveau current get_lowestValue current 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 YCurrent target get_lowestValue Retourne une valeur num rique repr sentant la valeur minimale observ e YCurrent En cas d erreur d clenche une exception ou retourne Y_LOWESTVALUE_INVALID www yoctopuce com 217 21 R f rence de l API de haut niveau current get_module YCurrent current gt module Retourne l objet YModule correspondant au module Yoctopuce qui h berge la fonction is function get_module node js function ge
65. lt script language javascriptl 5 type text JavaScript gt n Print setTimeout window location reload 1000 Pe ime CEI PENN eS lt BODY gt lt HTML gt 10 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 yocto api php 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 I YAPI SUCCESS die Cannot contact VirtualHub on 127 0 0 1 Serrmsg www yoctopuce com 43 10 Utilisation du Yocto Amp en PHP Sserial GET serial dae Seeuedeull WS UU 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 LAS Smodule die No module connected check USB cable else serial module gt get_serialnumber Print Mo
66. 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 13 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 13 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 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 vo
67. 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 import yocto api h static void usage const char exe NSLog usage s lt serial gt lt newLogicalName gt n exe exe int Mein Pint arge Const cher w argv NSError error autoreleasepool Setup the API to use local USB devices if yRegisterHub usb amp error YAPT SUCCESS NSLog RegisterHub error error localizedDescription return 1 Iitlanrge 2 usage argv 0 NSString se
68. 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 intervalle 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
69. ne requiert pas non plus l installation d une librairie dynamique sp cifique Yoctopuce sur le syst me final tout est dans l ex cutable Pour int grer la librairie statique 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 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 libpthread 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 see aadi Mii eStar e LP OC ER ure CNIL Baynante en ibn red e ose lot ls EC 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 jour cette www yoctopuce com 57 11 Utilisation du Yocto Amp en C librairie si un
70. 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 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
71. 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 21 R f rence de l API de haut niveau measure get_averageValue YMeasure measure averageValue Retourne la valeur moyenne
72. 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 21 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 mesures ont t ch
73. 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 CENT YAPI UpdateDeviceList YModule module YModule FirstModule while module null String line module get serialNumber TextView tx new TextView this tx setText line layout addView tx module module nextModule Care YAP T Ex cepienommc in ePPrimestackiracel Override protected void onStart super onstremte l cry 4 YAPI EnableUSBHost this YAPI RegisterHub usb catch YAPT Exception e cphinestackiracet refreshlnventory null Override protected void onStop module get_productName 108 www yoctopuce com 18 Utilisation du Yocto Amp avec Android super onStop YAPI FreeAPI 18 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 programme soit m me en pleine op ration La librairie Yoctopuce est pr vue pour vous aider supporter ce genre de comportements mais vo
74. 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 38 www yoctopuce com 9 Utilisation du Yocto Amp en Javascript attraper les exceptions a 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 progra
75. 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 127 21 R f rence de l API de haut niveau 21 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 yocto_api vb yocto_api cs import com yoctopuce YoctoAPI YModule 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 Yoctopu
76. rapide pour coder le support des modules dans un language particulier En effet la partie utile du code de contr le se trouve dans la DLL qui est la m me pour tous les langages offrir le support pour un nouveau langage se limite coder la petite librairie qui contr le la DLL Du point de de l utilisateur final il y a peu de diff rence il faut simplement tre sur que la DLL sera install e sur son ordinateur en m me temps que le programme principal L application utilise la DLL pour contr ler nativement le module connect en local Contr le par un service Certain langages ne permettent tout simplement pas d acc der facilement au niveau mat riel de la machine C est le cas de Javascript par exemple Pour g rer ce cas Yoctopuce offre la solution sous la forme d un petit 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 25 7 Programmation concepts g n raux L application se connecte au virtual hub pour connecte
77. re calibrer les valeurs mesur es par votre Yocto Amp II ne n agjit 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 Amp 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 Amp D autre part l API supporte une calibration arbitraire externe impl ment e l aide de callbacks Interpolation lin aire 1 5 points Ces transformations sont effectu es directement dans le Yocto Amp 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 fonc
78. rence de l API de haut niveau current get_errorType YCurrent current errorType Retourne le code d erreur correspondant la derni re erreur survenue lors de l utilisation du capteur de courant 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 courant www yoctopuce com 209 21 R f rence de l API de haut niveau current get_friendlyName YCurrent current friendlyName Retourne un identifiant global du capteur de courant 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 cha ne retourn e utilise soit les noms logiques du module et du capteur de courant si ils sont d finis soit respectivement le num ro de s rie du module et l identifant mat riel du capteur de courant par exemple MyCustomName relayl Retourne une cha ne de carac
79. 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 79 80 www yoctopuce com 15 Utilisation du Yocto Amp en Delphi Delphi est l h ritier de Turbo Pascal A l origine Delphi tait produit par Borland mais c est maintenant Embarcadero qui l dite Sa force r side dans sa facilit d utilisation il permet a 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 fonctio
80. 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 152 www yoctopuce com 21 R f rence de l API de haut niveau 21 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 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 m
81. 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 Amp avec le num ros de s rie YAMPMKO1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction current MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t YCurrent current yFindCurrent YAMPMKO01 123456 current1 YCurrent current yFindCurrent YAMPMKO01 123456 MaFonction YCurrent current yFindCurrent MonModule current1 YCurrent current yFindCurrent MonModule MaFonction YCurrent current yFindCurrent MaFonction yFindCurrent renvoie un objet que vous pouvez ensuite utiliser a loisir pour contr ler le capteur de courant isOnline La m thode isOnline de l objet renvoy par yFindCurrent 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 yFindCurrent permet d obtenir le courant mesur par le capteur La valeur de retour est un nombre repr sentant directement la valeur en mA 12 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
82. se lance soit le programme de l utilisateur est imm diatement stopp crash 132 www yoctopuce com 21 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 133 21 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 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 134 www yoctopuce com 2
83. se passe mal une exception sera g n r e YCurrent FindCurrent La fonction YCurrent FindCurrent permet de retrouver un capteur de courant 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 Amp avec le num ros de s rie YAMPMK01 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction current1 MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t current YCurrent FindCurrent YAMPMK0O1 123456 currentl current YCurrent FindCurrent YAMPMK01 123456 MaFonction current YCurrent FindCurrent MonModule current1 current YCurrent FindCurrent MonModule MaFonction current YCurrent FindCurrent MaFonction YCurrent FindCurrent renvoie un objet que vous pouvez ensuite utiliser a loisir pour contr ler le capteur de courant isOnline La m thode YCurrent isOnline de l objet renvoy par FindCurrent 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 YCurrent FindCurrent permet d obtenir le Courant mesur par le capteur La valeur de retour est un nombre repr sentant directement la valeur en mA 102 www yoctopuce com 1
84. 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 Amp 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 Amp va automatiquement essayer de se mettre a l heure de l h te auquel il est connect afin de pouvoir correctement dater les mesures du datalogger e Lorsque le Yocto Amp est branch un ordinateur ex cutant soit le VirtualHub soit un programme quelconque utilisant la librairie Yoctopuce il recevra l heure de cet ordinateur e Lorsque le Yocto Amp 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 Amp est branch
85. tout le r sultat sera pass en param tre la fonction de callback www yoctopuce com 219 21 R f rence de l API de haut niveau current get_recordedData YCurrent current 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 YCurrent target get_recordedData startTime endTime Veuillez vous r f rer a 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 a la r vision 13000 Param tres startTime le d but de l intervalle de mesure d sir c est
86. 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 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 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 12 1 Contr le de la fonction Current Lancez Xcode 4 2 et ouvrez le projet exemple correspondant fourni dans le r pertoire Examples Doc GettingSta
87. une plus longue p riode par exemple dans le but de r duire le trafic r seau Cette version asynchrone n existe qu en Javascript Elle utilise une fonction de callback plut t qu une simple valeur de retour pour viter de bloquer la machine virtuelle Javascript avec une attente active P Param tres msValidity un entier correspondant a 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 YAPI_ 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 229 21 R f rence de l API de haut niveau current nextCurrent YCurrent Continue l num ration des capteurs de courant commenc e l aide de yFirstCurrent _is function nextCurrent node js function nextCurrent php function nextCurrent YCurrent nextCurrent YCurrent nextCurrent function nextCurrent TYCurrent vo function nextCurrent As YCurrent YCurrent nextCurrent YCurrent nextCurrent def nextCurrent Retourne un pointeur sur un objet YCurrent accessible en ligne ou nul 1 lorsque l num ration
88. 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 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
89. utiliser le Virtual Hub mais il existe une m thode encore plus simple rapide et efficace l API en 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 8 1 Installation T l chargez l API en ligne de commande II n y a pas de programme d installation lancer copiez simplement les ex cutables correspondant a votre plateforme OS dans le r pertoire de votre choix Ajoutez ventuellement ce r pertoire a 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 Amp ouvrir un shell et commencer travailler en tapant par exemple YCurrent 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 8 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 glo
90. 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 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 ch
91. www yoctopuce com 161 21 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 162 www yoctopuce com 21 R f rence de l API de haut niveau module functionValue 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
92. 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 136 www yoctopuce com 21 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 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 p
93. 1 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 num 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 135 21 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
94. 21 7 3 Interface de contr le du module sn 21 7 4 Interface de la fonction Current iii 23 7 5 Interface de la fonction DataLogger su 23 7 6 Quelle interface Native DLL ou Service ooo cece cccceecccccsceeeeceeeeueceeeesueeeeeeeueeeaeeeesuaeeeeess 24 7 7 Programmation par o commencer sien 27 8 Utilisation du Yocto Amp en ligne de commande eect 29 8 12 Installation aeee e EAEE EARE PEPEE AEAEE AARE EEA SEE EEEE RAEN PEP AE AENA EDESA EAE EEEE PE SE NEESS 29 8 2 Utilisation description g n rale ss 29 8 3 Contr le de la fonction Current iii 30 8 4 Contr le de la partie module sise 30 8 5 LiIMTAtOns serrate han at he a ere et eet nee uns ere 31 9 Utilisation du Yocto Amp en Javascript 2 ccc cece ce eeee ee teeteeeeseeeeeees 33 9 1 Preparation honasi reani i ie teea stan Ha desde Mee teat A e aea iaae aian N eee dane eee 33 9 2 Contr le de la fonction Current iii 33 9 3 Contr le de la partie module ses 35 9 4 Gestion des erreurs 2 2 scdccccaceccccccco states dires de et este ca sacdadcdceccehencichonsasasedsddncdecedcecctcnsts cetedeae 38 10 Utilisation du Yocto Amp en PHP oon cece ees eeseeseeeeeteeneseeseeneens 41 10 1 PI PATAION eieren ee a Rs Us tn uiae 41 10 2 Contr le de la fonction Current iii 41 10 3 Controled la partie module sens a dee atte 43 10 4 API par callback HTTP et filtres NAT iii 46 10 5 G sti n d s rr ur srera duniani eegee nee Te Sich ARE SN qe ee dundee RS der dee des
95. 8 Utilisation du Yocto Amp avec Android 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 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 package com yoctopuce doc_ examples import android app Activity import android os Bundle import android os Handler import android view View import android widget AdapterView import android widget AdapterView OnItemSelectedListener import android widget ArrayAdapter import android widget Spinner import android widget TextView import com yoctopuce YoctoAPI YAPI import com yoctopuce YoctoAPI YAPI Exception import com yoctopuce YoctoAPI YCurrent import com yoctopuce YoctoAPI YModule public class GettingStarted Yocto Amp extends Activity implements OnltemSelectedListener private ArrayAdapter lt String gt aa Met eNee Sieve Sree Au private Handler handler null Override public void onCreate Bundle savedInstanceState i super onCreate savedInstanceState setContentView R layout gettingstarted yocto amp 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 setDropDownViewRes
96. Architecture 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 146 www yoctopuce com 21 R f rence de l API de haut niveau YAPI SetDelegate YAPI ySetDelegate Objective C uniquement Enregistre 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 147 21 R f rence de l API de haut niveau YAPI SetTimeout YAPI ySetTimeout Appelle l
97. Current FindCurrent m serialNumber stringByAppendingString current2 else NSLog No module connected check USB cable return 1 while 1 if lim 2s0nline 4 NSLog No module connected check identification and USB cable return 1 NSLog Current DC sf mA SensorDC currentValue NSLog AC Sf mA SensorAC currentValue NSrOg GUI IbreSSACETIE CN Eo exire 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_current 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 current h est n cessaire pour g rer les modules contenant un capteur de courant comme le Yocto Amp 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 60 www yoctopuce com 12 Utilisation du Yocto Amp en Objective C yFindCurrent La fonction yFindCurrent permet de retrouver un capteur de courant en fonction du num ro de
98. En cas d erreur d clenche une exception ou retourne Y_PRODUCTNAME_INVALID www yoctopuce com 175 21 R f rence de l API de haut niveau module gt get_productRelease YModule module gt 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 176 www yoctopuce com 21 R f rence de l API de haut niveau module get_rebootCountdown YModule module 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
99. End If REM we need to retreive If sensor isOnline T m sensor get module sensorDC yFindCurren sensorAC yFindCurren Else both DC and AC voltage from the device hen mroetsserralNument ee current lL miget seriralNumber current Die Module not connected End If While True www yoctopuce com 67 13 Utilisation du Yocto Amp en VisualBasic NET If Not m isOnline Then Die Module not connected Console Write INDES scnsonbe Ger eurrentValue k ToStr ino On AL Console Wet MAC TT iScnsonAC Gere eurrcentValuer kToString On E AL Console WriteLine press Ctrl C to exit ySleep 1000 errmsg End While End Sub End Module 13 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 Imports System 1I0 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 System Environment GetCommandLineArgs Bimserunsg As String sw Dim m As ymodule ReEW yRegusterHub Ushi er Emso i lt gt s VARIN SUCCESS ihen Console WriteLine RegisterHub error errmsg End Ends at If argv Length lt 2 Then usage m yFindModule argv 1 REM use serial or logical name
100. 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 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
101. I de haut niveau current set_highestValue YCurrent current 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 function set_highestValue ByVal newval As Double As Integer int set_highestValue double newval int set_highestValue double newval def set_highestValue newval YCurrent 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 www yoctopuce com 233 21 R f rence de l API de haut niveau current set_logFrequency YCurrent current 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_l
102. Info 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 productname end end 20 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
103. 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 21 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 21 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 function describe string des
104. 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 21 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 www yoctopuce com 255 21 R
105. Logger 252 get_errorType YModule 165 get_firmwareRelease YModule 166 get_friendlyName YCurrent 209 get_friendlyName YDataLogger 253 get_functionDescriptor YCurrent 210 get_functionDescriptor YDataLogger 254 get_functionld YCurrent 211 get_functionld YDataLogger 255 get_functionld YDataSet 278 get_hardwareld YCurrent 212 get_hardwareld YDataLogger 256 get_hardwareld YDataSet 279 get_hardwareld YModule 167 get_highestValue YCurrent 213 get_icon2d YModule 168 get_lastLogs YModule 169 get_logFrequency YCurrent 214 get_logicalName YCurrent 215 get_logicalName YDataLogger 257 get_logicalName YModule 170 get_lowestValue YCurrent 216 get_luminosity YModule 171 get_maxValue YMeasure 291 get_measures YDataSet 280 get_minValue YMeasure 292 get_ module YCurrent 217 get_ module YDataLogger 258 get_module async YCurrent 218 get_module_async YDataLogger 259 get_persistentSettings YModule 172 get_preview YDataSet 281 get_productld YModule 173 get_productName YModule 174 get_productRelease YModule 175 get_progress YDataSet 282 get_rebootCountdown YModule 176 get_recordedData YCurrent 219 get_recording YDataLogger 260 get_reportFrequency YCurrent 220 get_resolution YCurrent 221 get_serialNumber YModule 177 get_startTimeUTC YDataSet 283 get_startTimeUTC YMeasure 293 get_summary YDataSet 284 get_timeUTC YDataLogger 261 get_unit YCurrent 222 get_unit YDataSet 285 get_upTime YModule 178 get_usbBan
106. 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 179 21 R f rence de l API de haut niveau module get_usbBandwidth YModule 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 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 180 www yoctopuce com 21 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
107. S encor AC ger Ctriremne Vedie Wo Siesta ae Yaw Aa Console WriteLine press Ctrl C to exit YAPI Sleep 1000 ref errmsg 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 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 execname lt serial or logical name gt ON OFF System Threading Thread Sleep 2500 Environment Exit 0 statie vord Maini sitrang i arcs YModule m SLERING err mso We if YAPI RegisterHub usb ref errmsg YAPI SUCCESS Console WriteLine RegisterHub error errmsg Environment Exit 0 LE anos Wench lt i usage m YModule FindModule args 0 use serial or logical name if m isOnline if args Length gt 2 if args 1 ToUpper ON m set beacon YModule BEACON ON if args 1 ToUpper OFF m set_beacon YModule BEACON OFF Console WriteLine serial m get_serialNumber Console WriteLine logical name m get logicalName Console WriteLine luminosity m get_lumin
108. SB doit alimenter lectriquement tous les p riph riques qui lui sont directement ou indirectement connect s Et USB impose des limites En th orie un port USB fournit 100mA et peut lui fournir sa guise jusqu 500mA si le p riph rique les r clame explicitement Dans le cas d un hub non aliment il a droit 100mA pour lui m me et doit permettre chacun de ses 4 ports d utiliser 100mA au maximum C est tout et c est pas beaucoup Cela veut dire en particulier qu en th orie brancher deux hub USB non aliment s en cascade ne marche pas Pour cascader des hubs USB il faut utiliser des hubs USB aliment s qui offriront 500mA sur chaque port En pratique USB n aurait pas eu le succ s qu il a si il tait si contraignant Il se trouve que par conomie les fabricants de hubs omettent presque toujours d impl menter la limitation de courant sur les ports ils se contentent de connecter l alimentation de tous les ports directement l ordinateur tout en se d clarant comme hub aliment m me lorsqu ils ne le sont pas afin de d sactiver tous les contr les de consommation dans le syst me d exploitation C est assez malpropre mais dans la mesure 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 Ce que vous devez en retenir si vous branchez des modules Yoctopuce via un ou des hubs non aliment
109. Serial YAMPMK01 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 YAMPMK01 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 current1 il suffit de construire l URL suivante http 127 0 0 1 4444 bySerial YAMPMK01 12345 api currentl 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 YAMPMK01 12345 api current1 logicalName Assez logiquement les attributs peuvent tre modifi s de la m me mani re http 127 0 0 1 4444 bySerial YAMPMK0O1 12345 api currentli logicalName maFonction Vous trouverez la liste des attributs disponibles pour votre Yocto Amp au d but du chapitre Programmation concepts g n raux 122 www yoctopuce com 20 Utilisation avec des langages non support s Acc s aux donn es enregistr es sur le datalogger par l inter
110. YCurrent FirstCurrent if sensor null System out printin No module connected check USB cabille System exit 1 bey serial sensor module get_serialNumber Hecaiec hen MAIER Eee Olslonme mn System out printiin No module connected check USB cable System exit 1 Demo demo serial currentl serial current2 YAPI FreeAPI 17 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 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 yoc
111. Yocto Amp Mode d emploi Table des matieres Wo IMITOQUORNON LS en atta rae ta matte Paden ae us eater ee 1 11 Pr requis EA ETETEA ATT 1 1 2 Accessoires optionnels Faresi raa a anaa e e pa EE ia 3 2 Pr sentation 52222 ne A ND nt cle 5 2 1 Les l ments COMMUNS siennes EERE Eaa EE Ea Naa EE aaa Eaei 5 2 2 LES ClIEMOENtS SPOCIIGUSS List tin nn an nt end te e aia 6 3 Risques d lectrocution oo ccc ccssssseessesssessesssesueessessecssestesseessessueeseesteeseesseesees 7 3 1 Parties dangereuses n eiaa erae ra iata Aiea a E ad dde Perdre e E detaia EN 7 4 Courant coutinu vs courant alternatif 2 0 cece eceeeeeeeteeeeeneeeneeeeees 9 5aPremiers DAS enw tah een toe oa eee Ei ee eae 11 Di EG CAlS ATION EEEE See avec daca dae sven nn a 2 Pa die dace en cee asa eran must nee de 11 52 Test du module E E EE AE A 11 DS AGOMMOULATON KEEA E E E E E ty Bertie ee Bee eee 12 6 Montage et connectique anne cece cceees ces eeseeseesesseenesecsecueeneecesueeseneeacenseneaeeeneneens 15 Oils FIXATION sa ad et Sees eins nae tie A cea ei sente nee ete inner tn ne en anni 15 6 2 Brancherments eei eteri esenea a pae eea A aea etena A Eaa Ee e anne EE 16 6 3 Echa tiement aaria ada eit idee deen dee ave edie eee dete aa ae d r EEE 16 6 4 Contraintes d alimentation par USB us 17 7 Programmation concepts g n raux oo esssesseesseeseesseeseesseesseeneesseesees 19 7 1 Paradigme de programmation sise 19 7 2 Le module YOCto AMP rte nent denen dae eee
112. _resolution newval YCurrent target set_resolution newval La r solution correspond a la pr cision de la repr sentation num rique des mesures Changer la r solution ne change pas la pr cision de la mesure elle m me Param tres newval une valeur num rique repr sentant la r solution 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 238 www yoctopuce com 21 R f rence de l API de haut niveau current set_userData YCurrent current 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 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 21 R f rence de l API de haut niveau current wait_async YCurrent Attend que toutes les commandes asynchrones en cours d ex cution sur le module soient term
113. a fonction Current sus 102 18 6 Contr le de la partie module sise 104 18 7 G stion des err brs cies ccecies geceedesedexieie side a i a aaa era Seaside 109 19 Programmation avanc e oo ccc cscs sesseestessesesseesseeseessecseesseeseeeseesneeseesees 111 19 1 Programmation par v nements is 111 19 2 L enregistreur de donn es sisi 114 19 3 Calibration des senseurs iii 117 20 Utilisation avec des langages non support s 0 0 eee 121 20 1 Eigne d Commande sement et nee ner Ne ren nr eat cata 121 20 2 Virtual H b t HI TP GET RSR AR hci en ede nn NN ia 121 20 3 Utilisation des librairies dynamiques eee eeeteee center eeeeeeeeeaeeeeteaaeeeeeeaeeeeeeeeeeeeeeeees 123 20 4 Port de la librairie haut niveau sis 126 21 R f rence de l API de haut niveau on ecc cece eeceeeseeeeeeeeseeeteeeeeeeneen 127 21 1 Fonctions g n ral s sims rimes aa aaa aaa a a a ea ne aineas aa s ianhari 128 21 2 Interface de contr le du module ou eee eee eeeeneeeeeeneeeeeeeeeeeteaeeeeteaeeeeseeeeeseeaeeeenaeees 153 21 3 Interface de la fonction Current ss 198 21 4 Interface de la fonction DataLogger 0 0 eee ceeeseeeeeeeeneeceeeneeeeeeaaeeeteaeeesseneeeeeeneeeeesneeeees 241 21 5 S quence de donn es enregistr es ooo eeeeeeeeeeeeeeeeeeneeeeeeeeeeeseeeeeesaeeesseneeeeteeeeeeneees 276 21 6 Valour MeSUr e ss Meet dti a Pirate neue 289 22 Probl mes courants ou cess essssssesssesssessesseesscssessussnee
114. a 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 Console WriteLine RegisterHub error errmsg Environment Exit 0 m YModule FindModule args 0 use serial or logical name if m isOnline newname args 1 if YAPI CheckLogicalName newname Console WriteLine Invalid name newname Environment Exit 0 www yoctopuce com 77 14 Utilisation du Yocto Amp en C m set_logicalName newname m saveToFlash do not forget this Console Write Modules serial 7 moget eserralNumbex 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 Pa
115. a 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 Amp avec le num ro de de s rie YAMPMKO1 12345 et le nom logique monModule l URL suivante permettra de conna tre l tat du module http 127 0 0 1 4444 bySerial YAMPMK01 12345 api module txt Il est bien entendu possible d utiliser le nom logique des modules plut t que leur num ro de s rie http 127 0 0 1 4444 byName monModule api module txt Vous pouvez retrouver la valeur d une des propri t s d un module il suffit d ajouter le nom de la propri t en dessous de module Par exemple si vous souhaitez conna tre la luminosit des LEDs de signalisation il vous suffit de faire la requ te suivante http 127 0 0 1 4444 by
116. aLogger 242 yFindModule 155 yFirstCurrent 201 yFirstDataLogger 243 yFirstModule 156 yFreeAPI 133 yGetAPIVersion 134 yGetTickCount 135 yHandleEvents 136 ylnitAPI 137 YMeasure 289 293 YModule 155 196 Yocto Amp 21 29 33 41 51 59 65 73 81 87 93 99 yPreregisterHub 138 yRegisterDeviceArrivalCallback 139 yRegisterDeviceRemovalCallback 140 yRegisterHub 141 yRegisterHubDiscoveryCallback 143 yRegisterLogFunction 144 ySelectArchitecture 145 ySetDelegate 146 ySetTimeout 147 ySleep 148 yUnregisterHub 149 yUpdateDeviceList 150 yUpdateDeviceList_async 151
117. aSet 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 Retourne l ident
118. able 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 115 19 Programmation avanc e Les mesures sont des objets YMeasure 7 On peut en y lire la valeur minimale moyenne et maximale a 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 timeFmt 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
119. ableArray rawValues NSMutableArray refValues function loadCalibrationPoints var rawValues TDoubleArray var refValues TDoubleArray Longint procedure 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 YCurrent 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 228 www yoctopuce com 21 R f rence de l API de haut niveau current load_async YCurrent Met en cache les valeurs courantes du capteur de courant 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
120. actement de la m me mani re Si aucun module n est disponible YXxx FirstXxxx renvoie une valeur nulle En revanche m me si aucun module ne correspond YXxx FindXxxx renverra objet valide qui ne sera pas online mais qui pourra le devenir si le module correspondant est connect plus tard Manipulation des fonctionnalit s Une fois l objet correspondant une fonctionnalit retrouv ses m thodes sont disponibles de mani re tout fait classique Notez que la plupart de ces sous fonctions n cessitent que le module h bergeant la fonctionnalit soit branch pour pouvoir tre manipul es Ce qui n est en g n ral jamais garanti puisqu un module USB peut tre d branch apr s le d marrage du programme de contr le La m thode isOnline disponible dans chaque classe vous sera alors d un grand secours Acc s aux modules Bien qu il soit parfaitement possible de construire un projet en faisant abstraction de la r partition des fonctionnalit s sur les diff rents modules ces derniers peuvent tre facilement retrouv s l aide de l API En fait ils se manipulent d une mani re assez semblable aux fonctionnalit s Ils disposent d un num ro de s rie affect en usine qui permet de retrouver l objet correspondant l aide de YModule Find Les modules peuvent aussi se voir affecter un nom logique arbitraire qui permettra de les retrouver ensuite plus facilement Et enfin la classe YModule comprend les m thodes d num rati
121. airie 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 Android 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 18 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 99 18 Utilisation du Yocto Amp 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 se
122. aleur 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 21 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 21 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 double
123. ams 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 21 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 Yoctopuce est utilis e en d sact
124. ants 295 Coutinu 9 Current 23 30 33 41 51 59 66 74 81 88 93 102 198 D Dangereuses 7 DataLogger 23 241 Delphi 81 describe YCurrent 203 describe YDataLogger 244 describe YModule 157 Description 29 DisableExceptions YAPI 130 Donn es 114 276 download YModule 158 Dynamique 87 Dynamiques 123 E Echauffement 16 Electrocution 7 El ments 5 6 EnableExceptions YAPI 131 EnableUSBHost YAPI 132 Enregistr es 276 Enregistreur 114 Erreurs 38 49 56 63 70 78 86 91 98 109 Ev nements 111 F Fichiers 87 Filtres 46 FindCurrent YCurrent 200 FindDataLogger YDataLogger 242 FindModule YModule 155 FirstCurrent YCurrent 201 FirstDataLogger YDataLogger 243 FirstModule YModule 156 Fixation 15 Fonctions 128 forgetAllDataStreams YDataLogger 245 FreeAPI YAPI 133 functionCount YModule 159 functionld YModule 160 functionName YModule 161 functionValue YModule 162 G get_advertisedValue YCurrent 204 get_advertisedValue YDataLogger 246 get_autoStart YDataLogger 247 get_averageValue YMeasure 289 get_beacon YModule 163 get_currentRawValue YCurrent 205 get_currentRunindex YDataLogger 248 get_currentValue YCurrent 206 get_dataSets YDataLogger 249 get_dataStreams YDataLogger 250 get_endTimeUTC YDataSet 277 get_endTimeUTC YMeasure 290 get_errorMessage YCurrent 207 get_errorMessage YDataLogger 251 get_errorMessage YModule 164 get_errorType YCurrent 208 get_errorType YData
125. arg es Retourne un nombre entier entre 0 et 100 repr sentant l avancement du chargement des donn es demand es www yoctopuce com 283 21 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 21 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 YMeasure summa
126. as 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 137 21 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 errmsg 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
127. ataStreams 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 21 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 21 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 get_autoStart function g
128. ation 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 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 Vous devez raccorder votre module Yocto Amp l aide d un cable USB de type A micro B Si vous branchez un hub USB entre l ordinateur et le module Yocto Amp prenez garde ne pas d passer les limites de courant impos es par USB sous peine de faire face des comportements instables non pr visibles Vous trouverez plus de d tail a 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 Amp mais pourraient vous tre utiles selon l utilisation que vous en faites Il s agit en g n ral de produits courants que vous pouvez vous procurer chez vos fournisseurs habituels de mat riel de bricolage Pour vous viter des recherches ces produits sont en g n ral aussi disponibles sur le shop de Yoctopuce Vis et entretoises Pour fixer le module Yocto Amp a un support vous pouvez placer des petites vis de 2 5mm
129. b device vendor id 9440 product id 12 gt lt usb device vendor id 9440 product id 13 gt lt resources gt www yoctopuce com 101 18 Utilisation du Yocto Amp avec Android 18 5 Contr le de la fonction Current Il suffit de quelques lignes de code pour piloter un Yocto Amp Voici le squelette d un fragment de code Java qui utilise la fonction Current Css On r cup re l objet repr sentant le module ici connect en local sur USB YAPI EnableUSBHost this YAPI RegisterHub usb current YCurrent FindCurrent YAMPMK01 123456 current1 Pour g rer le hot plug on v rifie que le module est la if current isOnline M 7 USeleurrenedeccureentVelue ol 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
130. bal des commandes elles permettent par exemple de piloter des modules distance travers le r seau ou encore elles peuvent forcer les modules sauver leur configuration apr s l ex cution de la 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 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 29 8 Utilisation du Yocto Amp en ligne de commande 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
131. c Chrome Firefox ou Safari Si le Yocto Amp n est pas branch sur la machine ou 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 Amp 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 sre yocto_api js gt lt SCRIPI gt lt SCRIPT type text javascript sre yocto_current js gt lt SCRIPI gt lt SCRIPT language javascriptl1 5 type text JavaScript gt ie Setup the API to use the VirtualHub on local machine if yRegisterHub http 127 0 0 1 4444 VAPI SUCCESS alenE tGannor contact Virtua Hub on T27 0mo Iui function refresh yar sensor sensorAC sensorDC var serial document getElementById serial value if serial Ij f or use any connected module suitable for the demo sensor yFirstCurrent if sensor serial gt sensor modullei gee userialiNumber i document getElementById serial value serial sensorDC yFindCurrent serial currentl sensorAC yFindCurrent serial current2 if sensorDC isOnline document getHElementById msg value document getElementById DC value sensorDC get_currentValue document getElementById AC value sensorAC get_currentValue else document getElementByld msg value Module not connected setTimeout refresh 500
132. calisation 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 www yoctopuce com 89 16 Utilisation du Yocto Amp en Python m YModule FindModule sys argv 1 use serial or logical name if mes Onlamer es if len sys argv gt 2 Li sys arov 2 upper ON m set beacon YModulle BEACON ON Li Sys argu 2 upper ORE im set beacon YModulie BEACON OPE Des entra m get_serialNumber Prine Mloqueadlemamne M mag ete logicaliName s print luminosity MS Erin get slkumaimoss iy if m get _beacon YModule BEACON ON print beacon ON Ser print beacon OFF print suprime Lt stu mogetaup rime 000 secu print MUISIE Gibieceryeg WM oe Sabie iniaicere_wisislemuarctoime 0 A print logs n m get_lastLogs EISES print sys argv l 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 l aide de la m thode YModule set xxx Pour plus de d tails concernant ces fonctions utilis es reportez vous aux chapitre API Modificat
133. ce 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 128 www yoctopuce com 21 R f rence de l API de haut niveau 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 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 YDev
134. ce de l API de haut niveau current get_userData YCurrent current 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 224 www yoctopuce com 21 R f rence de l API de haut niveau current isOnline YCurrent V rifie si le module h bergeant le capteur de courant 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 Si les valeurs des attributs en cache du capteur de courant 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 courant est joignable false sinon www yoctopuce com 225 21 R f
135. chier 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 17 2 Contr le de la fonction Current ll suffit de quelques lignes de code pour piloter un Yocto Amp Voici le squelette d un fragment de code Java qui utilise la fonction Current aso On r cup re l objet repr sentant le module ici connect en local sur USB YAPTMRega site CHUDE EOE current YCurrent FindCurrent YAMPMK01 123456 currentl1 Pour g rer le hot plug on v rifie que le module est la if current isOnline Use current get_currentValue 1 www yoctopuce com FR libraries php 2 www yoctopuce com FR virtualhub php www yoctopuce com 93 17 Utilisation du Yocto Amp en Java ieee 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
136. 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 Ensuite pour que votre projet se construise ensuite correctement il faudra linker avec votre projet la librairie dynamique Yoctopuce et les 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 Gee saa eilyyocize Slim a p ehir ead kal us pA 310 ilshetclersr 58 www yoctopuce com 12 Utilisation du Yocto Amp 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
137. correspondant fourni dans le r pertoire Examples Doc GettingStarted Yocto Amp 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 import com yoctopuce YoctoAPI public class Demo public static void demo String ac_hardwareid String dc_hardwareid we need to retreive both DC and AC voltage from the device YCurrent sensorD YCurrent FindCurrent de hardwareid YCurrent sensorAC YCurrent FindCurrent ac hardwareid while true try System out printiln De sensorDC get_ currentValue mA System out prin UAC a sen sorAC ge scurreneMelte EiErr AM System outprinkin press EEr Te to exit YAPI Sleep 1000 catch YAPIT Exception ex System out print lim Module sensonbe module Es mot connected return 94 www yoctopuce com 17 Utilisation du Yocto Amp en Java public static void main String args ery 4 setup the API to use local VirtualHub YAPI RegisterHub 127 0 0 1 Peach VAP yhxcep i wommex i SyS vem OU DEINE ln Cannot Contact Virtua BUbTON 1277 OP OEM ex getLocalizedMessage System out printiin Ensure that the VirtualHub application is running System exit 1 otning serio Hi if args length gt 0 serial args 0 else YCurrent sensor
138. cribe 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 21 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 As Integer int forgetAllD
139. ction get_highestValue double v function get_highestValue As Double double get_highestValue double get_highestValue def get_highestValue Y Current target get_highestValue Retourne une valeur num rique repr sentant la valeur maximale observ e En cas d erreur d clenche une exception ou retourne Y_HIGHESTVALUE_INVALID YCurrent 214 www yoctopuce com 21 R f rence de l API de haut niveau current get_logFrequency YCurrent current 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 YCurrent 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 215 21 R f rence de l API de haut niveau current get_logicalName YCurrent current logicalName Retourne le nom
140. cto current 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 Ssys exit msgt check USB cabre errmsg YRefParam if len sys argv lt 2 usage target sys argv 1 Setup the API to use local USB devices if YAPI RegisterHub usb errmsg YAPT SUCCESS sys exit init error errmsg value if target any retreive any voltage sensor can be AC or DC sensor YCurrent FirstCurrent if sensor is None die No module connected else sensor YCurrent FindCurrent target currentl we need to retreive both DC and AC voltage from the device if sensor isOnline m sensor get module sensorDC YCurrent FindCurrent m get serialNumber currentl sensorAC YCurrent FindCurrent m get_serialNumber iY eurre nka else die Module not connected let s poll while True Pinot m usOnilane i idre Modullesnot connected jorerine IER S Eens or MENGE r _Culisicteevellie NET ASE PAC sr AS EnS Or ACTE Ee Un rene Vodne TA printi press Cercle fee EZE YAPI Sleep 1000 errmsg 16 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 lo
141. currentValue current currentValue Retourne la valeur mesur e actuelle function get_currentValue function get_currentValue function get_currentValue double get_currentValue double currentValue function get_currentValue double function get_currentValue As Double double get_currentValue double get_currentValue def get_currentValue YCurrent target get_currentValue Retourne une valeur num rique repr sentant la valeur mesur e actuelle YCurrent En cas d erreur d clenche une exception ou retourne Y_CURRENTVALUE_INVALID www yoctopuce com 207 21 R f rence de l API de haut niveau current get_errorMessage YCurrent current errorMessage Retourne le message correspondant la derni re erreur survenue lors de l utilisation du capteur de courant 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 courant 208 www yoctopuce com 21 R f
142. d crivant le capteur de courant au format TYPE NAME SERIAL FUNCTIONID current get_advertisedValue Retourne la valeur courante du capteur de courant pas plus de 6 caract res current get_currentRawValue Retourne la valeur brute retourn e par le capteur sans arrondi ni calibration current get_currentValue Retourne la valeur mesur e actuelle current get_errorMessage Retourne le message correspondant la derni re erreur survenue lors de l utilisation du capteur de courant current get_errorType Retourne le code d erreur correspondant la derni re erreur survenue lors de l utilisation du capteur de courant current get_friendlyName Retourne un identifiant global du capteur de courant au format NOM_ MODULE NOM_FONCTION current get_functionDescriptor Retourne un identifiant unique de type YF UN_DESCR correspondant la fonction current get_functionld Retourne l identifiant mat riel du capteur de courant sans r f rence au module current get_hardwareld 198 www yoctopuce com 21 R f rence de l API de haut niveau Retourne l identifiant mat riel unique du capteur de courant au format SERIAL FUNCTIONID current get _highestValue Retourne la valeur maximale observ e current get logFrequency Retourne la fr quence d enregistrement des mesures dans le datalogger ou OFF si les mesures ne sont pas stock e
143. 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 113 19 Programmation avanc e L exemple suivant met en place un callback p riodique 4 fois par minute pour la premi re fonction Current disponible YCurrent f YCurrent FirstCurrent rPSctarepontnmequeneyi M mu e 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 YCurrent Ainsi la m me fonction callback pourra tre utilis e avec toutes les sous classes de YSensor et en particulier avec YCurrent 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 la librairie de programmation Yoctopuce de chaque langage L exemple se trouve dans le r pertoire Examples Prog EventBased 19 2 L enregistreur de donn es Votre Yocto Amp est quip d un enregistreur de
144. d une commande 8 3 Contr le de la fonction Current Pour contr ler la fonction Current de votre Yocto Amp vous avez besoin de l ex cutable YCurrent Vous pouvez par exemple lancer Y urrent any get currentValue Cet exemple utilise la cible any pour signifier que l on d sire travailler sur la premi re fonction Current trouv e parmi toutes celles disponibles sur les modules Yoctopuce accessibles au moment de l ex cution Cela vous vite d avoir a 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 Amp avec le num ros de s rie YAMPMKO1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction current MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t YCurrent YAMPMK0O1 123456 currentl describe YCurrent YAMPMK0O1 123456 MaFonction describe YCurrent MonModule currentl describe YCurrent MonModule MaFonction describe YCurrent MaFonction describe Pour travailler sur toutes les fonctions Current la fois utilisez la cible all YCurrent all describe Pour plus de d tails sur les possibilit s de l ex cutableyCurrent utilisez YCurrent help 8 4 Contrdle de la partie module Chaque module peut tre contr l d une mani re similaire a l
145. de pour piloter un Yocto Amp Voici le squelette d un fragment de code C qui utilise la fonction Current ruelle OctoON pin PWACIUCS Nyereice _Cwherisiye Jn ered String errmsg YCurrent current 1 http www microsoft com visualstudio en us products 2010 editions visual cpp express www yoctopuce com FRilibraries php www yoctopuce com 51 11 Utilisation du Yocto Amp en C On r cup re l objet repr sentant le module ici connect en local sur USB yRegisterHub usb errmsg current yFindCurrent YAMPMK01 123456 current1 Pour g rer le hot plug on v rifie que le module est l if current gt isOnline A Upson current Get cunnrenEValite i Voyons maintenant en d tail ce que font ces quelques lignes yocto_api h et yocto_current 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 current h est n cessaire pour g rer les modules contenant un capteur de courant comme le Yocto Amp 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 prob
146. 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 220 www yoctopuce com 21 R f rence de l API de haut niveau current get_reportFrequency YCurrent current 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 YCurrent 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 cas d erreur d clenche une exception ou retourne Y_REPORTFREQUENCY_INVALID www yoctopuce com 221 21 R f re
147. 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 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 possibl
148. 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 Amp avec le num ros de s rie YAMPMKO1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction current MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t current yFindCurrent YAMPMK01 123456 current1 current yFindCurrent YAMPMK01 123456 MaFonction current yFindCurrent MonModule current1 current yFindCurrent MonModule MaFonction current yFindCurrent MaFonction yFindCurrent renvoie un objet que vous pouvez ensuite utiliser loisir pour contr ler le capteur de courant 4 Pensez a changer le filtre de la fen tre de s lection de fichiers sinon la DLL n appara tra pas 66 www yoctopuce com 13 Utilisation du Yocto Amp en VisualBasic NET isOnline La m thode isOnline de l objet renvoy par yFindCurrent 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 yFindCurrent permet d obtenir le courant mesur par le capteur La valeur de retour est un nombre repr sentant directement la valeur en mA Un exemple r el Lancez Microsoft VisualBasic et ouvrez le projet exem
149. 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 50 www yoctopuce com 11 Utilisation du Yocto Amp en C Le C n est pas le langage le plus simple a maitriser Pourtant si on prend soin a se limiter aux fonctionnalit s essentielles c est un langage tout a 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 po
150. dule C est une valeur enti re variant entre 0 leds teintes et 100 leds l intensit maximum La valeur par d faut est 50 Pour changer l intensit maximale des leds de signalisation du module ou les teindre compl tement il suffit donc de modifier cette valeur beacon Etat de la balise de localisation du module upTime Temps coul depuis la derni re mise sous tension du module usbCurrent Courant consomm par le module sur le bus USB en milli amp res rebootCountdown Compte rebours pour d clencher un red marrage spontan du module 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 22 www yoctopuce com 7 Programmation concepts g n raux 7 4 Interface de la fonction Current 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 courant 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 courant Si deux capteurs de courant portent le m me nom logique dans un projet il n y a pas moyen de d terminer lequ
151. dule get lastLogs catch YAPI Exception e e printStackTrace 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 refreshInfo View view www yoctopuce com 105 18 Utilisation du Yocto Amp avec Android DisplayModuleInfo public void toggleBeacon View view if module null recu boolean on Switch view isChecked try af yon module setBeacon YModule BEACON ON else module setBeacon YModule BEACON OFF INC VAPRSE lt CepEsonse E e printStackTrace 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 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 i
152. dule to use lt input name serial value Sserial gt lt br gt we alesse CRGETT b EC on ENT 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 S module gt get serialNumber printf logical name s lt br gt module gt get_logicalName printf luminosity s lt br gt module gt get_luminosity printe lbeacon ML if Smodule 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 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 2 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 Lorsqu
153. 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 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 21 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 f
154. dwidth YModule 179 get_usbCurrent YModule 180 get_userData YCurrent 223 get_userData YDataLogger 262 get_userData YModule 181 GetAPIVersion YAPI 134 GetTickCount YAPI 135 H HandleEvents YAPI 136 HTTP 46 121 Hub 99 InitAPI YAPI 137 Installation 29 65 73 Int gration 57 Interface 21 23 24 153 198 241 Introduction 1 isOnline YCurrent 224 isOnline YDataLogger 263 isOnline YModule 182 isOnline_async YCurrent 225 isOnline_async YDataLogger 264 isOnline_async YModule 183 J Java 93 Javascript 33 L Langages 121 Librairie 57 87 126 Librairies 123 Limitations 31 Linux 295 load YCurrent 226 load YDataLogger 265 load YModule 184 load_async YCurrent 228 load_async YDataLogger 266 load_async YModule 185 loadCalibrationPoints YCurrent 227 loadMore YDataSet 286 loadMore_async YDataSet 287 Localisation 11 Mesur e 289 Module 11 21 30 35 43 54 61 68 76 83 89 95 104 153 Montage 15 N Natif 99 Native 24 NET 65 nextCurrent YCurrent 229 nextDataLogger YDataLogger 267 nextModule YModule 186 Niveau 126 127 O Objective C 59 P Paradigme 19 Parties 7 Plateformes 296 Port 100 126 Pr paration 33 41 81 93 99 PreregisterHub YAPI 138 Pr requis 1 Pr sentation 5 Probl mes 295 Programmation 19 27 111 Projet 65 73 Python 87 R reboot YModule 187 R f rence 127 RegisterDeviceArrivalCallback YAPI 139 RegisterDeviceRemovalCal
155. e udev rules to allow write access to all users of yoctogroup for Yoctopuce USB devices SUBSYSTEM usb ATTR idVendor 24e0 MODE 0664 GROUP yoctogroup 22 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 23 Caract ristiques Vous trouverez r sum es ci dessous les principales caract ristiques techniques de votre module Yocto Amp Largeur Longueur Poids Connecteur USB Courant Max continu Courant Max en pointe Frequence de rafra chissement Pr cision AC Pr cision DC Sensibilit 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 20 mm 56 mm 8g micro B 10A 17A
156. e 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 22 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 votre syst m
157. e lowestValue highestValue currentRawValue logFrequency reportFrequency calibrationParam resolution dataLogger DataLogger attribut logicalName advertisedValue currentRunIndex timeUTC recording autoStart clearHistory type modifiable Texte lecture seule Texte lecture seule Texte modifiable Entier hexad cimal lecture seule Entier hexad cimal lecture seule Texte lecture seule Type num r modifiable 0 100 modifiable On Off modifiable Temps lecture seule Courant consomm en mA _ lecture seule Nombre entier modifiable Type num r modifiable type modifiable Texte modifiable Texte lecture seule Texte lecture seule Nombre virgule flottante lecture seule Nombre virgule flottante modifiable Nombre virgule flottante modifiable Nombre virgule flottante lecture seule Fr quence modifiable Fr quence modifiable Tableau de mots de 16 bit modifiable Nombre virgule flottante modifiable type modifiable Texte modifiable Texte lecture seule Nombre entier lecture seule Heure UTC modifiable On Off modifiable On Off modifiable Bool en modifiable 7 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 21 7 Programmation concepts g n raux productName Cha ne d
158. e 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 21 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 php function nextDataLogger cpp 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 21 R f rence de l API de haut niveau datalogger registerValueCallback YDataLogger Enre
159. e 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 ce G J Les connecteurs USB 2 les plus courants A B Mini B Micro A Micro B 3 Pour connecter votre module Yocto Amp 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 nomin
160. e 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 exception ou retourne un code d erreur n gatif 148 www yoctopuce com 21 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_
161. e 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 Amp ce num ro de s rie commence toujours par YAMPMKO1 II peut servir comme point de d part pour acc der par programmation a un module particulier logicalName Chaine de caract res contenant le nom logique du module initialement vide Cet attribut peut tre chang au bon vouloir de l utilisateur Une fois initialis une valeur non vide il peut servir de point de d part pour acc der un module particulier Si deux modules avec le m me nom logique se trouvent sur le m me montage il n y a pas moyen de d terminer lequel va r pondre si l on tente un acc s par ce nom logique Le nom logique du module est limit 19 caract res parmi A Z a z 0 9 et productid Identifiant USB du module pr programm la valeur 31 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 mo
162. e com 249 21 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 21 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 YDataStream gt v int get_dataStre
163. e com 279 21 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 21 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 moment ou la mesure
164. e 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 saveTorlash 12 faut sauver le r glage Remarque les modules Yoctopuce n ont pas besoin d une connection USB active pour fonctionner ils commencent fonctionner d s qu ils sont aliment s Le Yocto Amp peut enregistrer des donn es 114 www yoctopuce com 19 Programmation avanc e sans tre forc ment raccord a 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 par 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 YSe
165. e 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 98 www yoctopuce com 18 Utilisation du Yocto Amp avec Android A vrai dire Android n est 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 18 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 18 2 Pr paration Connectez vous sur le site de Yoctopuce et t l chargez la libr
166. e 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 include yocto api php Use explicit error handling rather than exceptions yDisableExceptions 44 www yoctopuce com 10 Utilisation du Yocto Amp en PHP Setup the API to use the VirtualHub on local machine if yRegisterHub http 127 0 0 1 4444 errmsg YAPI_ SUCCESS diel Cannoe contact Miridae THubion 27 10 Oris Meserie ESC Ml eeen ane Seidel ESER 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
167. el 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 courant et qui sera publi e automatiquement jusqu au hub parent Pour un capteur de courant 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 Courant actuel en mA sous forme de nombre virgule flottante lowestValue Courant minimal observ sous forme de nombre virgule highestValue Courant maximal observ 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 calibrationParam 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 7 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
168. emps 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 Serial Logical Name Description Action 7d1a86ft VirtualHub configure view log file a 1 Yocto Amp configure view log file beacon e P Show device functions Liste des modules telle qu elle appara t dans votre browser 5 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 5 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 Amp 1 www yoc
169. erHub 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 rielles usb ne marchera donc pas avec ces languages Dans ce cas utilisez un VirtualHub ou un YoctoHub r seau voir ci dessous X x x x ou hostname L API utilise les modules connect s la machine dont l adresse IP est x x x x OU dont le nom d h te DNS est hostname Cette machine peut tre un ordinateur classique faisant tourner un VirtualHub ou un YoctoHub avec r seau YoctoHub Ethernet YoctoHub Wireless Si vous d sirez utiliser le VirtualHub tournant sur votre machine locale util
170. erdues 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 API to use local USB devices If yRegisterHub usb errmsg lt gt YAPI SUCCESS Then Console WriteLine RegisterHub error errmsg End End If m yFindModule 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 End If m set_logicalName newname m saveToFlash REM do not forget this Console Write Module serial m get_serialNumber 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
171. erreur n gatif 272 www yoctopuce com 21 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 21 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 void set_userData
172. es name une cha ne de caract res contenant le nom v rifier Retourne true sile nom est valide false dans le cas contraire 130 www yoctopuce com 21 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 131 21 R f rence de l API de haut niveau YAPI EnableExceptions YAPI yEnableExceptions R active l utilisation d exceptions pour la gestion des erreurs function 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
173. es 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 21 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 node js 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 long msValidity def l
174. es du capteur de courant avec une dur e de validit sp cifi e current loadCalibrationPoints rawValues refValues R cup re les points de correction de mesure pr c demment enregistr s l aide de la m thode calibrateFromPoints current load_async msValidity callback context Met en cache les valeurs courantes du capteur de courant avec une dur e de validit sp cifi e current nextCurrent Continue l num ration des capteurs de courant commenc e l aide de yFirstCurrent current registerTimedReportCallback callback Enregistre la fonction de callback qui est appel e a chaque notification p riodique current registerValueCallback callback Enregistre la fonction de callback qui est appel e a chaque changement de la valeur publi e current set_highestValue newval Modifie la m moire de valeur maximale observ e current set_logFrequency newval www yoctopuce com 199 21 R f rence de l API de haut niveau Modifie la fr quence d enregistrement des mesures dans le datalogger current set_logicalName newval Modifie le nom logique du capteur de courant current set_lowestValue newval Modifie la m moire de valeur minimale observ e current set_reportFrequency newval Modifie la fr quence de notification p riodique des valeurs mesur es current set_resolution newval Modifie la r solution des valeurs mesur es current set_userData data Enregistre un c
175. 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 www yoctopuce com 23 7 Programmation concepts g n raux 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 enre
176. est termin e 230 www yoctopuce com 21 R f rence de l API de haut niveau current registerTimedReportCallback YCurrent Enregistre la fonction de callback qui est appel e chaque notification p riodique function register TimedReportCallback callback function register TimedReportCallback callback function register TimedReportCallback callback int register TimedReportCallback YCurrentTimedReportCallback callback int registerTimedReportCallback YCurrentTimedReportCallback callback function registerTimedReportCallback callback TYCurrentTimedReportCallback Longint 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 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
177. et_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 21 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 www yoctopuc
178. et_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 191 21 R f rence de l API de haut niveau module 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 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 192
179. exemple concret 4 Si vous n avez pas d diteur de texte utilisez Notepad plut t que Microsoft Word 42 www yoctopuce com 10 Utilisation du Yocto Amp en PHP lt HTML gt lt HEAD gt lt TITLE gt Hello World lt TITLE gt lt HEAD gt lt BODY gt lt php include yocto api php include yocto icurrent jphp 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 YAPT SUCCESS die Cannoe contact Vixrtuallhub on L270 0PA1m E Sserial GET serial af eserial f yg Check if a specified module is available online Ssensor yFindCurrent serial currentl if Ssensor gt isOnline die Module not connected check serial and USB cable else or use any connected module suitable for the demo Ssensor yFirstCurrent ASUS Sensor die No module connected check USB cable else serial sensor gt module gt get serialnumber Print Module to use lt input name serial value Sserial gt lt br gt if Ssensor gt isOnline SsensorDC yFindCurrent serial currentl SsensorAC yFindCurrent serial current2 SDC SsensorDC gt get_currentValue SAC sensorAC gt get currentValue Print Current DC SDC mA Bes SAC mA lt br the trigger auto refresh after one second Print
180. extModule 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 187 21 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 roule sans erreur En cas d erreur d clenche une exception ou retourne un code d erreur n gatif 188 www yoctopuce com 21 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 Longin
181. face 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 a l aide de l URL suivante http 127 0 0 1 4444 bySerial YAMPMK01 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 YAMPMK01 12345 dataLogger json id currentl utc 1389801080 20 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 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
182. fest gt Lors du premier acc s a 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 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 la
183. ffectuer 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 current1 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 Y s 15 3 SF lt gt 10 5 Valeur du senseur 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 YCurrent f YCurrent FirstCurrent f calibrateFromPoints ValuesBefore ValuesAfter get_module 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 a 5 points ne sont qu une g n ralisation de la m thode a deux points permettant de ainsi de cr er jusqu 4 intervalles de correction pour plus de pr cision Ces intervalles ne peuvent pas tre di
184. ffichez 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 92 www yoctopuce com 17 Utilisation du Yocto Amp 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 17 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 fi
185. 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 www yoctopuce com 2 Pr sentation lorsque le module ne communique plus par exemple si il est aliment par un hub sans connexion avec un ordinateur allum Lorsque vous appuyez sur le Yocto bouton la Led passe en mode Yocto balise elle se met alors a 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 Y
186. g gt this android R layout simple spinner item aa setDropDownViewResource android R layout simple spinner dropdown item my spin setAdapter aa Override proteetedivolid onSsEeanE super onStart 7 Ery aa clear YAPI EnableUSBHost this YAPI RegisterHub usb YModule r YModule FirstModule while r null String hwid r get_hardwarelId aa add hwid r r nextModule Catch YAPI Exception e e printstacki race refresh Spinner with detected relay aa notifyDataSetChanged Override protected void onStop super onStop YAPI FreeAPI private void DisplayModulelnfo TextView field if module null PEE m 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 ronde Woeacon module get beacon sw setChecked module getBeacon YModule BEACON ON field TextView findViewById R id logs field setText mo
187. ger 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 194 www yoctopuce com 21 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 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 195 21 R f rence de l API de haut niveau module gt triggerFirmwa
188. gistre 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 21 R f rence de l API de haut niveau datalogger set_autoStart YDataLogger datalogger setAutoStart Modifie le mode d activation automatique de l enregistreur de donn
189. gistreur de donn es L enregistreur peut tre enclanch ou d clanch volont par cet attribut mais son tat la mise sous tension 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 7 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 24 www yoctopuce com 7 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
190. ication 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 90 www yoctopuce com 16 Utilisation du Yocto Amp en Python 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 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 YRef Param Setup the API to use local USB devices if YAPI RegisterHub usb errmsg YAPI SUCCESS SVS 1Cx1 Gani error ESE errmsg prine Device iisti module YModule FirstModule while module is not None print module get_serialNumber module get_productName module module nextModule 16 5 Gestion des erreurs Lorsque vous impl mentez un programme qui doit i
191. iceHotPlug 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 129 21 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 string 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 tr
192. ifiant 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 21 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 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 21 R f rence de l API de haut niveau dataset get_endTimeUTC YDataSet dataset endTimeUTC Retourne l heure absolue de la fin des mesures disponibles s
193. ilisateur final de votre projet ne puisse jamais les toucher m me par accident C par nies 0 m y Parties potentiellement dangereuses du module Yocto Amp EI www yoctopuce com www yoctopuce com 4 Courant coutinu vs courant alternatif Le module Yocto Amp est capable de mesurer un courant continu mais aussi une courant alternative Un courant continu est typiquement celui que l on peut mesurer aux bornes d une batterie ou la sortie d une alimentation pour appareils l ctroniques Il est cens rester relativement stable dans le temps Courant continu stable dans le temps Un courant alternatif est un courant qui varie p riodiquement dans le temps l exemple le plus typique est le courant que l on peut tirer du secteur Une dynamo comme celle qui se trouve sur votre v lo produit elle aussi du courant alternatif Courant alternatif il change de mani re p riodique Notez qu un courant alternatif n est pas forc ment sym trique par rapport au neutre On peut alors la d crire comme la somme d un courant continu et d un courant alternatif sym trique www yoctopuce com 4 Courant coutinu vs courant alternatif Courant alternatif asym trique C est la somme d un courant continu et d un courant alternatif C est pourquoi le Yocto Amp fournit les mesures sous la forme d une mesure de courant continue DC et de mesures de courant alternatif AC Lorsque vous me
194. in 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 21 R f rence de l API de haut niveau 21 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 vb yocto_datalogger cs impor
195. ing 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 156 www yoctopuce com 21 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
196. ions 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 usr bin python RC CN CRUE t 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 Sys ex ie QUReG i siterHuol enror ESS EneremsSc m YModule FindModule sys argv 1 use serial or logical name af m isOniliney 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 exit net connected check identif
197. ions 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 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 96 www yoctopuce com 17 Utilisation du Yocto Amp en Java if YAPI CheckLogicalName newname Sye cenm our prime miya dame Ge soveiiiavsnatey e 1 7p System exit 1 m set_logicalName newname m saveToFlash do not forget this System ouc prantin Modules serial miget serialiNumbex
198. irie 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 18 4 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 100 www yoctopuce com 18 Utilisation du Yocto Amp avec Android lt mani
199. is 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 www yoctopuce com 63 12 Utilisation du Yocto Amp en Objective C 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 de chaque fonction sont syst matiquement remplac es par
200. 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 get_userData datalogger
201. isation du Yocto Amp en Delphi 15 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 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 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
202. isez 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 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 ratio
203. ity 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 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 21 R f rence de l API de haut niveau current loadCalibrationPoints YCurrent R cup re les points de correction de mesure pr c demment enregistr s l aide de la m thode calibrateFromPoints is function loadCalibrationPoints rawValues refValues node js 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 NSMut
204. ivant 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 21 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 21 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 def get_friendlyName
205. l me yFindCurrent La fonction yFindCurrent permet de retrouver un capteur de courant 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 Amp avec le num ros de s rie YAMPMKO1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction current MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t YCurrent current yFindCurrent YAMPMK01 123456 current1 YCurrent current yFindCurrent YAMPMK01 123456 MaFonction YCurrent current yFindCurrent MonModule current1 YCurrent current yFindCurrent MonModule MaFonction YCurrent current yFindCurrent MaFonction yFindCurrent renvoie un objet que vous pouvez ensuite utiliser loisir pour contr ler le capteur de courant isOnline La m thode isOnline de l objet renvoy par yFindCurrent 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 yFindCurrent permet d obtenir le courant mesur par le capteur La valeur de retour est un nombre repr sentant directement la valeur en mA Un exemple r el Lancez votre environnement C et ouvrez le projet exemple corre
206. l 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 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
207. langages de programmation permettant d effectuer des appels syst me cela permet de r soudre le probl me en quelques lignes Cependant si l API en ligne de commande est la solution la plus facile ce n est pas la plus rapide ni la plus efficace A chaque appel l ex cutable devra initialiser sa propre API et faire l inventaire des modules USB connect s Il faut compter environ une seconde par appel 20 2 Virtual Hub et HTTP GET Le Virtual Hub est disponible pour presque toutes les plateformes actuelles il sert g n ralement de passerelle pour permettre l acc s aux modules Yoctopuce depuis des langages qui interdisent l acc s direct aux couches mat rielles d un ordinateur Javascript PHP Java Il se trouve que le Virtual Hub est en fait un petit serveur Web qui est capable de router des requ tes HTTP vers les modules Yoctopuce Ce qui signifie que si vous pouvez faire une requ te HTTP depuis votre langage de programmation vous pouvez contr ler des modules Yoctopuce m me si ce langage n est pas officiellement support Interface REST A bas niveau les modules sont pilot s l aide d une API REST Ainsi pour contr ler un module il suffit de faire les requ tes HTTP appropri es sur le Virtual Hub Par d faut le port HTTP du Virtual Hub est 4444 www yoctopuce com 121 20 Utilisation avec des langages non support s Un des gros avantages de cette technique est que les tests pr liminaires sont tr s faciles
208. lation3Points 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 119 120 www yoctopuce com 20 Utilisation avec des langages non supportes Les modules Yoctopuce peuvent tre contr l s depuis la plupart des langages de programmation courants De nouveaux langages sont ajout s r guli rement en fonction de l int r t exprim par les utilisateurs de produits Yoctopuce Cependant certains langages ne sont pas et ne seront jamais support s par Yoctopuce les raisons peuvent tre diverses compilateurs plus disponibles environnements inadapt s etc Il existe cependant des m thodes alternatives pour acc der des modules Yoctopuce depuis un langage de programmation non support 20 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
209. lback YAPI 140 RegisterHub YAPI 141 RegisterHubDiscoveryCallback YAPI 143 RegisterLogFunction YAPI 144 register TimedReportCallback YCurrent 230 register ValueCallback YCurrent 231 register ValueCallback YDataLogger 268 revertFromFlash YModule 188 Risques 7 S saveToFlash YModule 189 SelectArchitecture YAPI 145 Senseurs 117 S quence 276 Service 24 set_autoStart YDataLogger 269 set beacon YModule 190 set_highestValue YCurrent 232 set_logFrequency YCurrent 233 set_logicalName YCurrent 234 set_logicalName YDataLogger 270 set_logicalName YModule 191 set lowestValue YCurrent 235 set_luminosity YModule 192 set_recording YDataLogger 271 set_reportFrequency YCurrent 236 set_resolution YCurrent 237 set_timeUTC YDataLogger 272 set_usbBandwidth YModule 193 set_userData YCurrent 238 set_userData YDataLogger 273 set_userData YModule 194 SetDelegate YAPI 146 SetTimeout YAPI 147 Sleep YAPI 148 Sources 87 Support s 121 T Test 11 triggerFirmwareUpdate YModule 195 U UnregisterHub YAPI 149 UpdateDeviceList YAPI 150 UpdateDeviceList_async YAPI 151 V Valeur 289 Virtual 99 121 Visual 65 73 VisualBasic 65 W wait_async YCurrent 239 wait_async YDataLogger 274 wait_async YModule 196 Y YAPI 143 151 yCheckLogicalName 129 YCurrent 200 239 YDataLogger 242 274 YDataSet 277 287 yDisableExceptions 130 yEnableExceptions 131 yEnableUSBHost 132 yFindCurrent 200 yFindDat
210. les module connect s import lt Foundation Foundation h gt Huse YO CLOS IN int Malin Yink are const cher sean NSErrorn TiSagneoyen 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 3 module serialNumber module productName module module nextModule return 0 12 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 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 ma
211. 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 ES lt php include yocto api php yRegisterHub http 127 0 0 1 4444 Smodule yFirstModule while is null module printf Ss s lt br gt Smodule gt get_serialNumber module gt get productName module module gt nextModule 2 gt UHR www yoctopuce com 45 10 Utilisation du Yocto Amp en PHP lt BODY gt lt HTML gt 10 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 modules 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
212. lusieurs avantages e 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 librairie 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 syst mes requises 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
213. mPoints rawValues refValues function calibrateFromPoints rawValues refValues int calibrateFromPoints vector lt double gt rawValues vector lt double gt refValues int calibrateFromPoints NSMutableArray rawValues NSMutableArray refValues 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 YCurrent 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 203 21 R f rence de l API de hau
214. me ss serialinunber 4 Console WriteLine execname lt logical name gt ConsolerWrlvelumer excename sa lamin i System Threading Thread Sleep 2500 Environment Exit 0 static void die string msg Console WriteLine msg check USB cable Environment Exit 0 static void Main string args string errmsg Sainte sic ty YCurrent sensor YCurrent sensorDCE UNE YCurrent sensorAC null YModule m null 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 retreive any voltage sensor can be AC or DC sensor YCurrent FirstCurrent if sensor null die No module connected else sensor YCurrent FindCurrent target currentl we need to retreive both DC and AC voltage from the device www yoctopuce com 75 14 Utilisation du Yocto Amp en C 14 4 if sensor isOnline m sensor get module Sensor VCurrene ndouerene megecesestalNumenO sa Wie Une ce mtd Sensor Current FimdCurrent m get serialNumber Vicurrent2 else die Module not connected while true if m isOnline die Module not connected Console Weis MNCs S cp SSMS Get Currane Valte MGSEine H na Console Wiel Wee ES
215. mme 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 39 40 www yoctopuce com 10 Utilisation du Yocto Amp 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 a tous les serveurs web Cette technique trouve une application directe dans la domotique quelques modules Yoctopuce un serveur PHP et vous pourrez interagir avec votre maison depuis n importe ou dans le monde Pour autant que vous ayez une connexion internet PHP fait lui aussi partie de ces langages qui ne vous permettront pas d acc der directement aux couches mat rielles de votre ordinateur
216. n 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 183 21 R f rence de l API de haut niveau module gt isOnline_async 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 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 184 www yoctopuce com 21 R f rence
217. n amp remetre se comporte comme un fil lectrique il se contente de laisser passer le courant lectrique tout en le mesurant Par cons quent un amp remetre doit toutjours tre branch en s rie jamais en parall le Soyez toujours particuli rement attentif la fa on dont vous branchez votre Yocto Amp Si vous le branchez en parall le vous allez provoquer un court circuit d truire votre Yocto Amp endommager votre alimentation lectrique et il n est pas exclu qu un incendie se d clare Ne branchez jamais un amp rm tre en parall le mais en s rie C est important 6 3 Echauffement Le Yocto Amp fonctionne en faisant passer le courant mesurer dans une r sistance de faible valeur et en mesurant la tension qui apparait aux bornes de cette r sistance Le courant qui passe dans la r sistance provoque son chauffement d autant plus important que le courant est fort Cet chauffement est normal mais vous devrez en tenir compte dans votre installation 16 www yoctopuce com 6 Montage et connectique 150 100 50 0 0 5 10 15 20 A Echauffement de la r sistance de mesure en fonction du courant mesur 6 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 U
218. n 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 YCurrent fct YMeasure measure Console Wraltehinel tee get hardware rdi MECS measure get_averageValue Mise en place du callback p riodique Le callback est mis en place pour une fonction Current 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 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 rieure 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
219. n 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 78 www yoctopuce com 14 Utilisation du Yocto Amp 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 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 excep
220. n 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 111 19 Programmation avanc e Console WriteLine Nouveau module m get_serialNumber L initialisation Vous devez ensuite signaler a l API qu il faut appeler votre callback quand un nouveau module est branch YAPI RegisterDeviceArrivalCallback deviceArrival Notez que si des modules sont d j branch s lorsque le callback est enregistr le callback sera appel pour chacun de ces modules d j branch s D clenchement des callbacks Un probl me classique de la programmation par callbacks est que ces callbacks peuvent tre appel s n importe quand y compris des moments o le programme principal n est pas pr t les recevoir ce qui peut avoir des effets de bords ind sirables comme des dead locks et autres conditions de course C est pourquoi dans l API Yoctopuce les callbacks d arriv e d parts de
221. n se d roule sans erreur 142 www yoctopuce com 21 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 143 21 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 144 www yoctopuce com 21 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 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 145 21 R f rence de l API de haut niveau YAPI SelectArchitecture YAPI ySelect
222. n seule fois l aide de l option s YModule s YAMPMK01 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 8 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 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 fonctionnera pas Mais si vous lancez un virtual hub et que vous lancez votre commande sous la forme YModule r 127 0 0 1 inventory 3 http www yoctopuce
223. nModule current1 current YCurrent FindCurrent MonModule MaFonction current YCurrent FindCurrent MaFonction YCurrent FindCurrent renvoie un objet que vous pouvez ensuite utiliser a loisir pour contr ler le capteur de courant 4 Pensez a changer le filtre de la fen tre de s lection de fichiers sinon la DLL n appara tra pas 74 www yoctopuce com 14 Utilisation du Yocto Amp en C isOnline La m thode YCurrent isOnline de l objet renvoy par FindCurrent 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 YCurrent FindCurrent permet d obtenir le Courant mesur par le capteur La valeur de retour est directement la valeur en mA Un exemple r el un nombre repr sentant Lancez Visual C et ouvrez le projet exemple correspondant fourni dans le r pertoire Examples Doc GettingStarted Yocto Amp 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 Usage Consoles Writelbine exccna
224. nc 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 hardware 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 us
225. nce de l API de haut niveau current get_resolution YCurrent current 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 _vb function get_resolution As Double double get_resolution double get_resolution def get_resolution Y Current 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 a 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 222 www yoctopuce com 21 R f rence de l API de haut niveau current get_unit YCurrent current unit Retourne l unit dans laquelle la valeur mesur e est exprim e function get_unit function get_unit function get_unit string get_unit NSString unit function get_unit string function get_unit As String string get_unit String get_unit def get_unit YCurrent 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 www yoctopuce com 223 21 R f ren
226. ndre 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 123 20 Utilisation avec des langages non support s 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 Le format des requ tes est le m me que celui d crit dans la section Virtual Hub et HTTP GET Toutes les cha nes de caract res utilis es par l API sont des cha nes constitu es de caract res 8 bits l Unicode et l UTF8 ne sont pas support s Le r sultat retourn dans la variable buffer respecte le protocole HTTP il inclut donc un header HTTP Ce header se termine par deux lignes vides c est dire une s quence de quatre caract res ASCII 13 10 13 10 Voici un programme d exemple crit en pascal qui utilise la DLL yapi 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
227. ne 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 courant sans ambigu t Retourne un objet de classe YCurrent qui permet ensuite de contr ler le capteur de courant www yoctopuce com 201 21 R f rence de l API de haut niveau YCurrent FirstCurrent YCurrent yFirstCurrent Commence l num ration des capteurs de courant accessibles par la librairie function yFirstCurrent nodejs function FirstCurrent function yFirstCurrent YCurrent yFirstCurrent YCurrent yFirstCurrent function yFirstCurrent TYCurrent function yFirstCurrent As YCurrent YCurrent FirstCurrent YCurrent FirstCurrent def FirstCurrent Utiliser la fonction YCurrent nextCurrent pour it rer sur les autres capteurs de courant Retourne un pointeur sur un objet YCurrent correspondant a le premier capteur de courant accessible en ligne ou null siil n y a pas de capteurs de courant disponibles 202 www yoctopuce com 21 R f rence de l API de haut niveau current calibrateFromPoints YCurrent 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 calibrateFro
228. nformation la valeur de retour sera YAPI SUCCESS si tout va bien et un code d erreur diff rent en cas d chec T 70 www yoctopuce com 13 Utilisation du Yocto Amp en VisualBasic NET 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 71 72 www yoctopuce com 14 Utilisation du Yocto Amp 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 mod les de projet sont test s avec Microsoft C 2010 Express disponible gratuitement sur le site de Microsoft 1 14 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
229. 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 MyoctonappnpME yRegisterHub callback 48 www yoctopuce com 10 Utilisation du Yocto Amp 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 s
230. ns 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 15 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 que l ex cutable de votre application 15 2 Contr le de la fonction Current 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 81 15 Utilisation du Yocto Amp en Delphi Seten lisy Windows yocto a
231. ns 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 a l utilisation des produits Yoctopuce Notez que vous n aurez jamais allouer ou d sallouer un objet li l API Yoctopuce cela est g r automatiquement Il existe une classe par type de fonctionnalit Yoctopuce Le nom de ces classes commence toujours par un Y suivi du nom de la fonctionnalit par exemple YTemperature YRelay YPressure etc Il existe aussi une classe YModule d di e a 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 19 7 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 impo
232. nsor 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 Amp 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 a 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 Amp 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 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 souhait
233. nteragir 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 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 excep
234. nvoy par yFindCurrent 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 yFindCurrent permet d obtenir le courant mesur par le capteur La valeur de retour est un nombre repr sentant directement la valeur en mA 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 Amp 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 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 4 Si vous n avez pas d diteur de texte utilisez Notepad plut t que Microsoft Word 34 www yoctopuce com 9 Utilisation du Yocto Amp en Javascript versions de Internet Explorer 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 probleme par contre ave
235. oad 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 21 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 retour pour viter d
236. 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 21 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 21 R f rence de l API de haut niveau measure get_maxValue YMeasure measure maxValue Retourne la plus grande v
237. oc 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 les informations relatives un module partir de son handle devdesc est un entier 32bit qui repr sente le module et qui a t obtenu gr ce yapiGetAllDevices infos pointe sur une structure de donn es dans laquelle sera stock le r sultat Le format de cette structure est le suivant Nom 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
238. octo 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 Amp ce num ro commence par YAMPMK0O1 Le module peut tre pilot par logiciel en utilisant ce num ro de s rie Ce num ro de s rie ne peut pas tre chang Le nom logique Le nom logique est similaire au num ro de s rie c est une chaine de caract re sens e tre unique qui permet r f rencer le module par logiciel Cependant contrairement au num ro de s rie le nom logique peut tre modifi volont L int r t est de pouvoir fabriquer plusieurs exemplaire du m me projet sans avoir modifier le logiciel de pilotage Il suffit de programmer les m me noms logique dans chaque exemplaire Attention le comportement d un projet devient impr visible s il contient plusieurs modules avec le m me nom logique et que le logiciel de pilotage essaye d acc der l un de ces module l aide de son nom logique A leur sortie d usine les modules n ont pas de nom logique assign c est vous de le d finir 2 2 Les l ments sp cifiques Le capteur Ce capteur est un converseur analogique digital ADS1115IDGST fabriqu par Texas Inst
239. odule 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 153 21 R f rence de l API de haut niveau Retourne l ic ne du module module get_lastLogs Retourne une chaine de charact re contenant les derniers logs du module module get_logicalName Retourne le nom logique du module module get_luminosity Retourne la luminosit des leds informatives du module valeur entre 0 et 100 module get_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
240. ogFrequency newval YCurrent 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 234 www yoctopuce com 21 R f rence de l API de haut niveau current set_logicalName current setLogicalName Modifie le nom logique du capteur de courant 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 YCurrent target set_logicalName newval YCurrent 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 re
241. on YModule FirstModule et nextModule qui permettent de dresser la liste des modules connect s Interaction Function Module Du point de vue de l API les modules et leurs fonctionnalit s sont donc fortement d corr l s dessein Mais l API offre n anmoins la possibilit de passer de l un l autre Ainsi la m thode get _ module disponible dans chaque classe de fonctionnalit permet de retrouver l objet correspondant au module h bergeant cette fonctionnalit Inversement la classe YModule dispose 20 www yoctopuce com 7 Programmation concepts g n raux d un certain nombre de m thodes permettant d num rer les fonctionnalit s disponibles sur un module 7 2 Le module Yocto Amp Le module Yocto Amp offre deux instance de la fonction Current L entr e current1 correspond a une mesure de courant continue DC tandis que l entr e current2 correspond a une mesure de courant alternative AC La pr cision nominale de la mesure continue est de 2 mA ou 1 pour cent La pr cision de la mesure de courant alternative est de 5 mA ou 3 pour cent pour des fr quences comprises entre 30Hz et 80Hz module Module attribut productName serialNumber logicalName productId productRelease firmwareRelease persistentSettings luminosity beacon upTime usbCurrent rebootCountdown usbBandwidth current1 Current current2 Current attribut logicalName advertisedValue unit currentValu
242. onction 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 Sysutils yocto api const serial YAMPMK01 123456 use serial number or logical name var module TYModule 84 www yoctopuce com 15 Utilisation du Yocto Amp en Delphi errmsg Steng newname string 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 check identification and USB cable exit end Writeln Current logical name module get_logicalName Write Enter new name Readln newname if not yCheckLogicalName newname then begin Writeln invalid logical name exit end module set_logicalName newname module saveToFlash
243. ontexte libre dans l attribut userData de la fonction afin de le retrouver plus tard l aide de la m thode get_userData current 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 200 www yoctopuce com 21 R f rence de l API de haut niveau YCurrent FindCurrent yFindCurrent Permet de retrouver un capteur de courant d apr s un identifiant donn function yFindCurrent func function FindCurrent func function yFindCurrent func YCurrent yFindCurrent const string amp func YCurrent yFindCurrent NSString func function yFindCurrent func string TYCurrent function yFindCurrent ByVal func As String As YCurrent YCurrent FindCurrent string func YCurrent FindCurrent String func def FindCurrent 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 YCurrent Cette fonction n exige pas que le capteur de courant soit en ligne au moment ou elle est appel e l objet retourn sera n anmoins valide Utiliser la m thode YCurrent isOnline pour tester si le capteur de courant est utilisable un moment donn En cas d ambiguit lorsqu on fait une recherche par nom logique aucu
244. or 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 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
245. orMessage 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 165 21 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 Retourne un nombre correspondant au code de la derni re erreur qui s est produit lors de l utilisation du module 166 www yoctopuce com 21 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_fi
246. oses 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 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 i
247. osity ToString 76 www yoctopuce com 14 Utilisation du Yocto Amp en C Console Write beacon abe if m get beacon YModule BEACON ON Console WriteLine ON else Console WriteLine OFF Console WriteLine upTime or tise weiss s NOOO swe Siercitiae ar SE CE Console NWerceline MUSEcurrent Mn get uUsbCurrent k ToString n A mANE 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 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 l
248. our 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 19 1 Programmation par v nements Les m thodes de gestion des modules Yoctopuce qui vous ont t pr sent es dans les chapitres pr c dents sont des fonctions de polling qui consistent demander en permanence l API si quelque chose a chang Facile appr hender cette technique de programmation est n est pas la plus efficace ni la plus r active C est pourquoi l API de programmation Yoctopuce propose aussi un mod le de programmation par v nements Cette technique consiste demander l API de signaler elle m me les changements importants d s qu ils sont d tect s A chaque fois qu un param tre cl change l API appelle une fonction de callback que vous avez pr d finie D tecter l arriv e et le d part des modules La gestion du hot plug est importante lorsque l on travaille avec des modules USB car t t ou tard vous serez amen brancher et d brancher un module apr s le lancement de votre programme L API a t con ue pour g rer l arriv e et le d part inopin s des modules de mani re transparente mais votre application doit en g n ral en tenir compte si elle veut viter de pr tendre utiliser un module qui a t d branch La programmatio
249. ourant des r glages persistents du En cas d erreur d clenche une exception ou retourne Y_PERSISTENTSETTINGS_INVALTD www yoctopuce com 173 21 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 174 www yoctopuce com 21 R f rence de l API de haut niveau module get_productName module productName Retourne le nom commercial 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
250. ource android R layout simple spinner dropdown item my spin setAdapter aa handler new Handler Override protected void onStart BUSS Omar cltaten iy cry aa clear YAPI EnableUSBHost this YAPI RegisterHub usb YModule module YModule FirstModule while module null if module get productName equals Yocto Amp String serial module get_serialNumber aa add serial module module nextModule Bice HUNT McC LAON En e prinestacklrace aa notifyDataSetChanged handler postDelayed r 500 Override protected void onStop super onStop handler removeCallbacks r YAPI FreeAPI www yoctopuce com 103 18 Utilisation du Yocto Amp avec Android 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 Swila oel Ea if serial null Meturrentadessensor YCirrenr rAnocuerentiserra MACE ne Ley 4 TextView view TextView findViewById R id dcfield Views eet Sitio r ormat le cS SC ensSonoeccurrentValuet t demsensor geeUminr ye Pecarchy WAP TH x lt Gepiesomec ia e printStackTrace WCwISMe Ele encor Cire q Nalinelewuecine Sorel ap Veen Sime p try TextView view TextView findViewById
251. ous 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 21 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 www yoctopuc
252. p 1000 errmsg until false end 82 www yoctopuce com 15 Utilisation du Yocto Amp en Delphi 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 et yocto_current 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 current est n cessaire pour g rer les modules contenant un capteur de courant comme le Yocto Amp 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 yFindCurrent La fonction yFindCurrent permet de retrouver un capteur de courant 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 Amp avec le num ros de s rie YAMPMKO1 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction current MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une foi
253. pi yocto current Procedure usage var execname string begin execname ExtractFileName paramstr 0 writeln execname lt serial number gt writeln execname lt logical name gt writeln execname any sleep 2500 halt end Procedure die msg string begin writeln msg check USB cable palt end var errmsg SEINI target EELNE Sensor TCU EEn sensorDC TYCurrent sensorAC TYCurrent m TyModule begin if paramcount lt 1 then usage target paramstr 1 Setup the API to use local USB devices RE GyRegisizeEHulol usb ase ens lV APE oUCCHK Ss shen begin WriteLn RegisterHub error errmsg halt End if target any then begin retreive any voltage sensor can be AC or DC sensor yFirstCurrent If sensor nil Then Die No module connected end else senson yrind urmrent target scurnentl m nil sensorDC nil sensorAC nil we need to retreive both DC and AC voltage from the device If sensor isOnline Then begin m sensor get module sensone Endeurren tn cee ser lal Number N Menr cent i SenscrAG es yr Indcurrenie in Gceeserral Number pe Current end else Die Module not connected let s poll repedt If Not m isOnline Then Die Module not connected Witenes Plicathosig sensonDe ger eurrent Value hE a mA Weite MR RC TO Ste SEnsorACige t eurrent Value mA Writeln press CET CEO CRE A ySlee
254. ple correspondant fourni dans le r pertoire Examples Doc GettingStarted Yocto Amp 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 As String System AppDomain CurrentDomain FriendlyName Console Writeline Usage Console WriteLine execname demo lt serial number gt Console WriteLine execname demo lt logical name gt Console WriteLine execname demo any System Threading Thread Sleep 2500 End End Sub Sub Die ByVal msg As String Console WriteLine msg End End Sub Sub Main check USB cable Dim argv As String System Environment GetCommandLineArgs Dim errmsg As String Dim target As String Dim sensor As YCurrent Dim sensorDC As YCurrent Dim sensorAC As YCurrent Nothing Nothing Dim m As YModule Nothing If argv Length lt 2 Then Usage target argv 1 REM Setup the API to use If yRegisterHub usb local USB devices errmsg lt gt YAPI SUCCESS Then Console WriteLine RegisterHub error errmsg End End If Tf target any Then REM retreive any voltage sensor can be AC or DC sensor yFirstCurrent if sensor fs Nothing Then Dre UNommodulle connected Biss sensor yFindCurrent target voltagel
255. 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 parfaitement 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 47 10 Utilisation du Yocto Amp 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 Config
256. r e YCurrent FindCurrent La fonction YCurrent FindCurrent permet de retrouver un capteur de courant 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 Amp avec le num ros de s rie YAMPMK01 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction current MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t current YCurrent FindCurrent YAMPMK0O1 123456 currentl current YCurrent FindCurrent YAMPMK01 123456 MaFonction current YCurrent FindCurrent MonModule current1 current YCurrent FindCurrent MonModule MaFonction current YCurrent FindCurrent MaFonction YCurrent FindCurrent renvoie un objet que vous pouvez ensuite utiliser a loisir pour contr ler le capteur de courant isOnline La m thode YCurrent isOnline de l objet renvoy par FindCurrent 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 YCurrent FindCurrent permet d obtenir le Courant mesur par le capteur La valeur de retour est un nombre repr sentant directement la valeur en mA Un exemple r el Lancez votre environnement java et ouvrez le projet
257. r le module En revanche la m thode de contr le par un service offre un avantage non n gligeable l application n est pas n oblig de tourner sur la machine o se trouvent les modules elle peut parfaitement se trouver sur un autre machine qui se connectera au service pour piloter les module De plus les librairie natives et DLL voqu es plus haut sont aussi capables de se connecter distance un ou plusieurs 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 26 www yoctopuce com 7 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
258. rHub usb errmsg current YCurrent FindCurrent YAMPMK01 123456 current1 Pour g rer le hot plug on v rifie que le module est l if current isOnline Utiliser current get_currentValue 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 YCurrent FindCurrent La fonction YCurrent FindCurrent permet de retrouver un capteur de courant 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 Amp avec le num ros de s rie YAMPMK01 123456 que vous auriez appel MonModule et dont vous auriez nomm la fonction current MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t current YCurrent FindCurrent YAMPMK01 123456 current1 current YCurrent FindCurrent YAMPMK01 123456 MaFonction current YCurrent FindCurrent Mo
259. reUpdate 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 196 www yoctopuce com 21 R f rence 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
260. registreur 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 21 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 set__userData datalogger
261. rial or name NSString stringWithUTF8String argv 1 YModule module yFindModule serial or name use serial or logical name if module isOnline if argc 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 pelse NSLog not connected check identification and USB cable n serial or name 62 www yoctopuce com 12 Utilisation du Yocto Amp en Objective C 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 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 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
262. riteln Luminosity ees intToStr module get_luminosity Write Beacon cae EE module get beacon Y BEACON ON then Writeln on else Writeln off Writeln uptime 7 inehostr module lger uptime drv C000 ASi Wai teln USB current n anielostr modulle get usbeurrent mA Writeln Logs SNe Writeln module get lastlogs Meee g 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 iS Cha errmsg string 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 refresh module repeat read c 7 case c of r refresh module b beacon module Y BEACON ON gt beacon module BEACON OEE end Cita a ars 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 f
263. rmwareRelease 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 167 21 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 168 www yoctopuce com 21 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 con
264. rn module set logicalName newname module saveToFlash do not forget this edit setText Catch YAPT Exception ex ex printStackTrace DisplayModuleInfo www yoctopuce com 107 18 Utilisation du Yocto Amp avec Android 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 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 jos Bundle import android view View import android widget LinearLayout import android widget TextView import com yoctopuce YoctoAPI YAPI import com yoctopuce YoctoAPI YAPI Exception import com yoctopuce YoctoAPI YModule
265. rreur 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 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
266. rtant de modules Du point de vue programmation votre Yocto Amp se pr sente sous la forme d un module h bergeant un certain nombre de fonctionnalit s Dans l API ces fonctionnalit s se pr sentent sous la forme d objets qui peuvent tre retrouv s de mani re ind pendante et ce de plusieurs mani res Acc s aux fonctionnalit s d un module Acc s par nom logique Chacune des fonctionnalit s peut se voir assigner un nom logique arbitraire et persistant il restera stock dans la m moire flash du module m me si ce dernier est d branch Un objet correspondant une fonctionnalit Xxx munie d un nom logique pourra ensuite tre retrouv e directement l aide de ce nom logique et de la m thode YXxx FindXxx Notez cependant qu un nom logique doit tre unique parmi tous les modules connect s Acc s par num ration Vous pouvez num rer toutes les fonctionnalit s d un m me type sur l ensemble des modules connect s l aide des fonctions classiques d num ration FirstXxx et nextXxxx disponibles dans chacune des classes YXxx Acc s par nom hardware Chaque fonctionnalit d un module dispose d un nom hardware assign en usine qui ne peut tre modifi Les fonctionnalit s d un module peuvent aussi tre retrouv es directement l aide de ce nom hardware et de la fonction YXxx FindXxx de la classe correspondante Diff rence entre Find et First Les m thodes YXxx FindXxxx et YXxx FirstXxxx ne fonctionnent pas ex
267. rted Yocto Amp de la librairie Yoctopuce import lt Foundation Foundation h gt import yocto api h import lyocto current h static void usage void NSLog usage demo lt serial number gt NSLog demo lt logical name gt NSLog demo any use any discovered device exit 1 1 www yoctopuce com FR libraries php 2 www yoctopuce com FR article nouvelle librairie objective c pour mac os x www yoctopuce com 59 12 Utilisation du Yocto Amp en Objective C int Mainiink arger const char arov IN NSError error YCurrent sensor YCurrent sensorAC YCurrent sensorDC YModule mn me euaee lt 2 fh usage autoreleasepool NSString target NSString stringWithUTF8String argv 1 Setup the API to use local USB devices if YAPIT RegisterHub usb amp error VAPT SUCCESS NSLog RegisterHub error error localizedDescription return 1 if target isEqualToString any retreive any current sensor can be AC or DC sensor YCurrent FirstCurrent if sensor NULL NSLog No module connected check USB cable return 1 else sensor YCurrent FindCurrent target stringByAppendingString current1 we need to retreive both DC and AC current from the device if sensor isOnline m sensor module sensorDC YCurrent FindCurrent m serialNumber stringByAppendingString current1 sensorAC Y
268. ruments Son utilisation ne n cessite pas de pr cautions particuli res en dehors de celles li es aux risques d lectrocution 1 court court court long long long court court court 2 support yoctopuce com 6 www yoctopuce com 3 Risques d lectrocution Bien que le module Yocto Amp soit parfaitement capable de g rer une tension de SPECMAXVOLT nous vous d conseillons fortement de travailler sur des tensions pr sentant des risques N anmoins si vous d cidiez de passer outre respectez ces quelques recommandations elles vous viteront peut tre une embarrassante nomination aux Darwin Awards 3 1 Utilisez votre t te votre chance ne durera pas ind finiment Ne travaillez pas si vous tre fatigu Les brillantes d cisions prises 2 heures du matin ont tendance perdre leur clat aux premi res lueurs du jour Ne travaillez pas sous l emprise de substances euphorisantes M fiez vous des repas de famille ils sont connus pour faire des h catombes chez les DIYers Ne travaillez pas seul si les choses tournent mal vous pourrez ainsi esp rer tre secouru assez rapidement Parties dangereuses Certaines parties du module Yocto Amp vont se retrouver directement la tension mesur e Veillez ne pas les toucher lorsque le module est en service Elle ne doivent jamais tre en contact avec une partie conductrice de votre projet attention aux bo tiers m talliques Plus important encore veillez ce que l ut
269. ry 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 21 R f rence de l API de haut niveau dataset get_unit 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 YDataSet 286 www yoctopuce com 21 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 node js
270. s 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 54 www yoctopuce com 11 Utilisation du Yocto Amp en C m thode revertFromFlash Ce petit exemple ci dessous vous permet changer le nom logique d un module include lt iostream gt include lt stdlib h gt include yocto_api h using namespace std static void usage const char exe Conn lt lt ausage MEN CRE lt lt lt serilal gt lt newlogucalNeames senc craic E int ennaa aroce Const char SEL string errmsg Setup the API to use local USB devices if yRegisterHub usb errmsg YAPI SUCCESS cerris Witeyepteiccueltible rron lt lt uci lt lt ciololll 5 return ti terge 2 usage argv 0 YModule module yFindModule argv 1 use serial or logical name if module gt isOnline if arge gt 3 string newname
271. s pour viter toute ambigu t current yFindCurrent YAMPMK0O1 123456 currentl current yFindCurrent YAMPMK0O1 123456 MaFonction yFindCurrent current MonModule currentl1 current yFindCurrent MonModule MaFonction current yFindCurrent MaFonction yFindCurrent renvoie un objet que vous pouvez ensuite utiliser loisir pour contr ler le capteur de courant isOnline La m thode isOnline de l objet renvoy par yFindCurrent 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 yFindCurrent permet d obtenir le courant mesur par le capteur La valeur de retour est un nombre repr sentant directement la valeur en mA 15 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 Syete iler yocto api const serial YAMPMK01 123456 use serial number or logical name procedure refresh module Tymodule begin if module isOnline then begin Writeln Writeln Serial module get_serialNumber www yoctopuce com 83 15 Utilisation du Yocto Amp en Delphi Writeln Logical name module get logicalName W
272. s vous n aurez aucun garde fou et d pendrez enti rement du soin qu aura mis le fabricant de votre ordinateur pour fournir un maximum de courant sur les ports USB et signaler les exc s avant qu ils ne conduisent des pannes ou des d g ts mat riels Si les modules sont sous aliment s ils pourraient avoir un comportement bizarre et produire des pannes ou des bugs peu reproductibles Si vous voulez viter tout risque ne cascadez pas les hubs non aliment s et ne branchez pas de p riph rique consommant plus de 100mA derri re un hub non aliment Pour vous faciliter le contr le et la planification de la consommation totale de votre projet tous les modules Yoctopuce sont quip s d une sonde de courant qui indique 5mA pr s la consommation du module sur le bus USB www yoctopuce com 17 18 www yoctopuce com 7 Programmation concepts generaux L API Yoctopuce a t pens e pour tre la fois simple a 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 Amp 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 7 1 Paradigme de programmation L API Yoctopuce est une API orient e objet Mais da
273. s dans la m moire de l enregistreur de donn es current get_logicalName Retourne le nom logique du capteur de courant current get_lowestValue Retourne la valeur minimale observ e current get module Retourne l objet YModu le correspondant au module Yoctopuce qui h berge la fonction current get module async callback context Retourne l objet YModu le correspondant au module Yoctopuce qui h berge la fonction current 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 current get 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 current get_resolution Retourne la r solution des valeurs mesur es current get_unit Retourne l unit dans laquelle la valeur mesur e est exprim e current get_userData Retourne le contenu de l attribut userData pr c demment stock l aide de la m thode set_userData current isOnline V rifie si le module h bergeant le capteur de courant est joignable sans d clencher d erreur current isOnline async callback context V rifie si le module h bergeant le capteur de courant est joignable sans d clencher d erreur current load msValidity Met en cache les valeurs courant
274. s de ces bo tiers sur le site de Yoctopuce Le bo tier recommand pour votre Yocto Amp est le mod le YoctoBox Long Thick Black Vents 4 http www yoctopuce com EN products category enclosures www yoctopuce com 3 1 Introduction Vous pouvez installer votre Yocto Amp dans un boitier optionnel www yoctopuce com 2 Presentation 1 Prise USB micro B 4 R sistance de mesure 2 Yocto bouton 5 Entr e mesure n gatif 3 Yocto led 6 Entr e mesure positif 2 1 Les l ments communs Tous les Yocto modules ont un certain nombre de fonctionnalit s en commun Le connecteur USB Les modules de Yoctopuce sont tous quip s d une connectique au format micro USB Les 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 cet effet pr t du connecteur Le Yocto bouton Le Yocto bouton a deux fonctions Premi rement il permet d activer la Yocto balise voir la Yocto led ci dessous Deuxi mement si vous branchez un Yocto module en maintenant ce bouton appuy il vous sera possible de reprogrammer son
275. s 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 13 3 Contr le de la fonction Current Il suffit de quelques lignes de code pour piloter un Yocto Amp Voici le squelette d un fragment de code VisualBasic NET qui utilise la fonction Current DEA Dim errmsg As String Dim current As YCurrent REM On r cup re l objet repr sentant le module ici connect en local sur USB yRegisterHub usb errmsg current yFindCurrent YAMPMK01 123456 current1 REM Pour g rer le hot plug on v rifie que le module est Ja If current isOnline Then REM Utiliser current get Current Valuel Endi TEE Voyons maintenant en d tail ce que font ces quelques 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 probleme yFindCurrent La fonction yFindCurrent permet de retrouver un capteur de courant en fonction
276. 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 197 21 R f rence de l API de haut niveau 21 3 Interface de la fonction Current 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_current js gt lt script gt var yoctolib require yoctolib var YCurrent yoctolib YCurrent require_oncel yocto_current php include yocto_current h import yocto_current h uses yocto_current yocto_current vb yocto_current cs import com yoctopuce YoctoAPI YCurrent from yocto_current import Fonction globales yFindCurrent func Permet de retrouver un capteur de courant d apr s un identifiant donn yFirstCurrent Commence l num ration des capteurs de courant accessibles par la librairie M thodes des objets YCurrent current 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 current describe Retourne un court texte
277. s repr sentant le nom logique du capteur de courant 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 235 21 R f rence de l API de haut niveau current set lowestValue current 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 v _ function set_lowestValue ByVal newval As Double As Integer int set_lowestValue double newval int set_lowestValue double newval def set_lowestValue newval Y Current 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 YCurrent 236 www yoctopuce com 21 R f rence de l API de haut niveau current set_reportFrequency YCurrent current setReportFrequency Modifie la fr quence de notification p riodique des valeurs mesur es function set_reportFrequency newval function set_reportFrequency newval function set_reportFrequency newval int set_repor
278. sensor YCurrent FirstCurrent if sensor NULL cerr lt lt No module connected Check cable lt lt endl Ere else sensor YCurrent FindCurrent target currentl we need to retreive both DC and AC voltage from the device if sensor gt isOnline m sensor gt get_module Sensor ey Ni Cumrenit Hamed Curmenia m get sSerialN umbenrO chet eurEenie ln SensorAG YeCurrent i HindCurrenti m ger seria Number current else cerr lt lt No module connected Check cable lt lt endl exit 1 while 1 if sensorDC gt isOnline cout lt lt Module disconnected lt lt endl break cout lt lt Current DET lt lt SensorDe gt jetmeurrentValme lt smAl cope lt lt A ACH eS ens OFAC egct eurr ent Value lt lt SNA cour lt lt press Grrl Ce tomexa tt earen YAPI Sleep 1000 errmsg return 0 www yoctopuce com 53 11 Utilisation du Yocto Amp en C 11 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 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
279. sjoints 118 www yoctopuce com 19 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 YCurrent f YCurrent FirstCurrent f calibrateFromPoints ValuesBefore ValuesAfter 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 a 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 ciser 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 CustomInterpo
280. spondant fourni dans le r pertoire Examples Doc GettingStarted Yocto Amp 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 include yocto api h HincludeMYOctoncurrentEH 52 www yoctopuce com 11 Utilisation du Yocto Amp en C include lt iostream gt include lt stdlib h gt using namespace std static void usage void cour lt lt usage demo lt serial number gt lt lt endl come lt lt ny demo lt logical name gt lt lt endl cout demo any use any discovered device lt lt endl u64 now yGetTickCount dirty active wait loop while yGetTickCount now lt 3000 exit 1 intel Ghee Cono eae NEC string GuarciinsKe 7 SIENS Cordet Ycurrent Sensor YCurrent sensorAC YEurrent sensor DC YModule m 1 argo lt 2 NUS ager target String argy Up YAPI DisableExceptions Setup the API to use local USB devices aie NEUEN BR Register Hub MUSIC EMmE NME RETESUCCESS eani lt lt Weesie eane W a eaaeo lt ena return 1 if target any retreive any voltage sensor can be AC or DC
281. ss 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 m thode 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 using System using System Collections Generic using System Ling using System Text namespace ConsoleApplicationl class Program static void Main string args YModule m St ernog errmsg OL 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 null1 meons olen Wr He cimmer made ems cunt celuNumoer Sty neem Je poe eN ame nu m m nextModule 14 5 Gestion des erreurs Lorsque vous impl mentez un programme qui doit interagir avec des modules USB vous ne pouvez pas faire abstractio
282. ssesseesessecsseeseesseeseesseasecs 295 22 12 Linux et USB ss eel en A D nt ne ne 295 22 2 Plateformes ARM HF et Ebe eai erae etre tent am attire 296 23 Caract ristiques ooo ccc ccssesssessesssessssssessscssecsscssesssessssssessscasccssessesseessessseeseesees 297 BIUSDFINL see oo ced E valine ee don A E een ent eee 299 1 Introduction Le module Yocto Amp est un module de 56x20mm mm qui permet de mesurer par USB le courant qui passe dans un fil lectrique commun ment appell amp remetre Le Yocto Amp est capable de mesurer des courants continus tout comme des courants alternatifs Sa pr cision est de 2 mA 1 pour la mesure de courant continu et 5 mA 3 pour le courant alternatif Une importante caract ristique de ce module est d tre un amp rem tre isol la partie mesure de courant est lectriquement isol e de la partie USB Ceci lui permet par exemple de mesurer le courant du secteur sans risquer de d truire votre ordinateur Le module Yocto Amp Yoctopuce vous remercie d avoir fait l acquisition de ce Yocto Amp 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 Amp soit facile installer n importe o et soit facile piloter depuis un maximum de langages de programmation N anmoins si ce module venait vous d cevoir n h sitez pas contacter le support Yoctopuce Par design tous les modules Yoctopuce se pilotent de
283. surez un courant avec un Yocto Amp plusieurs cas de figure peuvent se pr senter e Une valeur DC non nulle et une valeur AC nulle vous tre en train de mesurer un courant continu e Une valeur AC non nulle et une valeur DC presque nulle vous tre en train de mesurer un courant alternatif sym trique Une valeur AC non nulle et une valeur DC non nulle vous tre en train de mesurer un courant alternatif non sym trique Une valeur DC non nulle stable et une valeur AC compl tement al atoire l appareil branch sur le circuit que vous tres en train de mesurer n a pas une consommation r guli re Le Yocto Amp est pr cis 2 mA 1 lorsqu il mesure un courant continu En revanche il est moins pr cis lorsqu il mesure une un courant alternative comptez une erreur de plus ou moins 5 mA 3 50 60Hz Plus la fr quence baisse en dessous de 30Hz plus la valeur mesur e perdra en stabilit Plus la fr quence monte au dessus de 80Hz plus la mesure AC sous estimera la valeur r elle Notez que la mesure AC donn e par le Yocto Amp ne correspond pas l amplitude de pointe du courant mais la valeur RMS 10 www yoctopuce com 5 Premiers pas Arriv a ce chapitre votre Yocto Amp devrait tre branch a 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 t
284. t 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 189 21 R f rence de l API de haut niveau module saveToFlash YModule 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 Attention le nombre total de sauvegardes possibles durant la vie du module est limit environ 100000 cycles N appelez pas cette fonction dans une boucle Retourne YAPI_SUCCESS si l op ration se d roule sans erreur En cas d erreur d clenche une exception ou retourne un code d erreur n gatif 190 www yoctopuce com 21 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 s
285. t res identifiant le capteur de courant en utilisant les noms logiques ex MyCustomName relayl En cas d erreur d clenche une exception ou retourne Y_FRIENDLYNAME INVALID 210 www yoctopuce com 21 R f rence de l API de haut niveau current get_functionDescriptor YCurrent current 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 211 21 R f rence de l API de haut niveau current get_functionld YCurrent current functionld Retourne l identifiant mat riel du capteur de courant sans r f rence au module function get_functionld function get_functionld function get_functionid string get_functionld NSString functionld
286. t 49 11 Utilisation du Yocto Amp en C oii ccc ccseseeseeseestesteeseseeseeneestestesneeeenee 51 11 1 Contr le de la fonction Current iii 51 11 2 Contr le de la partie module sisi 54 11 3 Gesti n des erreurs nra aie ae ea balan rent nade eee ei dunds ns 56 11 4 Int gration de la librairie Yoctopuce en C occ ccecececeeeceeeeeeeeeeeeeeeeeseceeeeeeeeeeteneeeeeeeeeeaas 57 12 Utilisation du Yocto Amp en Objective C oo cece estes testeeneenees 59 12 1 Contr le de la fonction Current iii 59 12 2 Contr le de la partie module sisi 61 12 3 Gestion des erreurs scie E E nn tn hr 63 13 Utilisation du Yocto Amp en VisualBasic NET 0000 00 0 ee 65 Tte Installation sas Hives Adee He aide eee dd dame ee es 65 13 2 Utilisation l API yoctopuce dans un projet Visual Basic 0 eect eeneeeeteneeeeteneeeeeeaeee 65 13 3 Contr le de la fonction Current iii 66 13 4 Contr le de la partie module sise 68 13 5 Gestion des Erreurs 22e Eaa EEEa AAEE EEA EE EEEE AA EEEE REETA 70 14 Utilisation du Yocto Amp en CF ooo eeseeeseeseeseestesnesteeseeneestestesneeteenee 73 TET 1nsStallationt oee a E I S EA ER 73 14 2 Utilisation l API yoctopuce dans un projet Visual C sssessieerseerirerrrirerirreerrensrerees 73 14 3 Contr le de la fonction Current iii 74 14 4 Contr le de la partie module ss 76 145 Gestion des rr urs 4432 arr anne nee eee E E EE 2e ua 78 15 Utilisation du Yocto Amp en Delphi 0 0 0 0 cece cee ceteeeeteeteteeeeeee 81 15 12
287. t 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 lors de l utilisation de l en
288. t niveau current describe YCurrent Retourne un court texte d crivant le capteur de courant au format TYPE NAME SERIAL FUNCTIONID _is function describe node js function describe php function 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 le capteur de courant ex Relay MyCustomName relayl RELAYLO1 123456 relayl 204 www yoctopuce com 21 R f rence de l API de haut niveau current get_advertisedValue YCurrent current advertisedValue Retourne la valeur courante du capteur de courant pas plus de 6 caract res
289. t 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 21 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 recording function get_recording
290. t 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 97 17 Utilisation du Yocto Amp en Java 17 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 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 n
291. tFrequency 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 YCurrent 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 www yoctopuce com 237 21 R f rence de l API de haut niveau current set_resolution YCurrent current setResolution Modifie la r solution des valeurs 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 v _ function set_resolution ByVal newval As Double As Integer int set_resolution double newval int set_resolution double newval def set
292. t_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 218 www yoctopuce com 21 R f rence de l API de haut niveau current get_ module async YCurrent current 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 fourni par l appelant et qui sera pass tel quel la fonction de callback Retourne rien du
293. t_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 21 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 21 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 context Si les valeurs d
294. tenant l icone au format png www yoctopuce com 169 21 R f rence de l API de haut niveau module gt 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 170 www yoctopuce com 21 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_logicalName 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 171 21 R f rence de l API de haut niveau module get_luminosity
295. tion 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 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 91 16 Utilisation du Yocto Amp 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 a
296. tion 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 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
297. tion 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 current1 retournera b PS C L EE 20 gt a R g 5 d x Ca s 15 LL w gt 10 er 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 current1 trouv e Notez l appel la m thode saveToFlash du module h bergeant la fonction de mani re ce que le module n oublie pas la calibration d s qu il sera d branch www yoctopuce com 117 19 Programmation avanc e Double ValuesBefore SN Double ValuesAfter ALO YCurrent f YCurrent FirstCurrent f calibrateFromPoints ValuesBefore ValuesAfter f get module saveToFlash Correction 2 points La correction 2 points permet d e
298. tions 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 36 www yoctopuce com 9 Utilisation du Yocto Amp 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 yDisableExceptions 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 f
299. tockera 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 option 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
300. topuce com 95 17 Utilisation du Yocto Amp 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 System 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 modificat
301. topuce 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 11 5 Premiers pas YAMPMK01 045A1 YAMPMK01 045A1 is a 20x56mm board with an isolated current sensor aka ammeter Kernel Serial YAMPMKO1 045A1 Product name Yocto Amp Logical name Product release 1 Firmware 6361 Consumption 89 mA Beacon Inactive tum on Luminosity 50 Sensors DC AC Current current OmA 0 mA Min current 0 mA 0 mA Max current 0 mA 0 mA Misc Open API browser pop up Get user manual from yoctopuce com Close Propri t s du module Yocto Amp Cette fen tre vous permet entre autres de jouer avec avec votre module pour en v rifier sont fonctionement les valeurs mesur es y sont en effet affich es en temps r el 5 3 Configuration Si dans la liste de modules vous cliquez sur le bouton configure correspondant votre module la fen tre de configuration appara t YAMPMKO1 045A1 Edit parameters for device YAMPMK01 045A1 and click on the Save button Serial YAMPMKO1 045A1 Product name Yocto Amp Firmware 6361 grade Logical name Luminosity i signal leds only Device functions Each function of the device has a physical name and a logical name You can change the logical name using the rename button YAMPMK01 045A1 current1 YAMPMKO1 045A1 current2 YAMPMK01 045A1 datalogger rename
302. 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 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 186 www yoctopuce com 21 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 n
303. tre 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 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 109 110 www yoctopuce com 19 Programmation avancee Les chapitres pr c dents vous ont pr sent dans chaque language disponible les fonctions de programmation de base utilisables avec votre module Yocto Amp Ce chapitre pr sente de fa on plus g n rale une utilisation plus avanc e de votre module Les exemples sont donn s dans le language le plus populaire aupr s des clients de Yoctopuce savoir C N anmoins vous trouverez dans les librairies de programmation p
304. tre 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 65 13 Utilisation du Yocto Amp en VisualBasic NET Vous avez alors le choix entre simplement ajouter ces fichiers a 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 vo
305. 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 163 21 R f rence de l API de haut niveau module get_beacon YModule 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 164 www yoctopuce com 21 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_err
306. u Yocto Amp en C Setup the API to use local USB devices if yRegisterHub usb errmsg YAPI SUCCESS Gang lt lt Wikleepisicenelible emor YW lt lt CESR nd return 1 cout lt lt Device Ist Uks endi YModule module yFirstModule while module NULL COURS geiser clN Moc NES cout lt lt module gt get_productName lt lt endl module module gt nextModule return 0 11 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 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 e
307. uation r elle Prenez soin de le lire avant d aller trop loin dans votre projet si vous voulez viter les mauvaises surprises 6 1 Fixation Pendant la mise au point de votre projet vous pouvez vous contenter de laisser le module se promener au bout de son c ble Veillez simplement ce qu il ne soit pas en contact avec quoi que soit de conducteur comme vos outils Une fois votre projet pratiquement termin il faudra penser a faire en sorte que vos modules ne puissent pas se promener l int rieur Exemples de montage sur un support Le module Yocto Amp 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 a que la surface inf rieure du module ne soit pas en contact avec le support La m thode recommand e consiste a utiliser des entretoises mais il en 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 a nu sous votre module Du simple ruban adh sif d emballage devrait faire l affaire www yoctopuce com 15 6 Montage et connectique 6 2 Branchements Il faut savoir qu u
308. ulement 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 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 libra
309. 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 int main ink arger const cher arav NSError error autoreleasepool Setup the API to use local USB devices Ie YAR Regusterhub CAs eerror I YAP IO SUCCESS NShlog RegisterHub error 2G error llocalizedDescription return 1 iiverge 21 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 at verge io 4 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 www yoctopuce com 61 12 Utilisation du Yocto Amp en Objective C NSLog beacon Din if module beacon Y BEACON ON NSLog ON n else NSLog OFF n NSLog upTime d sec n module upTime 1000 NSLog USB current d mA n module usbCurrent NSLog logs n module get_lastLogs else NSLog not connected check identification and USB cable n serial or name return 0 Chaque propri t xxx du
310. unction 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 150 www yoctopuce com 21 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 UpdateDeviceList 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
311. ure 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 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
312. ures 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 YCurrent 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 Current donn e a l aide de la m thode registerValueCallback L exemple suivant met en place un callback pour la premi re fonction Current disponible YCurrent f YCurrent FirstCurrent 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 peut 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 fonctio
313. uvez 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 defini 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 11 1 Contr le de la fonction Current Il suffit de quelques lignes de co
314. val 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 21 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 retourne un code d
315. 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 86 www yoctopuce com 16 Utilisation du Yocto Amp en Python Python est un langage interpr 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 3 2 Les interpr teurs Python sont disponibles sur le site de Python 1 16 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
316. 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 22 Problemes courants 22 1 Linux et USB Pour fonctionner correctement sous Linux la librairie a besoin d avoir acc s en criture tous les p riph riques USB Yoctopuce Or par d faut sous Linux les droits d acc s des utilisateurs non root USB sont limit s la lecture Afin d viter de devoir lancer les ex cutables en tant que root il faut cr er une nouvelle r gle udev pour autoriser un ou plusieurs utilisateurs acc der en criture aux p riph riques Yoctopuce Pour ajouter une r gle udev votre installation il faut ajouter un fichier avec un nom au format nomArbitraire rules dans le r pertoire etc udev rules d Lors du d marrage du syst me udev va lire tous les fichiers avec l extension rules de ce r pertoire en respectant l ordre alphab tique par exemple le fichier 51 custom rules sera interpr t APRES le fichier 50 udev default rules Le fichier 50 udev default contient les r gles udev par d faut du syst me Pour modifier l
317. vers le VirtualHub local yRegisterHub http 127 0 0 1 4444 Serrmsg Scurrent yFindCurrent YAMPMK01 123456 currentl Pour g rer le hot plug on v rifie que le module est l if current gt isOnline MURS er tCurrent GetcunEenk Valen Voyons maintenant en d tail ce que font ces quelques lignes yocto_api php et yocto_current 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_current php est n cessaire pour g rer les modules contenant un capteur de courant comme le Yocto Amp 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 adresse d une autre machine sur laquelle tournerait un autre VirtualHub yFindCurrent La fonction yFindCurrent permet de retrouver un capteur de courant 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 Amp avec le num ros de s rie YAMPMKO1 123456 que vous auriez appel MonModule et dont
318. vous auriez nomm la fonction current MaFonction les cinq appels suivants seront strictement quivalents pour autant que MaFonction ne soit d finie qu une fois pour viter toute ambigu t current yFindCurrent YAMPMK01 123456 current1 Scurrent yFindCurrent YAMPMK01 123456 MaFonction Scurrent yFindCurrent MonModule currentl Scurrent yFindCurrent MonModule MaFonction Scurrent yFindCurrent MaFonction yFindCurrent renvoie un objet que vous pouvez ensuite utiliser loisir pour contr ler le capteur de courant isOnline La m thode isOnline de l objet renvoy par yFindCurrent 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 yFindCurrent permet d obtenir le courant mesur par le capteur La valeur de retour est un nombre repr sentant directement la valeur en mA 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 Amp 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
319. www yoctopuce com 21 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 retourne un code d erreur n gatif www yoctopuce com 193 21 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 inte

Download Pdf Manuals

image

Related Search

Related Contents

Campbell Hausfeld NB0050 Music Mixer User Manual    Installation Manual  JET 707100 Use and Care Manual  Digitus 7.1 USB Sound Box  LCK_300_Alcool  RECEPTOR DIGITAL de SATÉLITE EN ABIERTO SRT 6200/SRT  MODIFICATION HISTORY  EMX-2 Dispositivo Electronico de Medicion y Equipo  « Punition : Mode d`emploi ? »  

Copyright © All rights reserved.
Failed to retrieve file