Home
        Manuel d`utilisation
         Contents
1.                                         Quand vous travaillez sans les exceptions  il est possible d obtenir un code d erreur et un message  expliquant l origine de l erreur en le demandant    l objet qui a retourn   une erreur    l aide des  m  thodes errType   et errMessage    Ce sont les m  me informations qui auraient   t    associ  es    l exception si elles avaient   t   actives        www yoctopuce com 37       38    www yoctopuce com    8  Utilisation du Yocto Servo en PHP    PHP est  tout comme Javascript  un langage assez atypique lorsqu il s agit de discuter avec du  hardware  N  anmoins  utiliser PHP avec des modules Yoctopuce offre l opportunit   de construire  tr  s facilement des sites web capables d interagir avec leur environnement physique  ce qui n est pas  donn      tous les 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  C est pourquoi vous devrez faire tourner un hub virtuel sur  la machine    laquelle sont branch  s les modules    Pour d  marrer vos essais en PHP  vous allez avoir besoin d un serveur PHP 5 3 ou plus   de  pr  f  rence en local sur votre machine  Si vous souhaiter utiliser celui qui se trouve ch
2.                          e                   F                            15 50    15 50                                                                                                       O 0OS  OOOOO  SEE E   ele  Ce P E d  p  amp    da   ell E  Se  Mel me      e  2N7002   site   Se Mel    TapE EJO E  2N7002  el ez   Me  ge       ll  H X89 DS Tel                                                                D                             e           P  b     SE            mem  Geld   amp              4 000           UUUUU                               L                                                nnnnnnn     PF S   q  q  q  q  q  q  q                                                          ro                                                                                                                              i                                                                                                    ET                                                                     DG GL             2 50       MAX    4 5        CE                                                                                                                               U                                                    0   6    All dimensions are in mm    Toutes les dimensions sont en mm    A4       3 1    Echelle          Yocto Servo          Index    A    Acc  s 97   Accessoires 3   Activer 98   Alimentation 15  20  220  Android 97  98  Avanc  e 109    Basic 63  Blueprint 253 
3.                         T                   Quand vous travaillez sans les exceptions  il est possible d obtenir un code d erreur et un message  expliquant l origine de l erreur en le demandant    l objet qui a retourn   une erreur    l aide des  m  thodes errType   et errMessage    Ce sont les m  me informations qui auraient   t    associ  es    l exception si elles avaient   t   actives        84 www yoctopuce com    14  Utilisation du Yocto Servo 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 32  Les interpr  teurs Python sont  disponibles sur le site de Python 1     14 1  Fichiers sources    Les classes de la librairie Yoctopuce  pour Python que vous utiliserez vous sont fournies au format  source  Copiez tout le contenu du r  pertoire Sources dans le r  pertoire de votre choix et ajoutez ce  r  pertoire    la variable d environnement PYTHONPATH  Si vous utilisez un IDE pour programmer en  Python  r  f  rez vous    sa documentation afin le configurer de mani  re    ce qu il retrouve  automatiquement les fichiers sources de l API     14 2  Librairie dy
4.           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           138 www yoctopuce com    19  R  f  rence de l API de haut niveau       YAPI Sleep   YAPI  ySleep      Effectue une pause dans l ex  cution du programme pour une dur  e sp  cifi  e     function ySleep  ms_duration  errmsg   function Sleep  ms_duration  errmsg   function ySleep   ms_duration   amp  errmsg   YRETCODE ySleep  unsigned ms_duration  string amp  errmsg   YRETCODE ySleep  unsigned ms_duration  NSError    errmsg   function ySleep  ms_duration  integer  var errmsg  string   integer  function ySleep  ByVal ms_duration As Integer   ByRef errmsg As String  As Integer  int Sleep  int ms_duration  ref string errmsg   int Sleep  long ms_duration   def Sleep  ms_duration  errmsg None     L attente est passive  c est    dire qu elle n occupe pas significativement le processeur  de sorte a le  laisser disponible pour les autres processus fonctionnant sur 
5.         106 www yoctopuce com    16  Utilisation du Yocto Servo avec Android       16 7  Gestion des erreurs    Lorsque vous impl  mentez un programme qui doit interagir avec des modules USB  vous ne pouvez  pas faire abstraction de la gestion des erreurs  Il y aura forc  ment une occasion o   un utilisateur  aura d  branch   le p  riph  rique  soit avant de lancer le programme  soit m  me en pleine op  ration   La librairie Yoctopuce est pr  vue pour vous aider    supporter ce genre de comportements  mais  votre code doit n  anmoins   tre fait pour se comporter au mieux pour interpr  ter les erreurs signal  es  par la librairie     La mani  re la plus simple de contourner le probl  me est celle que nous avons employ   pour les  petits exemples pr  c  dents de ce chapitre  avant d acc  der    un module  on v  rifie qu il est en ligne  avec la m  thode isOnline   et on suppose ensuite qu il va y rester pendant la fraction de  seconde n  cessaire    ex  cuter les lignes de code suivantes  Ce n est pas parfait  mais   a peut  suffire dans certains cas  Il faut toutefois   tre conscient qu on ne peut pas totalement exclure une  erreur se produisant apr  s le isOnline     qui pourrait faire planter le programme     Dans l API java pour Android  le traitement d erreur est impl  ment   au moyen d exceptions  Vous  devrez donc intercepter et traiter correctement ces exceptions si vous souhaitez avoir un projet fiable  qui ne crashera pas des que vous d  brancherez un module        ww
6.         yFindServo    La fonction yFindServo  permet de retrouver un servo 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 Servo avec le num  ros de  s  rie SERVORC1 123456 que vous auriez appel    MonModule  et dont vous auriez nomm   la  fonction servo1  MaFonction   les cinq appels suivants seront strictement   quivalents  pour autant  que MaFonction ne soit d  finie qu une fois  pour   viter toute ambigu  t        YServo  servo   yFindServo   SERVORC1 123456 servol      YServo  servo   yFindServo   SERVORC1 123456 MaFonction     YServo  servo   yFindServo  MonModule servol              YServo  servo yFindServo   MonModule MaFonction      YServo  servo yFindServo  MaFonction        yFindServo renvoie un objet que vous pouvez ensuite utiliser    loisir pour contr  ler le servo     isOnline    La m  thode isOnline   de l objet renvoy   par yFindServo permet de savoir si le module  correspondant est pr  sent et en   tat de marche     set_position    La m  thode set position   de l objet renvoy   par yFindServo permet de d  placer le plus  rapidement possible le servo vers la position sp  cifi  e  Le point milieu correspond    la valeur 0  et  les deux extr  mit  s correspondent aux valeurs  1000 et 1000     move    La m  thode move    de l objet renvoy   par yFindServo permet d effectuer le d  placement vers  une p
7.       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 125    19  R  f  rence de l API de haut niveau       YAPI GetTickCount   YAPI  yGetTickCount      Retourne la valeur du compteur monotone de temps  en millisecondes      function yGetTickCount       nodejs   function GetTickCount      function yGetTickCount      u64 yGetTickCount      u64 yGetTickCount      function yGetTickCount     u64     vo _  function yGetTickCount    As Long  ulong GetTickCount      long GetTickCount      def GetTickCount       Ce compteur peut   tre utilis   pour calculer des d  lais en rapport avec les modules Yoctopuce  dont la  base de temps est aussi la milliseconde     Retourne      un long entier contenant la valeur du compteur de millisecond
8.      D  tecter l arriv  e et le d  part des modules    La gestion du hot plug est importante lorsque l on travaille avec des modules USB  car t  t ou tard  vous serez amen      brancher et d  brancher un module apr  s le lancement de votre programme   L API a   t   con  ue pour g  rer l arriv  e et le d  part inopin  s des modules de mani  re transparente   mais votre application doit en g  n  ral en tenir compte si elle veut   viter de pr  tendre utiliser un  module qui a   t   d  branch       La programmation par   v  nements est particuli  rement utile pour d  tecter les branchements   d  branchements de modules  Il est en effet plus simple de se faire signaler les branchements  que  de devoir lister en permanence les modules branch  s pour en d  duire ceux qui sont arriv  s et ceux  qui sont partis  Pour pouvoir   tre pr  venu d  s qu un module arrive  vous avez besoin de trois  morceaux de code     Le callback  Le callback est la fonction qui sera appel  e    chaque fois qu un nouveau module Yoctopuce sera  branch    Elle prend en param  tre le module concern       static void deviceArrival  YModule m        www yoctopuce com 109    17  Programmation avanc  e       Console WriteLine   Nouveau module       m get serialNumber        L initialisation  Vous devez ensuite signaler    l API qu il faut appeler votre callback quand un nouveau module est  branch       YAPI RegisterDeviceArrivalCallback deviceArrival      Notez que si des modules sont d  j   branch  s lorsque le c
9.      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 le servo  ex  relay1  En cas d erreur  d  clenche une exception ou    retourne Y_FUNCTIONID INVALID              198 www yoctopuce com    19  R  f  rence de l API de haut niveau       servo   get_hardwareld   YServo  servo   hardwareld      Retourne l identifiant mat  riel unique du servo au format SERTAL 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 servo  par  example RELAYLO1 123456 relayl      Retourne    une cha  ne de caract  res identifiant le servo  ex  RELAYLO1    123456 relayl1  En cas d erreur        d  clenche une exception ou retourne Y_HARDWAREID_INVALID              www yoctopuce com 199    19  R  f  rence de l API de haut niveau       servo   get_logicalName   YServo  servo   logicalName      Retourne le nom logique du servo     function get_logicalName     function get_logicalName     function get_logicalNam
10.    127 0 0 1       catch  YAPI Exception ex     Sye cem out panini EE EE Eeer 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       94 www yoctopuce com    15  Utilisation du Yocto Servo en Java       try    newname   args 1    if   YAPI CheckLogicalName  newname        System out printin  Invalid name      newname          System exit  1         m set_logicalName  newname       m saveToFlash       do not forget this  System ouc prantin    Modulle   serial        miget serialiNumbex       7  System out printin     name      m get_logiicalName          catch  YAPI Exception ex     System out printin  Module     args 0     not connected  check identification    and USB cable    System  out  printiin 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
11.    C    C  71   C   49 54   Callback 44   Caract  ristiques 251   CheckLogicalName  YAPI 119   Commande 27 111   Commencer 24   Compatibilit   97   Concepts 17   Configuration 10   Connectique 13   Contraintes 15   Contr  le 19  20  28  31  33  39  41  49  51  57   59  64  66  72  74  79  81  86  87  91  93  100   102  143  220   Courants 249    D    Delphi 79   describe  YDualPower 223  describe  YModule 147  describe  YServo 191  Description 27  DisableExceptions  YAPI 120  download  YModule 148  Dynamique 85   Dynamiques 113    E      l  ments 5 6   EnableExceptions  YAPI 121  EnableUSBHost  YAPI 122   Erreurs 36  47  54  61  68  76  83  89  96  107  Ev  nements 109    F    Fichiers 85  Filtres 44    FindDualPower  YDualPower 221  FindModule  YModule 145  FindServo  YServo 189  FirstDualPower  YDualPower 222  FirstModule  YModule 146  FirstServo  YServo 190   Fixation 13   Fonctions 118   FreeAPI  YAPI 123  functionCount  YModule 149  functionld  YModule 150  functionName  YModule 151  functionValue  YModule 152    G    get_advertisedValue  YDualPower 224  get_advertisedValue  YServo 192  get_beacon  YModule 153  get_errorMessage  YDualPower 225  get_errorMessage  YModule 154  get_errorMessage  YServo 193  get_errorType  YDualPower 226  get_errorType  YModule 155  get_errorType  YServo 194  get_extVoltage  YDualPower 227  get_firmwareRelease  YModule 156  get_friendlyName  YDualPower 228  get_friendlyName  YServo 195  get_functionDescriptor  YDualPower 229  get_functionDes
12.    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 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 67    11  Utilisation du Yocto Servo 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 WriteLi
13.    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        250 www yoctopuce com    21  Caract  ristiques    Vous trouverez r  sum  es ci dessous les principales caract  ristiques techniques de votre module  Yocto Servo    Largeur 20 mm  Longueur 45 mm  Poids 5g  Connecteur USB micro B  Canaux 5  Syt  me d exploitation support  s Windows  Linux  Intel   ARM   Mac OS X  Android  Drivers Fonctionne sans driver  API   SDK   Librairie  USB TCP  C    Objective C  C   VB  NET  Delphi  Python  Java Android  API   SDK   Librairie  seul  TCP  Javascript  Node js  PHP  Java  RoHS oui  USB Vendor ID Ox24E0  USB Device ID 0x0012  Bo  ter recommand   YoctoBox Short Thick Black       www yoctopuce com 251    21  Caract  ristiques          252 www yoctopuce com             45 29          40                                    
14.    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 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  re
15.    load_async msValidity  callback  context   Met en cache les valeurs courantes du servo  avec une dur  e de validit   sp  cifi  e     servo   move target  ms_duration   D  clenche un mouvement a vitesse constante vers une position donn  e     servo   nextServo     Continue l   num  ration des servo commenc  e    l aide de yFirstServo     servo   registerValueCallback callback    Enregistre la fonction de callback qui est appel  e a chaque changement de la valeur publi  e     servo   set_logicalName newval    Modifie le nom logique du servo   servo   set_neutral newval    Modifie la dur  e de l impulsion correspondant    la position neutre du servo   servo   set_position newval    Modifie imm  diatement la consigne de position du servo   servo   set_range newval    Modifie la plage d utilisation du servo  en pourcents   servo   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        servo   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 189    19  R  f  rence de l API de haut niveau       YServo FindServo   YServo  yFindServo      Permet de retrouver un servo d apr  s un identifiant donn       function yFindServo  func     nodejs  function FindServo  func    function yFindServo   func    YServo  yFindServo  cons
16.    servo   nextServo   YServo    Continue l   num  ration des servo commenc  e    l aide de yFirstServo        _is  function nextServo      node js  function nextServo       _ php _  function nextServo      YServo   nextServo       YServo   nextServo   function nextServo     TYServo  function nextServo    As YServo  YServo nextServo      YServo nextServo      def nextServo       Retourne      un pointeur sur un objet YServo accessible en ligne  ou nul 1 lorsque l   num  ration est termin  e           212 www yoctopuce com    19  R  f  rence de l API de haut niveau       servo   registerValueCallback   YServo  Enregistre la fonction de callback qui est appel  e    chaque changement de la valeur publi  e     function registerValueCallback  callback    function registerValueCallback  callback    function registerValueCallback   callback    int register ValueCallback  YServoValueCallback callback     int  register ValueCallback    YServoValueCallback  callback   function registerValueCallback  callback  TYServoValueCallback   Longint  function register ValueCallback    As Integer   int register ValueCallback  ValueCallback callback    int register ValueCallback  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 call
17.    usb   errmsg   servo   yFindServo   SERVORC1 123456 servol      REM Pour g  rer le hot plug  on v  rifie que le module est l      If  servo isOnline    Then  REM UEi lise Servo set position     End If    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 probl  me           yFindServo    La fonction yFindServo  permet de retrouver un servo 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 Servo avec le num  ros de  s  rie SERVORC1 123456 que vous auriez appel    MonModule  et dont vous auriez nomm   la  fonction servo1  MaFonction   les cinq appels suivants seront strictement   quivalents  pour autant  que MaFonction ne soit d  finie qu une fois  pour   viter toute ambigu  t        servo   yFindServo   SERVORC1 123456 servol    servo yFindServo   SERVORC1 123456 MaFonction    servo yFindServo   MonModule servol     servo   yFindServo  MonModule MaFonction     servo   yFindServo  MaFonction      yFindServo r
18.   Binaries     correspondant    votre syst  me d exploitation    votre LibPath           www yoctopuce com 55    9  Utilisation du Yocto Servo en C         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     Gise  aig 6   eler eg  ler ere luet St eer ek       56 www yoctopuce com    10  Utilisation du Yocto Servo en Objective C    Objective C est le langage de pr  dilection pour programmer sous Mac OS X  en raison de son  int  gration avec le g  n  rateur d interfaces Cocoa  Pour pouvoir utiliser la libraire Objective C vous  aurez imp  rativement besoin de XCode 4 2  qui est disponible gratuitement sous Lion  Si vous   tes  encore sous Snow Leopard il vous faudra   tre enregistr   comme d  veloppeur aupr  s d Apple pour  pourvoir t  l  charger XCode 4 2  La librairie Yoctopuce est compatible ARC  Il vous sera donc  possible de coder vos projet soit en utilisant la traditionnelle m  thode de retain  release  soit en  activant l Automatic Reference Counting     Les librairies Yoctopuce  pour Objective C vous sont fournies au format source dans leur int  gralit     Une partie de la librairie de bas niveau est   crite en C pur 
19.   En  revanche les paradigmes de programmation et les possibilit  s d acc  s au hardware sont l  g  rement  diff  rentes par rapport au Java classique  ce qui justifie un chapitre    part sur la programmation  Android     16 1  Acc  s Natif et Virtual Hub     Contrairement    l API Java classique  l API Java pour Android acc  de aux modules USB de mani  re  native  En revanche  comme il n existe pas de VirtualHub tournant sous Android  il n est pas possible  de prendre le contr  le    distance de modules Yoctopuce pilot  s par une machine sous Android  Bien  s  r  l API Java pour Android reste parfaitement capable de se connecter    un VirtualHub tournant sur  un autre OS     16 2  Pr  paration    Connectez vous sur le site de Yoctopuce et t  l  chargez la librairie de programmation pour Java pour  Android     La librairie est disponible en fichiers sources  mais elle aussi disponible sous la forme d un  fichier jar  Branchez vos modules  d  compressez les fichiers de la librairie dans le r  pertoire de votre  choix  Et configurez votre environnement de programmation Android pour qu il puisse les trouver     Afin de les garder simples  tous les exemples fournis dans cette documentation sont des fragments  d application 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     16 3  Compatibilit      Dans un
20.   La m  thode isOnline   de l objet renvoy   par yFindServo permet de savoir si le module  correspondant est pr  sent et en   tat de marche     set_position    La m  thode set position   de l objet renvoy   par yFindServo permet de d  placer le plus  rapidement possible le servo vers la position sp  cifi  e  Le point milieu correspond    la valeur O  et  les deux extr  mit  s correspondent aux valeurs  1000 et 1000     move    La m  thode move    de l objet renvoy   par yFindServo permet d effectuer le d  placement vers  une position d  sir  e en un intervalle de temps contr  l    sp  cifi   en millisecondes     13 3  Contr  le de la partie module    Chaque module peut   tre contr  l   d une mani  re similaire  vous trouverez ci dessous un simple  programme d exemple affichant les principaux param  tres d un module et permettant d activer la  balise de localisation     program modulecontrol    SAPPTYPE CONSOLE   uses   EE   yocto api     const  serial    SERVORC1 123456      use serial number or logical name    procedure refresh  module Tymodule       begin  if  module isOnline     then  begin  Writeln       Writeln  Serial 7  modulengerEscriall Number  hr  Writeln  Logical name       module get_logicalName        Writeln  Luminosity       intToStr module get_luminosity            Write   Beacon aS  if  module get beacon   Y BEACON ON  then Writeln  on    Ge beer ege    Writeln   uptime leren E ee et er PUp Time  a any 00S  Writeln   USB current PER ae intToStr  module get us
21.   MonModule servol     servo   YServo FindServo   MonModule MaFonction     servo   YServo FindServo   MaFonction      YServo FindServo renvoie un objet que vous pouvez ensuite utiliser    loisir pour contr  ler le  servo     isOnline    La m  thode YServo isOnline   de l objet renvoy   par FindServo permet de savoir si le  module correspondant est pr  sent et en   tat de marche     set_position    La m  thode set position   de l objet renvoy   par YServo FindServo permet de d  placer  le plus rapidement possible le servo vers la position sp  cifi  e  Le point milieu correspond a la valeur  0  et les deux extr  mit  s correspondent aux valeurs  1000 et 1000           100 www yoctopuce com    16  Utilisation du Yocto Servo avec Android       move  La m  thode move       de l objet renvoy   par YServo FindServo permet d effectuer le    d  placement vers une position d  sir  e en un intervalle de temps contr  l    sp  cifi   en millisecondes     Un exemple r  el    Lancez votre environnement java et ouvrez le projet correspondant     Examples Doc Examples de la librairie Yoctopuce     fourni dans le r  pertoire    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 view View    import android widget AdapterView    import android 
22.   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     Leg  di  swrteh     oeacon   module Jetsbheacont     sw setChecked  module getBeacon      YModule BEACON_ON     field    TextView  findViewById R id logs    EE  module qe ulastLogsi    i                      catch  YAPI Exception e   e printStackTrace              Override  public void onItemSelected  AdapterView lt   gt  parent  View view  int pos  long id      String hwid   parent getltemAtPosition pos  toString     module   YModule FindModule  hwid     DisplayModuleInfo           Override   public void onNothingSelected  AdapterView lt   gt  arg0            public void refreshInfo View view        DisplayModuleInfo          www yoctopuce com 103    16  Utilisation du Yocto Servo avec Android            public void toggleBeacon  View view          if  module    null    EE  boolean on     Switch  view  isChecked     CEV      Lf on ey  module setBeacon  YModule BEACON_ ON       else    module  setBeacon YModule BEACON OFF       EE EE e 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 
23.   Utilisation du Yocto Servo en Javascript 2 0 0    ccc ccc cs eeseeseeseeseeeeesneens 31    Hides PRODALATION KEE 31  7 2  Contr  le de la fonction Servo iii 31  7 3  Contr  le de la partie module ss 33  A GOSIION GES Erreurs  Le E AN En Ee 36  8  Utilisation du Yocto Servo en PHP seseris 39  SL Pr  paration  Ze 39  8 2  Contr  le de la fonction emp  essesi eredera Eanna LAEE SNEEU EE ENN i N KEELEE EKLENEN 39  8 3  Contr  le de la partie module sise 41  8 4  API par callback HTTP et filtres NAT iii 44  8 5  G  stion des   rreurs  EE 47  9  Utilisation du Yocto Servo en C                                                   49  9 1  Contr  le de la fonction Servo iii 49  9 2  Contr  le de la partie module sise 51  9 3  Gestion des erreurs ees eer dee AE Eege Eel aed ea 54  9 4  Int  gration de la librairie Yoctopuce en C   oie    ceeecceecceceeeeeeeeeeeceeeeeeeeeeeeeseeecneeeeeeeteneneeeeeeees 54  10  Utilisation du Yocto Servo en Objective C oo  eeeesteseeeneeee 57  10 1  Contr  le de la fonction Servo  iii 57  10 2  Contr  le de la partie module sisi 59  10 3 G  stion EE 61  11  Utilisation du Yocto Servo en VisualBasic NET  63  Tiled INStallatOm sise set nn Gens A nr ie nine 63  11 2  Utilisation l API yoctopuce dans un projet Visual Basic eee eeeeeeeeeeeeeneeeeeeneeeereaees 63  11 3  Contr  le de la fonction Servo iii 64  11 4  Contr  le de la partie module sise 66  11 5  G  stion d  s   rr    urs 25e dance nil EUER AAE eee eile eden tee du lande do 68  12  Utilisation du Y
24.   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          162    www yoctopuce com    19  R  f  rence de l API de haut niveau       module   get_persistentSettings    module  gt persistentSettings      Retourne l   tat courant des r  glages persistents du module     function get_persistentSettings      function get_persistentSettings      function get_persistentSettings     Y_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 courant des r  glages persistents du    En cas d erreur  d  clenche une exception ou retourne Y_PERSISTENTSETTINGS_INVALTD                 www yoctopuce com    163    19  R  f  rence de l API de haut niveau       module   get_productid   YModule  module  gt productld      Retourne l identifiant USB du module  pr  programm   en usine     function get_productld      function get_productld      function get_productld        cpp 
25.   Yocto Temperature  configure   view log file   beacon        L Show device functions      Cliquer sur le bouton  configure  de la premi  re ligne    MESSE LE TEE Ty  Edit parameters for VIRTHUBO 7d1a86f009  and click on the Save  button     Serial   VIRTHUBO 7 d1a86fb09   Product name  VirtualHub   Software version  10789   Logical name    Incoming connections   Authentication to read information from the devices  NO  edit   Authentication to make changes to the devices  NO  it   Outgoing callbacks   Callback URL  octoHub  eit   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 zl    Yoctopuce devices can be controled through remote PHP scripts  That Yocto AP  callback  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  httpviwww 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  lyocto      Password   esseesse    4  Setup the desired frequency of not
26.   au central t  l  phonique lui m  me  Les postes internes ne sont pas atteignables depuis l ext  rieur     www mysite com 192 168 0 1     64 136 20 37    a             i   i i    _         __    a    e as AS c 192 168 0 102          ED     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        44 www yoctopuce com    8  Utilisation du Yocto Servo en PHP           r  ponse    Les r  ponses aux requ  tes venant des machines du LAN sont rout  es         requ  te  el    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  
27.   cessairement de quelques secondes dans le meilleur des cas     Le mode Yocto APl par callback HTTP n est pour l instant disponible qu en PHP et Node JS     8 5  Gestion des erreurs    Lorsque vous impl  mentez un programme qui doit interagir avec des modules USB  vous ne pouvez  pas faire abstraction de la gestion des erreurs  Il y aura forc  ment une occasion o   un utilisateur  aura d  branch   le p  riph  rique  soit avant de lancer le programme  soit m  me en pleine op  ration   La librairie Yoctopuce est pr  vue pour vous aider    supporter ce genre de comportements  mais  votre code doit n  anmoins   tre fait pour se comporter au mieux pour interpr  ter les erreurs signal  es  par la librairie     La mani  re la plus simple de contourner le probl  me est celle que nous avons employ   pour les  petits exemples pr  c  dents de ce chapitre  avant d acc  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       www yoctopuce com 47    8  Utilisation du Yocto Servo en PHP       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 
28.   d  clenche une exception ou retourne un code d erreur n  gatif           www yoctopuce com    129    19  R  f  rence de l API de haut niveau       YAPI RegisterDeviceArrivalCallback   YAPI  yRegisterDeviceArrivalCallback      Enregistre une fonction de callback qui sera appel  e a chaque fois qu un module est branch       function yRegisterDeviceArrivalCallback  arrivalCallback     nodejs  function RegisterDeviceArrivalCallback  arrivalCallback    function yRegisterDeviceArrivalCallback   arrivalCallback    void yRegisterDeviceArrivalCallback  yDeviceUpdateCallback 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   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             130 www yoctopuce com    19  R  f  rence de l API de haut niveau       YAPI RegisterDeviceRemovalCallback   YAPI  yRegisterDeviceRemovalCallback      Enregistre une fonction de callback qui sera appel  e    c
29.   donner une visibilit   externe au serveur de  domotique lui m  me  en ouvrant un port et en ajoutant une r  gle de routage dans la configuration  NAT du routeur DSL  Le probl  me de cette solution est qu il expose le serveur de domotique aux  attaques externes     L API par callback HTTP r  soud ce probl  me sans qu il soit n  cessaire de modifier la configuration    du routeur DSL  Le script de contr  le des modules est plac   sur un site externe  et c est le Virtual  Hub qui est charg   de l appeler    intervalle r  gulier     VirtualHub         yoctocontrol php    requ  te    r  ponse    L API par callback HTTP utilise le VirtualHub  et c est lui qui initie les requ  tes        www yoctopuce com 45    8  Utilisation du Yocto Servo en PHP       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    PORNE       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             Logical Name Description Action   0 VirtualHub  configure   view log file  a  Yocto PowerRelay  Configure   view log file   beacon 
30.   f  rence de l API de haut niveau       servo   set_neutral   YServo  servo   setNeutral      Modifie la dur  e de l impulsion correspondant    la position neutre du servo     function set_neutral  newval    function set_neutral  newval    function set_neutral   newval    int set_neutral  int newval      int  setNeutral    int  newval   function set_neutral  newval  Longint   integer  function set_neutral  ByVal newval As Integer  As Integer  int set_neutral  int newval    int set_neutral  int newval    def set_neutral  newval    YServo target set_neutral newval    La dur  e est sp  cifi  e en microsecondes  et la valeur standard est 1500  us   Ce r  glage permet de  d  caler la plage d utilisation du servo  Attention  l utilisation d une plage sup  rieure aux caract  ristiques  du servo risque fortement d endommager le servo        Ge  Param  tres    newval un entier repr  sentant la dur  e de l impulsion correspondant    la position neutre du servo    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 215    19  R  f  rence de l API de haut niveau       servo   set_position   YServo  servo   setPosition      Modifie imm  diatement la consigne de position du servo     function set_position  newval    function set_position  newval    function set_position   newval    int set_position  int newval      int  setPosition    int  newval   function
31.   function describe      string describe      NSString   describe  function describe     string  function describe    As String  string describe     String describe      def describe       Ce texte peut contenir soit le nom logique du module  soit son num  ro de s  rie     YModule       Retourne    une chaine de caract  res d  crivant le module          148    www yoctopuce com    19  R  f  rence de l API de haut niveau       module download  YModule    T  l  charge le fichier choisi du module et retourne son contenu     function download  pathname    function 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 149    19  R  f  rence de l API de haut niveau       module  gt functionCount   YModule    Retourne le nombre de fonctions  sans compter l interface  module   existant sur le module     function functionCount      function functionCount      function functionCount        cpp  int functionCount        int  functionCount     pas function functionCount     integer     v     function functionCount    As Integer     cs__ int functionCount      def functionCo
32.   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 175    19  R  f  rence de l API de haut niveau       module   load_async   YModule    Met en cache les valeurs courantes du module  avec une dur  e de validit   sp  cifi  e     function load_async  msValidity  callback  context   function load_async  msValidity  callback  context     Par d  faut  lorsqu on acc  de a un module  tous les attributs des fonctions du module sont  automatiquement mises en cache pour la dur  e standard  5 ms   Cette m  thode peut   tre utilis  e pour  marquer occasionellement les donn  es cach  es comme valides pour une plus longue p  riode  par  exemple dans le but de r  duire le trafic r  seau     Cette version asynchrone n existe qu en Javascript  Elle utilise une fonction de callback plut  t qu une  simple valeur
33.   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              www yoctopuce com 235    19  R  f  rence de l API de haut niveau       dualpower    get_powerControl   YDualPower  dualpower   powerControl      Retourne le mode d alimentation choisi pour les fonctions du module consommant beaucoup de  courant     function get_powerControl      function get_powerControl      function get_powerControl     Y_POWERCONTROL_enum get_powerControl       Y_POWERCONTROL_enum  powerControl  function get_powerControl     Integer   vb   function get_powerControl    As Integer   int get_powerControl      int get_powerControl      def get_powerControl      Y DualPower target get_powerControl    Retourne    une valeur parmi Y_POWERCONTROL_AUTO  Y_POWERCONTROL_FROM_USB   Y_POWERCONTROL_FROM_EXT et Y_POWERCONTROL_ OFF repr  sentant le mode d alimentation  choisi pour les fonctions du module consommant beaucoup de courant    En cas d erreur  d  clenche une exception ou retourne Y_POWERCONTROL_INVALID           236 www yoctopuce com    19  R  f  rence de l API de haut niveau       dualpower   get_powerState   YDualPower  dualpower   powerState      Retourne la source d alimentation active pour les fonctions du module consommant beaucoup de  courant     functi
34.   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           184 www yoctopuce com    19  R  f  rence de l API de haut niveau       module set userData   YModule  module setUserData      Enregistre un contexte libre dans l attribut userData de la fonction  afin de le retrouver plus tard     l aide de la m  thode get_userData     function set_userData  data    function set_userData  data    function set_userData   data    void set_userData  void  data      void  setUserData    void   data   procedure set_userData  data  Tobject   procedure set_userData  ByVal data As Object   void set_userData  object data    void set_userData  Object data    def set_userData  data     Cet attribut n es pas utilis   directement par l API  Il est    la disposition de l appelant pour stocker un  contexte     Param  tres      data objet quelconque    m  moriser             www yoctopuce com 185    19  R  f  rence de l API de haut niveau       module  gt triggerFirmwareUpdate   YModule    Agende un red  marrage du module en mode sp  cial de reprogrammation du logiciel embarqu       function triggerFirmwareUpdate  secBeforeReboot   function triggerFirmwareUpdate  secBeforeReboot   function triggerFirmwareUpdate   secBeforeReboot    int triggerFirmwareUpdate  int secBeforeReboot      int  triggerFirmwareUpdate    int  secBeforeReboot     pas   function triggerFirmwareUpdate  secBefore
35.   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          158 www yoctopuce com    19  R  f  rence de l API de haut niveau       module   get_icon2d    module   icon2d      YModule    Retourne l ic  ne du module     function get_icon2d      function get_icon2d      function get_icon2d      string get_icon2d        NSData   icon2d   function get_icon2d     TByteArray  function get_icon2d    As Byte   def get_icon2d      YModule target get_icon2d    L icone est au format PNG et a une taille maximale de 1536 octets     Retourne      un buffer binaire contenant l icone  au format png           www yoctopuce com    159    19  R  f  rence de l API de haut niveau       module    get_lastLogs   YModule  module    lastLogs      Retourne une chaine de charact  re contenant les derniers logs du module     function get_lastLogs     function get_lastLogs     function get_lastLogs      string get_lastLogs       NSString   lastLogs   function get_lastLogs     string  function get_la
36.   rique  soit avant de lancer le programme  soit m  me en pleine op  ration   La librairie Yoctopuce est pr  vue pour vous aider    supporter ce genre de comportements  mais  votre code doit n  anmoins   tre fait pour se comporter au mieux pour interpr  ter les erreurs signal  es  par la librairie     La mani  re la plus simple de contourner le probl  me est celle que nous avons employ   pour les  petits exemples pr  c  dents de ce chapitre  avant d acc  der    un module  on v  rifie qu il est en ligne  avec la m  thode isOnline   et on suppose ensuite qu il va y rester pendant la fraction de  seconde n  cessaire    ex  cuter les lignes de code suivantes  Ce n est pas parfait  mais   a peut  suffire dans certains cas  II faut toutefois   tre conscient qu on ne peut pas totalement exclure une  erreur se produisant apr  s le isOnline     qui pourrait faire planter le programme     Dans l API java  le traitement d erreur est impl  ment   au moyen d exceptions  Vous devrez donc  intercepter et traiter correctement ces exceptions si vous souhaitez avoir un projet fiable qui ne  crashera pas des que vous d  brancherez un module        96 www yoctopuce com    16  Utilisation du Yocto Servo 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
37.   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           240 www yoctopuce com    19  R  f  rence de l API de haut niveau       dualpower   load   YDualPower  Met en cache les valeurs courantes du contr  le d alimentation  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_
38.  2   usage      m   YModule FindModule sys argv 1      use serial or logical name    if m isOnline          www yoctopuce com    87    14  Utilisation du Yocto Servo en Python       e EE    if sys argv 2  upper       ON    m set beacon YModule BEACON ON   IE sys  argy 2  upper 0    JOER EE Ee BEACONSOHE   print  is ermal      m get_serialNumber       print   logical name      m get_logicalName       EE U stem get luminosity ON   if m get_beacon      YModule BEACON ON   print   beacon  ON    Glen   print   beacon  OFF    print   upTime  War sieve  imo Cee  Gamme  OOM eY seer    print  USB currente Lt See  tingerausbeurnenitr  jin  E  print   logs  n    m get_lastLogs      eileas  PEI sys anol    umor connected  echeck wdentitilcacilonmand USB cabilie      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  il est n  cessaire de demander au module de sauvegar
39.  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  setOnktemse liectedinisitener  this    aa   new ArrayAdapter lt String gt  this  android R layout simple spinner item    aa setDropDownViewResource  android R layout simple spinner dropdown item    my spin setAdapter  aa          Override  protected void onStart         104 www yoctopuce com    16  Utilisation du Yocto Servo avec Android       super onStart        CE     as 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        Lk Gewei  MUNN Mpxcicjpicseim it     enprime otac kurace         refresh Spinner with detected relay  aa notifyDataSetChanged              Override  protected void onStop        super onStop       YAPI FreeAPI            private void DisplayModuleInfo         TextView field     if  module    null   IESEL  Ery    YAPI UpdateDeviceList      fixme  field    TextView  findViewById R id logicalnamefield       field setText  module  getLogicalName        le Eeer  VAP TEE xc ep tone       printStackTrace              Override  public void onItemSelected  AdapterView lt   gt  parent  View view  int pos          Long ad     String hwid   parent ge
40.  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     kr       Les connecteurs USB 2 les plus courants  A  B  Mini B  Micro A  Micro B 3    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       Pour connecter votre module Yocto Servo    un ordinateur  vous avez besoin d un cable USB de type  A micro B  Vous trouverez ce cable en vente    des prix tr  s variables selon les sources  sous la  d  nomination USB A to micro B Data cable  Prenez garde    ne pas acheter par m  garde un simple  c  ble de charge  qui ne fournirait que le courant mais sans les fils de d
41.  SERVORC1 123456 servol          Pour g  rer le hot plug  on v  rifie que le module est l      1 En fait d  s qu Opera impl  mentera le support pour le header HTTP Access Control Allow Origin  e www yoctopuce com FR libraries php  3 www  yoctopuce com FR virtualhub php       www yoctopuce com 31    7  Utilisation du Yocto Servo en Javascript       if servo isOnline        EE SEE POSL CLON           Voyons maintenant en d  tail ce que font ces quelques lignes     yocto_api js et yocto_servo 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_servo js est n  cessaire  pour g  rer les modules contenant un servo  comme le Yocto Servo     yRegisterHub    La fonction yRegisterHub permet d indiquer sur quelle machine se trouve les modules  Yoctopuce  ou plus exactement la machine sur laquelle tourne le programme VirtualHub  Dans notre  cas l adresse 127 0 0 1 4444 indique la machine locale  en utilisant le port 4444  le port  standard utilis   par Yoctopuce   Vous pouvez parfaitement changer cette adresse  et mettre    l adresse d une autre machine sur laquelle tournerait un autre VirtualHub        yFindServo    La fonction yFindServo  permet de retrouver un servo 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 Yo
42.  Store  Par ailleurs  aussi bien sous Mac OS  X que sous Linux  vous pouvez compiler les exemples en ligne de commande avec GCC en utilisant  le GNUmakefile fourni  De m  me  sous Windows  un Makefile pour permet de compiler les  exemples en ligne de commande  et en pleine connaissance des arguments de compilation et link           Les librairies Yoctopuce  pour C   vous sont fournies au format source dans leur int  gralit    Une  partie de la librairie de bas niveau est   crite en C pur sucre  mais vous n aurez    priori pas besoin  d interagir directement avec elle  tout a   t   fait pour que l interaction soit le plus simple possible  depuis le C    La librairie vous est fournie bien entendu aussi sous forme binaire  de sorte    pouvoir  la linker directement si vous le pr  f  rez     Vous allez rapidement vous rendre compte que l API C   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 a la cr  ation d un projet a  neuf link   avec les librairies Yoctopuce     9 1  Co
43.  TOTA fous retenue  errmsg  data   pansitehar   LUE AS 1e Nbre   const  serial    SERVORC1 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  begin  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  D pos  13 10 13 10 data         displays the response minus the HTTP header  writeln copy data p 4 length data  p 3          change the luminosity  if  yapiHTTPRequest  serial setValue  data  sizeof  dataBuffer  fullsize errmsg  lt 0  then  begin  writeln  errmsg     halte  end     end        114 www yoctopuce com    18  Utilisation avec des langages non support  s       Inventaire des modules    Pour proc  der    l inventaire des modules Yoctopuce  deux fonctions de la librairie dynamique sont  n  cessaires    int yapiGetAllDevices int  buffer int maxsize int  neededsize char  errmsg     int yapiGetDeviceInfo int devdesc  yDeviceSt  infos  char  errmsg       La fonction yapiGetAllDevices permet d obtenir la liste des modules connect  s sous la forme d une  liste de handles  b
44.  USB quelques   tapes suppl  mentaires sont n  cessaires  Si vous comptez  uniquement interagir avec des modules connect  s sur une autre machine par IP  vous pouvez  ignorer cette section        Il faut d  clarer dans son AndroidManifest xml l utilisation de la fonctionnalit    USB Host  en  ajoutant le tag  lt uses feature android name  android hardware usb host    gt   dans la section manifest               lt manifest     gt      lt uses feature android name  android hardware usb host    gt      2 Les YoctoHub sont un moyen simple et efficace d ajouter une connectivit   r  seau a vos modules Yoctopuce  http     www yoctopuce com FR products category extensions et reseau       98 www yoctopuce com    16  Utilisation du Yocto Servo avec Android        lt  manifest gt     Lors du premier acc  s    un module Yoctopuce  Android va ouvrir une fen  tre pour informer  l utilisateur que l application va acc  der module connect    L utilisateur peut refuser ou autoriser  lacc  s au p  riph  rique  Si l utilisateur accepte  l application pourra acc  der au p  riph  rique  connect   jusqu    la prochaine d  connexion du p  riph  rique  Pour que la librairie Yoctopuce puisse  g  rer correctement ces autorisations  il 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 Act
45.  Un ordinateur    Les modules de Yoctopuce sont destin  s      tre pilot  s par un ordinateur  ou   ventuellement un  microprocesseur embarqu     Vous   crirez vous m  me le programme qui pilotera le module selon  vos besoin     l aide des informations fournies dans ce manuel     Yoctopuce fourni les librairies logicielles permettant de piloter ses modules pour les syst  mes  d exploitation suivants  Windows  Mac OS X  Linux et Android  Les modules Yoctopuce ne  n  cessitent pas l installation de driver  ou pilote  sp  cifiques  car ils utilisent le driver 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 le bon fonctionnement des modules  sur Mac OS X 10 6 et 10 7     Les versions de Linux support  es sont les kernels 2 6 et 3 0  D autre versions du kernel et m  me  d autres variantes d Unix sont tr  s susceptibles d   tre utilis  es sans probl  me  puisque le support de  Linux est fait via l API standard de la libusb  disponible aussi pour FreeBSD par exemple  Yoctopuce  teste r  guli  rement le bon fonctionnement des modules sur un kernel Linux 2 6    
46.  Y BEACON ON   html   ON  lt a href  javascript beacon Y BEACON OFF    gt switch off lt  a gt  lt br gt     alga  html   OFF  lt a href  javascript  beacon  Y BEACON ON    gt switch on lt  a gt  lt br gt       html     upTime    parseInt  module get upTime   1000    sec lt br gt     html     USB current    module get_usbCurrent      mA lt br gt      html      logs  lt br gt  lt pre gt  tmodule get_lastlogs     lt  pre gt  lt br gt     document  getElementById  data    innerHTML   html          else     document  getHElementById  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 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 
47.  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 219    19  R  f  rence de l API de haut niveau       19 4  Interface de contr  le de l alimentation    La librairie de programmation Yoctopuce permet de contr  ler la source d alimentation qui doit   tre  utilis  e pour les fonctions du module consommant beaucoup de courant  Le module est par ailleurs  capable de couper automatiquement l alimentation externe lorsqu il d  tecte que la tension a trop chut     batterie   puis  e      Pour utiliser les fonctions d  crites ici  vous devez inclure      lt script type  text javascript  src  yocto_dualpower js  gt  lt  script gt   var yoctolib   require    yoctolib       var YDualPower   yoctolib  YDualPower   require_oncel yocto_dualpower php      include  yocto_dualpower h    import  yocto_dualpower h   uses yocto_dualpower   yocto_dualpower vb    yocto_dualpower cs  import com yoctopuce YoctoAP  YDualPower     from yocto_dualpower import      Fonction globales  yFindDualPower func     Permet de retrouver un contr  le d alimentation d apr  s un identifiant donn     yFirstDualPower    Commence l   num  ration des contr  les d alimentation accessibles par la librairie     M  t
48.  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      public static void main String   args      cry        setup the API to use local VirtualHub  VARI Regis ee len HEI    catch  YAPI Exception ex     System ee enee contact  vVirecual P Hubtonm 2n 0m0  TE  ex getLocalizedMessage            System out println  Ensure that the VirtualHub application is running     System exit  1         oys emk out yp amin line ya Cells tem   YModule module   YModule FirstModule       while  module    null     Fee   System out println module get serialNumber               module get productName            earch MAP EE  break     I    module   module nextModule            YAPI FreeAPI          www yoctopuce com 95    15  Utilisation du Yocto Servo en Java       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
49.  c pour mac os x       www yoctopuce com 57    10  Utilisation du Yocto Servo en Objective C       exit 1      int Meainiink arger Const char   aroili   NSError  error   aise  Eliseo  CMS   usage              autoreleasepool       Setup the API to use local USB devices    if  YAPI RegisterHub   usb    amp error     YAPT SUCCESS     NSLogi     RegisterHub error  2G    error llocaluzedDescriptilon      return 1        NSString  target    NSString stringWithUTF8String argv 1      if   target isEqualToString   any         YServo  servo  YServo FirstServo    if  servo  NULL     NSLog   No module connected  check USB cable        return 1        target     servo module  serialNumber       YServo  servol    YServo FindServo   target stringByAppendingString    servol      YServo  servo5    YServo FindServo   target stringByAppendingString    servo5      ant pos     int  ato Maroy 2  if   servol isOnline        servol set_position pos      immediate switch    servo5 move pos 3000      smooth transition      else    NSLog    Module not connected  check identification and USB cable   n             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_servo 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 servo h est n  cessaire pour g  rer  les modules contenant un servo 
50.  ce que font ces quelques lignes     yocto_api php et yocto_servo 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 servo php est n  cessaire pour  g  rer les modules contenant un servo  comme le Yocto Servo     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        yFindServo    La fonction yFindServo  permet de retrouver un servo 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 Servo avec le num  ros de  s  rie SERVORC1 123456 que vous auriez appel    MonModule  et dont vous auriez nomm   la  fonction servo1  MaFonction   les cinq appels suivants seront strictement   quivalents  pour autant  que MaFonction ne soit d  finie qu une fois  pour   viter toute ambigu  t        Sservo   yFindServo   SERVORC1 123456 servol     Sservo   yFindServo   SERVORC1 123456 MaFonction      Sservo   yFindServo   MonModule
51.  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  Contest  ou d une sous   classe   Si vous comptez uniquement vous connecter a d autres machines par IP vous cette fonction  est factultative                       YAPI RegisterHub    La fonction YAPI  RegisterHub initialise l API de Yoctopuce en indiquant o   les modules doivent    tre recherch  s  Le param  tre est l adresse du virtual hub capable de voir les modules  Si l on passe  la chaine de caract  re  usb   l API va travailler avec les modules connect  s localement    la  machine  Si l initialisation se passe mal  une exception sera g  n  r  e        YServo FindServo    La fonction YServo FindServo permet de retrouver un servo 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 Servo avec le  num  ros de s  rie SERVORC1 123456 que vous auriez appel    MonModule  et dont vous auriez  nomm   la fonction servo   MaFonction   les cinq appels suivants seront strictement   quivalents   pour autant que MaFonction ne soit d  finie qu une fois  pour   viter toute ambigu  t        servo   YServo FindServo   SERVORC1 123456 servol    servo   YServo FindServo   SERVORC1 123456 MaFonction    servo   YServo FindServo 
52.  comme le Yocto Servo     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           yFindServo    La fonction yFindServo  permet de retrouver un servo 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 Servo avec le num  ros de  s  rie SERVORC1 123456 que vous auriez appel    MonModule  et dont vous auriez nomm   la  fonction servo1  MaFonction   les cinq appels suivants seront strictement   quivalents  pour autant  que MaFonction ne soit d  finie qu une fois  pour   viter toute ambigu  t        YServo  servo   yFindServo    SERVORC1 123456 servol     YServo  servo   yFindServo    SERVORC1 123456 MaFonction           58 www yoctopuce com    10  Utilisation du Yocto Servo en Objective C       YServo  servo   yFindServo    MonModule servol      YServo  servo   yFindServo    MonModule MaFonction      YServo  servo   yFindServo    MaFonction        yFindServo renvoie un objet que vous pouvez ensuite utiliser    loisir pour contr  ler le servo     isOnline    La m  
53.  commercialise des bo  tiers sp  cialement con  us pour les modules Yoctopuce  Ces  bo  tiers sont munis de pattes de fixation amovibles et d aimants de fixation  Vous trouverez plus  d informations    propos de ces bo  tiers sur le site de Yoctopuce   Le bo  tier recommand   pour votre  Yocto Servo est le mod  le YoctoBox Short Thick Black       Vous pouvez installer votre Yocto Servo dans un bo  tier optionnel     4 vous pouvez utiliser le bornier Ref MPT 0 5 2 2 54 de Phoenix Contact  5 http   www  yoctopuce com EN products category enclosures       www yoctopuce com    2  Pr  sentation          1  Prise USB micro B 6                 ER    Canal servo 3    2  Yocto bouton 7  Canal servo 4   3  Yocto led 8  Canal servo 5   4  Canal servo 1 9  Led alimentation par USB  5  Canal servo 2 10  Led alimentation externe    11  Connecteur alimentation externe    2 1  Les   l  ments communs    Tous les Yocto modules ont un certain nombre de fonctionnalit  s en commun     Le connecteur USB    Les modules de Yoctopuce sont tous   quip  s d une connectique au format micro USB  Les c  bles  correspondants ne sont pas forc  ment les plus faciles    trouver  mais ces connecteurs ont    l avantage d occuper un minimum de place     Attention le connecteur USB est simplement soud   en surface et peut   tre arrach   si la prise USB  venait    faire levier  Si les pistes sont rest  es en place  le connecteur peut   tre ressoud      l aide  d un bon fer et de flux  Alternativement  vous pouvez 
54.  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       18 www yoctopuce com    5  Programmation  concepts g  n  raux       d un certain nombre de m  thodes permettant d   num  rer les fonctionnalit  s disponibles sur un  module     5 2  Le module Yocto Servo    Le module Yocto Servo offre une interface de contr  le de l alimentation de puissance  et cinq  instances de la fonction Servo  correspondant aux cinq controlleurs de servo moteur du module     module   Module       attribut type modifiable    productName Texte lecture seule  serialNumber Texte lecture seule  logicalName Texte modifiable  productId Entier  hexad  cimal  lecture seule    productRelease Entier  hexad  cimal  lecture seule                firmwareRelease Texte lecture seule  persistentSettings Type   num  r   modifiable  luminosity 0  100  modifiable  beacon On Off modifiable  upTime Temps lecture seule  usbCurrent Courant consomm    en mA  lecture seule  rebootCountdown Nombre entier modifiable  usbBandwidth Type   num  r   modifiable          dualPower   DualPower    attribut type modifiable    logicalName Texte modifiable  advertisedValue Texte lecture seule       powerState  powerControl  extVoltage          Type   num  r    Type   num  r    
55.  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  ration se d  roule sans erreur                 132 www yoctopuce com    19  R  f  rence de l API de haut niveau    En cas d erreur  d  clenche une exception ou retourne un code d erreur n  gatif           www yoctopuce com 133    19  R  f  rence de l API de haut niveau       YAPI RegisterHubDiscoveryCallback   YAPI  yRegisterHubDiscoveryCallback      Enregistre une fonction de callback qui sera appel  e a chaque fois qu un Hu
56.  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           176 www yoctopuce com    19  R  f  rence de l API de haut niveau       module     nextModule   YModule    Continue l   num  ration des modules commenc  e    l aide de yFirstModule       function nextModule      function nextModule      function nextModule      YModule   nextModule       YModule   nextModule   function nextModule     TYModule  function nextModule    As YModule  YModule nextModule      YModule nextModule      def nextModule       Retourne      un pointeur sur un objet YModule accessible en ligne  ou nul 1 lorsque l   num  ration est termin  e           www yoctopuce com 177    19  R  f  rence de l API de haut niveau       module    reboot   YModule    Agende un simple red  marrage du module dans un nombre donn   de sec
57.  de retour sera YAPI SUCCESS si tout va bien  et un code d erreur diff  rent  en cas d   chec                                               Quand vous travaillez sans les exceptions  il est possible d obtenir un code d erreur et un message  expliquant l origine de l erreur en le demandant    l objet qui a retourn   une erreur    l aide des  m  thodes errType   et errMessage    Ce sont les m  me informations qui auraient   t    associ  es    l exception si elles avaient   t   actives        www yoctopuce com 77       78    www yoctopuce com    13  Utilisation du Yocto Servo 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     quiconque ayant des notions de Pascal de programmer une application Windows en deux temps  trois mouvements  Son seul d  faut est d   tre payant     Les librairies pour Delphi sont fournies non pas sous forme de composants VCL  mais directement  sous forme de fichiers source  Ces fichiers sont compatibles avec la plupart des version de Delphi        Afin des les garder simples  tous les exemples fournis dans cette documentation sont des  applications consoles  II va de soit que le fonctionnement des librairies est strictement identique avec  des applications VCL     Vous allez rapidement vous rendre compte que l API Delphi d  fini beaucoup de fonctions qui  retournent des objets  Vous ne devez jam
58.  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 modulecontrol       Spinner my spin    Spinner  findViewById R id spinner1          102    www yoctopuce com    16  Utilisation du Yocto Servo avec Android       my spin setOnItemSelectedListener  this    aa   new ArrayAdapter lt String gt  this  android R layout simple spinner item    aa setDropDownViewResource  android R layout simple spinner dropdown item    my spin setAdapter  aa           Override  protected void onStart          Super  onstart        Ley i  aa clear     YAPI EnableUSBHost  this    YAPI Registerhubi  usb       YModule r   YModule FirstModule     while  r    null     String hwid   r get_hardwareId     aa add  hwid     r   r nextModule          Catch  YAPI Exception e         printStackTrace           refresh Spinner with detected relay  aa notifyDataSetChanged            Override  protected void onStop       super onStop     YAPI FreeAPI           private void DisplayModulelnfo        TextView field    if  module    null   CEEE   ELy 4  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
59.  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           164 www yoctopuce com    19  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    En cas d erreur  d  clenche une exception ou retourne Y_PRODUCTNAME_INVALID           www yoctopuce com    165    19  R  f  rence de l API de haut niveau       module   get_productRelease   YModule  module   productRelease      Retourne le num  ro de version mat  riel du module  pr  programm   en usine     function get_productRelease      function get_productRelease      function get_productRelease      int get_productReleas
60.  l API de haut niveau    Ce chapitre r  sume les fonctions de l API de haut niveau pour commander votre Yocto Servo  La  syntaxe et les types pr  cis peuvent varier d un langage    l autre mais  sauf avis contraire toutes sont  disponibles dans chaque language  Pour une information plus pr  cise sur les types des arguments  et des valeurs de retour dans un langage donn    veuillez vous r  f  rer au fichier de d  finition pour ce  langage  yocto api   ainsi que les autres fichiers yocto   d  finissant les interfaces des  fonctions      Dans les langages qui supportent les exceptions  toutes ces fonctions vont par d  faut g  n  rer des  exceptions en cas d erreur plut  t que de retourner la valeur d erreur document  e pour chaque  fonction  afin de faciliter le d  boguage  Il est toutefois possible de d  sactiver l utilisation d exceptions     l aide de la fonction yDisableExceptions     si l on pr  f  re travailler avec des valeurs de  retour d erreur        Ce chapitre ne reprend pas en d  tail les concepts de programmation d  crits plus t  t  afin d offrir une  r  f  rence plus concise  En cas de doute  n h  sitez pas    retourner au chapitre d  crivant en d  tail de  chaque attribut configurable        www yoctopuce com 117    19  R  f  rence de l API de haut niveau       19 1  Fonctions g  n  rales    Ces quelques fonctions g  n  rales permettent l initialisation et la configuration de la librairie Yoctopuce   Dans la plupart des cas  un appel    yRegisterHub   suffira en 
61.  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  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           142 www yoctopuce com    19  R  f  rence de l API de haut niveau       19 2  Interface de contr  le du module    Cette interface est la m  me pour tous les modules USB de Yoctopuce  Elle per
62.  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        62 www yoctopuce com    11  Utilisation du Yocto Servo en VisualBasic  NET    VisualBasic a longtemps   t   la porte d entr  e privil  gi  e vers le monde Microsoft  Nous nous  devions donc d offrir notre interface pour ce langage  m  me si la nouvelle tendance est le C   Tous  les exemples et les mod  les de projet sont test  s avec Microsoft Visual Basic 2010 Express   disponible gratuitement sur le site de Microsoft 1     11 1  Installation    T  l  chargez la librairie Yoctopuce pour Visual Basic depuis le site web de Yoctopuce   Il n y a pas  de programme d installation  copiez simplement de contenu du fichier zip dans le r  pertoire de votre  choix  Vous avez besoin essentiellement du contenu du r  pertoire Sources  Les autres r  pertoires  contiennent la documentation et quelques programmes d exemple  Les projets d exemple sont des  projets Visual Basic 2010  si vous utilisez une version ant  rieure  il 
63.  logiciel interne qui contr  le  le module rencontre une erreur fatale  elle se met    flasher SOS en morse     Si cela arrivait  d  branchez puis rebranchez le module  Si le probl  me venait    se reproduire v  rifiez que le module  contient bien la derni  re version du firmware  et dans l affirmative contactez le support Yoctopuce      La sonde de courant    Chaque Yocto module est capable de mesurer sa propre consommation de courant sur le bus USB   La distribution du courant sur un bus USB   tant relativement critique  cette fonctionnalit   peut   tre  d un grand secours  La consommation de courant du module est consultable par logiciel uniquement     Le num  ro de s  rie    Chaque Yocto module a un num  ro de s  rie unique attribu   en usine  pour les modules Yocto Servo  ce num  ro commence par SERVORC1  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 mod
64.  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        36 www yoctopuce com    7  Utilisation du Yocto Servo en Javascript       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 t
65.  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        www yoctopuce com 83    13  Utilisation du Yocto Servo en Delphi       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 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 
66.  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 servo1  il suffit de construire l URL suivante   http   127 0 0 1 4444 bySerial SERVORC1 12345 api servol 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 SERVORC1 12345 api servol logicalName    Assez logiquement  les attributs peuvent   tre modifi  s de la m  me mani  re     http   127 0 0 1 4444 bySerial SERVORC1 12345 api servol logicalName maFonction    Vous trouverez la liste des attributs disponibles pour votre Yocto Servo au d  but du chapitre  Programmation  concepts g  n  raux        112 www yoctopuce com    18  Utilisation avec des langages non support  s       Acc  s aux donn  es enregistr  es sur le datalogger par l interface REST  Cette section s applique uniquement aux modules dot  s d un enregistreur de donn  e     La version r  sum  e des donn  es enregistr  es dans le datalogger peut   tre obtenue au format JSON     l aide de l URL suivante     http   127 0 0 1 4444 bySerial SERVORC1 12345 dataLogger json    Le d  tail de chaque mesure pour un chaque tranche d e
67.  modules USB connect  s  Il faut compter environ une seconde par appel     18 2  Virtual Hub et HTTP GET    Le Virtual Hub est disponible pour presque toutes les plateformes actuelles  il sert g  n  ralement de  passerelle pour permettre l acc  s aux modules Yoctopuce depuis des langages qui interdisent  l acc  s direct aux couches mat  rielles d un ordinateur  Javascript  PHP  Java A    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 111    18  Utilisation avec des langages non support  s       Un des gros avantages de cette technique est que les tests pr  liminaires sont tr  s faciles    mettre en  uvre  il suffit d un Virtual Hub et d un simple browser Web  Ainsi  si vous copiez l URL suivante dans  votre browser favori  alors que le Virtual Hub est en train de tourner  vous obtiendrez la liste des  modules pr  sents     http   127 0 0 1 4444 api services whitePages txt    Remarquez que le r  sultat est pr  sent   sous form
68.  monde id  al  il suffirait d avoir un t  l  phone sous Android pour pouvoir faire fonctionner des  modules Yoctopuce  Malheureusement  la r  alit   est l  g  rement diff  rente  un appareil tournant  sous Android doit r  pondre    un certain nombre d exigences pour pouvoir faire fonctionner des  modules USB Yoctopuce en natif     1 www yoctopuce com FR libraries php       www yoctopuce com 97    16  Utilisation du Yocto Servo avec Android       Android 4 x    Android 4 0  api 14  et suivants sont officiellement support  s  Th  oriquement le support USB host  fonctionne depuis Android 3 1  Mais sachez que Yoctopuce ne teste r  guli  rement l API Java pour  Android qu    partir de Android 4     Support USB host    Il faut bien s  r que votre machine dispose non seulement d un port USB  mais il faut aussi que ce  port soit capable de tourner en mode host  En mode host  la machine prend litt  ralement le contr  le  des p  riph  riques qui lui sont raccord  s  Les ports USB d un ordinateur bureau  par exemple   fonctionnent mode host  Le pendant du mode host est le mode device  Les clefs USB par exemple  fonctionnent en mode device  elles ne peuvent qu   tre contr  l  es par un host  Certains ports USB  sont capables de 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 for
69.  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 209    19  R  f  rence de l API de haut niveau       servo   load_async   YServo    Met en cache les valeurs courantes du servo  avec une dur  e de validit   sp  cifi  e     function load_async  msValidity  callback  context   function load_async  msValidity  callback  context     Par d  faut  lorsqu on acc  de    un module  tous les attributs des fonctions du module sont  automatiquement mises en cache pour la dur  e standard  5 ms   Cette m  thode peut   tre utilis  e pour  marquer occasionellement les donn  es cach  es comme valides pour une plus longue p  riode  par  exemple dans le but de r  duire le trafic r  seau     Cette version asynchrone n existe qu en Javascript  Elle utilise une fonction de callback plut  t qu une  simple valeur de retour  pour   viter de bloquer la machine virtuelle Javascript avec une attente active        Param  tres      msValidity un entier correspondant    la dur  e de validit   attribu  e aux les param  tres charg  s  en  mill
70.  name  if  module  gt isOnline       ti  aenge   2  4  if  string argv 2       ON    module  gt set beacon Y BEACON ON    else    module  gt set beacon Y BEACON OFF         courses Wsemiailk  we lt  lt  nodule  gt oehuserlclNumper    EE  cout  lt  lt   logical name     lt  lt  module  gt get_logicalName    lt  lt  endl   cout  lt  lt  bh Ee Date EE    lt  lt  module  get luminosity    lt  lt  endl   cout  lt  lt   beacon  We  if  module  gt get beacon    Y BEACON ON   Eeer  else  ee ee LOR es rendi   cout  lt  lt   upTime     lt  lt  module  gt get upTime   1000  lt  lt    sec   lt  lt  endl   COUL  lt  lt  MYSE EE EE D     module  gt get usbCurrent    NN  lt  lt  CRC Dk  cout  lt  lt   Logs   lt  lt  endl  lt  lt  module  gt get_lastLogs    lt  lt  endl     else    cout  lt  lt  argv 1l   lt  lt    not connected  check identification and USB cable     lt  lt  endl      return 0     Chaque propri  t   xxx du module peut   tre lue grace    une m  thode du type get_xxxx    et les  propri  t  s qui se sont pas en lecture seule peuvent   tre modifi  es    l aide de la m  thode set xxx     Pour plus de d  tails concernant ces fonctions utilis  es  reportez vous aux chapitre API    Modifications des r  glages du module    Lorsque que vous souhaitez modifier les r  glages d un module  il suffit d appeler la fonction  set _xxx   correspondante  cependant cette modification n a lieu que dans la m  moire vive du  module  si le module red  marre  les modifications seront perdues  Pour q
71.  objet  d  finissez  votre callback sous la forme d une proc  dure globale qui ensuite appellera votre m  thode        110 www yoctopuce com    18  Utilisation avec des langages non support  s    Les modules Yoctopuce peuvent   tre contr  l  s depuis la plupart des langages de programmation  courants  De nouveaux langages sont ajout  s r  guli  rement en fonction de l int  r  t exprim   par les  utilisateurs de produits Yoctopuce  Cependant  certains langages ne sont pas et ne seront jamais  support  s par Yoctopuce  les raisons peuvent   tre diverses  compilateurs plus disponibles   environnements inadapt  s  etc       Il existe cependant des m  thodes alternatives pour acc  der    des modules Yoctopuce depuis un  langage de programmation non support       18 1  Ligne de commande    Le moyen le plus simple pour contr  ler des modules Yoctopuce depuis un langage non support    consiste    utiliser l API en ligne de commande    travers des appels syst  me  L API en ligne de  commande se pr  sente en effet sous la forme d un ensemble de petits ex  cutables qu il est facile  d appeler et dont la sortie est facile    analyser  La plupart des langages de programmation  permettant d effectuer des appels syst  me  cela permet de r  soudre le probl  me en quelques lignes     Cependant  si l API en ligne de commande est la solution la plus facile  ce n est pas la plus rapide ni  la plus efficace     chaque appel  l ex  cutable devra initialiser sa propre API et faire l inventaire des 
72.  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      CEVEA     setup the API to use local VirtualHub  VARIM REg S Le AUDE TP lr    catch  YAPT Exception ex     System Out  prinklin Meannok contact Vaintualhub ony 1270020     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      SyS teme exin       www yoctopuce com 93    15  Utilisation du Yocto Servo en Java       Leite i  module   YModule FindModule args 0       use serial or logical name     Cry     alse  cisco dree p  ler S gt  al  fl  if  args 1  equalsIgnoreCase  ON       module setBeacon  YModule BEACON ON     bk elses i  module setBeacon YModule BEACON OFF          System out printin  serial      module get serialNumber       System out printin  logical name      module get_logicalName      System out println  luminosity      module get_luminosity      if  module get beacon      YModule BEACON ON     System out printin  beacon  ON      kelsa    System out printin  beacon  OERANG     System out printin  upTime  Ui ar te
73.  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           208 www yoctopuce com    19  R  f  rence de l API de haut niveau       servo   load   YServo  Met en cache les valeurs courantes du servo  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
74.  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     9 4  Int  gration de la librairie Yoctopuce en C      Selon vos besoins et vos pr  f  rences  vous pouvez   tre men      int  grer de diff  rentes mani  res la  librairie    vos projets  Cette section explique comment impl  menter les diff  rentes options        54 www yoctopuce com    9  Utilisation du Yocto Servo en C         Int  gration au format source  L int  gration de toutes les sources de la librairie dans vos projets a plusieurs avantages        Elle garanti le respect des conventions de compilation de votre projet  32 64 bits  inclusion des  symboles de debug  caract  res unicode ou ASCII  etc      e Elle facilite le d  boggage si vous cherchez la cause d un probl  me li      la librairie Yoctopuce   e Elle r  duit les d  pendances sur des composants tiers  par exemple pour parer au cas o   vous  pourriez   tre men      recompiler ce proje
75.  servol       Sservo   yFindServo   MonModule MaFonction      Sservo   yFindServo  MaFonction        yFindServo renvoie un objet que vous pouvez ensuite utiliser    loisir pour contr  ler le servo     isOnline   La m  thode isOnline   de l objet renvoy   par yFindServo permet de savoir si le module  correspondant est pr  sent et en   tat de marche    set_position   La m  thode set position   de l objet renvoy   par yFindServo permet de d  placer le plus  rapidement possible le servo vers la position sp  cifi  e  Le point milieu correspond    la valeur 0  et  les deux extr  mit  s correspondent aux valeurs  1000 et 1000    move   La m  thode move    de l objet renvoy   par yFindServo permet d effectuer le d  placement vers  une position d  sir  e en un intervalle de temps contr  l    sp  cifi   en millisecondes    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    4 Si vous n avez pas d   diteur de texte  utilisez Notepad plut  t que Microsoft Word        40 www yoctopuce com    8  Utilisation du Yocto Servo en PHP       browser favori  Vous trouverez aussi ce code dans le r  pertoire Examples Doc GettingStarted     Yocto Servo 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 fa
76.  set_position  newval  Longint   integer   _vb function set_position  ByVal newval As Integer  As Integer  int set_position  int newval    int set_position  int newval    def set_position  newval    YServo target set_position newval    Param  tres    newval un entier repr  sentant imm  diatement la consigne de position du servo    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           216 www yoctopuce com    19  R  f  rence de l API de haut niveau       servo   set_range    servo   setRange      Modifie la plage d utilisation du servo  en pourcents     function set_range  newval    function set_range  newval    function set_range   newval    int set_range  int newval      int  setRange    int  newval   function set_range  newval  Longint   integer  function set_range  ByVal newval As Integer  As Integer  int set_range  int newval    int set_range  int newval    def set_range  newval    YServo target set_range newval    YServo    La valeur 100  correspond a un signal de commande standard  variant de 1  ms  a 2  ms   Pour les  servos supportent une plage double  de 0 5  ms  a 2 5  ms   vous pouvez utiliser une valeur allant  jusqu    200   Attention  l utilisation d une plage sup  rieure aux caract  ristiques du servo risque    fortement d endommager le servo     Param  tres      Retourne    YAPI_SUCCESS si l op  ration se d  roule sans erreur              newval un entier r
77.  signal  es  par la librairie     La mani  re la plus simple de contourner le probl  me est celle que nous avons employ   pour les  petits exemples pr  c  dents de ce chapitre  avant d acc  der    un module  on v  rifie qu il est en ligne  avec la m  thode isOnline   et on suppose ensuite qu il va y rester pendant la fraction de  seconde n  cessaire    ex  cuter les lignes de code suivantes  Ce n est pas parfait  mais   a peut  suffire dans certains cas  II faut toutefois   tre conscient qu on ne peut pas totalement exclure une  erreur se produisant apr  s le isOnline    qui pourrait faire planter le programme  La seule  mani  re de l   viter est d impl  menter une des deux techniques de gestion des erreurs d  crites ci   dessous     La m  thode recommand  e par la plupart des langages de programmation pour la gestion des  erreurs impr  visibles est l utilisation d exceptions  C est le comportement par d  faut de la librairie  Yoctopuce  Si une erreur se produit alors qu on essaie d acc  der    un module  la librairie va lancer  une exception  Dans ce cas  de trois choses l une     e Si votre code attrape l exception au vol et la g  re  et tout se passe bien    e Si votre programme tourne dans le debugger  vous pourrez relativement facilement d  terminer  o   le probl  me s est produit  et voir le message explicatif li      l exception    e Sinon    l exception va crasher votre programme  boum     Comme cette derni  re situation n est pas la plus souhaitable  la librairie Yoc
78.  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  utilisez l adresse IP 127 0 0 1     callback Le mot cl   callback permet de faire fonctionnner l API dans un mode app  l    callback HTTP    C est un mode sp  cial permettant  entre autres  de prendre le contr  le de modules Yoctopuce    travers  un filtre NAT par l interm  diaire d un VirtualHub ou d un Hub Yoctopuce  II vous suffit de configuer le  hub pour qu il appelle votre script a intervalle r  gulier  Ce mode
79.  thode  YModule set xxx    Pour plus de d  tails concernant ces fonctions utilis  es  reportez vous aux  chapitre API    Modifications des r  glages du module    Lorsque que vous souhaitez modifier les r  glages d un module  il suffit d appeler la fonction  YModule set xxx    correspondante  cependant cette modification n a lieu que dans la m  moire  vive du module  si le module red  marre  les modifications seront perdues  Pour qu elle soient  m  moris  es de mani  re persistante  il est n  cessaire de demander au module de sauvegarder sa  configuration courante dans sa m  moire non volatile  Pour cela il faut utiliser la m  thode  YModule saveToFlash     Inversement il est possible de forcer le module    oublier ses r  glages  courants en utilisant la m  thode YModule revertFromFlash    Ce petit exemple ci dessous  vous permet changer le nom logique d un module        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
80.  use serial or logical  name  if   module isOnline      it Varga  gt  2  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     NSLog    beacon  DAVEE  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         www yoctopuce com 59    10  Utilisation du Yocto Servo en Objective C       NSLog      not connected  check identification and USB cable  n  serial or name            return 0     Chaque propri  t   xxx du module peut   tre lue grace a une m  thode du type get xxxx  et les  propri  t  s qui se sont pas en lecture seule peuvent   tre modifi  es    l aide de la m  thode set xxx   Pour plus de d  tails concernant ces fonctions utilis  es  reportez vous aux chapitre API    Modifications des r  glages du module    Lorsque que vous souhaitez modifier les r  glages d un module  il suffit d appeler la fonction  set xxx  correspondante  cependant cette modification n a lieu que dans la m  moire vive du  module  si le module red  marre  les modifications seront perdues  Pour qu elle soient m  moris  es  de mani  re persistante  il est n  cessaire de demander au module de sauvegarder sa c
81.  value   module get logicalName        else    document  getElementByld  msg   value    Module not connected       setTimeout   refresh    1000         function save            var newname   document getElementByld  newName   value   if   yCheckLogicalName newname       alert     invalid logical name      return       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   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        www yoctopuce com 35    7  Utilisation du Yocto Servo en Javascript         num  ration des modules    Obtenir la liste des modules connect  s se fait a l aide de la fonction yFirstModule    qui renvoie  le premier module 
82. 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 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     Leinen  octo  eet Ja    using namespace std     int mannin aroge eons C EE Eich         string errmsg        Setup the API to use local USB devices    if  yRegisterHub  usb   errmsg     YAPI SUCCESS     tee  lt  lt  Eeer Eeselen Gieieeiey 1  lt  lt  Eier  lt  lt  See  return 1        coue  lt  lt  Device Eeer HE    YModule  module   yFirstModule       while  module    NULL     couci   lt  Eeer erte e As  cout  lt  lt  module  gt get productName     lt  lt  endl        www yoctopuce com    53    9  Utilisation du Yocto Servo en C         module   module  gt nextModule           ret
83. 00mA 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  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 panne
84. F7  and click on the  Save button     Serial   SERVORC1 004F7  Product name  Yocto Servo  Firmware 3375  ugrade    Logical name       Luminosity   I  signal leds only   Device s functions    Each function of the device have two names  a physical name anda  logical name  You can change the logical name using the rename  button    SERVORC1 004F7 servot   rename   SERVORC1 004F7 servo2   rename   SERVORC1 004F7 servo3    SERVORC1 004F7 servo4   SERVORC1 004F7 servo5    SERVORC1 004F7 dualPower   rename                 Servos power control    You can chose how the servo motors are powered  and remenber   you are not supposed to draw more than 500mA from an USB port     Power Mode   Automatic EI      Save     Cancel      Configuration du module Yocto Servo        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       10    www yoctopuce com    3  Premiers pas       modules Yoctopuce se pr  sentent sous la forme de fichiers  byn et peuvent   tre t  l  charg  s depuis  le site web de Yoctopuce     Pour mettre    jour un firmware  cliquez simplement sur le bouton upgrade de la fen  tre de  configuration et suivez les instructions  Si pour une raison ou une autre  la mise    jour venait a    chouer  d  branchez puis rebranchez le module  Recommencer la proc  dure devrait r  soudre alors  le probl  me  Si le module a   t   d  b
85. LAUNCHER    gt     lt  intent filter gt      lt meta data  android name  android hardware usb action USB DEVICE ATTACHED     android  resource   xml device filter    gt    lt  activity gt    lt  application gt      lt  manifest gt     Le fichier XML qui contient la liste des modules qui peuvent lancer l application doit   tre sauv   dans  le r  pertoire res xml  Ce fichier contient une liste de vendorld et devicelD USB en d  cimal   L exemple suivant lance l application d  s qu un Yocto Relay ou un Yocto PowerRelay est connect     Vous pouvez trouver le vendorld et deviceld des modules Yoctopuce dans la section caract  ristiques    de la documentation      lt  xml version  1 0  encoding  utf 8   gt      lt resources gt    lt usb device vendor id  9440  product id  12    gt    lt usb device vendor id  9440  product id  13    gt    lt  resources gt        www yoctopuce com 99    16  Utilisation du Yocto Servo avec Android       16 5  Contr  le de la fonction Servo    Il suffit de quelques lignes de code pour piloter un Yocto Servo  Voici le squelette d un fragment de  code Java qui utilise la fonction Servo     seal        On r  cup  re l objet repr  sentant le module  ici connect   en local sur USB   YAPI EnableUSBHost  this     YAPI RegisterHub   usb      servo   YServo FindServo   SERVORC1 123456 servol         Pour g  rer le hot plug  on v  rifie que le module est la  if  servo isOnline          Use servo set position          est    Voyons maintenant en d  tail ce que font
86. Nombre entier    lecture seule  modifiable  lecture seule    servo      Servo  servo2   Servo  servo3   Servo  servo4   Servo  servos   Servo    attribut type modifiable    logicalName Texte modifiable  advertisedValue Texte lecture seule  position Nombre entier modifiable  range 0  100  modifiable  neutral 0  65000  us  modifiable  move Agr  gat modifiable    5 3  Interface de contr  le du module    Cette interface est la m  me pour tous les modules USB de Yoctopuce  Elle permet de contr  ler les  param  tres g  n  raux du module  et d   num  rer les fonctions fournies par chaque module   productName   Cha  ne de caract  res contenant le nom commercial du module  pr  programm   en usine     serialNumber    Chaine de caract  res contenant le num  ro de s  rie  unique et pr  programm   en usine  Pour un  module Yocto Servo  ce num  ro de s  rie commence toujours par SERVORC1  Il peut servir comme  point de d  part pour acc  der par programmation a un module particulier        www yoctopuce com 19    5  Programmation  concepts g  n  raux       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 
87. ON              servo   get_functionDescriptor            Retourne un identifiant unique de type YF UN_DESCR correspondant a la fonction     servo   get_functionld    Retourne l identifiant mat  riel du servo  sans r  f  rence au module     servo   get_hardwareld               Retourne l identifiant mat  riel unique du servo au format SERTAL FUNCTIONID                    servo   get_logicalName    Retourne le nom logique du servo     servo   get_module    Retourne l objet YModule correspondant au module Yoctopuce qui h  berge la fonction     servo   get module async callback  context        Retourne l objet YModule correspondant au module Yoctopuce qui h  berge la fonction        188 www yoctopuce com    19  R  f  rence de l API de haut niveau       servo   get_neutral    Retourne la dur  e en microsecondes de l impulsion correspondant au neutre du servo     servo   get_position    Retourne la position courante du servo     servo   get_range    Retourne la plage d utilisation du servo     servo   get_userData         Retourne le contenu de l attribut userData  pr  c  demment stock      l aide de la m  thode set_userData   servo   isOnline    V  rifie si le module h  bergeant le servo est joignable  sans d  clencher d erreur     servo   isOnline_async callback  context   V  rifie si le module h  bergeant le servo est joignable  sans d  clencher d erreur     servo   load msValidity   Met en cache les valeurs courantes du servo  avec une dur  e de validit   sp  cifi  e     servo
88. Online_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           174 www yoctopuce com    19  R  f  rence de l API de haut niveau       module   load   YModule  Met en cache les valeurs courantes du module  avec une dur  e de validit   sp  cifi  e     function load  msValidity    function load  msValidity    function load   msValidity    YRETCODE load  int msValidity      YRETCODE  load    int  msValidity   function load  msValidity  integer   YRETCODE   function load  ByVal msValidity As Integer  As YRETCODE  YRETCODE load
89. Reboot  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           186 www yoctopuce com    19  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  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 187    19  R  f  rence de l API de haut niveau       19 3  Interface de 
90. 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 241    19  R  f  rence de l API de haut niveau       dualpower    load_async   YDualPower    Met en cache les valeurs courantes du contr  le d alimentation  avec une dur  e de validit   sp  cifi  e     function load_async  msValidity  callback  context   function load_async  msValidity  callback  context     Par d  faut  lorsqu on acc  de    un module  tous les attributs des fonctions du module sont  automatiquement mises en cache pour la dur  e standard  5 ms   Cette m  thode peut   tre utilis  e pour  marquer occasionellement les donn  es cach  es comme valides pour une plus longue p  riode  par  exemple dans le but de r  duire le trafic r  seau     Cette version asynchrone n existe qu en Javascript  Elle utilise une fonction de callback plut  t qu une  simple valeur de retour  pour   viter de bloquer la machine virtuelle Javascript avec une attente active        Param  tres    msValidity un entier correspondant    la dur  e de validit   attribu  e aux les param  tres charg  s  en  millisecondes    callback fonction de callback qui sera appel  e d  s que le r  sultat sera connu  La fonction callback  re  oit trois arguments  le contexte fourni par l appelant  l objet fonction concern   et le code    d erreur  ou YAPT_ SUCCESS           context contexte fourni par l appelant  et qui sera pass   tel quel    la f
91. VALUE INVALID  etc  Dans  tous les cas  la valeur retourn  e sera du type attendu  et ne sera pas un pointeur nul qui risquerait  de faire crasher votre programme  Au pire  si vous affichez la valeur sans la tester  elle sera hors du  cadre attendu pour la valeur retourn  e  Dans le cas de fonctions qui ne retournent    priori pas  d information  la valeur de retour sera YAPI SUCCESS si tout va bien  et un code d erreur diff  rent  en cas d   chec                                   T                   Quand vous travaillez sans les exceptions  il est possible d obtenir un code d erreur et un message  expliquant l origine de l erreur en le demandant    l objet qui a retourn   une erreur    l aide des  m  thodes errType   et errMessage    Ce sont les m  me informations qui auraient   t    associ  es    l exception si elles avaient   t   actives        48 www yoctopuce com    9  Utilisation du Yocto Servo en C      Le C   n est pas le langage le plus simple    ma  triser  Pourtant  si on prend soin    se limiter aux  fonctionnalit  s essentielles  c est un langage tout    fait utilisable pour des petits programmes vite  faits  et qui a l avantage d   tre tr  s portable d un syst  me d exploitation    l autre  Sous Windows  tous  les exemples et les mod  les de projet sont test  s avec Microsoft Visual Studio 2010 Express   disponible gratuitement sur le site de Microsoft 1  Sous Mac OS X  tous les exemples et les mod  les  de projet sont test  s avec XCode 4  disponible sur l App
92. YAPI 138   Sources 85   Support  s 111    T    Test 9  triggerFirmwareUpdate  YModule 185    U    UnregisterHub  YAPI 139  UpdateDeviceList  YAPI 140  UpdateDeviceList_async  YAPI 141    V    Variateur 14  Virtual 97  111  Visual 63  71  VisualBasic 63    W    wait_async  YDualPower 247  wait_async  YModule 186  wait_async  YServo 218    Y    YAPI 133 141    yCheckLogicalName 119   yDisableExceptions 120   YDualPower 221 247   yEnableExceptions 121   yEnableUSBHost 122   yFindDualPower 221   yFindModule 145   yFindServo 189   yFirstDualPower 222   yFirstModule 146   yFirstServo 190   yFreeAPI 123   yGetAPIVersion 124   yGetTickCount 125   yHandleEvents 126   ylnitAPI 127   YModule 145 186   Yocto Servo 19  27  31  39  49  57  63  71  79   85  91  97   yPreregisterHub 128   yRegisterDeviceArrivalCallback 129   yRegisterDeviceRemovalCallback 130   yRegisterHub 131   yRegisterHubDiscoveryCallback 133   yRegisterLogFunction 134   ySelectArchitecture 135   YServo 189 218   ySetDelegate 136   ySetTimeout 137   ySleep 138   yUnregisterHub 139   yUpdateDeviceList 140   yUpdateDeviceList_async 141    
93. YServo  YServo FirstServo   YServo FirstServo   def FirstServo       Utiliser la fonction YServo nextServo   pour it  rer sur les autres servo     Se es ee       Retourne      un pointeur sur un objet YServo  correspondant    le premier servo accessible en ligne  ou null siiln ya  pas de servo disponibles           www yoctopuce com 191    19  R  f  rence de l API de haut niveau       servo   describe   YServo                            Retourne un court texte d  crivant le servo au format TYPE  NAME   SERIAL FUNCTIONID      js  function describe      nodejs  function describe      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  
94. Yocto Servo  Mode d emploi    Table des mati  res    Wo lte De d Le M nn us ante erie 1  EN E Ode EE 2  1 2  Accessoires optionnels Fstop aa a anea e E pE it queues 3  2  Pr  sentation E 5  2 1  Les 6lements COMMUNS  Hassan mnt dinde einen 5  TREIE ele TE 6  Jy PRCMIGES DAS ege  9  3 1 1L0CAlISAtION  idee deser etd ce eee tei fe eee ean eae ee 9  3 2  VESUOUIMOGUIGY Siren Shi usine Sante A E AANE 9  3 3  CONTIQUIATION  5 rester h E dees eee nie  eerste 10  4  Montage et connectique oan  cece cece estes eseesesneeseseeseseeseeaessseseesesuseneaeesteaeeass 13  AAS FIXATION seen een ane rene A ren reine  13  4 25 ELE 14  4 3  Utilisation d un variateur de mod  lisme      14  4 4  Contraintes d alimentation par USB ss 15  5  Programmation  concepts g  n  raux oo    esssesseesseeseesseestesseesseeseesseesees 17  5 1  Paradigme de programmation sise 17  52  Le  module lee GT ME 19  5 3  Interface de contr  le du module is 19  5 4  Interface de contr  le de l alimentation      20  5 5  Interface de la fonction Servo sisi 21  5 6  Quelle interface  Native  DLL ou Service  ooo    cece ccccceccccseceececeseeeeceeeesueeeeeeeueeeeeeeeeuaeeeeens 22  5 7  Programmation  par o   commencer  iii 24  6  Utilisation du Yocto Servo en ligne de commande    27  BL Installation   a ech ts SERA rente et nan etait nent et annales ten 27  6 2  Utilisation  description g  n  rale is 27  6 3  Contr  le de la fonction Servo AEN 28  6 4  Contr  le de la partie module sisi 28    GB Sz Bun DE EE EEN 29    7
95. Yoctopuce et t  l  chargez le programme Virtual Hub  Il est disponible  pour Windows  Linux et Mac OS X  En temps normal le programme Virtual Hub sert de couche  d abstraction pour les langages qui ne peuvent pas acc  der aux couches mat  rielles de votre  ordinateur  Mais il offre aussi une interface sommaire pour configurer vos modules et tester les  fonctions de base  on acc  de    cette interface    l aide d un simple browser web    Lancez le Virtual  Hub en ligne de commande  ouvrez votre browser pr  f  r   et tapez l adresse http   127 0 0 1 4444   Vous devriez voir appara  tre la liste des modules Yoctopuce raccord  s    votre ordinateur              Logical Name Description Action  VirtualHub  configure   view log file   Yocto Servo  configure 1   view log file   beacon         el      Show device functions      Liste des modules telle qu elle appara  t dans votre browser     3 1  Localisation    Il est alors possible de localiser physiquement chacun des modules affich  s en cliquant sur le bouton  beacon  cela a pour effet de mettre la Yocto Led du module correspondant en mode  balise   elle se  met alors    clignoter ce qui permet de la localiser facilement  Cela a aussi pour effet d afficher une  petite pastille bleue    l   cran  Vous obtiendrez le m  me comportement en appuyant sur le Yocto   bouton d un module     3 2  Test du module    La premi  re chose    v  rifier est le bon fonctionnement de votre module  cliquez sur le num  ro de  s  rie correspondant    v
96. _beacon    module beacon      Retourne l   tat de la balise de localisation      _is  function get_beacon      node js   function get_beacon      php _  function get_beacon     Y_BEACON_enum get_beacon       Y_BEACON_enum  beacon      pas   function get_beacon     Integer  function get_beacon    As Integer  int get_beacon      int get_beacon      def get_beacon      YModule target get_beacon    Retourne    soit Y_BEACON_OFF  soit Y_BEACON_ON  selon l   tat de la balise de localisation    En cas d erreur  d  clenche une exception ou retourne Y_BEACON_INVALID     YModule          154    www yoctopuce com    19  R  f  rence de l API de haut niveau       module   get_errorMessage   YModule  module   errorMessage      Retourne le message correspondant    la derni  re erreur survenue lors de l utilisation de l objet  module     function get_errorMessage      function get_errorMessage      function get_errorMessage      string get_errorMessage       NSString   errorMessage   function get_errorMessage     string  function get_errorMessage    As String  string get_errorMessage      String get_errorMessage      def get_errorMessage       Cette m  thode est principalement utile lorsque la librairie Yoctopuce est utilis  e en d  sactivant la  gestion des exceptions     Retourne    une chaine de caract  res correspondant au message de la derni  re erreur qui s est produit lors de    l utilisation du module          www yoctopuce com 155    19  R  f  rence de l API de haut niveau       mod
97. 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 ou  C est tout  il ne vous reste plus qu    brancher votre Yocto Servo   ouvrir un shell et commencer    travailler en tapant par exemple     YServo any move 1000 2000    Sous Linux  pour utiliser l API en ligne de commande  vous devez soit   tre root  soit d  finir une r  gle  udev pour votre syst  me  Vous trouverez plus de d  tails au chapitre Probl  mes courants     6 2  Utilisation  description g  n  rale    Tous les ex  cutables de la l API en ligne de commande fonctionnent sur le m  me principe  ils  doivent   tre appel  s de la mani  re suivante     Executable  options   cible  commande  param  tres     Les  options  g  rent le fonctionnement global des commandes   elles permettent par exemple de  piloter des modules    distance    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 yo
98. ages courants dans la m  moire non volatile du module     function saveToFlash      function saveToFlash      function saveToFlash        cpp  nt saveToFlash        int  saveToFlash     pas   function saveToFlash     Longint    vb   function saveToFlash    As Integer     oe  Int saveToFlash        java  int saveToFlash      def saveToFlash      YModule target saveToFlash    YModule    Attention le nombre total de sauvegardes possibles durant la vie du module est limit    environ 100000    cycles   N appelez pas cette fonction dans une boucle        Retourne      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           180    www yoctopuce com    19  R  f  rence de l API de haut niveau       module    gt set_beacon    module   setBeacon      Allume ou   teint la balise de localisation du module     function set_beacon  newval    function set_beacon  newval    function set_beacon   newval    int set_beacon  Y_BEACON_enum newval     int  setBeacon    Y_BEACON_enum  newval  function set_beacon  newval  Integer   integer  function set_beacon  ByVal newval As Integer  As Integer  int set_beacon  int newval    int set_beacon  int newval    def set_beacon  newval    YModule target set_beacon newval    Param  tres    newval soit Y_BEACON_ OFF  soit Y_BEACON_ ON    Retourne    YAPI_SUCCESS si l op  ration se d  roule sans erreur        En cas d erreur  d  clenche une exception ou retourne un code d 
99. aine de caract  res correspondant au message de la derni  re erreur qui s est produit lors de  l utilisation du contr  le d alimentation           226 www yoctopuce com    19  R  f  rence de l API de haut niveau       dualpower   get_errorType   YDualPower  dualpower   errorType      Retourne le code d erreur correspondant    la derni  re erreur survenue lors de l utilisation du  contr  le d alimentation     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 contr  le    d alimentation              www yoctopuce com 227    19  R  f  rence de l API de haut niveau       dualpower   get_extVoltage   YDualPower  dualpower     gt extVoltage      Retourne la tension mesur  e sur l alimentation de puissance externe  en millivolts     function get_extVoltage      function get_extVoltage      function get_extVoltage      int get_extVoltage        int  extVoltage     pas   function get_extVoltage     Longint    v _  function get_extVoltage    As Integer  int get_extVoltage      int get_extVoltage      def get_extVoltage      YDualPower targ
100. aire 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 choses l une     e Si vo
101. ais d  sallouer ces objets vous m  me  Ils seront d  sallou  s  automatiquement par l API    la fin de l application     13 1  Pr  paration    Connectez vous sur le site de Yoctopuce et t  l  chargez la la librairie Yoctopuce pour Delphi      D  compressez le tout dans le r  pertoire de votre choix  et ajoutez le sous r  pertoire sources de  l archive dans la liste des r  pertoires des librairies de Delphi        Par d  faut la librairie Yoctopuce pour Delphi utilise une DLL yapi di   toutes les applications que vous  cr  erez avec Delphi devront avoir acc  s    cette DLL  Le plus simple est de faire en sorte qu elle soit  pr  sente dans le m  me r  pertoire que l ex  cutable de votre application     13 2  Contr  le de la fonction Servo    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  3 www yoctopuce com FR libraries php  4 Utilisez le menu outils   options d environement       www yoctopuce com 79    13  Utilisation du Yocto Servo en Delphi       Ee  yocto api   yocto servo     procedure Eet       var  execname string   beg
102. 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 249    20  Probl  mes courants       sc  nario vous convient il suffit de copier le fichier  51 yoctopuce group rules  dans le  r  pertoire   etc udev rules d  et de red  marrer votre syst  me       udev rules to allow write access to all users of  yoctogroup     for Yoctopuce USB devices  SUBSYSTEM   usb   ATTR idVendor    24e0   MODE  0664   GROUP  yoctogroup     20 2  Plateformes ARM  HF et EL 
103. allback est enregistr    le callback sera  appel   pour chacun de ces modules d  j   branch  s     D  clenchement des callbacks   Un probl  me classique de la programmation par callbacks est que ces callbacks peuvent   tre  appel  s n importe quand  y compris    des moments o   le programme principal n est pas pr  t    les  recevoir  ce qui peut avoir des effets de bords ind  sirables comme des dead locks et autres  conditions de course  C est pourquoi dans l API Yoctopuce  les callbacks d arriv  e d  parts de  modules ne sont appel  s que pendant l ex  cution de la fonction UpdateDeviceList     Il vous  suffit d appeler UpdateDeviceList      intervalle r  gulier depuis un timer ou un thread  sp  cifique pour controller pr  cis  ment quand les appels    ces callbacks auront lieu        boucle d attente g  rant les callback   while  true          callback d arriv  e   d  part de modules  YAPI UpdateDeviceList ref errmsg       attente non active g  rant les autres callbacks  YAPI Sleep 500  ref errmsg          De mani  re similaire  il est possible d avoir un callback quand un module est d  branch    Vous  trouverez un exemple concret d  montrant toutes ces techniques dans la librairie de programmation  Yoctopuce de chaque langage  L exemple se trouve dans le r  pertoire Examples Prog EventBased     Attention  dans la plupart des langages  les callbacks doivent   tre des proc  dures globales  et non  pas des m  thodes  Si vous souhaitez que le callback appelle une m  thode d un
104. alpower   set_logicalName newval    Modifie le nom logique du contr  le d alimentation   dualpower   set_powerControl newval    Modifie le mode d alimentation choisi pour les fonctions du module consommant beaucoup de courant   dualpower   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        dualpower   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 221    19  R  f  rence de l API de haut niveau       YDualPower FindDualPower   YDualPower  yFindDualPower      Permet de retrouver un contr  le d alimentation d apr  s un identifiant donn       function yFindDualPower  func     node js  function FindDualPower  func    function yFindDualPower   func    YDualPower  yFindDualPower  const string amp  func   YDualPower  yFindDualPower  NSString  func    function yFindDualPower  func  string   TYDualPower   function yFindDualPower  ByVal func As String  As YDualPower  Y DualPower FindDualPower  string func    YDualPower FindDualPower  String func    def FindDualPower  func     L identifiant peut   tre sp  cifi   sous plusieurs formes     e NomLogiqueFonction   e NoSerieModule  dentifiantFonction   e NoSerieModule NomLogiqueFonction   e NomLogiqueModule ldentifiantMat  riel   e NomLogiqueModule NomLogiqueFonction    Cett
105. ame 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 145    19  R  f  rence de l API de haut niveau       YModule FindModule   YModule  yFindModule      Permet de retrouver un module d apr  s son num  ro de s  rie ou son nom logique     function yFindModule  func     node js   function FindModule  func    function yFindModule   func    YModule  yFindModule  string func      YModule   yFindModule    NSString   func   function yFindModule  func  string   TYModule   function yFindModule  ByVal func As String  As YModule  Y Module FindModule  string func      java   YModule FindModule  String func    def FindModule  func     Cette fonction n exige pas que le module soit en ligne au moment ou elle est appel  e  l objet retourn    sera n  anmoins valide  Utiliser la m  thode YMod
106. antit que la sauvegarde des r  glages se passera correctement  Cette limite   li  e    la technologie employ  e par le micro processeur du module se situe aux alentour de 100000  cycles  Pour r  sumer vous ne pouvez employer la fonction YModule saveToFlash   que  100000 fois au cours de la vie du module  Veillez donc    ne pas appeler cette fonction depuis  l int  rieur d une boucle     Enumeration des modules    Obtenir la liste des modules connect  s se fait a l aide de la fonction YModule  yFirstModule     qui renvoie le premier module trouv    il suffit ensuite d appeler la m  thode nextModule    de cet  objet pour trouver les modules suivants  et ce tant que la r  ponse n est pas un null Ci dessous un  petit exemple listant les module connect  s    using System    Using Systeme Collections  Generic   using System Ling    using System Text     namespace ConsoleApplicationl  class Program  static void Main string   args   i YModule m   string errmsg          if  YAPI RegisterHub  usb   ref errmsg     YAPI SUCCESS      Console WriteLine   RegisterHub error      errmsg    Environment Exit  0           Console WriteLine   Device list      m   YModule FirstModule      while  m  null1      onsolenwe rEeininer miGetesericluNumber    ONE EE DEE EN ame  m   m nextModule    F         12 5  Gestion des erreurs    Lorsque vous impl  mentez un programme qui doit interagir avec des modules USB  vous ne pouvez  pas faire abstraction de la gestion des erreurs  Il y aura forc  ment une oc
107. au connecteur d alimentation externe sera directement transmise  aux servos  Cela signifie que si vous appliquez du 5V  les servos seront aliment  s en 5V  si vous  appliquer du 6V  les servos seront aliment  s en 6V    V  rifiez que vous utiliser une tension  compatible avec vos servos     Le module supporte quatre modes d alimentation    Eteint  Dans ce mode  La logique du module fonctionne mais les servos ne sont tout simplement pas  aliment  s  et ne peuvent pas fonctionner    USB   De ce mode  les servos ne sont aliment  s que par le port USB  cela signifie qu il ne dispose que de  500mA si on d  cide de se conformer aux sp  cification USBs  2A si on est un peu joueur  Dans tout  les cas c est tr  s peu pour un servo  mais largement suffisant pour contr  ler un variateur par  exemple  Rapellez vous que si port USB se voit d  biter plus de 2 amp  res  soit l ordinateur qui le  contr  le est bien con  u et il d  sactivera le port en question  soit il ne l est pas et l   lectronique de  contr  le du port risque de griller     En pratique  cela signifie si votre module Yocto Servo n est aliment   que par USB  vous ne pourrez    probablement pas faire fonctionner plusieurs servos    la fois  sous peine de voir le module de  d  connecter  Il est difficile de pr  voir avec certitude comment se comportera votre module avec    plusieurs servos s il n est aliment   que par USB  car cela d  pend    la fois du mod  le de servo et de  l alimentation USB de votre ordinateur  Le plus s
108. b 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          134 www yoctopuce com    19  R  f  rence de l API de haut niveau       YAPI RegisterLogFunction   YAPI  yRegisterLogFunction      Enregistre une fonction de callback qui sera appell  e a chaque fois que l API a quelque chose a  dire     void yRegisterLogFunction  yLogFunction logfun    void yRegisterLogFunction  yLogCallback logfun    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 135    19  R  f  rence de l API de haut niveau       YAPI SelectArchitecture   YAPI  ySelectArchitecture      S  lectionne manuellement l architecture de la libraire dynamique a utiliser pour acc  der a USB     def SelectArchitecture  arch     Par d  faut  la libraire Python d  tecte automatiquement la version de la libraire dynamique    utiliser  pour acc  der au port USB  Sous Linux ARM il n est pas possible de d  tecter de mani  re fiable si il  s agit d une installation Soft float  armel  ou Hard floa
109. bCurrent      mA     Writeln  Logs S H  Writeln module get lastlogs      Writeln       Writeln  r   refresh   b beacon ON   space   beacon off      end   else Writeln  Module not connected  check identification and USB cable        end        www yoctopuce com 81    13  Utilisation du Yocto Servo en Delphi       procedure beacon  module Tymodule state integer    begin  module set_beacon  state     refresh  module       end   var  module   TYModule   E enay  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       repedt  read c    case    of   r   refresh  module     b   beacon module Y BEACON ON      Ir beacon module Y BEACON OFF    end   Cnt a   a   end     Chaque propri  t   xxx du module peut   tre lue grace    une m  thode du type get_xxxx    et les  propri  t  s qui se sont pas en lecture seule peuvent   tre modifi  es    l aide de la m  thode set xxx     Pour plus de d  tails concernant ces fonctions utilis  es  reportez vous aux chapitre API    Modifications des r  glages du module    Lorsque que vous souhaitez modifier les r  glages d un module  il suffit d appeler la fonction  set _xxx   correspondante  cependant cette modification n a lieu que dans la m  moire vive du  module  si le module red  marre  les modifications seront perdues  Pour qu elle soient m  moris  es  de mani  
110. back 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 213    19  R  f  rence de l API de haut niveau       servo   set_logicalName   YServo  servo   setLogicalName      Modifie le nom logique du servo     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    YServo 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 repr  sentant le nom logique du servo     Retourne    YAPI_ SUCCESS si l appel se d  roule sans erreur  En cas d erreur  d  clenche une exception ou retourne  un code d erreur n  gatif              214 www yoctopuce com    19  R
111. bjet YModu le correspondant au module Yoctopuce qui h  berge la fonction     dualpower   get module async callback  context        Retourne l objet YModu le correspondant au module Yoctopuce qui h  berge la fonction   dualpower   get_powerControl    Retourne le mode d alimentation choisi pour les fonctions du module consommant beaucoup de courant     dualpower   get_powerState    Retourne la source d alimentation active pour les fonctions du module consommant beaucoup de courant     dualpower   get_userData         Retourne le contenu de l attribut userData  pr  c  demment stock      l aide de la m  thode set_userData     dualpower   isOnline    V  rifie si le module h  bergeant le contr  le d alimentation est joignable  sans d  clencher d erreur     dualpower   isOnline async callback  context   V  rifie si le module h  bergeant le contr  le d alimentation est joignable  sans d  clencher d erreur     dualpower   load msValidity   Met en cache les valeurs courantes du contr  le d alimentation  avec une dur  e de validit   sp  cifi  e     dualpower   load_async msValidity  callback  context   Met en cache les valeurs courantes du contr  le d alimentation  avec une dur  e de validit   sp  cifi  e     dualpower   nextDualPower            Continue l   num  ration des contr  les d alimentation commenc  e    l aide de yFirstDualPower      dualpower    registerValueCallback callback    Enregistre la fonction de callback qui est appel  e a chaque changement de la valeur publi  e   du
112. blanc rouge Noir  JR   Hitec   Graupner orange rouge Marron    4 3  Utilisation d un variateur de mod  lisme    Vous pouvez parfaitement utiliser le module Yocto Servo pour piloter un variateur de moteur  mais  cela n  cessite une petite pr  caution  La plupart des variateurs utilis  s en mod  lisme sont pr  vus  pour alimenter le r  cepteur par l interm  diaire du fil rouge  Si vous branchez un variateur sur le  module Yocto Servo vous devez imp  rativement couper ce fil  il n est pas du tout souhaitable que le  variateur injecte du courant dans le module par l interm  diaire des connecteurs de servos  En  revanche vous pouvez parfaitement raccorder ce fil rouge au pole positif du connecteur  d alimentation externe  le variateur servira alors d alimentation externe        Si vous d  sirez piloter un variateur  le fil rouge doit soit   tre coup    soit   tre utilis   comme alimentation externe        14 www yoctopuce com    4  Montage et connectique       4 4  Contraintes d alimentation par USB    Bien que USB signifie Universal Serial BUS  les p  riph  riques USB ne sont pas organis  s  physiquement en bus mais en arbre  avec des connections point    point  Cela a des cons  quences  en termes de distribution   lectrique  en simplifiant  chaque port USB doit alimenter   lectriquement  tous les p  riph  riques qui lui sont directement ou indirectement connect  s  Et USB impose des  limites     En th  orie  un port USB fournit 100mA  et peut lui fournir     sa guise  jusqu    5
113. buffer de 255 caract  res pour r  cup  rer un   ventuel  message d erreur     Voici un programme d exemple   crit en pascal qui utilise la DLL yapi dil pour lister les modules  connect  s        device description structure  type yDeviceSt   packed record    vendorid  gt   word   deviceid   word   devrelease Word   nbinbterfaces DA sr  manufacturer Eeer  ile sil  egener  productname Kee Ek oe ans echar  serial GE  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 EE EE  Vasmmeededsizertneeger  errmsg  pansi chani integer a cdecls  external  yapi dilil  name  yapiGetAllDevices         www yoctopuce com 115    18  Utilisation avec des langages non support  s       function apiGetDevicelnfo d integer  var infos yDevicest   errmsg   pansichar  integer  cdecl   external    yapi dill   name  yapilGetDevicelInto      var  errmsgBuffer   array  0  256  of ansichar   dataBuffer Elle EE    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  write
114. casion 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       76 www yoctopuce com    12  Utilisation du Yocto Servo en C        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 v
115. ce com    19  R  f  rence de l API de haut niveau       YAPI UpdateDeviceList   YAPI  yUpdateDeviceList      Force une mise a jour de la liste des modules Yoctopuce connect  s     function yUpdateDeviceList  errmsg    function UpdateDeviceList  errmsg    function yUpdateDeviceList   amp  errmsg    YRETCODE yUpdateDeviceList  string amp  errmsg    YRETCODE yUpdateDeviceList  NSError   errmsg    function yUpdateDeviceList  var errmsg  string   integer   function yUpdateDeviceList  ByRef errmsg As String  As YRETCODE  YRETCODE UpdateDeviceList  ref string errmsg    int 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  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 141    19  R  f  rence de l API de haut niveau       YAPI UpdateDeviceList_async   YAPI  yUpdateDeviceList_async      Force une mise a jour de
116. ch renge bereit A iON ar eener  System EE  MUSE current  EE GE    System out println  logs  n    module get lastLogs         catch  YAPI Exception ex     System out printin args 1      not connected  check identification and USB  cable          MAP EE    Chaque propri  t   xxx du module peut   tre lue gr  ce    une m  thode du type YModule get xxxx      et les propri  t  s qui se sont pas en lecture seule peuvent   tre modifi  es    l aide de la m  thode  YModule set xxx    Pour plus de d  tails concernant ces fonctions utilis  es  reportez vous aux  chapitre API    Modifications des r  glages du module    Lorsque que vous souhaitez modifier les r  glages d un module  il suffit d appeler la fonction  YModule set xxx    correspondante  cependant cette modification n a lieu que dans la m  moire  vive du module  si le module red  marre  les modifications seront perdues  Pour qu elle soient  m  moris  es de mani  re persistante  il est n  cessaire de demander au module de sauvegarder sa  configuration courante dans sa m  moire non volatile  Pour cela il faut utiliser la m  thode  YModule saveToFlash     Inversement il est possible de forcer le module    oublier ses r  glages  courants en utilisant la m  thode YModule revertFromFlash    Ce petit exemple ci dessous  vous permet changer le nom logique d un module        import com yoctopuce YoctoAPI     public class Demo      public static void main String   args      cry 4     setup the API to use local VirtualHub  YAPI RegisterHub
117. connexion suppl  mentaire  Le module est capable de mesurer la tension fournie par l alimention  externe et de la couper automatiquement s il d  tecte que sa tension devient trop basse  Ce manuel  d  crit essentiellement comment piloter des servo moteurs de mod  lisme avec votre module Yocto   Servo  mais il va de soit que vous pouvez parfaitement utiliser votre module pour piloter d autres  dispositifs couramment utilis  s en mod  lisme comme des variateurs de vitesse  des contr  leurs de  lumi  res    etc        Le module Yocto Servo    Yoctopuce vous remercie d avoir fait l acquisition de ce Yocto Servo 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 Servo 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 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 support yoctopuce com       www yoctopuce com    1  Introduction       1 1  Pr  requis    Pour pouvoir profiter pleinement de votre module Yocto Servo  vous devriez disposer des   l  ments  suivants    
118. criptor  YServo 196  get_functionid  YDualPower 230  get_functionid  YServo 197  get_hardwareld  YDualPower 231  get_hardwareld  YModule 157  get_hardwareld  YServo 198  get_icon2d  YModule 158  get_lastLogs  YModule 159  get_logicalName  YDualPower 232  get_logicalName  YModule 160  get_logicalName  YServo 199  get_luminosity  YModule 161   get_ module  YDualPower 233   get_ module  YServo 200   get module async  YDualPower 234  get module async  YServo 201  get_neutral  YServo 202  get_persistentSettings  YModule 162  get_position  YServo 203  get_powerControl  YDualPower 235  get_powerState  YDualPower 236  get_productld  YModule 163  get_productName  YModule 164  get_productRelease  YModule 165  get_range  YServo 204    get_rebootCountdown  YModule 166  get_serialNumber  YModule 167  get_upTime  YModule 168  get_usbBandwidth  YModule 169  get_usbCurrent  YModule 170  get_userData  YDualPower 237  get_userData  YModule 171  get_userData  YServo 205  GetAPIVersion  YAPI 124  GetTickCount  YAPI 125    H    HandleEvents  YAPI 126  HTTP 44  111  Hub 97    InitAPI  YAPI 127   Installation 27  63  71  Int  gration 54   Interface 143  188  220  Introduction 1   isOnline  YDualPower 238  isOnline  YModule 172  isOnline  YServo 206  isOnline_async  YDualPower 239  isOnline_async  YModule 173  isOnline_async  YServo 207    J    Java 91  Javascript 31    L    Langages 111   Librairie 54  85  116  Librairies 113   Limitations 29   Linux 249   load  YDualPower 240  load  YModule 174   
119. cto Servo avec le num  ros de  s  rie SERVORC1 123456 que vous auriez appel    MonModule  et dont vous auriez nomm   la  fonction servo1  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 servo   yFindServo   SERVORC1 123456 servol     var servo   yFindServo   SERVORC1 123456 MaFonction              var servo yFindServo   MonModule servol             var servo yFindServo   MonModule MaFonction      var servo   yFindServo  MaFonction        lt      yFindServo renvoie un objet que vous pouvez ensuite utiliser    loisir pour contr  ler le servo     isOnline    La m  thode isOnline   de l objet renvoy   par yFindServo permet de savoir si le module  correspondant est pr  sent et en   tat de marche     set_position    La m  thode set position   de l objet renvoy   par yFindServo permet de d  placer le plus  rapidement possible le servo vers la position sp  cifi  e  Le point milieu correspond    la valeur 0  et  les deux extr  mit  s correspondent aux valeurs  1000 et 1000     move  La m  thode move    de l objet renvoy   par yFindServo permet d effectuer le d  placement vers  une position d  sir  e en un intervalle de temps contr  l    sp  cifi   en millisecondes     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 favor
120. ctopuce com 27    6  Utilisation du Yocto Servo 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 d une commande     6 3  Contr  le de la fonction Servo    Pour contr  ler la fonction Servo de votre Yocto Servo  vous avez besoin de l ex  cutable YServo     Vous pouvez par exemple lancer   YServo any move 1000 2000    Cet exemple utilise la cible  any  pour signifier que l on d  sire travailler sur la premi  re fonction  Servo trouv  e parmi toutes celles disponibles sur les modules Yoctopuce accessibles au moment de  l ex  cution  Cela vous   vite d avoir    conna  tre le nom exact de votre fonction et celui de votre  module     Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez pr  alablement  configur  s  Imagi
121. dans le debugger  vous pourrez relativement facilement d  terminer  o   le probl  me s est produit  et voir le message explicatif li      l exception    e Sinon    l exception va crasher votre programme  boum     Comme cette derni  re situation n est pas la plus souhaitable  la librairie Yoctopuce offre une autre  alternative pour la gestion des erreurs  permettant de faire un programme robuste sans devoir  attraper les exceptions    chaque ligne de code  Il suffit d appeler la fonction  yDisableExceptions    pour commuter la librairie dans un mode ou les exceptions de chaque  fonction sont syst  matiquement remplac  es par des valeurs de retour particuli  res  qui peuvent   tre  test  es par l appelant lorsque c est pertinent  Le nom de la valeur de retour en cas d erreur pour  chaque fonction est syst  matiquement 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           
122. de 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           172 www yoctopuce com    19  R  f  rence de l API de haut niveau       module    isOnline      V  rifie si le module est joignable  sans d  clencher d erreur     function isOnline      node js  function isOnline      function isOnline      bool isOnline        BOOL  isOnline   function isOnline     boolean  function isOnline    As Boolean  bool isOnline      boolean isOnline      def isOnline       YModule    Si les valeurs des attributs du module en cache sont valides au moment de l appel  le module est  consid  r   joignable  Cette fonction ne cause en aucun cas d exception  quelle que soit l erreur qui    pourrait se produire lors de la v  rification de joignabilit       Retourne      true sile module est joignable  false sinon          www yoctopuce com    173    19  R  f  rence de l API de haut niveau       module   isOnline asynce   YModule    V  rifie si le module est joignable  sans d  clencher d erreur      _is  function isOnline_async  callback  context    node js  function is
123. 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  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        144 www yoctopuce com    19  R  f  rence de l API de haut niveau       Allume ou   teint la balise de localisation du module   module   set_logicalN
124. der 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   CO CE Ce UT EE ees  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 erue  UREGisterhulonem rains H EEA Er rms og   m   YModule FindModule sys argv 1     use serial or logical name    Ee    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  Moduler serial      m get_serialNumber       name      m get_logicalName       else     sys exiit unor connected  check identification and USB cable     Attention  le nombre de cycles d   criture de la m  moire non volatile du module est limit    Pass   cette  limite plus rien ne garantit que la sauvegarde des r  glages se passera correctement  Cette limite   li  e    la technologie employ  e par le micro processeur du module se situe aux alentour de 100000  cycles  Pour r  sumer vous ne pouvez employer la fonction YModule saveToFlash   que  100000 
125. droid       String hwid   parent getltemAtPosition pos  toString       servo   YServo FindServo  hwid        Override  public void onNothingSelected  AdapterView lt   gt  arg0            Called when the user touches the button State A     public void updatePos  View view   if  servo    null   TENTUNE  SeekBar bar    SeekBar  findViewById  R id seekBarPos    int newpow   bar getProgress     2000   bar getMax     1000   switch  view getId       case R id movePosButton   try 4    servo move newpow  1000    catchy EE ronie   e printStackTrace          break    case R id setPosButton    bry    servo set position  newpow      He Cale hia DEE eener 2  e printStackTrace           break     16 6  Contr  le de la partie module    Chaque module peut   tre contr  l   d une mani  re similaire  vous trouverez ci dessous un simple  programme d exemple affichant les principaux param  tres d un module et permettant d activer la    balise de localisation     package com yoctopuce doc examples     import android app Activity    import android os Bundle    import android 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
126. e        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              166 www yoctopuce com    19  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 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 167    19  R  f  rence de l API de haut niveau       module  gt get_serialNumber    module    serialNumber      Retourne le num  ro de s  rie d
127. e      string get_logicalName       NSString   logicalName   function get_logicalName     string  function get_logicalName    As String  string get_logicalName      String get_logicalName      def get_logicalName      YServo target get_logicalName    Retourne    une cha  ne de caract  res repr  sentant le nom logique du servo  En cas d erreur  d  clenche une exception    ou retourne Y_LOGICALNAME_ INVALID              200 www yoctopuce com    19  R  f  rence de l API de haut niveau       servo   get_module   YServo  servo   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 201    19  R  f  rence de l API de haut niveau       servo   get_ module async   YServo  servo   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 a
128. e  text JavaScript  gt    Sh       Setup the API to use the VirtualHub on local machine   if  yRegisterHub  http   127 0 0 1 4444       VAPI SUCCESS     alene MGannor contact Vireual Hub on 1270m Iti        varn Hl  SES  function refresh            Var Serial   document gethilementByid  serrall     value     if  serial    Iy  f     Detect any conected module suitable for the demo  sl   yFirstServo     LESTO  seriali  si module kge sertalNumber     document  getElementById   serial   value   serial         sl   yFindServo serial   servol     s5   yFindServo serial   servos     desm Onlinen  i  document getElementByidi msg   value          else    document  getElementBylId  msg   value    Module not connected        setTimeout   refresh    500           function moveTo  pos         Show two different types of move    siset IPOS ition  POS    Movie tas Fast as ess ible  s5 move  pos  3000       move in 3 seconds        gt   SERPET   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 a href  javascript moveTo  1000    gt Move to position  1000 lt  a gt  lt br gt    lt a href  javascript moveTo  500     gt Move to position  500 lt  a gt  lt br gt    lt a href  javascript moveTo 0     gt Move to center position lt  a gt  lt br gt    lt a href  javascript moveTo 500     gt Move to position  500 lt  a gt  lt br gt    lt a href  javascript moveTo 1000     gt Move to p
129. e d appeler la mehode nextModule    de cet  objet pour trouver les modules suivants  et ce tant que la r  ponse n est pas un null Ci dessous un  petit exemple listant les module connect  s    package com yoctopuce doc examples     import android app Activity    import android os Bundle    import android view View    import android widget LinearLayout   import android widget TextView     import com yoctopuce YoctoAPI YAPI   import com yoctopuce YoctoAPI YAPI Exception   import com yoctopuce YoctoAPI YModule     public class Inventory extends Activity          Override  public void onCreate  Bundle savedInstanceState      super onCreate  savedinstanceState    setContentView R layout inventory           public void refreshInventory  View view        LinearLayout layout    LinearLayout  findViewById R id inventoryList       layout  removeAl1Views         Cry     YAPI UpdateDeviceList     YModule module   YModule FirstModule       while  module    null     String line   module get serialNumber            module get productName      RA  TextView tx   new TextView this      tx setText  line    layout  addView  tx    module   module nextModule        Luet  MONEE ICG ett lt 2  er print stacktrace            Override  protected void onStart       super ONsieaust  i   et SC  YAPI EnableUSBHost  this     VAP Regusize shui iis  a   EE YAP TORx lt cepir one   c prinestackiracel t      refreshInventory  null            Override  protected void onStop       SUPEEONSitop   i   YAPI FreeAPI   
130. e d objets qui peuvent   tre retrouv  s de mani  re ind  pendante  et ce de plusieurs mani  res     Acc  s aux fonctionnalit  s d un module    Acc  s par nom logique   Chacune des fonctionnalit  s peut se voir assigner un nom logique arbitraire et persistant  il restera  stock   dans la m  moire flash du module  m  me si ce dernier est d  branch    Un objet correspondant     une fonctionnalit   Xxx munie d un nom logique pourra ensuite   tre retrouv  e directement    l aide  de ce nom logique et de la m  thode YXxx FindXxx  Notez cependant qu un nom logique doit   tre  unique parmi tous les modules connect  s     Acc  s par   num  ration   Vous pouvez   num  rer toutes les fonctionnalit  s d un m  me type sur l ensemble des modules  connect  s    l aide des fonctions classiques d   num  ration FirstXxx et nextXxxx disponibles dans  chacune des classes YXxx     Acc  s par nom hardware   Chaque fonctionnalit   d un module dispose d un nom hardware  assign   en usine qui ne peut   tre  modifi    Les fonctionnalit  s d un module peuvent aussi   tre retrouv  es directement    l aide de ce  nom hardware et de la fonction YXxx FindXxx de la classe correspondante     Diff  rence entre Find et First   Les m  thodes YXxx FindXxxx et YXxx FirstXxxx ne fonctionnent pas exactement de la m  me  mani  re  Si aucun module n est disponible YXxx FirstXxxx renvoie une valeur nulle  En revanche   m  me si aucun module ne correspond  YXxx FindXxxx renverra objet valide  qui ne sera pas  online   
131. e 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        90 www yoctopuce com    15  Utilisation du Yocto Servo en Java    Java est un langage orient   objet d  velopp   par Sun Microsystem  Son principal avantage est la  portabilit    mais cette portabilit   a un co  t  Java fait une telle abstraction des couches mat  rielles  qu il est tr  s difficile d interagir directement avec elles  C est pourquoi l API java standard de  Yoctopuce ne fonctionne pas en natif  elle doit passer par l interm  diaire d un VirtualHub pour  pouvoir communiquer avec les modules Yoctopuce     15 1  Pr  paration    Connectez vous sur le site de Yoctopuce et t  l  chargez les   l  ments suivants     e La librairie de programmation pour Java   e Le programme VirtualHub  pour Windows  Mac OS X ou Linux selon l OS que vous utilisez    La librairie est disponible en fichier sources  mais elle aussi disponible sous la forme d un fichier jar   Branchez vos modules  D  compressez les fichiers de la librairie dans un r  pertoire de votre choix   Lancez le programme VirtualHub  et vous pouvez commencer vos premiers test  Vous n avez pas  besoin d installer de driver     Afin de les garder simples  tous les exemples fournis dans cette documentation sont des applications  consoles  Il va de soit que que le fonctionnement des librairies est strictement identiques si vous les  int  grez dans u
132. e execname   any    1000         1000      System Threading Thread Sleep 2500   End   End Sub   Sub Main     Dim argv   As String   System Environment GetCommandLineArgs     Dim errmsg As String        Dim target As String   Dim servol As YServo   Dim servo5 As YServo   Dim pos As Integer    If argv Length  lt  3 Then Usage       target   argv  1   pos   CInt  argv  2       REM Setup the APT to use local USB devices  EEy yRequsterhubi  usb  errmsg   lt  YAP ISUCEHSS   Ce     Console WriteLine   RegisterHub error      errmsg   End   End If   Ei tanger     Manya Then  servol   yFirstServo       If servol Is Nothing Then  Console WriteLine   No module connected  check USB cable   ni    End  ENAR TE  arger serye lets Module Gete NE 12i     End TE  servol   yFindServo  target     servol    servo5   yFindServo  target     servo5    If  servol isOnline    Then    servol set position  pos    servo5 move  pos  3000   Else   Console WriteLine   Module not connected  check identification and USB cable     End If       www yoctopuce com 65    11  Utilisation du Yocto Servo en VisualBasic  NET       End Sub    End Module    11 4  Contr  le de la partie module    Chaque module peut   tre contr  l   d une mani  re similaire  vous trouverez ci dessous un simple  programme d exemple affichant les principaux param  tres d un module et permettant d activer la  balise de localisation     Imports System 10  Imports System Environment    Module Modulel    Sub usage     Console WriteLine  usage  de
133. e fonction n exige pas que le contr  le d alimentation soit en ligne au moment ou elle est appel  e   l objet retourn   sera n  anmoins valide  Utiliser la m  thode YDualPower isOnline    pour tester si  le contr  le d alimentation est utilisable    un moment donn    En cas d ambigu  t   lorsqu on fait une  recherche par nom logique  aucune erreur ne sera notifi  e  la premi  re instance trouv  e sera renvoy  e   La recherche se fait d abord par nom mat  riel  puis par nom logique           Param  tres    func une cha  ne de caract  res qui r  f  rence le contr  le d alimentation sans ambigu  t      Retourne    un objet de classe YDualPower qui permet ensuite de contr  ler le contr  le d alimentation                 222 www yoctopuce com    19  R  f  rence de l API de haut niveau       YDualPower FirstDualPower   YDualPower  yFirstDualPower      Commence l   num  ration des contr  les d alimentation accessibles par la librairie     function yFirstDualPower      function FirstDualPower      function yFirstDualPower      YDualPower  yFirstDualPower     YDualPower  yFirstDualPower      function yFirstDualPower     TYDualPower  function yFirstDualPower    As YDualPower  YDualPower FirstDualPower     YDualPower FirstDualPower      def FirstDualPower       Utiliser la fonction YDualPower nextDualPower   pour it  rer sur les autres contr  les  d alimentation     Retourne    un pointeur sur un objet YDualPower  correspondant    le premier contr  le d alimentation accessible en    lig
134. e 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 servo           194 www yoctopuce com    19  R  f  rence de l API de haut niveau       servo   get_errorType   YServo  servo   errorType      Retourne le code d erreur correspondant    la derni  re erreur survenue lors de l utilisation du servo     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 servo           www yoctopuce com 195    19  R  f  rence de l API de haut niveau       servo   get_friendlyName   YServo  servo   friendlyName      Retourne un identifiant global du servo au format NOM_ MODULE  NOM_FONCTION     function get_friendlyName     function get_friendlyName     function get_friendlyName     string get_friendlyName       NSString   friendlyName  string get_friendlyName     String get_friendlyName     def get_friendlyName       Le chaine retourn  e utilise soit les noms logiques du module et du se
135. e 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 143    19  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 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 
136. e 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 valeur sans la tester  elle
137. e 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 Servo avec le num  ro de de s  rie SERVORC1 12345 et le nom logique  monModule  l URL suivante permettra de conna  tre l   tat du module     http   127 0 0 1 4444 bySerial SERVORC1 12345 api module txt    Il est bien entendu possible d utiliser le nom logique des modules plut  t que leur num  ro de s  rie     http   127 0 0 1 4444 byName monModule api module txt    Vous pouvez retrouver la valeur d une des propri  t  s d un module  il suffit d ajouter le nom de la   propri  t   en dessous de module  Par exemple  si vous souhaitez conna  tre la luminosit   des LEDs   de signalisation  il vous suffit de faire la requ  te suivante   http   127 0 0 1 4444 bySerial SERVORC1 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 SERVORC1 12345 api module luminosity 100    Contr  le des diff  rentes fonctions du
138. eCallback  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           244 www yoctopuce com    19  R  f  rence de l API de haut niveau       dualpower   set_logicalName    dualpower    setLogicalName      Modifie le nom logique du contr  le d alimentation     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    YDualPower target set_logicalName newval    YDualPower    Vous pouvez utiliser yCheckLogicalName    pour v  rifier si votre param  tre est valide  N oubl
139. envoie un objet que vous pouvez ensuite utiliser    loisir pour contr  ler le servo     4 Pensez a changer le filtre de la fen  tre de s  lection de fichiers  sinon la DLL n appara  tra pas       64 www yoctopuce com    11  Utilisation du Yocto Servo en VisualBasic  NET       isOnline   La m  thode isOnline   de l objet renvoy   par yFindServo permet de savoir si le module  correspondant est pr  sent et en   tat de marche    set_position   La m  thode set position   de l objet renvoy   par yFindServo permet de d  placer le plus  rapidement possible le servo vers la position sp  cifi  e  Le point milieu correspond    la valeur O  et  les deux extr  mit  s correspondent aux valeurs  1000 et 1000    move   La m  thode move    de l objet renvoy   par yFindServo permet d effectuer le d  placement vers  une position d  sir  e en un intervalle de temps contr  l    sp  cifi   en millisecondes    Un exemple r  el    Lancez Microsoft VisualBasic et ouvrez le projet exemple correspondant  fourni dans le r  pertoire  Examples Doc GettingStarted Yocto Servo de la librairie Yoctopuce     Vous reconnaitrez dans cet exemple l utilisation des fonctions expliqu  es ci dessus  cette fois  utilis  es avec le d  corum n  cessaire    en faire un petit programme d exemple concret     Module Modulel    Private Sub Usage          Dim execname   System AppDomain CurrentDomain FriendlyName  Console WriteLine  Usage     Consolen i terinelezecnane Cette Egaal l   E  Console EE le E HEI   Console WriteLin
140. epr  sentant la plage d utilisation du servo  en pourcents    En cas d erreur  d  clenche une exception ou retourne un code d erreur n  gatif           www yoctopuce com    217    19  R  f  rence de l API de haut niveau       servo   set_userData   YServo  servo   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             218 www yoctopuce com    19  R  f  rence de l API de haut niveau       servo   wait_async   YServo    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
141. er 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         L application se connecte au virtual hub pour connecter le module     En revanche la m  thode de contr  le par un service offre un avantage non n  gligeable  l application  n est pas n oblig   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       www yoctopuce com 23    5  Programmation  concepts g  n  raux          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 uti
142. erreur n  gatif     YModule          www yoctopuce com    181    19  R  f  rence de l API de haut niveau       module  gt set_logicalName   YModule  module   setLogicalName      Change le nom logique du module     function set_logicalName  newval    function set_logicalName  newval    function set_logicalName   newval    int set_logicalName  const string amp  newval      int  setLogicalName    NSString   newval  function set_logicalName  newval  string   integer  function set_logicalName  ByVal newval As String  As Integer  int set_logicalName  string newval    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           182 www yoctopuce com    19  R  f  rence de l API de haut niveau       module   set_luminosity   YModule  module   setLuminosity      Modifie la luminosit   des leds informatives du module     function set_luminosity  newval    function set_luminosity  newval    function set_luminosity   newval    int set_luminosity  int newval      int  setLuminosity    int  newval   function set_luminosity  newval  Longint   intege
143. es           126 www yoctopuce com    19  R  f  rence de l API de haut niveau       YAPI HandleEvents   YAPI  yHandleEvents      Maintient la communication de la librairie avec les modules Yoctopuce     function yHandleEvents  errmsg    function HandleEvents  errmsg    function yHandleEvents   amp  errmsg    YRETCODE yHandleEvents  string amp  errmsg    YRETCODE yHandleEvents  NSError   errmsg    function yHandleEvents  var errmsg  string   integer   function yHandleEvents  ByRef errmsg As String  As YRETCODE  YRETCODE HandleEvents  ref string errmsg    int HandleEvents      def HandleEvents  errmsg None     Si votre programme inclut des longues boucles d attente  vous pouvez y inclure un appel a cette  fonction pour que la librairie prenne en charge les informations mise en attente par les modules sur les  canaux de communication  Ce n est pas strictement indispensable mais cela peut am  liorer la r  activit    des la librairie pour les commandes suivantes     Cette fonction peut signaler une erreur au cas    la communication avec un module Yoctopuce ne se  passerait pas comme attendu        P  Param  tres      errmsg une cha  ne de caract  res pass  e par r  f  rence  dans laquelle sera stock   un   ventuel message  d erreur     Retourne    YAPI_SUCCESS si l op  ration se d  roule sans erreur  En cas d erreur  d  clenche une exception ou  retourne un code d erreur n  gatif                    www yoctopuce com 127    19  R  f  rence de l API de haut niveau       YAPL InitAPI
144. es produits Yoctopuce  Notez que  vous n aurez jamais    allouer ou d  sallouer un objet li      l API Yoctopuce  cela est g  r    automatiquement     Il existe une classe par type de fonctionnalit   Yoctopuce  Le nom de ces classes commence toujours  par un Y suivi du nom de la fonctionnalit    par exemple YTemperature  YRelay  YPressure  etc   Il  existe aussi une classe YModule  d  di  e    la gestion des modules en temps que tels  et enfin il  existe la classe statique YAPI  qui supervise le fonctionnement global de l API et g  re les  communications    bas niveau     Gestion bas niveau   Gestion des modules   Gestion des fonctionalit  s  YAPI     YModule       YTemperature    Y Pressure  YRelay    YXxx    Structure de l API Yoctopuce        www yoctopuce com 17    5  Programmation  concepts g  n  raux       Dans l API Yoctopuce  la priorit   a   t   mise sur la facilit   d acc  s aux fonctionnalit  s des modules en  offrant la possibilit   de faire abstraction des modules qui les impl  mentent  Ainsi  il est parfaitement  possible de travailler avec un ensemble de fonctionnalit  s sans jamais savoir exactement quel  module les h  berge au niveau mat  riel  Cela permet de consid  rablement simplifier la  programmation de projets comprenant un nombre important de modules     Du point de vue programmation  votre Yocto Servo 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 form
145. est possible que vous ayez     reconstruire la structure de ces projets     11 2  Utilisation l API yoctopuce dans un projet Visual Basic    La librairie Yoctopuce pour Visual Basic  NET se pr  sente sous la forme d une DLL et de fichiers  sources en Visual Basic  La DLL n est pas une DLL  NET mais une DLL classique    crite en C  qui  g  re les communications    bas niveau avec les modules   Les fichiers sources en Visual Basic  g  rent la partie haut niveau de l API  Vous avez donc besoin de cette DLL et des fichiers  vb du  r  pertoire Sources pour cr  er un projet g  rant des modules Yoctopuce     Configuration d un projet Visual Basic    Les indications ci dessous sont fournies pour Visual Studio express 2010  mais la proc  dure est  semblable pour les autres versions     Commencez par cr  er votre projet  puis depuis le panneau Explorateur de solutions effectuez un  clic droit sur votre projet  et choisissez Ajouter puis El  ment existant     Une fen  tre de s  lection de fichiers appara  t  s  lectionnez le fichier yocto api vb et les fichiers  correspondant aux fonctions des modules Yoctopuce que votre projet va g  rer  Dans le doute  vous  pouvez aussi s  lectionner tous les fichiers     1 http   www microsoft com visualstudio en us products 2010 editions visual basic express  www yoctopuce com FR libraries php  3 Les sources de cette DLL sont disponibles dans l API C         www yoctopuce com 63    11  Utilisation du Yocto Servo en VisualBasic  NET       Vous avez a
146. et get_extVoltage    Retourne    un entier repr  sentant la tension mesur  e sur l alimentation de puissance externe  en millivolts    En cas d erreur  d  clenche une exception ou retourne Y_EXTVOLTAGE_INVALID              228 www yoctopuce com    19  R  f  rence de l API de haut niveau       dualpower   get_friendlyName   YDualPower  dualpower    friendlyName      Retourne un identifiant global du contr  le d alimentation 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 contr  le d alimentation si ils sont  d  finis  soit respectivement le num  ro de s  rie du module et l identifant mat  riel du contr  le  d alimentation  par exemple  MyCustomName relayl           Retourne    une cha  ne de caract  res identifiant le contr  le d alimentation en utilisant les noms logiques  ex     MyCustomName relayl  En cas d erreur  d  clenche une exception ou retourne    Y_FRIENDLYNAME INVALID                                      www yoctopuce com 229    19  R  f  rence de l API de haut niveau       dualpower   get_functionDescriptor   YDualPower  dualpower   functionDescriptor      Retourne un identifiant unique de type YFUN_DESCR correspondant    la fonction     function get_functionDescriptor      functio
147. eur n  gatif           246 www yoctopuce com    19  R  f  rence de l API de haut niveau       dualpower   set_userData   YDualPower  dualpower    setUserData      Enregistre un contexte libre dans l attribut userData de la fonction  afin de le retrouver plus tard     l aide de la m  thode get_userData     function set_userData  data    function set_userData  data    function set_userData   data    void set_userData  void  data      void  setUserData    void   data   procedure set_userData  data  Tobject   procedure set_userData  ByVal data As Object   void set_userData  object data    void set_userData  Object data    def set_userData  data     Cet attribut n es pas utilis   directement par l API  Il est    la disposition de l appelant pour stocker un  contexte     Param  tres      data objet quelconque    m  moriser             www yoctopuce com 247    19  R  f  rence de l API de haut niveau       dualpower    wait_async   YDualPower    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 ca
148. ez votre  provider internet  c est possible  mais vous devrez probablement configurer votre routeur ADSL pour  qu il accepte et forwarde les requ  tes TCP sur le port 4444     8 1  Pr  paration    Connectez vous sur le site de Yoctopuce et t  l  chargez les   l  ments suivants     e La librairie de programmation pour PHP     Le programme VirtualHub  pour Windows  Mac OS X ou Linux selon l OS que vous utilisez    D  compressez les fichiers de la librairie dans un r  pertoire de votre choix accessible    votre serveur  web  branchez vos modules  lancez le programme VirtualHub  et vous pouvez commencer vos  premiers test  Vous n avez pas besoin d installer de driver     8 2  Contr  le de la fonction Servo    Il suffit de quelques lignes de code pour piloter un Yocto Servo  Voici le squelette d un fragment de  code PHP qui utilise la fonction Servo     include   yocto api php     include  Myoctokservo phph      1 Quelques serveurs PHP gratuits  easyPHP pour windows  MAMP pour Mac Os X  www yoctopuce com FR libraries php  3 www  yoctopuce com FR virtualhub php       www yoctopuce com 39    8  Utilisation du Yocto Servo en PHP          On r  cup  re l objet repr  sentant le module     travers le VirtualHub local  yRegisterHub   http   127 0 0 1 4444   S Serrmsg    Sservo   yFindServo   SERVORC1 123456 servol          Pour g  rer le hot plug  on v  rifie que le module est l    if  servo  gt isOnline             Utiliser servo  gt set _position            Voyons maintenant en d  tail
149. fois au cours de la vie du module  Veillez donc a ne pas appeler cette fonction depuis  l int  rieur d une boucle        88 www yoctopuce com    14  Utilisation du Yocto Servo en Python       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  a S    CR SLI ee    on  import os sys    et eier OO 1s emma  errmsg YRefParam        Setup the API to use local USB devices  if YAPI RegisterHub  usb   errmsg     YAPI SUCCESS   sys exit   init error  str  errmsg       EES    module   YModule FirstModule      while module is not None   print  module get serialNumber        module get productName         module   module nextModule         14 5  Gestion des erreurs    Lorsque vous impl  mentez un programme qui doit interagir avec des modules USB  vous ne pouvez  pas faire abstraction de la gestion des erreurs  Il y aura forc  ment une occasion o   un utilisateur  aura d  branch   le p  riph  rique  soit avant de lancer le programme  soit m  me en pleine op  ration   La librairie Yoctopuce est pr  vue pour vous aider    supporter ce genre de comportements  mais  votre code doit n  anmoins   tre fait pour se comporter au mieux pour interpr  ter les erreurs
150. g  rer les modules  contenant un servo  comme le Yocto Servo     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 YAP        L SUCC        ESS  et retournera via le param  tre errmsg un explication du probl  me        80    www yoctopuce com    13  Utilisation du Yocto Servo en Delphi       yFindServo    La fonction yFindServo  permet de retrouver un servo 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 Servo avec le num  ros de  s  rie SERVORC1 123456 que vous auriez appel    MonModule  et dont vous auriez nomm   la  fonction servo1  MaFonction   les cinq appels suivants seront strictement   quivalents  pour autant  que MaFonction ne soit d  finie qu une fois  pour   viter toute ambigu  t        servo    yFindServo   SERVORC1 123456 servol     servo    yFindServo   SERVORC1 123456 MaFonction      servo    yFindServo   MonModule servol       servo    yFindServo   MonModule MaFonction       servo    yFindServo  MaFonction        yFindServo renvoie un objet que vous pouvez ensuite utiliser    loisir pour contr  ler le servo     isOnline  
151. garde 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 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 nil  Ci dessous un petit  exemple listant les module connect  s    program inventory    SAPPTYPE CONSOLE   uses   Sysutils    yocto api     var  module   TYModule   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     Writeln   Device list       module    yFirstModule     while module lt  gt nil do  begin  WeitelniSmoduleserssemalNumbe Ee EE E E  module    module nextModule     end   end     13 4  Gestion des erreurs    Lorsque vous impl  mentez un programme qui doit interagir avec des modules USB  vous ne pouvez  pas faire abstraction de la gestion des erreurs  Il y aura forc  ment une occasion o   un utilisateur  aura d  branch   le p  riph  rique  soit avant de lancer le programme  soit m 
152. gique  ce dernier  pouvant   tre librement choisi par l utilisateur  Utiliser des noms logiques pour les fonctions permet  une plus grande flexibilit   au niveau de la programmation des modules    Le module Yocto Servo fournit deux fonctions   Servo  dont il existe cinq instances  servo1  servod   et dualPower dont il existe une seule instance     Servo1  Servo5    Il s agit de la fonction de pilotage des servo moteurs  vous pouvez leur affecter un nom logique en  cliquant sur le bouton rename     Dual power    Il s agit de la fonction qui permet de piloter la double alimentation USB   externe  Vous pouvez  donner un nom logique    cette fonction et choisir son mode de fonctionnement    teint  USB  externe  ou automatique     3 www yoctopuce com FR virtualhub php  4 Consultez la documentation du virtual hub pour plus de d  tails       www yoctopuce com 11       12    www yoctopuce com    4  Montage et connectique    Ce chapitre fournit des explications importantes pour utiliser votre module Yocto Servo en situation  r  elle  Prenez soin de le lire avant d aller trop loin dans votre projet si vous voulez   viter les  mauvaises surprises     4 1  Fixation    Pendant la mise au point de votre projet vous pouvez vous contenter de laisser le module se  promener au bout de son c  ble  Veillez simplement    ce qu il ne soit pas en contact avec quoi que  soit de conducteur  comme vos outils   Une fois votre projet pratiquement termin   il faudra penser     faire en sorte que vos modu
153. haque 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 131    19  R  f  rence de l API de haut niveau       YAPI RegisterHub   YAPI  yRegisterHub      Configure la librairie Yoctopuce pour utiliser les modules connect  s sur une machine donn  e     function yRegisterHub  url  errmsg    node js  function RegisterHub  url  errmsg    php   function yRegisterHub   url   amp  errmsg   YRETCODE yRegisterHub  const string amp  url  string amp  errmsg   YRETCODE yRegisterHub  NSString   url  NSError   errmsg   function yRegisterHub  url 
154. hodes des objets YDualPower  dualpower   describe      Retourne un court texte d  crivant le contr  le d alimentation au format  TYPE  NAME   SERIAL FUNCTIONID                                   dualpower   get_advertisedValue    Retourne la valeur courante du contr  le d alimentation  pas plus de 6 caract  res    dualpower   get_errorMessage      Retourne le message correspondant    la derni  re erreur survenue lors de l utilisation du contr  le  d alimentation     dualpower   get_errorType      Retourne le code d erreur correspondant    la derni  re erreur survenue lors de l utilisation du contr  le  d alimentation     dualpower   get_extVoltage    Retourne la tension mesur  e sur l alimentation de puissance externe  en millivolts   dualpower   get_friendlyName      Retourne un identifiant global du contr  le d alimentation au format NOM_MODUL       Di       NON FONCTION        dualpower   get_functionDescriptor            Retourne un identifiant unique de type YF UN_DESCR correspondant    la fonction     dualpower   get_functionld    Retourne l identifiant mat  riel du contr  le d alimentation  sans r  f  rence au module     dualpower   get_hardwareld         Retourne l identifiant mat  riel unique du contr  le d alimentation au format SERTAL FUNCTIONID                          dualpower   get_logicalName         220 www yoctopuce com    19  R  f  rence de l API de haut niveau       Retourne le nom logique du contr  le d alimentation   dualpower   get_module    Retourne l o
155. i  sauf Opera   Vous  trouverez aussi ce code dans le r  pertoire Examples Doc GettingStarted Yocto Servo de la  librairie Yoctopuce     Vous reconnaitrez dans cet exemple l utilisation des fonctions expliqu  es ci dessus  cette fois  utilis  es avec le d  corum n  cessaire    en faire un petit programme d exemple concret     4 Si vous n avez pas d   diteur de texte  utilisez Notepad plut  t que Microsoft Word        32 www yoctopuce com    7  Utilisation du Yocto Servo en Javascript       L exemple est cod   pour   tre utilis   soit depuis un serveur web  soit en ouvrant directement le fichier  localement sur la machine  Notez que cette derni  re solution n est pas possible avec certaines  versions de Internet 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 probl  me par contre avec Chrome  Firefox ou Safari     Si le Yocto Servo 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 Servo  et ou 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  src  yocto servo js  gt  lt  SCRIPT gt    lt SCRIPT language  javascriptl 5  typ
156. iez  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 du contr  le d alimentation     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    245    19  R  f  rence de l API de haut niveau       dualpower    set_powerControl   YDualPower  dualpower   setPowerControl      Modifie le mode d alimentation choisi pour les fonctions du module consommant beaucoup de  courant     function set_powerControl  newval    function set_powerControl  newval    function set_powerControl   newval    int set_powerControl  Y_POWERCONTROL_enum newval     int  setPowerControl    Y_POWERCONTROL_enum  newval  function set_powerControl  newval  Integer   integer     vb function set_powerControl  ByVal newval As Integer  As Integer  int set_powerControl  int newval    int set_powerControl  int newval      py  def set_powerControl  newval    YDualPower target set_powerControl newval    Param  tres      newval une valeur parmi Y_POWERCONTROL_AUTO  Y_POWERCONTROL_FROM_USB   Y_POWERCONTROL_FROM_EXT et Y_POWERCONTROL_OFF repr  sentant le mode  d alimentation choisi pour les fonctions du module consommant beaucoup de courant    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 err
157. ifications      seconds between two notification  600  seconds in any case    No less than 3  But notify after       5  Press on the Test button to check your parameters     6  When everything works  press on the OK button         rest   ox   cancel    Et choisir  Yocto API callback      Il 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       46    www yoctopuce com    8  Utilisation du Yocto Servo en PHP       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    la fonction  yRegisterHub  au lieu d utiliser une adresse IP  il faut utiliser la cha  ne callback  ou http   callback   qui est   quivalent      include   yocto api php     yRegisterHub   callback        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  
158. imple consiste    essayer  Notez que la  consommation en pic d un servo moteur peut   tre bien plus   lev  e que sa consommation moyenne   Ces pics de consommation apparaissent lorsque le servo se met en mouvement  ou lorsqu il force     Externe  Dans ce mode les servos ne sont aliment  s que si il y a une alimentation externe avec une tension  sup  rieure    4V     Automatique  Dans ce mode  les servo sont normalement aliment  s par USB  Si la tension de l alimentation  externe passe de OV a plus de 5V  l alimentation externe est choisie  Si la tension de l alimentation       www yoctopuce com 7    2  Pr  sentation       externe passe en dessous de 4V les servos ne sont plus aliment  s  l alimentation ne repasse pas  automatiquement sur l USB     Les leds d   tat de alimentation    L   tat logique de l alimentation du module est refl  t   par les deux leds plac  es    c  t   du connecteur  de servos  Lorsque les servos sont aliment  s par le port USB la led int  rieure est allum  e  lorsque  les servos sont aliment   gr  ce a l alimentation externe  la led externe est aliment    Si cette derni  re  se mets a clignoter cela signifie que la tension de l alimentation externe devient anormalement basse    lt 4 5v  et qu elle va bient  t   tre coup  e        8 www yoctopuce com    3  Premiers pas    Arriv      ce chapitre votre Yocto Servo devrait   tre branch      votre ordinateur  qui devrait l avoir  reconnu  Il est temps de le faire fonctionner     Rendez vous sur le site de 
159. in  execname    ExtractFileName  paramstr  0      WriteLn   Usage      WriteLn execname      lt serial number gt   lt channel gt  position     WriteLn execname      lt logical name gt   lt channel gt  position     WriteLn execname     any  lt channel gt  position    WriteLn  Example      WriteLn execname     any 2 1000     EE EE  Palt   end   var    errmsg  target  channel string   position integer    EE Srey   m 2 TYModule     begin    if  paramcount lt 3  then usage       target    channel  position       UpperCase  paranstr  1      paramstr  2    StrToInt  paramstr  3        HE  Re gusizerHulbi usb i errmsg   lt  gt  EE then  begin  writeln  RegisterHub error      errmsg    Hate   end     if  target  ANY   then  begin    SONO     if  serv    begin  write  halt    end     nee se    target    end     YFEirstServoli   o  nil  then    ln  No module connected  check USB cable        rvo get module           mm get serialiNumber        Writeln  using     target    servo    YFi    ndServo  target     servo  channel       if  servo isOnline    then servo move  position  1500   else writeln  Module not connected  check identification and USB cable        end     Il n y a que peu de lignes v  ritablement importantes dans le code pr  c  dent  Nous allons les  expliquer en d  tail     yocto_api et yocto_servo    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 servo est n  cessaire pour 
160. interface graphique     12 3  Contr  le de la fonction Servo    Il suffit de quelques lignes de code pour piloter un Yocto Servo  Voici le squelette d un fragment de  code C  qui utilise la fonction Servo     EI  String errmsg        YServo servoj       On r  cup  re l objet repr  sentant le module  ici connect   en local sur USB   YAPI RegisterHub   usb   errmsg    servo   YServo FindServo   SERVORC1 123456 servol          Pour g  rer le hot plug  on v  rifie que le module est l    if  servo isOnline          Utiliser servo set_position            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              YServo FindServo    La fonction YServo FindServo  permet de retrouver un servo 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 Servo avec le  num  ros de s  rie SERVORC1 123456 que vous auriez appel    MonModule  et dont vous auriez  nomm   la fonction servo   MaFonction   les cin
161. ion n est active   FROM_USB  si les fonctions sont aliment  es par USB  et  FROM_EXT  si les fonctions sont aliment  es par une source externe   Cet attribut est  automatiquement mis a jour en particulier lorsque le contr  le de l alimentation de puissance est en  mode automatique     powerControl    Mode d alimentation choisi pour les fonctions du module consommant beaucoup de courant  OFF  pour tout   teindre  FROM_USB pour forcer l alimentation par USB  FROM_EXT pour forcer  l alimentation externe et AUTO pour activer le mode de contr  le automatique de l alimentation de  puissance     extVoltage    Tension mesur  e sur l alimentation de puissance externe  en millivolts     5 5  Interface de la fonction Servo    La librairie de programmation Yoctopuce permet non seulement de d  placer le servo vers une  position donn  e  mais aussi de sp  cifier l interval de temps dans lequel le mouvement doit   tre fait   de sorte a pouvoir synchroniser un mouvement sur plusieurs servos     logicalName    Cha  ne de caract  res contenant le nom logique du servo  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 a directement a le servo  Si deux servo 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  
162. ire un petit programme d exemple concret      lt HTML gt    lt HEAD gt    lt TITLE gt Hello World lt  TITLE gt    lt  HEAD gt    lt BODY gt    lt FORM method  get  gt    lt  php  include   yocto api php     include   yocto servo 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     YAPI SUCCESS     diet  annoreontact EE EE Net Eet Re         Sserial     GET  serial     ame Sserre leu       Check if a specified module is available online  Sservol   yFindServo   serial servol     Sservo5   yFindServo   serial servo5      if    Sservol  gt isOnline         die  Module not connected  check serial and USB cable               else       or use any connected module suitable for the demo  Sservol   yFirstServo     EE  die  No module connected  check USB cable        else    Sserial    servol  gt module    gt get serialnumber       Sservol   yFindServo    serial servol      Sservo5   yFindServo    serial servo5                Print   Module to use   lt input name  serial  value  Sserial  gt  lt br gt        ie  SSS  S Cati Voos    IIN    pos     GET  pos      SServoll   Sset position  Sposi     move as fast as possibile   Sservo5  gt move   pos  3000      move in 3 seconds       o gt    lt input type  radio  name  pos  value   1000  gt Move to  1000 lt br gt    lt input type  radio    name  pos  value   500  gt Move to  500 lt br gt    l
163. is  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           42 www yoctopuce com    8  Utilisation du Yocto Servo en PHP        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  i        Use explicit error handling rather than exceptions  yDisableExceptions           Setup the API to use the VirtualHub on local machine   if  yRegisterHub   http   127 0 0 1 4444   Serrmsg     YAPI SUCCESS     due  MCannoe contact Vital on e270  OF In  i         Sserial     GET  serial     NS Serra leu       Check if a specified module is available online  Smodule   yFindModule   serial     if   Smodule  gt isOnline       die  Module not connected  check serial and USB cable           else       
164. isecondes    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           210 www yoctopuce com    19  R  f  rence de l API de haut niveau       servo    gt move      D  clenche un mouvement    vitesse constante vers une position donn  e     function move  target  ms_duration   function move  target  ms_duration   function move   target   ms_duration   int move  int target  int ms_duration     int  move    int  target    int  ms_duration  function move  target  Longint  ms_duration  Longint   integer  function move  ByVal target As Integer   ByVal ms_duration As Integer  As Integer  int move  int target  int ms_duration   int move  int target  int ms_duration   def move  target  ms_duration   YServo target move target ms_duration    Param  tres    target nouvelle position a la fin du mouvement    ms_duration dur  e totale du mouvement  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     YServo             www yoctopuce com    211    19  R  f  rence de l API de haut niveau    
165. itre API       66 www yoctopuce com    11  Utilisation du Yocto Servo 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 perdues  Pour qu elle soient m  moris  es  de mani  re persistante  il est n  cessaire de demander au module de sauvegarder sa configuration  courante dans sa m  moire non volatile  Pour cela il faut utiliser la m  thode saveToFlash     Inversement il est possible de forcer le module    oublier ses r  glages courants en utilisant la  m  thode revertFromFlash     Ce petit exemple ci dessous vous permet changer le nom logique  d un module        Module Modulel    Sub usage       Console WriteLine  usage  demo  lt serial or logical name gt   lt new logical name gt     End  End Sub    Sub Main     Dim argv   As String   System Environment GetCommandLineArgs     Dim errmsg As String       Dim newname As String  Dim m As YModule    If  argv Length  lt  gt  3  Then usage       REM Setup the 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
166. ivity 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    EE EE  Log e  Yocto  e getLocalizedMessage              Lancement automatique    Il est possible d enregistrer son application comme application par d  faut pour un module USB  dans  ce cas des qu un module sera connect   au syst  me  l application sera lanc  e automatiquement  Il  faut ajouter  lt action android name  android hardware usb action  USB DEVICE _ATTACHED    gt  dans  la section  lt intent filter gt  de l activit   principale  La section  lt activity gt  doit contenir un pointeur sur un  fichier xml qui contient la liste des modules USB qui peuvent lancer l application      lt manifest xmlns android  http   schemas android com apk res android    lt uses feature android name  android 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 
167. l   criture de ce manuel  la librairie Javascript fonctionne avec n importe quel browser  r  cent    sauf Opera  Il est probable que qu Opera finira un jour par fonctionner avec la librairie  Yoctopuce   mais pour l instant ce n est pas le cas     Javascript fait partie de ces langages qui ne vous permettront pas d acc  der directement aux  couches mat  rielles de votre ordinateur  C est pourquoi vous devrez faire tourner la passerelle de  Yoctopuce appel  e VirtualHub sur la machine    laquelle sont branch  s les modules    7 1  Pr  paration    Connectez vous sur le site de Yoctopuce et t  l  chargez les   l  ments suivants     e La librairie de programmation pour Javascript   e 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  branchez vos modules   lancez le programme VirtualHub et vous pouvez commencer vos premiers test  Vous n avez pas  besoin d installer de driver     7 2  Contr  le de la fonction Servo    Il suffit de quelques lignes de code pour piloter un Yocto Servo  Voici le squelette d un fragment de  code JavaScript qui utilise la fonction Servo      lt SCRIPT type  text javascript  sre  yocto_api js  gt    lt  SCRIPT gt    lt SCRIPT type  text javascript     sre  yocto servo js  gt  lt  SCRIPIT gt        On r  cup  re l objet repr  sentant le module  a travers le VirtualHub local  yRegisterHub   http   127 0 0 1 4444      var servo   yFindServo  
168. lName    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 SERVORC1 12346 set logicalName MonPremierModule  YModule SERVORC1 12346 saveToFlash    Notez que vous pouvez faire la m  me chose en seule fois    l aide de l option  s    YModule  s SERVORC1 12346 set logicalName MonPremierModule    Attention  le nombre de cycles d   criture de la m  moire non volatile du module est limit    Pass   cette  limite plus rien ne garantit que la sauvegarde des r  glages se passera correctement  Cette limite   li  e    la technologie employ  e par le micro processeur du module se situe aux alentour de 100000  cycles  Pour r  sumer vous ne pouvez employer la commande saveToFlash que 100000 fois au  cours de la vie du module  Veillez donc    ne pas appeler cette commande depuis l int  rieur d une  boucle     6 5  Limitations    L API en ligne de commande est sujette    la m  me 
169. la fonction Servo    La librairie de programmation Yoctopuce permet non seulement de d  placer le servo vers une position  donn  e  mais aussi de sp  cifier l interval de temps dans lequel le mouvement doit   tre fait  de sorte     pouvoir synchroniser un mouvement sur plusieurs servos     Pour utiliser les fonctions d  crites ici  vous devez inclure      lt script type  text javascript  src  yocto_servo js  gt  lt  script gt   var yoctolib   require    yoctolib        var YServo   yoctolib YServo   require_once    yocto_servo php        include  yocto_servo h    import  yocto_servo h   uses yocto_servo   yocto_servo vb  yocto_servo cs  import com yoctopuce  YoctoAPI YServo   from yocto_servo import      Fonction globales  yFindServo func     Permet de retrouver un servo d apr  s un identifiant donn     yFirstServo    Commence l   num  ration des servo accessibles par la librairie     M  thodes des objets YServo  servo   describe            Retourne un court texte d  crivant le servo au format TYPE  NAME   SERIAL FUNCTIONID   servo   get_advertisedValue     Retourne la valeur courante du servo  pas plus de 6 caract  res    servo   get_errorMessage     Retourne le message correspondant a la derni  re erreur survenue lors de l utilisation du servo   servo   get_errorType     Retourne le code d erreur correspondant    la derni  re erreur survenue lors de l utilisation du servo   servo   get_friendlyName     Retourne un identifiant global du servo au format NOM MODULE  NOM_FONCTI
170. 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 139    19  R  f  rence de l API de haut niveau       YAPI UnregisterHub   YAPI  yUnregisterHub      Configure la librairie Yoctopuce pour ne plus utiliser les modules connect  s sur une machine  pr  alablement enregistrer avec RegisterHub      _is  function yUnregisterHub  url     node js   function UnregisterHub  url    function yUnregisterHub   url    void yUnregisterHub  const string amp  url    void yUnregisterHub  NSString   url    procedure yUnregisterHub  url  string    procedure yUnregisterHub  ByVal url As String       cs  void UnregisterHub  string url    synchronized static void UnregisterHub  String url   def UnregisterHub  url     Param  tres      url une cha  ne de caract  res contenant  usb  ou          140 www yoctopu
171. les ne puissent pas se promener    l int  rieur        Exemples de montage sur un support     Le module Yocto Servo dispose de trous de montage 2 5mm  Vous pouvez utiliser ces trous pour y  passer des vis  Le diam  tre de la t  te de ces vis ne devra pas d  passer 4 5mm  sous peine  d endommager les circuits du module  Veillez    que la surface inf  rieure du module ne soit pas en  contact avec le support  La m  thode recommand  e consiste    utiliser des entretoises  mais il en       www yoctopuce com 13    4  Montage et connectique       existe d autres  Rien ne vous emp  che de le fixer au pistolet    colle    a ne sera tr  s joli mais   a  tiendra     Si vous comptez visser votre module directement contre une paroi conductrice  un chassis  m  tallique par exemple  intercalez une couche isolante entre les deux  Sinon vous aller    coup s  r  provoquer un court circuit  il y a des pads    nu sous votre module  Du simple ruban adh  sif  d emballage devrait faire l affaire     4 2  Polarit      Vous devez brancher des fiches de mani  re    ce que le fil de signal soit branch      la broche  sup  rieure  Notez que si vous branchez la prise d un servo    l envers  vous ne risquez pas grand  chose  il ne fonctionnera tout simplement pas           Sens de branchement des servos    Les couleurs des cables de servos varient d une marque    l autre vous trouverez ci dessous les  codes de couleurs les plus courants    Marque Signal          Multiplex jaune rouge Noir  Futaba   Robbe 
172. 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 com FR virtualhub php       www yoctopuce com 29    6  Utilisation du Yocto Servo en ligne de commande       cela marchera parce que la commande ne sera plus ex  cut  e nativement  mais    travers le Virtual  Hub  Notez que le Virtual Hub compte comme une application native        30 www yoctopuce com    7  Utilisation du Yocto Servo 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 
173. lis    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   H  Objective C     Delphi    Python    VisualBasic  Net    CH Net    Javascript    Node js      PHP      Java      Java pour Android      Ligne de commande       M  thode de support pour les diff  rents langages     Limitation des librairies Yoctopuce    Les librairies Natives et DLL ont une limitation technique  Sur une m  me machine  vous ne pouvez  pas faire tourner en m  me temps plusieurs applications qui acc  dent nativement aux modules  Yoctopuce  Si vous d  sirez contr  ler plusieurs projets depuis la m  me machine  codez vos  applications pour qu elle acc  dent aux modules via un VirtualHub plut  t que nativement  Le  changement de mode de fonctionnement est trivial  il suffit de changer un param  tre dans l appel     yRegisterHub        5 7  Programmation  par ou commencer     Arriv      ce point du manuel  vous devriez conna  tre l essentiel de la th  orie    propos de votre Yocto   Servo  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  cri
174. llback 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            248 www yoctopuce com    20  Probl  mes courants  20 1  Linux et USB    Pour fonctionner correctement sous Linux la librairie a besoin d avoir acc  s en   criture    tous les  p  riph  riques USB Yoctopuce  Or  par d  faut  sous Linux les droits d acc  s des utilisateurs non root     USB sont limit  s    la lecture  Afin d   viter de devoir lancer les ex  cutables en tant que root  il faut  cr  er une nouvelle r  gle udev pour autoriser un ou plusieurs utilisateurs    acc  der en   criture aux  p  riph  riques Yoctopuce     Pour ajouter une r  gle udev    votre installation  il faut ajouter un fichier avec un nom au format       nomArbitraire rules  dans le r  pertoire   etc udev rules d   Lors du d  marrage du  syst  me  udev va lire tous les fichiers avec l extension    rules  de ce r  pertoire en respectant  l ordre alphab  tique  par exemple  le fichier  51 custom rules  sera interpr  t   APRES le fichier   50 udev default rules                Le fichier  50 udev default  contient les r  gles udev par d  faut du syst  me  Pour modifier le  comportement par d  faut du syst  me  il faut donc cr  er un fichier qui commence par un nombre plus  grand que 50  qui d  finira un comportement plus sp  cifique que le d  faut du systeme  Notez que  pour 
175. ln  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     18 4  Port de la librairie haut niveau    Toutes les sources de l API Yoctopuce   tant fournies dans leur int  gralit    vous pouvez parfaitement  entreprendre le port complet de l API dans le langage de votre choix  Sachez cependant qu une  grande partie du code source de l API est g  n  r   automatiquement     Ainsi  il n est pas n  cessaire de porter la totalit   de l API  il suffit de porter le fichier vocho api et un  de ceux correspondant    une fonctionnalit    par exemple yocto_relay  Moyennant un peu de travail  suppl  mentaire  Yoctopuce sera alors en mesure de g  n  rer tous les autres fichiers  C est pourquoi  il est fortement recommand   de contacter le support Yoctopuce avant d entreprendre le port de la  librairie Yoctopuce dans un autre langage  Un travail collaboratif sera profitable aux deux parties        116 www yoctopuce com    19  R  f  rence de
176. load  YServo 208  load_async  YDualPower 241  load_async  YModule 175  load_async  YServo 209  Localisation 9    Mod  lisme 14   Module 9  19  28  33  41  51  59  66  74  81  87   93  102  143   Montage 13   move  YServo 210    N    Natif 97   Native 22   NET 63   nextDualPower  YDualPower 242  nextModule  YModule 176  nextServo  YServo 211   Niveau 116  117    O    Objective C 57    P    Paradigme 17  Plateformes 250   Polarit   14   Port 98  116   Pr  paration 31  39  79  91  97  PreregisterHub  YAPI 128  Pr  requis 2   Pr  sentation 5   Probl  mes 249  Programmation 17  24  109  Projet 63  71   Python 85    R    reboot  YModule 177   R  f  rence 117  RegisterDeviceArrivalCallback  YAPI 129  RegisterDeviceRemovalCallback  YAPI 130  RegisterHub  YAPI 131  RegisterHubDiscoveryCallback  YAPI 133  RegisterLogFunction  YAPI 134  registerValueCallback  YDualPower 243  registerValueCallback  YServo 212  revertFromFlash  YModule 178    S    saveToFlash  YModule 179  SelectArchitecture  YAPI 135  Service 22  Servo 21  28  31  39  49  57  64  72  79  86  91   100  188  set_beacon  YModule 180  set_logicalName  YDualPower 244  set_logicalName  YModule 181  set_logicalName  YServo 213  set_luminosity  YModule 182  set_neutral  YServo 214  set_position  YServo 215  set_powerControl  YDualPower 245  set_range  YServo 216  set_usbBandwidth  YModule 183  set_userData  YDualPower 246    set_userData  YModule 184  set_userData  YServo 217  SetDelegate  YAPI 136  SetTimeout  YAPI 137  Sleep  
177. lors le choix entre simplement ajouter ces fichiers    votre projet  ou les ajouter en tant  que lien  le bouton Ajouter est en fait un menu d  roulant   Dans le premier cas  Visual Studio va  copier les fichiers choisis dans votre projet  dans le second Visual Studio va simplement garder un  lien sur les fichiers originaux  Il est recommand   d utiliser des liens  une   ventuelle mise    jour de la  librairie sera ainsi beaucoup plus facile     Ensuite  ajoutez de la m  me mani  re la dll yapi d11  qui se trouve dans le r  pertoire Sources   d11   Puis depuis la fen  tre Explorateur de solutions  effectuez un clic droit sur la DLL  choisissez  Propri  t   et dans le panneau Propri  t  s  mettez l option Copier dans le r  pertoire de sortie     toujours copier  Vous   tes maintenant pr  t    utiliser vos modules Yoctopuce depuis votre  environnement Visual Studio     Afin de les garder simples  tous les exemples fournis dans cette documentation sont des applications  consoles  Il va de soit que que les fonctionnement des librairies est strictement identiques si vous les  int  grez dans une application dot  e d une interface graphique     11 3  Contr  le de la fonction Servo    Il suffit de quelques lignes de code pour piloter un Yocto Servo  Voici le squelette d un fragment de  code VisualBasic  NET qui utilise la fonction Servo     EE  Dim errmsg As String  Dim servo As YServo    REM On r  cup  re l objet repr  sentant le module  ici connect   en local sur USB   yRegisterHub
178. lpower   get_advertisedValue   YDualPower  dualpower   advertisedValue      Retourne la valeur courante du contr  le d alimentation  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      YDualPower target get_advertisedValue    Retourne    une cha  ne de caract  res repr  sentant la valeur courante du contr  le d alimentation  pas plus de 6       caract  res   En cas d erreur  d  clenche une exception ou retourne Y_ADVERTISEDVALUE_INVALID           www yoctopuce com 225    19  R  f  rence de l API de haut niveau       dualpower   get_errorMessage   YDualPower  dualpower   errorMessage      Retourne le message correspondant    la derni  re erreur survenue lors de l utilisation du contr  le  d alimentation     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 ch
179. 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 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 CURRENT
180. mais qui pourra le devenir  si le module correspondant est connect   plus tard     Manipulation des fonctionnalit  s    Une fois l objet correspondant    une fonctionnalit   retrouv    ses m  thodes sont disponibles de  mani  re tout    fait classique  Notez que la plupart de ces sous fonctions n  cessitent que le module  h  bergeant la fonctionnalit   soit branch   pour pouvoir   tre manipul  es  Ce qui n est en g  n  ral  jamais garanti  puisqu un module USB peut   tre d  branch   apr  s le d  marrage du programme de  contr  le  La m  thode isOnline    disponible dans chaque classe  vous sera alors d un grand secours     Acc  s aux modules    Bien qu il soit parfaitement possible de construire un projet en faisant abstraction de la r  partition des  fonctionnalit  s sur les diff  rents modules  ces derniers peuvent   tre facilement retrouv  s    l aide de  l API  En fait  ils se manipulent d une mani  re assez semblable aux fonctionnalit  s  Ils disposent d un  num  ro de s  rie affect   en usine qui permet de retrouver l objet correspondant    l aide de  YModule Find    Les modules peuvent aussi se voir affecter un nom logique arbitraire qui permettra  de les retrouver ensuite plus facilement  Et enfin la classe YModule comprend les m  thodes  d   num  ration YModule FirstModule   et nextModule   qui permettent de dresser la liste des modules  connect  s     Interaction Function   Module    Du point de vue de l API  les modules et leurs fonctionnalit  s sont donc fortement
181. met 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 module   module   functionid functionindex    Retourne l identifiant mat  riel de la ni  me fonction du module   module   functionName functionIndex    Retourne le nom logique de la ni  me fonction du module   module   functionValue functionIndex    Retourne la valeur publi  e par la ni  me fonction du module   module   get_beacon     Retourne l   tat de la balise de localisation   module   get_errorMessage     Retourn
182. minosity      m get_luminosity   ToString      Console Write  beacon  CH  if  m get beacon      YModule BEACON ON    Console WriteLine   ON     else   Console WriteLine   OFF     Console WriteLine   upTime  Us  eeng  wens  A MOOD ATOS cal Sect   A  EE EE EE EE rent  EE  Console WriteLine   Logs  r n   m get_lastLogs           74 www yoctopuce com    12  Utilisation du Yocto Servo en C           else  Console WriteLine  args 0      not connected  check identification and USB cable        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   Module  sert xxx   Pour plus de d  tails concernant ces fonctions utilis  es  reportez vous aux  chapitre API    Modifications des r  glages du module    Lorsque que vous souhaitez modifier les r  glages d un module  il suffit d appeler la fonction  YModule set xxx    correspondante  cependant cette modification n a lieu que dans la m  moire  vive du module  si le module red  marre  les modifications seront perdues  Pour qu elle soient  m  moris  es de mani  re persistante  il est n  cessaire de demander au module de sauvegarder sa  configuration courante dans sa m  moire non volatile  Pour cela il faut utiliser la m  thode  YModule saveToFlash     Inversement il est possible de forcer le module    oublier ses r  glages  courants en utilisant la m  thode YModule revertFromFlash    Ce petit e
183. mo  lt serial or logical name gt   ON OFF     End   End Sub    Sub Main     Dim argv   As String   System Environment GetCommandLineArgs     Dim errmsg As String       Dim m As ymodule    Ee  yRegqusterhub Musbry  verrnsg   lt  gt  VARIO SUCCESS  Then  Console WriteLine  RegisterHub error     errmsg   End   Ena  it    If argv Length  lt  2 Then usage       m   yFindModule argv 1   REM use serial or logical name    If  m isOnline    Then  EE eier lengthy   2 then          Li aro  2   ON  Then m set beacon Y BEACON ON    RENE EN Wom  Unio Wi See locecoim  i EENEG  End If 8  Console WriteLine  serial      m get serialNumber     Console WriteLine   logical name      m get_logicalName       Console WriteLine   luminosity  VS Site  meget luminos1ey ON   Console Write   beacon  EI  If  m get beacon     Y BEACON ON  Then   Console WriteLine   ON    Else   Console WriteLine   OFF    End If  Console WriteLine   upTime  Ste mt cet veine       T000 M SEEN   Console WriteLine   USB current  EE EE EST AE   Console WriteLine  Logs           Console WriteLine  Else    Console WriteLine argv 1      not connected  check identification and USB cable     End If    m get lastLogs          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 chap
184. module  ici connect   en local sur USB   YAPI RegisterHub   usb   errmsg    servo   YServo FindServo   SERVORC1 123456 servol       Pour g  rer le hot plug  on v  rifie que le module est la    if servo isOnline      Use servo set_position      Loo all    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              YServo FindServo    La fonction YServo FindServo  permet de retrouver un servo 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 Servo avec le  num  ros de s  rie SERVORC1 123456 que vous auriez appel    MonModule  et dont vous auriez  nomm   la fonction servo   MaFonction   les cinq appels suivants seront strictement   quivalents   pour autant que MaFonction ne soit d  finie qu une fois  pour   viter toute ambigu  t        servo   YServo FindServo   SERVORC1 123456 servol    servo   YServo FindServo   SERVORC1 123456 MaFonction    servo   YServo FindServo   MonModule servol     se
185. n de type USB  le param  tre connection_type doit prendre la valeur 1  errmsg est  un pointeur sur un buffer de 255 caract  res destin      r  cup  rer un   ventuel message d erreur  Ce  pointeur peut   tre aussi mis    NULL  La fonction retourne un entier n  gatif en cas d erreur  ou z  ro  dans le cas contraire     La fonction yapiUpdateDeviceList g  re l inventaire des modules Yoctopuce connect  s  elle doit   tre  appel  e au moins une fois  Pour pouvoir g  rer le hot plug  et d  tecter d   ventuels nouveaux modules  connect  s  cette fonction devra   tre apell  e    intervalles r  guliers  Le param  tre forceupdate devra    tre    la valeur 1 pour forcer un scan mat  riel  Le param  tre errmsg devra pointer sur un buffer de  255 caract  res pour r  cup  rer un   ventuel message d erreur  Ce pointeur peut aussi   tre     null Cette fonction retourne un entier n  gatif en cas d erreur  ou z  ro dans le cas contraire     Enfin  la fonction yapiHTTPRequest permet d envoyer des requ  tes HTTP    l API REST du module   Le param  tre device devra contenir le num  ro de s  rie ou le nom logique du module que vous  cherchez    atteindre  Le param  tre request doit contenir la requ  te HTTP compl  te  y compris les  sauts de ligne terminaux   buffer doit pointer sur un buffer de caract  res suffisamment grand pour  contenir la r  ponse  buffsize doit contenir la taille du buffer  fullsize est un pointeur sur un entier qui  sera affect      la taille effective de la r  ponse  Le pa
186. n 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             230 www yoctopuce com    19  R  f  rence de l API de haut niveau       dualpower   get_functionld   YDualPower  dualpower   functionid      Retourne l identifiant mat  riel du contr  le d alimentation  sans r  f  rence au module     function get_functionld      function get_functionld      function get_functionld      string get_functionld       NSString   functionld   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 contr  le d alimentation  ex  relay1  En cas d erreur  d  clenche    une exception ou retourne Y_FUNCTIONID_INVALID              www yoctopuce com 231    19  R  f  rence de l API de haut niveau       dualpower    get_hardwareld   YDualPower  dualpower  gt hardwareld         Retou
187. namique    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 85    14  Utilisation du Yocto Servo en Python       14 3  Contr  le de la fonction Servo    Il suffit de quelques lignes de code pour piloter un Yocto Servo  Voici le squelette d un fragment de  code Python qui utilise la fonction Servo     EECH    errmsg YRefParam       On r  cup  re l objet repr  sentant le 
188. nction  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 123    19  R  f  rence de l API de haut niveau       YAPI FreeAPI   YAPI  yFreeAPI      Lib  re la m  moire dynamique utilis  e par la librairie Yoctopuce      is   function yFreeAPI       nodejs  function FreeAPI      php   function yFreeAPI      void yFreeAPI      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           124 www yoctopuce com    19  R  f  rence de l API de haut niveau       YAPI GetAPIVersion   YAPI  yGetAPIVersion      Retourne la version de la librairie Yoctopuce utilis  e     function yGetAPIVersion      function GetAPIVersion      function yGetAPIVersion      string yGetAPIVersion      NSString  yGetAPIVersion     function yGetAPIVersion     string  function yGetAPIVersion    As String  String GetAPIVersion      String GetAPIVersion
189. nction 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           206 www yoctopuce com    19  R  f  rence de l API de haut niveau       servo   isOnline   YServo  V  rifie si le module h  bergeant le servo 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 servo 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 servo est joignable  false sinon          www yoctopuce com 207    19  R  f  rence de l API de haut niveau       servo   isOnline_async   YServo    V  rifie si le module h  bergeant le servo 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 servo sont valides au moment de l appel  le module est  consid 
190. ne  RegisterHub error      errmsg   End   End If    Console WriteLine   Device list     M   yFirstModule     While M IsNot Nothing  Cons oer REES Eege ke EE LEE EE e E Namen  E a   M   M nextModule      End While    End Sub    End Module    11 5  Gestion des erreurs    Lorsque vous impl  mentez un programme qui doit interagir avec des modules USB  vous ne pouvez  pas faire abstraction de la gestion des erreurs  Il y aura forc  ment une occasion o   un utilisateur  aura d  branch   le p  riph  rique  soit avant de lancer le programme  soit m  me en pleine op  ration   La librairie Yoctopuce est pr  vue pour vous aider    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   des
191. ne  ou null siil n y a pas de contr  les d alimentation disponibles           www yoctopuce com 223    19  R  f  rence de l API de haut niveau       dualpower    describe   YDualPower    Retourne un court texte d  crivant le contr  le d alimentation au format  TYPE  NAME   SERIAL FUNCTIONID       5s  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 contr  le d alimentation  ex     Relay  MyCustomName relayl   RELAYLO1 123456 relayl                 224 www yoctopuce com    19  R  f  rence de l API de haut niveau       dua
192. ne application dot  e d une interface graphique     15 2  Contr  le de la fonction Servo    Il suffit de quelques lignes de code pour piloter un Yocto Servo  Voici le squelette d un fragment de  code Java qui utilise la fonction Servo     Fa sell       On r  cup  re l objet repr  sentant le module  ici connect   en local sur USB   YAPI RegisterHub  127 0 0 1     servo   YServo FindServo    SERVORC1 123456 servol         Pour g  rer le hot plug  on v  rifie que le module est l    if  servo isOnline          Use servo set position       1 www yoctopuce com FR libraries php  2 www yoctopuce com FR virtualhub php       www yoctopuce com 91    15  Utilisation du Yocto Servo en Java       DES  Voyons maintenant en d  tail ce que font ces quelques lignes     YAPI RegisterHub    La fonction YAPI  RegisterHub initialise l API de Yoctopuce en indiquant o   les modules doivent    tre recherch  s  Le param  tre est l adresse du virtual hub capable de voir les modules  Si  initialisation se passe mal  une exception sera g  n  r  e        YServo FindServo    La fonction YServo FindServo  permet de retrouver un servo 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 Servo avec le  num  ros de s  rie SERVORC1 123456 que vous auriez appel    MonModule  et dont vous auriez  nomm   la fonction servo   MaFonction   les cinq appels suiva
193. ne de caract  res d  crivant le servo  ex           Relay  MyCustomName relayl   RELAYLO1 123456 relayl           192 www yoctopuce com    19  R  f  rence de l API de haut niveau       servo   get_advertisedValue    servo   advertisedValue      Retourne la valeur courante du servo  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      YServo target get_advertisedValue    Retourne    une cha  ne de caract  res repr  sentant la valeur courante du servo  pas plus de 6 caract  res   En cas    YServo       d erreur  d  clenche une exception ou retourne Y_ADVERTISEDVALUE_INVALID           www yoctopuce com    193    19  R  f  rence de l API de haut niveau       servo   get_errorMessage   YServo  servo   errorMessage      Retourne le message correspondant    la derni  re erreur survenue lors de l utilisation du servo     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 lorsqu
194. ney ETS  eegene Ale Etage ee  return 1        if  target     any      YServo  servo   yFirstServo       if  servo  NULL     cout  lt  lt   No module connected  check USB cable      lt  lt  endl     return 1      target   servo  gt module    gt get_serialNumber          servol   yFindServo target     servol     servo5   yFindServo target     servo5     if  servol  gt isOnline       servol  gt set position pos      immediate switch  servo5  gt move  pos  3000       smooth transition  P elga i    cout  lt  lt   Module not connected  check identification and USB cable    lt  lt  endl          return 0     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    L  nsen ert Cl       www yoctopuce com    51    9  Utilisation du Yocto Servo en C         using namespace std     static void usage const char  exe       cout  lt  lt   usage     lt  lt  exe  lt  lt     lt serial or logical name gt   ON OFF    lt  lt  endl   EE    Int Maln int arc  Const char w crow        string errmsg        Setup the API to use local USB devices    stl  VRE GassetsH ub  Musil EE cy  els VAP SUC Chis  S  a  cerr EE EE EE ORNE NUS  ocurra         neteje   2   usage  argv 0       YModule  module   yFindModule argv 1       use serial or logical
195. nom logique  Le nom logique du module est limit   a 19 caract  res parmi A  Z a  z 0    9  et     productid   Identifiant USB du module  pr  programm      la valeur 18 en usine     productRelease  Num  ro de r  vision du module hardware  preprogrammed at the factory     firmwareRelease   Version du logiciel embarqu   du module  elle change    chaque fois que le logiciel embarqu   est mis     jour    persistentSettings    Etat des r  glages persistants du module  charg  s depuis la m  moire non volatile  modifi  s par  l utilisateur ou sauvegard  s dans la m  moire non volatile     luminosity    Intensit   lumineuse maximale des leds informatives  comme la Yocto Led  pr  sentes sur le module   C est une valeur enti  re variant entre O  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 pou
196. nons un module Yocto Servo avec le num  ros de s  rie SERVORC1 123456 que  vous auriez appel    MonModule  et dont vous auriez nomm   la fonction servo   MaFonction   les  cinq appels suivants seront strictement   quivalents  pour autant que MaFonction ne soit d  finie  qu une fois  pour   viter toute ambigu  t        YServo SERVORC1 123456 servol describe  YServo SERVORC1 123456 MaFonction describe  YServo MonModule servol describe   YServo MonModule MaFonction describe    YServo MaFonction describe    Pour travailler sur toutes les fonctions Servo    la fois  utilisez la cible  all      YServo all describe    Pour plus de d  tails sur les possibilit  s de l ex  cutableYServo  utilisez     YServo  help    6 4  Contrdle de la partie module    Chaque module peut   tre contr  l   d une mani  re similaire a l aide de l ex  cutable YModule  Par  exemple  pour obtenir la liste de tous les modules connect  s  utilisez        28 www yoctopuce com    6  Utilisation du Yocto Servo 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 SERVORC1 12346 set logicalName MonPremierModule    YModule SERVORC1 12346 get logica
197. nregistrement peut   tre obtenu en ajoutant a  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 SERVORC1 12345 dataLogger json id servol   utc 1389801080    18 3  Utilisation des librairies dynamiques    L API Yoctopuce bas niveau est disponible sous diff  rents formats de librairie dynamiques   crites en  C  dont les sources sont disponibles avec l API C    Utiliser une de ces librairies bas niveau vous  permettra de vous passer du Virtual Hub     Filename Plateforme  libyapi dylib Max OS X  libyapi amd64 so Linux Intel  64 bits   libyapi armel so Linux ARM EL  libyapi armhf so Linux ARM HL  libyapi i386 so Linux Intel  32 bits   yapi64 dll Windows  64 bits   yapi dll Windows  32 bits     Ces librairies dynamiques contiennent toutes les fonctionnalit  s n  cessaires pour reconstruire  enti  rement toute l API haut niveau dans n importe quel langage capable d int  grer ces librairies  Ce  chapitre se limite cependant    d  crire une utilisation de base des modules     Contr  le d un module  Les trois fonctions essentielles de l API bas niveau sont les suivantes     int YapilnitAPT int connection type  char  errmsg      int yapiUpdateDeviceList int forceupdate  char  errmsg      int yapiHTTPRequest  char  device  char  request  char  buffer int buffsize int  fullsize   char  errmsg      La fonction yapilnitAPI permet d initialiser l API et doit   tre appel  e une fois en d  but du programme   Pour une connectio
198. ntr  le de la fonction Servo    Il suffit de quelques lignes de code pour piloter un Yocto Servo  Voici le squelette d un fragment de  code C   qui utilise la fonction Servo     nemde Werer pen  ert lol  eeleren  Heen ee     sc  String errmsg   YServo  servo     1 http   www microsoft com visualstudio en us products 2010 editions visual cpp express  2 www yoctopuce com FRilibraries php       www yoctopuce com 49    9  Utilisation du Yocto Servo en C            On r  cup  re l objet repr  sentant le module  ici connect   en local sur USB   yRegisterHub   usb   errmsg    servo   yFindServo   SERVORC1 123456 servol          Pour g  rer le hot plug  on v  rifie que le module est l    if  servo  gt isOnline          Ee TOR           Voyons maintenant en d  tail ce que font ces quelques lignes     yocto_api h et yocto_servo 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 servo h est n  cessaire pour g  rer  les modules contenant un servo  comme le Yocto Servo     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   
199. nts seront strictement   quivalents   pour autant que MaFonction ne soit d  finie qu une fois  pour   viter toute ambigu  t        servo   YServo FindServo   SERVORC1 123456 servol    servo   YServo FindServo   SERVORC1 123456 MaFonction    servo   YServo FindServo   MonModule servol     servo   YServo FindServo   MonModule MaFonction     servo   YServo FindServo   MaFonction      YServo FindServo renvoie un objet que vous pouvez ensuite utiliser    loisir pour contr  ler le  servo     isOnline    La m  thode YServo isOnline   de l objet renvoy   par FindServo permet de savoir si le  module correspondant est pr  sent et en   tat de marche     set_position    La m  thode set position   de l objet renvoy   par YServo FindServo permet de d  placer  le plus rapidement possible le servo vers la position sp  cifi  e  Le point milieu correspond    la valeur  0  et les deux extr  mit  s correspondent aux valeurs  1000 et 1000        move    La m  thode move   de l objet renvoy   par YServo FindServo permet d effectuer le  d  placement vers une position d  sir  e en un intervalle de temps contr  l    sp  cifi   en millisecondes     Un exemple r  el    Lancez votre environnement java et ouvrez le projet correspondant  fourni dans le r  pertoire  Examples Doc GettingStarted Yocto Servo de la librairie Yoctopuce     Vous reconnaitrez dans cet exemple l utilisation des fonctions expliqu  es ci dessus  cette fois  utilis  es avec le d  corum n  cessaire a en faire un petit programme d exem
200. octo Servo en C   oie ccccssesseesesseeteseseeseesesseseseeseeseens 71  EL BT te EE 71  12 2  Utilisation l API yoctopuce dans un projet Visual C  oo    eee eeeeeeeeeeeeeenneeeeeeneeeeeeneeeeey 71  12 3  Contr  le de la fonction Servo iii 72  12 4  C  ntr  le de lasparti   module  ss nains entente ren 74  12 5 EE ele Be EC 76  13  Utilisation du Yocto Servo en Delphi 2 2 0 0    ccc cece ceeeeeesteeesteeneenees 79  E ERC e 79  13 2  Contr  le de la fonction Servo iii 79  13 3  Contr  le de la partie module sisi 81  19 4  Gestion deS TEE 83  14  Utilisation du Yocto Servo en Python 2  ccc cscs esses sesseeeeseeseesesneeneens 85  14 17  FichierS SOUrCRS  in eh ina et nee ieee ed ace ce eee  85  1422  lge Vue En EE 85  14 3  Contr  le de la fonction Servo iii 86  14 4  Contr  le de la partie module sise 87  14 5 G  stion Be EC 89  15  Utilisation du Yocto Servo en Java ooo  cce se ceeeseeseetesteeeteseeeeneneenenees 91    15 12 Pr  paration  AER 91    15 2  Contr  le de la fonction Servo woe  ceecccceecccceccececeeeueceeeececeeceeeaeseeeaeeaeaeeeeeaaeesueaeesaaneenanes 91    15 32  Controle de  la  parte Mod  le ssrin iid cee serit sinned toed hadi a eet 93  15 4  Gestion des TEE 96  16  Utilisation du Yocto Servo avec Android oo    eeeeteeeeeeeeeeteeeees 97  16 1  Acces Nati et Virtual UDa a Satta a ens Fa a dant citacac ege EEN ENN 97  16 2   Preparation  4 ccscestesceveedccceeseecceestnds E eaaa aai e AEA ere code AEAEE ANE teen dad E APEE es 97  16 3  eil e ul UC 97  16 4  Ac
201. odule connected  check USB cable        else      serial    module  gt get serialnumber                 Print   Module to use   lt input name  serial  value  Sserial  gt  lt br gt         2E  egaki Cini eewer IN A  if   _GET  beacon     ON     module  gt set beacon Y BEACON ON    else     module  gt set beacon Y BEACON OFF       print  f  serial   s lt br gt    module  gt get serialNumber        printf  logical name   s lt br gt    module  gt get logicalName      Pe Ee ee  s lt br gt     module  gt get_luminosity      print  beacon       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     Prince  USB current   vsmA lt br i  smodule get Usbeurrent  Nk  printf   logs  lt br gt  lt pre gt  s lt  pre gt     module  gt get_lastLogs      Be   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 util
202. on get_powerState      function get_powerState      function get_powerState     Y_POWERSTATE_enum get_powerState       Y_POWERSTATE_enum  powerState  function get_powerState     Integer  function get_powerState    As Integer  int get_powerState      int get_powerState      def get_powerState      YDualPower target get_powerState    Retourne    une valeur parmi Y_POWERSTATE_OFF  Y_POWERSTATE_FROM_USB et    Y_POWERSTATE_FROM_EXT repr  sentant la source d alimentation active pour les fonctions du module  consommant beaucoup de courant    En cas d erreur  d  clenche une exception ou retourne Y_POWERSTATE_INVALID              www yoctopuce com 237    19  R  f  rence de l API de haut niveau       dualpower   get_userData   YDualPower  dualpower    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           238 www yoctopuce com    19  R  f  rence de l API de haut niveau       dualpower   isOnline   YDualPower  V  rifie si le module h  bergeant le contr  le d alimen
203. onction de callback    Retourne    rien du tout   le r  sultat sera pass   en param  tre    la fonction de callback           242 www yoctopuce com    19  R  f  rence de l API de haut niveau       dualpower   nextDualPower   YDualPower    Continue l   num  ration des contr  les d alimentation commenc  e    l aide de  yFirstDualPower       function nextDualPower      function nextDualPower      function nextDualPower      YDualPower   nextDualPower       YDualPower   nextDualPower   function nextDualPower     TYDualPower  function nextDualPower    As YDualPower  YDualPower nextDualPower     YDualPower nextDualPower      def nextDualPower       Retourne      un pointeur sur un objet YDual Power accessible en ligne  ou nul 1 lorsque l   num  ration est termin  e           www yoctopuce com 243    19  R  f  rence de l API de haut niveau       dualpower  gt registerValueCallback   YDualPower    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  YDualPowerValueCallback callback      int  registerValueCallback    YDualPowerValueCallback  callback     pas   function registerValueCallback  callback  TYDualPowerValueCallback   Longint    vb   function registerValueCallback    As Integer   int registerValueCallback  ValueCallback callback    int registerValu
204. ondes     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           178 www yoctopuce com    19  R  f  rence de l API de haut niveau       module  gt revertFromFlash   YModule    Recharge les r  glages stock  s dans le m  moire non volatile du module  comme a la mise sous  tension du module     function revertFromFlash      function revertFromFlash      function revertFromFlash      int revertFromFlash        int  revertFromFlash   function revertFromFlash     Longint  function revertFromFlash    As Integer  int revertFromFlash      int revertFromFlash      def revertFromFlash      YModule target revertFromFlash    Retourne      YAPI_SUCCESS si l op  ration se d  roule sans erreur  En cas d erreur  d  clenche une exception ou  retourne un code d erreur n  gatif           www yoctopuce com 179    19  R  f  rence de l API de haut niveau       module  saveToFlash      Sauve les r  gl
205. onfiguration  courante dans sa m  moire non volatile  Pour cela il faut utiliser la m  thode saveToFlash   Inversement il est possible de forcer le module a 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    exat  1      ink Main  in acdc  Const char   argy i        MS REEL     autoreleasepool       Setup the API to use local USB devices    if  yRegisterHub   usb   S amp error     YAPI SUCCESS     NSLog   RegisterHub error        error llocalizedDescription     return rs         ii parce  lt 2   usage  argv 0       NSString  serial or name   NSString stringWithUTF8String argv 1     YModule  module   yFindModule serial or name      use serial or logical name    if  module isOnline     te  arge  gt   3   NSString  newname    NSString stringWithUTF8String argv 2     if   yCheckLogicalName  newname       NSLog   Invalid name      n   newname     usage  argv 0        module logicalName   newname    module saveToFlash      NSLog   Current name     n   module  logicalName     5 Guise  2  NSLog      not connected  check identification and USB cable  n  serial or name               return 0     Attention  le nombre de cycles d   criture de la m  moire non volatile du module est limit    Pass   cette  limite pl
206. onn  es  Le bon c  ble est  disponible sur le shop de Yoctopuce        Vous devez raccorder votre module Yocto Servo    l aide d un cable USB de type A   micro B    Si vous branchez un hub USB entre l ordinateur et le module Yocto Servo  prenez garde    ne pas  d  passer les limites de courant impos  es par USB  sous peine de faire face des comportements  instables non pr  visibles  Vous trouverez plus de d  tail    ce sujet dans le chapitre concernant le  montage et la connectique     1 2  Accessoires optionnels    Les accessoires ci dessous ne sont pas n  cessaires    l utilisation du module Yocto Servo  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 Servo    un support  vous pouvez placer des petites vis de 2 5mm avec  une t  te de 4 5mm au maximum dans les trous pr  vus ad hoc  Il est conseill   de les visser dans des  entretoises filet  es  que vous pourrez fixer sur le support  Vous trouverez plus de d  tail    ce sujet  dans le chapitre concernant le montage et la connectique     Micro hub USB    Si vous d  sirez placer plusieurs modules Yoctopuce dans un espace tr  s restreint  vous pouvez les  connecter ensemble    l aide d un micro hub USB  Yoctop
207. or use any connected module suitable for the demo  Smodule   yFirstModule     if  module       skip VirtualHub    Smodule   Smodule  gt nextModule          if is null  module       die  No module connected  check USB cable        else      serial    module  gt get_serialnumber                 Print   Module to use   lt input name  serial  value  Sserial  gt  lt br gt        SEU EE eet   newname     GET  newname     if   yCheckLogicalName   newname     die  Invalid name      module  gt set_logicalName   newname     Smodule  gt saveToFlash           printf   Current name   s lt br gt    Smodule  gt get_logicalName           print   New name   lt input name  newname  value    maxlength 19 gt  lt br gt        gt    lt input type  submit  gt    lt  FORM gt    lt  BODY gt    lt  HTML gt     Attention  le nombre de cycle d   criture de la m  moire non volatile du module est limit    Pass   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    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    l aide de la fonction yFirstModule    qui renvoie  le premier module trouv    il suffit ensuite d appeler la fonc
208. osition  1000 lt  a gt  lt br gt    lt  BODY gt    lt  HTML gt     7 3  Contr  le de la partie module    Chaque module peut   tre contr  l   d une mani  re similaire  vous trouverez ci dessous un simple  programme d exemple affichant les principaux param  tres d un module et permettant d activer la  balise de localisation        www yoctopuce com 33    7  Utilisation du Yocto Servo en Javascript        lt HTML gt    lt HEAD gt    lt TITLE gt Module Control 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     alerte cannot EE           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   module get_serialNumber       document getElementByld  serial   value serial         module   yFindModule  serial    if module isOnline       document getElementBylIdi  msg   value        Var hemi Meerrr     rmodulle ger eserialNumberx   lt br gt      html     logical name    module get logicalName     lt br gt     html       luminosity    module get_luminosity      lt br gt     hemi     beacons    if  module get beacon   
209. osition d  sir  e en un intervalle de temps contr  l    sp  cifi   en millisecondes     Un exemple r  el    Lancez votre environnement C   et ouvrez le projet exemple correspondant  fourni dans le  r  pertoire Examples Doc GettingStarted Yocto Servo 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        50 www yoctopuce com    9  Utilisation du Yocto Servo en C         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 lyocto api h    include lyocto servo h    include  lt iostream gt    include  lt stdlib h gt     using namespace std     static void usage  void          COURS ge sOemom lt s erllaulmiumioe ts g  t EN Abt ONE ET CEE  cout sa ny demok  logrea limane Edgar Dong e  Goue s lt  2 demotany a i 00O rer oo  use any discovered  device    lt  lt  endl   u64 now   yGetTickCount        dirty active wait loop  while  yGetTickCount     now lt 3000     exit 1      bot    9 2     meliniint arger const char srovdi    EE EE HIE  string target   YServo  servol   YServo  servos   Sens pos     EEN  usage       target    string  argv 1    pos   Yint  atol aragy 2  4       Setup the API to use local USB devices    if  yRegisterHub  usb   errmsg  Je YAPT SUCCESS     enee  lt  lt  Wi
210. otre 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 information  la valeur
211. otre module  et une fen  tre r  sumant les propri  t  s de votre Yocto Servo     1 www yoctopuce com FR virtualhub php  2 L interface a   t   test  e avec FireFox 3   IE 6   Safari et Chrome  elle ne fonctionne pas avec Op  ra       www yoctopuce com    3  Premiers pas       SERVORC1 004F7          e SERVORC1 004F7 is a 20x45mm which  can drive up to 5 RC servos     Kernel   Serial   SERVORC1 004F7   Product name  Yocto Servo   Logical name    Product release  1   Firmware  3375   Consumption 34 mA   Beacon  Inactive  tum on   Luminosity  0     Servos  Servo 1    Servo 2  Servo 3    Servo 4    3 3    Es    Servo 5    Power   Power mode Automatic  Status usB   Ext voltage OV    Misc  Open API browser  pop up   Get user manual from yoctopuce com       Propri  t  s du module Yocto Servo        Cette fen  tre vous permet entre autres de jouer avec votre module Yocto Servo et d en v  rifier le  fonctionnement  vous pouvez bouger les curseur correspondant aux diff  rents canaux  et ce qui pour  effet de bouger les servo correspondant  Vous remarquerez que la consommation du module  augmente fortement lorsqu un servo bouge et qu il est aliment   par USB  alors qu elle reste stable si  les servos sont aliment  s avec une alimentation externe     3 3  Configuration    Si  dans la liste de modules  vous cliquez sur le bouton configure correspondant a votre module  la    fen  tre de configuration apparait     Firmware       SERVORC1 004F7          Edit parameters for device SERVORC1 004
212. ourne 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 information  la valeur de retour sera YAPI SUCCESS si tout va bien  et un code d erreur diff  rent  en cas d   chec    
213. pdateDeviceList 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 119    19  R  f  rence de l API de haut niveau       YAPI CheckLogicalName   YAPI  yCheckLogicalName      V  rifie si un nom donn   est valide comme nom logique pour un module ou une fonction     function yCheckLogicalName  name     nodejs  function CheckLogicalName  name    function yCheckLogicalName   name    bool yCheckLogicalName  const 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  tres    name une cha  ne de caract  res contenant le nom v  rifier     Retourne      true sile nom est valide  false dans le cas contraire              120 www yoctopuce com    19  R  f  rence de l API de haut niveau       YAPI DisableExceptions    yDisableExceptions      D  sactive l utilisation d exceptions pour la gestion des erreurs     function yDisableExceptions     function DisableExceptions     function 
214. ple concret     import com  yoctopuce YoctoAPI     public class Demo      public static void main String   args  i   try       setup the API to use local VirtualHub  KRETSCH ENGER   EE EE E  EMELIE EE DEER ter ent M27 nomor Ok   ex getLocalizedMessage             System out printin  Ensure that the VirtualHub application is running     System exit 1         92 www yoctopuce com    15  Utilisation du Yocto Servo en Java       String serra   Ue  ri args  lengen   Om    serial   args 0       else    YServo tmp   YServo FirstServo     if  tmp    null       System out println  No module connected  check USB cable      System exit  1       E  serial   tmp module   get serialNumber        catch  YAPT Exception ex       System out printiin  No module connected  check USB cable      System exit  1                    YServo servol   YServo FindServo serial     servol     YServo servo5   YServo FindServo serial     servo5     int pos       1000 1000 0    TOr  Line p   pas  7   cry       System out println String format  Change postition to  d   p      servol set position p    imediat transition   servo5 move p  1000      smooth transition   YAPI Sleep  1000     ea cha  VAPT Exception tex      System out println  Module not connected  check identification and USB  Capite    prear          YAPI FreeAPI        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
215. q appels suivants seront strictement   quivalents   pour autant que MaFonction ne soit d  finie qu une fois  pour   viter toute ambigu  t        servo   YServo FindServo   SERVORC1 123456 servol     servo YServo FindServo   SERVORC1 123456 MaFonction      servo YServo FindServo   MonModule servol       servo   YServo FindServo   MonModule MaFonction       servo   YServo FindServo   MaFonction        YServo FindServo renvoie un objet que vous pouvez ensuite utiliser    loisir pour contr  ler le  servo     4 Pensez a changer le filtre de la fen  tre de s  lection de fichiers  sinon la DLL n appara  tra pas       72 www yoctopuce com    12  Utilisation du Yocto Servo en C        isOnline    La m  thode YServo isOnline   de l objet renvoy   par FindServo permet de savoir si le  module correspondant est pr  sent et en   tat de marche     set_position    La m  thode set position   de l objet renvoy   par YServo FindServo permet de d  placer  le plus rapidement possible le servo vers la position sp  cifi  e  Le point milieu correspond    la valeur  0  et les deux extr  mit  s correspondent aux valeurs  1000 et 1000     move    La m  thode move   de l objet renvoy   par YServo FindServo permet d effectuer le  d  placement vers une position d  sir  e en un intervalle de temps contr  l    sp  cifi   en millisecondes     Un exemple r  el    Lancez Visual C  et ouvrez le projet exemple correspondant  fourni dans le r  pertoire Examples   Doc GettingStarted Yocto Servo de la librairie Yoc
216. r  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 183    19  R  f  rence de l API de haut niveau       module   set_usbBandwidth   YModule  module   setUsbBandwidth      Modifie le nombre d interface USB utilis   par le module     function set_usbBandwidth  newval    function set_usbBandwidth  newval    function set_usbBandwidth   newval    int set_usbBandwidth  Y_USBBANDWIDTH_enum newval     int  setUsbBandwidth    Y_USBBANDWIDTH_enum  newval    pas  function set_usbBandwidth  newval  Integer   integer     v     function set_usbBandwidth  ByVal newval As Integer  As Integer  int set_usbBandwidth  int newval    int set_usbBandwidth  int newval    def set_usbBandwidth  newval    YModule target set_usbBandwidth newval    Vous devez red  marrer le module apr  s avoir chang   ce r  glage     Param  tres      newval soit Y_USBBANDWIDTH_ SIMPLE  soit Y_USBBANDWIDTH_ DOUBLE  selon le nombre  d interface USB utilis 
217. r que le param  tre soit appliqu       5 4  Interface de contr  le de l alimentation    La librairie de programmation Yoctopuce permet de contr  ler la source d alimentation qui doit   tre  utilis  e pour les fonctions du module consommant beaucoup de courant  Le module est par ailleurs  capable de couper automatiquement l alimentation externe lorsqu il d  tecte que la tension a trop  chut    batterie   puis  e         20 www yoctopuce com    5  Programmation  concepts g  n  raux       logicalName    Cha  ne de caract  res contenant le nom logique du contr  le d alimentation  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 contr  le d alimentation  Si deux contr  les  d alimentation portent le m  me nom logique dans un projet  il n y a pas moyen de d  terminer lequel  va r  pondre si l on tente un acc  s par ce nom logique  Le nom logique du module est limit      19  caract  res parmi A  Z a  z 0  9  et         advertisedValue    Courte cha  ne de caract  res r  sumant l   tat actuel du contr  le d alimentation  et qui sera publi  e  automatiquement jusqu au hub parent  Pour un contr  le d alimentation  la valeur publi  e est la  source d alimentation actuellement active  OFF  FROM_USB  FROM_EXT     powerState    Source d alimentation active pour les fonctions du module consommant beaucoup de courant  OFF   si aucune alimentat
218. r 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     Secs terval    berarie Ee NL   PVR EME  I   lptnresd  ek ee  letdets    Int  gration en librairie dynamique    L int  gration de la librairie Yoctopuce sous forme de librairie dynamique permet de produire un  ex  cutable plus petit que les deux m  thodes pr  c  dentes  et de mettre   ventuellement a jour cette  librairie si un correctif s av  rait n  cessaire sans devoir recompiler le code source de l application  Par  contre  c est un mode d int  gration qui exigera syst  matiquement de copier la librairie dynamique sur  la machine cible ou l application devra   tre lanc  e  yocto dil sous Windows  libyocto so 1 0 1 sous  Mac OS X et Linux      Pour int  grer la librairie dynamique Yoctopuce    votre projet  vous devez inclure le r  pertoire  Sources de la librairie Yoctopuce    votre IncludePath  et ajouter le sous r  pertoire de
219. ram  tre errmsg devra pointer sur un buffer de       www yoctopuce com 113    18  Utilisation avec des langages non support  s       255 caract  res pour r  cup  rer un   ventuel message d erreur  Ce pointeur peut aussi   tre    null   Cette fonction retourne un entier n  gatif en cas d erreur  ou z  ro dans le cas contraire     Le format des requ  tes est le m  me que celui d  crit dans la section Virtual Hub et HTTP GET   Toutes les cha  nes de caract  res utilis  es par l API sont des cha  nes constitu  es de caract  res 8  bits  l Unicode et l UTF8 ne sont pas support  s     Le r  sultat retourn   dans la variable buffer respecte le protocole HTTP  il 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 FUnECIoOnS IMPOLE  function yapiInitAPI  mode integer     errmsg   pansichan  santegerjcdeci   external     yapa dill  name    yapilinitAPLr    function yapiUpdateDeviceList  force integer errmsg   pansichar   integer cdecl     external  yapi dll  name  yapiUpdateDeviceList    function yapiHTTPRequest  device pansichar url pansichar  buffer pansichar     butisaze imteger  var fulllisazesimteger    errmsg   pansichar   integer cdecl    external  yapi dll  name  yapiHTTPRequest      var  errmsgBuffer   array  0  256  of ansichar   dataBuffer Bene
220. ranch   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         Nom logique du module    Le nom logique est un nom choisi par vous  qui vous permettra d acc  der    votre module  de la  m  me mati  re qu un nom de fichier vous permet d acc  der    son contenu  Un nom logique doit faire  au maximum 19 caract  res  les caract  res autoris  s sont les caract  res A  Z a  z 0 9 et    Si  vous donnez le m  me nom logique    deux modules raccord  s au m  me ordinateur  et que vous  tentez d acc  der    l un des modules    l aide de ce nom logique  le comportement est ind  termin     vous n avez aucun moyen de savoir lequel des deux va r  pondre     Luminosit      Ce param  tre vous permet d agir sur l intensit   maximale des leds pr  sentes sur le module  Ce qui  vous permet  si n  cessaire  de le rendre plus un peu discret tout en limitant sa consommation  Notez  que ce param  tre agjit 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 lo
221. re interactive  il faudra cr  er une interface utilisateur qui stockera dans un fichier ou une base  de donn  es les actions    effectuer sur les modules Yoctopuce  Ces actions seront ensuite lues puis  ex  cut  s par le script de contr  le     Probl  mes courants    Pour que l API par callback HTTP fonctionne  l option de PHP allow_url_fopen doit   tre activ  e   Certains h  bergeurs de site web ne l activent pas par d  faut  Le probl  me se manifeste alors avec  l erreur suivante                    error  URL file access is disabled in the server configuration    Pour activer cette option  il suffit de cr  er dans le m  me r  pertoire que le script PHP de contr  le un  fichier  htaccess contenant la ligne suivante     php flag  allow_url_fopen   On        Selon la politique de s  curit   de l h  bergeur  il n est parfois pas possible d autoriser cette 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
222. 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   Sysuti ls    yocto api     const   serial    SERVORC1 123456      use serial number or logical name  var   module   TYModule    EE   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           82 www yoctopuce com    13  Utilisation du Yocto Servo en Delphi       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       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 sauve
223. red  marre  les modifications seront perdues  Pour qu elle soient m  moris  es       34 www yoctopuce com    7  Utilisation du Yocto Servo en Javascript       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 Change module settings lt  TITLE gt    lt SCRIPT type  text javascript  src  yocto api js  gt  lt  SCRIPT gt    lt SCRIPT language  javascriptl 5  type  text JavaScript  gt   SSS     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    Is VAPI SUCCESS     alent  tiCannot contact Varina Hub on Elle Ek        var module     function refresh        var serial   document getElementById  serial   value   if serial              Detect any conected module suitable for the demo  module   yFirstModule   nextModule     if module       serial   module get_serialNumber     document getElementBylId  serial   value   serial         module   yFindModule  serial    if  module isOnline         document getElementBylId  msg   value        document  getElementById  curName   
224. ring   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           152 www yoctopuce com    19  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  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    153    19  R  f  rence de l API de haut niveau       module   get
225. rne l identifiant mat  riel unique du contr  le d alimentation au format SERTAL 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 contr  le  d alimentation  par example RELAYLO1 123456 relayl      Retourne    une cha  ne de caract  res identifiant le contr  le d alimentation  ex  RELAYLO1    123456 relayl  En    cas d erreur  d  clenche une exception ou retourne Y_HARDWAREID_INVALID              232 www yoctopuce com    19  R  f  rence de l API de haut niveau       dualpower   get_logicalName   YDualPower  dualpower    logicalName      Retourne le nom logique du contr  le d alimentation     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      YDualPower target get_logicalName    Retourne    une cha  ne de caract  res repr  sentant le nom logique du contr  le d alimentation  En cas d erreur  d  clenche    une exception ou retourne Y_LOGICALNAME_INVALID              www yoctopuce com 233    19  R  f  rence de l API de hau
226. rvo   YServo FindServo   MonModule MaFonction     servo   YServo FindServo   MaFonction      YServo FindServo renvoie un objet que vous pouvez ensuite utiliser    loisir pour contr  ler le  servo     isOnline  La m  thode YServo isOnline   de l objet renvoy   par FindServo permet de savoir si le  module correspondant est pr  sent et en   tat de marche     set_position    La m  thode set position   de l objet renvoy   par YServo FindServo permet de d  placer  le plus rapidement possible le servo vers la position sp  cifi  e  Le point milieu correspond    la valeur  0  et les deux extr  mit  s correspondent aux valeurs  1000 et 1000        move    La m  thode move   de l objet renvoy   par YServo FindServo permet d effectuer le  d  placement vers une position d  sir  e en un intervalle de temps contr  l    sp  cifi   en millisecondes     Un exemple r  el    Lancez votre interpr  teur Python et ouvrez le script correspondant  fourni dans le r  pertoire  Examples Doc GettingStarted Yocto Servo de la librairie Yoctopuce        86 www yoctopuce com    14  Utilisation du Yocto Servo en Python       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        usr bin python  COUT gs RE el    import os sys   tmon yoctolapi importi  from yocto servo import      def usage      scriptname   os path basename  sys argv 0    print   Usage          print  scrip
227. rvo si ils sont d  finis  soit  respectivement le num  ro de s  rie du module et l identifant mat  riel du servo  par exemple   MyCustomName relayl1l     Retourne    une chaine de caract  res identifiant le servo en utilisant les noms logiques  ex     MyCustomName relayl  En cas d erreur  d  clenche une exception ou retourne       Y_FRIENDLYNAME INVALID                       196 www yoctopuce com    19  R  f  rence de l API de haut niveau       servo   get_functionDescriptor   YServo  servo   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 DESCH  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 197    19  R  f  rence de l API de haut niveau       servo   get_functionld   YServo  servo   functionid      Retourne l identifiant mat  riel du servo  sans r  f  rence au module
228. s 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 15       16    www yoctopuce com    5  Programmation  concepts g  n  raux    L API Yoctopuce a   t   pens  e pour   tre    la fois simple    utiliser  et suffisamment g  n  rique pour  que les concepts utilis  s soient valables pour tous les modules de la gamme Yoctopuce et ce dans  tous les langages de programmation disponibles  Ainsi  une fois que vous aurez compris comment  piloter votre Yocto Servo dans votre langage de programmation favori  il est tr  s probable  qu apprendre    utiliser un autre module  m  me dans un autre langage  ne vous prendra qu un  minimum de temps     5 1  Paradigme de programmation    L API Yoctopuce est une API orient  e objet  Mais dans un souci de simplicit    seules les bases de la  programmation objet ont   t   utilis  es  M  me si la programmation objet ne vous est pas famili  re  il  est peu probable que cela vous soit un obstacle    l utilisation d
229. s 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        L application utilise la librairie native pour contr  ler le module connect   en local    Contr  le natif par DLL    Ici l essentiel du code permettant de contr  ler les modules se trouve dans une DLL  et le programme  est compil   avec une petite librairie permettant de contr  ler cette DLL  C est la mani  re la plus  rapide pour coder le support des modules dans un language particulier  En effet la partie  utile  du  code de contr  le se trouve dans la DLL qui est la m  me pour tous les langages  offrir le support pour  un nouveau langage se limite    coder la petite librairie qui contr  le la DLL  Du point de de l utilisateur  final  il y a peu de diff  rence  il faut simplement   tre sur que la DLL sera install  e sur son ordinateur  en m  me temps que le programme principal        22 www yoctopuce com    5  Programmation  concepts g  n  raux          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  d
230. servol isOnline         servol set_position  pos     servo5 move  pos  3000       else  Console WriteLine   Module not connected  check identification and USB cable        12 4  Contr  le de la partie module    Chaque module peut   tre contr  l   d une mani  re similaire  vous trouverez ci dessous un simple  programme d exemple affichant les principaux param  tres d un module et permettant d activer la  balise de localisation     using System    Using oystem  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              static void Main string   args       YModule m    string errmsg          if  YAPI RegisterHub  usb   ref errmsg     YAPI SUCCESS      Console WriteLine   RegisterHub error      errmsg    Environment  Exit  0          re args kengt u lt   usage       m   YModule FindModule args 0       use serial or logical name  if  m isOnline            if  args Length  gt   2                 vE args Hk ToUpper        ON  me set beacon eebe BEACONTOND   rE args Hk ToUpper    VOF Sn set beacon  Module BEACONMOEE IA I      Console WriteLine   serial  bt gersser1alNumbers  l    Console WriteLine   logical name      m get logicalName       Console WriteLine   lu
231. sition   YServo  servo   position      Retourne la position courante du servo     function get_position      function get_position      function get_position        cpp  int get_position        int  position     pas_ function get_position     Longint    v _  function get_position    As Integer    cs  Int get_position        java  int get_position      def get_position      YServo target get_position    Retourne    un entier repr  sentant la position courante du servo    En cas d erreur  d  clenche une exception ou retourne Y_POSITTION_INVALID              204 www yoctopuce com    19  R  f  rence de l API de haut niveau       servo   get_range    servo   range      Retourne la plage d utilisation du servo     function get_range      function get_range      function get_range      int get_range        int  range   function get_range     Longint  function get_range    As Integer  int get_range      int get_range      def get_range      YServo target get_range    Retourne    un entier repr  sentant la plage d utilisation du servo    YServo    En cas d erreur  d  clenche une exception ou retourne Y_RANGE_INVALID           www yoctopuce com    205    19  R  f  rence de l API de haut niveau       servo   get_userData   YServo  servo   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   fu
232. souder un fil USB directement dans les trous  espac  s de 1 27mm pr  vus    cet effet  pr  t du connecteur        www yoctopuce com    2  Pr  sentation       Le Yocto bouton    Le Yocto bouton a deux fonctions  Premi  rement  il permet d activer la Yocto balise  voir la Yocto led  ci dessous   Deuxi  mement  si vous branchez un Yocto module en maintenant ce bouton appuy    il  vous sera possible de reprogrammer son firmware avec une nouvelle version  Notez qu il existe une  m  thode plus simple pour mettre    jour le firmware depuis l interface utilisateur  mais cette m  thode   l   peut fonctionner m  me lorsque le firmware charg   sur le module est incomplet ou corrompu     La Yocto Led    En temps normal la Yocto Led sert    indiquer le bon fonctionnement du module  elle   met alors une  faible lumi  re bleue qui varie lentement mimant ainsi une respiration  La Yocto Led cesse de respirer  lorsque le module ne communique plus  par exemple si il est aliment   par un hub sans connexion  avec un ordinateur allum       Lorsque vous appuyez sur le Yocto bouton  la Led passe en mode Yocto balise  elle se met alors     flasher plus vite et beaucoup plus fort  dans le but de permettre une localisation facile d un module  lorsqu on en a plusieurs identiques  II est en effet possible de d  clencher la Yocto balise par logiciel   tout comme il est possible de d  tecter par logiciel une Yocto balise allum  e     La Yocto Led a une troisi  me fonctionnalit   moins plaisante  lorsque ce
233. sous     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 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 vale
234. stLogs    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           160 www yoctopuce com    19  R  f  rence de l API de haut niveau       module   get_logicalName    module  gt logicalName      Retourne le nom logique du module     function get_logicalName     function get_logicalName     function get_logicalName      string get_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    161    19  R  f  rence de l API de haut niveau       module   get_luminosity    module   luminosity      Retourne la luminosit   des leds informatives du module  valeur entre O et 100      function get_luminosity      function get_luminosity      function get_luminosity        cep  int get_luminosity         _    int  luminosity      pas function get_luminosity     Longint    v  function get_luminosity    As Integer    cs  int get_luminosity        java  int get_luminosity      def get_luminosity    
235. 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     10 1  Contr  le de la fonction Servo    Lancez Xcode 4 2 et ouvrez le projet exemple correspondant  fourni dans le r  pertoire Examples   Doc GettingStarted Yocto Servo de la librairie Yoctopuce      import  lt Foundation Foundation h gt   EE EE   import  yocto servo h     static void usage  void             NSiogi iG usage   demo  lt  serialnumber  i L000 N   er      LOOON Ms    NSLog     demo  lt  logical mames   gt   000      CN    Lolo  TA      NSLog     demorany    big 2 e NI O0 CII  use any discovered  device       1 www yoctopuce com FR libraries php  2 www yoctopuce com FR article nouvelle librairie objective
236. synchrone 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           202 www yoctopuce com    19  R  f  rence de l API de haut niveau       servo   get_neutral   YServo  servo   neutral      Retourne la dur  e en microsecondes de l impulsion correspondant au neutre du servo     function get_neutral     function get neutral     function get_neutral      int get_neutral        int  neutral   function get_neutral     Longint  function get_neutral    As Integer  int get_neutral      int get_neutral      def get_neutral      YServo target get_neutral    Retourne    un entier repr  sentant la dur  e en microsecondes de l impulsion correspondant au neutre du servo    En cas d erreur  d  clenche une exception ou retourne Y_NEUTRAL_INVALID              www yoctopuce com 203    19  R  f  rence de l API de haut niveau       servo   get_po
237. t  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 D   i 386   x86 64   32bit    64bit        Retourne    rien  En cas d erreur  d  clenche une exception           136 www yoctopuce com    19  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 137    19  R  f  rence de l API de haut niveau       YAPI SetTimeout   YAPI  ySetTimeout      Appelle le callback sp  cifi   apr  s un temps d attente sp  cifi       function ySetTimeout  callback  ms_timeout  arguments   function SetTimeout  callback  ms_timeout  arguments     Cette fonction se comporte plus ou moins comme la fonction Javascript set Timeout  mais durant le  temps d attente  elle va appeler yHandleEvents et yUpdateDeviceList p  riodiquement pour  maintenir l API    jour avec les modules connect  s 
238. t input type  radio  name  pos  value  0  gt Move to center lt br gt    lt input type  radio  name  pos  value  500  gt Move to 500 lt br gt    lt input type  radio  name  pos  value  1000  gt Move to 1000 lt br gt    lt input type  submit  gt    lt  FORM gt    lt  BODY gt    lt  HTML gt        8 3  Contr  le de la partie module    Chaque module peut   tre contr  l   d une mani  re similaire  vous trouverez ci dessous un simple  programme d exemple affichant les principaux param  tres d un module et permettant d activer la    balise de localisation      lt HTML gt    lt HEAD gt    lt TITLE gt Module Control lt  TITLE gt    lt  HEAD gt    lt BODY gt        www yoctopuce com    41    8  Utilisation du Yocto Servo en PHP        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     YAPI SUCCESS     die  Cannot contact  eersten on Ive OEM EEmS Or         Sserial     CEU serrait    ae  Siess He Hit 2     Check if a specified module is available online  Smodule   yFindModule    serial     if   Smodule  gt isOnline       die  Module not connected  check serial and USB cable           else       or use any connected module suitable for the demo  Smodule   yFirstModule     if  module       skip VirtualHub    Smodule   Smodule  gt nextModule          if is_null Smodule       die  No m
239. t niveau       dualpower   get_module   YDualPower  dualpower   module      Retourne l objet YModule correspondant au module Yoctopuce qui h  berge la fonction       is  function get module     node js  function get_module        php_  function get_module      YModule   get_module       YModule   module   function get_module     TYModule  function get_module    As YModule  YModule get_module      YModule get_module      def get_module       Si la fonction ne peut   tre trouv  e sur aucun module  l instance de YModule retourn  e ne sera pas  joignable     Retourne      une instance de YModule          234 www yoctopuce com    19  R  f  rence de l API de haut niveau       dualpower   get_ module async   YDualPower  dualpower   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
240. t 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 systemes requises  a savoir     e Pour Windows  les librairies sont mises automatiquement  e Pour Mac OS X  IOKit framework et CoreFoundation framework  e Pour Linux  libm  libpthread  libusb1 0 et libstdc      Int  gration en librairie statique    L int  gration de de la librairie Yoctopuce sous forme de librairie statique est une mani  re plus simple  de construire un petit ex  cutable utilisant des modules Yoctopuce  Elle permet une compilation  rapide du programme en une seule commande  Elle ne requiert pas non plus l installation d une  librairie dynamique sp  cifique a Yoctopuce sur le syst  me final  tout est dans l ex  cutable     Pour int  grer la librairie statique Yoctopuce a votre projet  vous devez inclure le r  pertoire Sources  de la librairie Yoctopuce a votre IncludePath  et ajouter le sous r  pertoire de Binaries      correspondant a votre syst  me d exploitation a votre LibPath        Ensuite  pou
241. t string amp  func    YServo  yFindServo  NSString  func    function yFindServo  func  string   TYServo   function yFindServo  ByVal func As String  As YServo  YServo FindServo  string func    YServo FindServo  String func    def FindServo  func     L identifiant peut   tre sp  cifi   sous plusieurs formes     e NomLogiqueFonction   e NoSerieModule  dentifiantFonction   e NoSerieModule NomLogiqueFonction   e NomLogiqueModule ldentifiantMat  riel   e NomLogiqueModule NomLogiqueFonction    Cette fonction n exige pas que le servo soit en ligne au moment ou elle est appel  e  l objet retourn    sera n  anmoins valide  Utiliser la m  thode YServo isOnline   pour tester si le servo 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  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 servo sans ambigu  t      Retourne    un objet de classe YServo qui permet ensuite de contr  ler le servo              190 www yoctopuce com    19  R  f  rence de l API de haut niveau       YServo FirstServo   YServo  yFirstServo      Commence l   num  ration des servo accessibles par la librairie     function yFirstServo      function FirstServo      function yFirstServo      YServo  yFirstServo      YServo  yFirstServo      function yFirstServo     TYServo  function yFirstServo    As 
242. tItemAtPosition  pos   toString     module   YModule FindModule  hwid      DisplayModuleInfo            Override  public void onNothingSelected  AdapterView lt   gt  arg0             public void saveName  View view          if  module    null   BCE  EditText edit    EditText  findViewById R id newname     String newname   edit getText    toString     try      if   YAPI CheckLogicalName  newname      Toast makeText  getApplicationContext     Invalid name       Toast LENGTH LONG   show      return    UL      newname           module set logicalName  newname     module saveToFlash       do not forget this  edit setText          catch  YAPI Exception ex     ex printStackTrace          DisplayModuleInfo       r       www yoctopuce com    105    16  Utilisation du Yocto Servo 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 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 ensuit
243. t_usbBandwidth      function get_usbBandwidth     Y_USBBANDWIDTH_enum get_usbBandwidth       Y_USBBANDWIDTH_enum  usbBandwidth    pas  function get_usbBandwidth     Integer     ve  function get_usbBandwidth    As Integer  int get_usbBandwidth      int get_usbBandwidth      def get_usbBandwidth      YModule target get_usbBandwidth    Retourne      YModule    soit Y_USBBANDWIDTH_ SIMPLE  soit Y USBBANDWIDTH_ DOUBLE  selon le nombre d interface    USB utilis   par le module          En cas d erreur  d  clenche une exception ou retourne Y_USBBANDWIDTH_INVALID              170    www yoctopuce com    19  R  f  rence de l API de haut niveau       module   get_usbCurrent   YModule  module usbCurrent      Retourne le courant consomm   par le module sur le bus USB  en milliamp  res     function get_usbCurrent      function get_usbCurrent      function get_usbCurrent      int get_usbCurrent        int  usbCurrent   function get_usbCurrent     Longint  function get_usbCurrent    As Integer  int get_usbCurrent      int get_usbCurrent      def get_usbCurrent      YModule target get_usbCurrent    Retourne    un entier repr  sentant le courant consomm   par le module sur le bus USB  en milliamp  res    En cas d erreur  d  clenche une exception ou retourne Y_USBCURRENT_INVALID              www yoctopuce com 171    19  R  f  rence de l API de haut niveau       module   get_userData   YModule  module    gt userData      Retourne le contenu de l attribut userData  pr  c  demment stock      l ai
244. tation 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 contr  le d alimentation 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 contr  le d alimentation est joignable  false sinon          www yoctopuce com 239    19  R  f  rence de l API de haut niveau       dualpower   isOnline asynce   YDualPower    V  rifie si le module h  bergeant le contr  le d alimentation 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 contr  le d alimentation 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
245. te 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        118 www yoctopuce com    19  R  f  rence de l API de haut niveau       Enregistre une fonction de callback qui sera appel  e    chaque fois qu un Hub r  seau ou un VirtualHub est  d  tect   sur le r  seau local     yRegisterLogFunction logfun    Enregistre une fonction de callback qui sera appell  e    chaque fois que l API a quelque chose    dire   ySelectArchitecture arch    S  lectionne manuellement l architecture de la libraire dynamique    utiliser pour acc  der    USB   ySetDelegate object      Objective C uniquement  Enregistre un objet d  l  gu   qui doit se conformer au procole  YDeviceHotPlug        ySetTimeout callback  ms_timeout  arguments    Appelle le callback sp  cifi   apr  s un temps d attente sp  cifi     ySleep ms_duration  errmsg    Effectue une pause dans l ex  cution du programme pour une dur  e sp  cifi  e   yUnregisterHub url     Configure la librairie Yoctopuce pour ne plus utiliser les modules connect  s sur une machine pr  alablement  enregistrer avec RegisterHub     yU
246. tement recommand   de  lire attentivement les sp  cifications techniques d un produit fonctionnant sous Android avant  d esp  rer le voir fonctionner avec des modules Yoctopuce     Disposer d une version correcte d Android et de ports USB fonctionnant en mode host ne suffit  malheureusement pas pour garantir un bon fonctionnement avec des modules Yoctopuce sous  Android  En effet certains constructeurs configurent leur image Android afin que les p  riph  riques  autres que clavier et mass storage soit ignor  s  et cette configuration est difficilement d  tectable  En  l   tat actuel des choses  le meilleur moyen de savoir avec certitude si un mat  riel Android sp  cifique  fonctionne avec les modules Yoctopuce consiste    essayer     Mat  riel support    La librairie est test  e et valid  e sur les machines suivantes     e Samsung Galaxy S3  e Samsung Galaxy Note 2   e Google Nexus 5   e 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 a distance des modules pilot  s par un  VirtualHub sur un autre OS ou un YoctoHub      16 4  Activer le port USB sous Android    Par d  faut Android nautorise pas une application a 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
247. thode isOnline   de l objet renvoy   par yFindServo permet de savoir si le module  correspondant est pr  sent et en   tat de marche     set_position    La m  thode set position   de l objet renvoy   par yFindServo permet de d  placer le plus  rapidement possible le servo vers la position sp  cifi  e  Le point milieu correspond    la valeur 0  et  les deux extr  mit  s correspondent aux valeurs  1000 et 1000     move    La m  thode move    de l objet renvoy   par yFindServo permet d effectuer le d  placement vers  une position d  sir  e en un intervalle de temps contr  l    sp  cifi   en millisecondes     10 2  Contr  le de la partie module    Chaque module peut   tre contr  l   d une mani  re similaire  vous trouverez ci dessous un simple  programme d exemple affichant les principaux param  tres d un module et permettant d activer la  balise de localisation      import  lt Foundation Foundation h gt    import  yocto api h     static void usage const char  exe        NSLog    usage   s  lt serial or logical name gt   ON OFF   n  exe     exit 1      ime main kink arge  const char arr        NSError  error      autoreleasepool       Setup the API to use local USB devices    HAU  VAP Register Hub Gr usb  error     sVvAr i SUCCH SS     NSLog    RegisterHub error        error localizedDescription     return 17       Tilacde   2   usage  argv 0     NSString  serial or name   NSString stringWithUTF8String argv 1                YModule  module    YModule FindModule serial or name     
248. tion nextModule    de cet objet pour  trouver les modules suivants  et ce tant que la r  ponse n est pas un NULI  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    AIME    lt  php       www yoctopuce com 43    8  Utilisation du Yocto Servo en PHP       include   yocto api php     yRegisterHub   http   127 0 0 1 4444      Smodule   yFirstModule     while   is null  Smodule      PEINcE   ss  ss   lt br gt    omodulle  get serral Numbers    i7   module  gt get productName       Smodule Smodule  gt nextModule        Le  Sy  WS   lt  BODY gt    lt  HTML gt     8 4  API par callback HTTP et filtres NAT    La librairie PHP est capable de fonctionner dans un mode sp  cial appel   Yocto API par callback  HTTP  Ce mode permet de contr  ler des 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  
249. tiver le port USB sous Android A 98  16 5  Contr  le de la fonction Servo iii 100  16 6  Contr  le de la partie module ooo    eee ceseeeeeeneeeeeeneeeeteaaeeeeeeaeeeseeaeeeeseaeeeeeeeeeeseeaeeeeaaes 102  16 7  Gestion des erreurs iii 107  17  Programmation avanc  e ooo  ccc cssesssssseestessesecseesseesecstecseesseeseeseesneeseestes 109  17 1  Programmation par   v  nements iii 109  18  Utilisation avec des langages non support  s 2    cece 111  18 1  Ligne de commande  sua hante nant eEEEEENEEEENRNEd Eden 111  18 2  e EE UE SEE TP GET  R   ees eB ee A ee Se res 111  18 3  Utilisation des librairies dynamiques o oo    eee ee ceee ee eene eee eeaeeeeeeeeeeteeeeeteaeeeeteeeeeeeaeaee 113  18 4  Port de la librairie haut niveau iii 116  19  R  f  rence de l API de haut niveau ooo  neseeseeeseestessteseeseen 117  E EI ele EE 118  19 2  Interface de contr  le du module            eceeeeeeceeeeeeeteeeeeeeeeeeneeeeeeeeeteaeeeeeeseeceeeeeeeseeeeneeeeeeess 143  19 3  Interface de la fonction Servo ii 188  19 4  Interface de contr  le de l alimentation      220  20  Probl  mes courants eet 249  AE EEEE EE 249  20 2  Plateformes ARM  HF et EL iii 250  A Mee TEE 251  Blueprint EE 253    1  Introduction    Le module Yocto Servo est un module de 45x20mm qui permet de commander jusqu    cinq servo   moteurs de mod  lisme  Le module peut   tre aliment   par un alimentation externe  mais il supporte  aussi de ne fonctionner qu avec le bus USB  ce qui lui permet de piloter un petit servo sans  
250. tname      lt serial number gt   lt channel gt  positroni   print  scriptname      lt logical name gt   lt channel gt  position    printiscripieneme     any  lt channel gt  position     print   Example      print  scriptname     any 2 500     sys exit       def die  msg     EE reese    if len sys argv  lt 3   usage     target sys argv 1   upper    channel sys argv 2   position int  sys argv 3        Setup the API to use local USB devices   errmsg YRefParam     if YAPI RegisterHub  usb   errmsg     YAPI SUCCESS   sys exit   init error  errmsg value     if target   ANY      retreive any servo then find its serial    servo   YServo FirstServo    if servo is None   die  No module connected    m servo get module     target   m get serialNumber       print   using     target   servo   YServo FindServo target     servo  channel     if not  servo isOnline    die  device not connected      servo move  position  1000     14 4  Contrdle de la partie module    Chaque module peut   tre contr  l   d une mani  re similaire  vous trouverez ci dessous un simple  programme d exemple affichant les principaux param  tres d un module et permettant d activer la    balise de localisation        usr bin python         coding  utf 8      impo ceos SVS   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
251. topuce     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 Systm  Collections  Generac   using System Ling    using System Text     namespace ConsoleApplicationl     class Program     static void usage      string execname         System  AppDomain CurrentDomain FriendlyName   Console WriteLine         Usage        Console Writehiane  excenamet     lt serialynumber gt  lee  Console Writehine exconamnct s   logucdil mame sie OOO   rere   LOO RL   Console WriteLine  execname   any    1000         1000         System  Threading  Thread Sleep  2500     Environment  Exit  0           static void Main string   args       string errmsg         string target    YServo servol    YServo servo5    ink poss    if  args Length  lt  2  usage     target   args 0  ToUpper     pos   Convert  lolne221la ras Eh    if  YAPI RegisterHub  usb   ref errmsg     YAPI SUCCESS      Console WriteLine   RegisterHub error      errmsg    Environment  Exit  0           if  target     ANY        servol   YServo FirstServo     if  servol    null        Console WriteLine   No module connected  check USB cable       Environment Exit  0         EE EE EE EE EE EE Number          servol   YServo FindServo target     servol          www yoctopuce com 73    12  Utilisation du Yocto Servo en C        servo5   YServo FindServo  target     servo5       if  
252. topuce offre une autre  alternative pour la gestion des erreurs  permettant de faire un programme robuste sans devoir  attraper les exceptions    chaque ligne de code  Il suffit d appeler la fonction  yDisableExceptions    pour commuter la librairie dans un mode ou les exceptions de chaque  fonction sont syst  matiquement remplac  es par des valeurs de retour particuli  res  qui peuvent   tre  test  es par l appelant lorsque c est pertinent  Le nom de la valeur de retour en cas d erreur pour  chaque fonction est syst  matiquement 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                                           www yoctopuce com 89    14  Utilisation du Yocto Servo en Python       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   un
253. tourne un code d erreur n  gatif                 128 www yoctopuce com    19  R  f  rence de l API de haut niveau       YAPI PreregisterHub    yPreregisterHub      Alternative plus tolerante a RegisterHub       function yPreregisterHub  url  errmsg   function PreregisterHub  url  errmsg   function yPreregisterHub   url   amp  errmsg   YRETCODE yPreregisterHub  const string amp  url  string amp  errmsg   YRETCODE yPreregisterHub  NSString   url  NSError   errmsg   function yPreregisterHub  url  string  var errmsg  string   integer  function yPreregisterHub  ByVal url As 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    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
254. 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 Module   yoctolib YModule   require_once    yocto_api php        include  yocto_api h    import  yocto_api h   uses yocto_api     vb  yocto api vb    yocto_api cs  import com yoctopuce YoctoAPI 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 Yoctopuce   yGetAP Version     Retourne la version de la librairie Yoctopuce utilis  e   yGetTickCount     Retourne la valeur du compteur monotone de temps  en millisecondes    yHandleEvents errmsg    Maintient la communication de la librairie avec les modules Yoctopuce   ylnitAPI mode  errmsg    Initialise la librairie de programmation de Yoctopuce explicitement   yPreregisterHub url  errmsg    Alternative plus toleran
255. tre 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        www yoctopuce com 61    10  Utilisation du Yocto Servo en Objective C       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
256. trouv    il suffit ensuite d appeler la fonction nextModule    de cet objet pour  trouver les modules suivants  et ce tant que la r  ponse n est pas un NULL  Ci dessous un petit  exemple listant les module connect  s     lt HTML gt    lt HEAD gt    lt TITLE gt Modules inventory lt  TITLE gt    lt SCRIPT type  text javascript  src lyocto api js  gt  lt  SCRIPT gt    lt SCRIPT language  javascriptl 5  type  text JavaScript  gt   See     Use explicit error handling rather than exceptions  yDisableExceptions           Setup the API to use the VirtualHub on local machine   if  yRegisterHub   http   127 0 0 1 4444       VAPI SUCCESS     alent  Me anno EE EE Orn        function refresh        yUpdateDeviceList        var htmlcode        var module   yFirstModule     while module     htmlcode    module get serialNumber           tmodule 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 H1 gt Device list lt  H1 gt    lt tt gt  lt span id  list  gt  lt  span gt  lt  tt gt    lt  BODY gt    lt  HTML gt     7 4  Gestion des erreurs    Lorsque vous impl  mentez un programme qui doit interagir avec des modules USB  vous ne pouvez  pas faire abstraction de la gestion des erreurs  Il y aura forc  ment une occasion o   un utilisateur  aura d  branch   le p  riph  rique  soit avant de lancer le programme  soit
257. ts 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     1 http   www yoctopuce com FR libraries php       24 www yoctopuce com    5  Programmation  concepts g  n  raux       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 Servo        www yoctopuce com 25       26    www yoctopuce com    6  Utilisation du Yocto Servo en ligne de commande    Lorsque vous d  sirez effectuer une op  ration ponctuelle sur votre Yocto Servo  comme la lecture  d une valeur  le changement d un nom logique  etc   vous pouvez bien sur utiliser le Virtual Hub  mais  il existe une m  thode encore plus simple  rapide et efficace  l API 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      6 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 
258. u 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         include  lt iostream gt    include  lt stdlib h gt      include  yocto api h   using namespace std     static void usage const char  exe        52 www yoctopuce com    9  Utilisation du Yocto Servo en C              cerni usager ee EE E ENEE    SEET    ink maiman anger conet char   argv            Se errmsg        Setup the API to use local USB devices    i   yRegisterHub  usb   errmsg     YAPT SUCCESS     Cerin REG SES HUONE rror Ae omens CRAN I  revus         me  enee   2   usage  argv 0       YModule  module   yFindModule argv 1       use serial or logical name  if  module  gt isOnline       if  arge  gt   3    string newname   argv 2    if   yCheckLogicalName  newname       cerr  lt  lt   Invalid name     lt  lt  newname  lt  lt       lt  lt  endl     usage  argv 0        module  gt set_logicalName  newname     module  gt saveToFlash            cout  lt  lt   Current name     lt  lt  module  gt get_logicalName    lt  lt  endl     else    cout  lt  lt  argv 1   lt  lt    not connected  check identification and USB cable     lt  lt  endl      return 
259. u module  pr  programm   en usine     function get_serialNumber     function get_serialNumber     function get_serialNumber      string get_serialNumber       NSString   serialNumber   function get_serialNumber     string  function get_serialNumber    As String  string get_serialNumber      String get_serialNumber      def get_serialNumber      YModule target get_serialNumber    Retourne      YModule    une cha  ne de caract  res repr  sentant le num  ro de s  rie du module  pr  programm   en usine    En cas d erreur  d  clenche une exception ou retourne Y_SERTALNUMBER_INVALTID              168    www yoctopuce com    19  R  f  rence de l API de haut niveau       module   get_upTime   YModule  module upTime      Retourne le numbre de millisecondes   coul  es depuis la mise sous tension du module    function get_upTime     function get_upTime     function get_upTime      s64 get_upTime        s64  upTime   function get_upTime     int64  function get_upTime    As Long  long get_upTime      long get_upTime      def get_upTime      YModule target get_upTime    Retourne    un entier repr  sentant le numbre de millisecondes   coul  es depuis la mise sous tension du module    En cas d erreur  d  clenche une exception ou retourne Y_UPTIME_INVALID           www yoctopuce com 169    19  R  f  rence de l API de haut niveau       module   get_usbBandwidth    module   usbBandwidth      Retourne le nombre d interface USB utilis   par le module     function get_usbBandwidth      function ge
260. uce fabrique des hubs particuli  rement  petits pr  cis  ment destin  s    cet usage  dont la taille peut   tre r  duite    20mm par 36mm  et qui se  montent en soudant directement les modules au hub via des connecteurs droits ou des c  bles  nappe  Pour plus de d  tail  consulter la fiche produit du micro hub USB     YoctoHub Ethernet et YoctoHub Wireless    Vous pouvez ajouter une connectivit   r  seau    votre Yocto Servo gr  ce aux hubs YoctoHub   Ethernet et YoctoHub Wireless  Le premier offre une connectivit   Ethernet  le second offre une  connectivit   Wifi  Chacun de ces hubs peut piloter jusqu    trois modules Yoctopuce et se comporte  exactement comme un ordinateur normal qui ferait tourner un VirtualHub     Cable nappe mono brin    Si vous d  sirez souder le module Yocto Servo directement    un micro hub USB pour   viter  l encombrement d un vrai cable USB  utilisez de pr  f  rence du cable nappe   tam   mono brin  c est  le plus facile    souder  Dans tous les cas  il vous faudra 4 fils espac  s de 1 27mm        www yoctopuce com 3              Introduction       Bornier d alimentation externe    Il est pr  vu que vous puissiez souder directement le cable d alimentation externe sur le module   N  anmoins vous pouvez utiliser un bornier  pour rendre le tout un peu plus d  montable        Utilisation d un bornier pour l alimentation externe     Bo  tier   Votre Yocto Servo a   t   con  u pour pouvoir   tre install   tel quel dans votre projet  N  anmoins  Yoctopuce
261. ue votre projet va g  rer  Dans le doute  vous  pouvez aussi s  lectionner tous les fichiers     1 http   www microsoft com visualstudio en us products 2010 editions visual csharp express  www yoctopuce com FR libraries php  3 Les sources de cette DLL sont disponibles dans l API C         www yoctopuce com 71    12  Utilisation du Yocto Servo en C        Vous avez alors le choix entre simplement ajouter ces fichiers    votre projet  ou les ajouter en tant  que lien  le bouton Ajouter est en fait un menu d  roulant   Dans le premier cas  Visual Studio va  copier les fichiers choisis dans votre projet  dans le second Visual Studio va simplement garder un  lien sur les fichiers originaux  Il est recommand   d utiliser des liens  une   ventuelle mise    jour de la  librairie sera ainsi beaucoup plus facile     Ensuite  ajoutez de la m  me mani  re la dll yapi d11  qui se trouve dans le r  pertoire Sources   d11   Puis depuis la fen  tre Explorateur de solutions  effectuez un clic droit sur la DLL  choisissez  Propri  t   et dans le panneau Propri  t  s  mettez l option Copier dans le r  pertoire de sortie     toujours copier  Vous   tes maintenant pr  t    utiliser vos modules Yoctopuce depuis votre  environnement Visual Studio     Afin de les garder simples  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 
262. uffer 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  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 
263. ule   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          156 www yoctopuce com    19  R  f  rence de l API de haut niveau       module  gt get_firmwareRelease   YModule  module    gt firmwareRelease      Retourne la version du logiciel embarqu   du module     function get_firmwareRelease     function get_firmwareRelease     function get_firmwareRelease      string get_firmwareRelease       NSString   firmwareRelease   function get_firmwareRelease     string  function get_firmwareRelease    As String  string get_firmwareRelease      String get_firmwareRelease      def get_firmwareRelease      YModule target get_firmwareRelease    Retourne    une cha  ne de caract  res repr  sentant la version du logiciel embarqu   du module    En cas d erreur  d  clenche une exception ou retourne Y_FIRMWARERELEASE_INVALID              www yoctopuce com 157    19  R  f
264. ule 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           146 www yoctopuce com    19  R  f  rence de l API de haut niveau       YModule FirstModule    yFirstModule      Commence l   num  ration des modules accessibles par la librairie     function yFirstModule   function FirstModule     function yFirstModule      YModule  yFirstModule     YModule  yFirstModule              pas   function yFirstModule     TYModule  function yFirstModule    As YModule  YModule FirstModule      YModule FirstModule      def FirstModule       YModule    Utiliser la fonction YModule nextModule    pour it  rer sur les autres modules        Retourne      un pointeur sur un objet YModule  correspondant au premier module accessible en ligne  ou null si  aucun module n a   t   trouv             www yoctopuce com    147    19  R  f  rence de l API de haut niveau       module  describe      Retourne un court texte d  crivant le module      _is  function describe     node js  function describe    
265. ules avec le m  me nom logique et que le logiciel de pilotage essaye d acc  der    l un  de ces module    l aide de son nom logique  A leur sortie d usine  les modules n ont pas de nom  logique assign    c est    vous de le d  finir     2 2  Les   l  ments sp  cifiques    Les cinq canaux    Le module Yocto Servo dispose de cinq sorties capable de piloter chacune un servo  Ces sorties  peuvent   tre aliment  es soit par le bus UBS  soit par une alimentation externe     1 court court court long long long court court court  2 support yoctopuce com       6 www yoctopuce com    2  Pr  sentation          Il est possible de brancher jusqu    cinq servos    Le module est essentiellement pr  vu pour faire fonctionner des servos moteurs de mod  lisme  mais  il peut parfaitement faire fonctioner d autre dispositifs  en fait si pouvez faire fonctionner un dispositif  en le branchant sur un r  cepteur de mod  lisme  vous pouvez aussi le faire piloter avec le Yocto   Servo  cela inclut les variateurs de vitesse  brushless ou non     Un port USB ne pouvant officiellement pas fournir plus de 500mA  et de toutes mani  re pas plus de  2 amp  res  vous ne pourrez faire fonctionnent que des tout petits servo en n utilisant que le port  USB  C est pourquoi le module Yocto Servo peut   tre alimenter avec une alimentation externe     Le port d alimentation externe    Vous pouvez brancher une alimentation externe sur votre module  cette alimentation sert alimenter  les servos  La tension appliqu  e 
266. unt       Retourne    le nombre de fonctions sur le module    En cas d erreur  d  clenche une exception ou retourne un code d erreur n  gatif              150 www yoctopuce com    19  R  f  rence de l API de haut niveau       module   functionid   YModule    Retourne l identifiant mat  riel de la ni  me fonction du module     function functionid  functionindex    function functionld  functionindex    function functionld   functionindex    string functionld  int functionindex      NSString   functionld    int  functionindex   function functionld  functionindex  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              www yoctopuce com 151    19  R  f  rence de l API de haut niveau       module   functionName   YModule    Retourne le nom logique de la ni  me fonction du module     function functionName  functionindex    function functionName  functionindex    function functionName   functionindex    string functionName  int functionindex      NSString   functionName    int  functionindex   function functionName  functionindex  integer   st
267. ur 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                      68 www yoctopuce com    11  Utilisation du Yocto Servo 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 69       70    www yoctopuce com    12  Utilisation du Yocto Servo 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     12 1  Installation    T  l  chargez la librairie Yoctopuce pour Visual C  depuis le site 
268. urn 0     9 3  Gestion des erreurs    Lorsque vous impl  mentez un programme qui doit interagir avec des modules USB  vous ne pouvez  pas faire abstraction de la gestion des erreurs  Il y aura forc  ment une occasion o   un utilisateur  aura d  branch   le p  riph  rique  soit avant de lancer le programme  soit m  me en 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 s
269. us 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       60 www yoctopuce com    10  Utilisation du Yocto Servo en Objective C       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 NULL  Ci dessous un petit  exemple listant les module connect  s     import  lt Foundation Foundation h gt    import  yocto api h     int Main NT arge  const cher sec        NSError  error      autoreleasepool       Setup the API to use local USB devices  if  yRegisterHub   usb    amp error     VAPT 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     10 3  Gestion des erreurs    Lorsque vous impl  mentez un programme qui doit interagir avec des modules USB  vous ne pouvez  pas f
270. w yoctopuce com 107       108 www yoctopuce com    17  Programmation avanc  e    Les chapitres pr  c  dents vous ont pr  sent   dans chaque language disponible les fonctions de  programmation de base utilisables avec votre module Yocto Servo  Ce chapitre pr  sente de fa  on  plus g  n  rale une utilisation plus avanc  e de votre module  Les exemples sont donn  s dans le  language le plus populaire aupr  s des clients de Yoctopuce     savoir C   N  anmoins  vous trouverez  dans les librairies de programmation pour chaque language des exemples complets illustrant les  concepts pr  sent  s ici     Afin de rester le plus concis possible  les exemples donn  s dans ce chapitre ne font aucune gestion  d erreur  Ne les copiez pas tels quels dans une application de production     17 1  Programmation par   v  nements    Les m  thodes de gestion des modules Yoctopuce qui vous ont   t   pr  sent  es dans les chapitres  pr  c  dents sont des fonctions de polling  qui consistent    demander en permanence    l API si  quelque chose a chang    Facile    appr  hender  cette technique de programmation est n est pas la  plus efficace ni la plus r  active  C est pourquoi l API de programmation Yoctopuce propose aussi un  mod  le de programmation par   v  nements  Cette technique consiste    demander    l API de signaler  elle m  me les changements importants d  s qu ils sont d  tect  s  A chaque fois qu un param  tre cl    change  l API appelle une fonction de callback que vous avez pr  d  finie
271. web de Yoctopuce   Il n y a pas de  programme d installation  copiez simplement de contenu du fichier zip dans le r  pertoire de votre  choix  Vous avez besoin essentiellement du contenu du r  pertoire Sources  Les autres r  pertoires  contiennent la documentation et quelques programmes d exemple  Les projets d exemple sont des  projets Visual C  2010  si vous utilisez une version ant  rieure  il est possible que vous ayez     reconstruire la structure de ces projets     12 2  Utilisation l API yoctopuce dans un projet Visual C     La librairie Yoctopuce pour Visual C  NET se pr  sente sous la forme d une DLL et de fichiers  sources en Visual CH 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 q
272. widget AdapterView OnItemSelectedListener   import android widget ArrayAdapter    import android widget SeekBar    import android widget Spinner    import com  yoctopuce YoctoAPI YAPI    import com  yoctopuce YoctoAPI YAPI Exception    import com  yoctopuce YoctoAPI YServo    public class GettingStarted Yocto Servo extends Activity implements         private YServo servo   null   private ArrayAdapter lt String gt  aa      Override  public void onCreate  Bundle savedInstanceState      super onCreate  savedInstanceState     setContentView R layout gettingstarted yocto servo    Spinner my spin    Spinner  findViewById R id spinner1     EE EE EE bere  aa      new ArrayAdapter lt String gt  this  android R layout simple_    OnltemSelectedListener    spinner item      aa setDropDownViewResource  android R layout simple spinner dropdown item      my spin setAdapter  aa          Override  protected void onStart       s  per Onercnex  0e  aa clear     Ery i  YAPI EnableUSBHost  this    YAPI RegisterHub   usb      YServo s   YServo FirstServo     while  s    null     String hwid   s get_hardwarelId     aa add hwid     S   s nextServo          catch  YAPT Exception         e prinestacklracel        aa notifyDataSetChanged             Override  protected void onStop       super onStop     YAPI FreeAPI           Override  public void onItemSelected  AdapterView lt   gt  parent  View view          DOE Aere    long id        www yoctopuce com    101    16  Utilisation du Yocto Servo avec An
273. xemple ci dessous  vous permet changer le nom logique d un module        using System    using oystem  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           m set_logicalName  newname       m saveToFlash       do not forget this  Console Were  Module serra     image taser tcl Number     i i   Console  Writeline     name      m get_logicalName             else       www yoctopuce com 75    12  Utilisation du Yocto Servo en C        Console Write  not connected  check identification and USB cable       Attention  le nombre de cycles d   criture de la m  moire non volatile du module est limit    Pass   cette  limite plus rien ne gar
274. 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    121    19  R  f  rence de l API de haut niveau       YAPI EnableExceptions   YAPI  yEnableExceptions      R  active l utilisation d exceptions pour la gestion des erreurs     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 se lance  soit le programme de l utilisateur est imm  diatement stopp     crash         122 www yoctopuce com    19  R  f  rence de l API de haut niveau       YAPI EnableUSBHost   YAPI  yEnableUSBHost      Cette fonction est utilis  e uniquement sous Android   synchronized static void EnableUSBHost  Object osContext     Avant d appeler yRegisterHub   usb   il faut activer le port USB host du systeme  Cette fo
275. z 0  9  et       advertisedValue    Courte cha  ne de caract  res r  sumant l   tat actuel du servo  et qui sera publi  e automatiquement  jusqu au hub parent  Pour un servo  la valeur publi  e est sa position actuelle  un nombre entre  1000  et 1000 compris      position  Position actuelle du servo  ramen  e par convention dans l intervalle  1000 et 1000 compris  Lorsque  la valeur 0 correspond    la position m  diane du servo     range    Plage d utilisation du servo  La valeur 100  correspond    un signal de commande standard  variant  de 1  ms     2  ms   Pour les servos supportent une plage double  de 0 5  ms     2 5  ms   vous pouvez       www yoctopuce com 21    5  Programmation  concepts g  n  raux       utiliser une plage allant jusqu    200   Attention  l utilisation d une plage sup  rieure aux  caract  ristiques du servo risque fortement d endommager le servo     neutral    Dur  e en microsecondes de l impulsion correspondant au neutre du servo  La valeur standard est de  1500  us   mais certains servos utilisent une autre valeur afin d exploiter un plage plus grande   Attention  l utilisation d une valeur incorrecte risque fortement d endommager le servo     move    Permet de faire bouger le servo d une position    l autre en un temps pr  cis  La valeur est un agr  gat  comprenant la position cible  un entier  et une dur  e en millisecondes     5 6  Quelle interface  Native  DLL ou Service   Il y existe plusieurs m  thodes pour contr  ler un module Yoctopuce depui
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
    #48 - Intermediate Twig: Logic, Macros & More with Andrew Welch  MAW-6W 取扱説明書 MAW-5W  Furuno FE-400 User's Manual  VO8 EXTRA - Le Vrai Professionnel  Digital Light Meter  VAssert Programming Guide  Fusions comment federer une equipe mixte  Palm Centro (AT&T) Quick Start Guide    Copyright © All rights reserved. 
   Failed to retrieve file