5.4. Interface de la fonction Led ....................5.5. Quelle interface: Native, DLL ou Service? ................5.6. Programmation, par où commencer? ................. 6. Utilisation du Yocto-Demo en ligne de commande ......... 6.1. Installation ........................... 6.2. Utilisation: description générale ..................6.3. Contrôle de la fonction Led ....................
Page 4
10.3. Gestion des erreurs ......................11. Utilisation du Yocto-Demo en VisualBasic .NET ..........11.1. Installation ......................... 11.2. Utilisation l'API yoctopuce dans un projet Visual Basic ............ 11.3. Contrôle de la fonction Led ....................11.4. Contrôle de la partie module .....................
Page 5
16. Utilisation du Yocto-Demo avec Android ............16.1. Accès Natif et Virtual Hub....................16.2. Préparation ........................16.3. Compatibilité ........................16.4. Activer le port USB sous Android ..................16.5. Contrôle de la fonction Led ....................16.6. Contrôle de la partie module .....................
Les ingénieurs Yoctopuce se sont donnés beaucoup de mal pour que votre Yocto-Demo 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 à...
Page 8
Les versions de Windows actuellement supportées sont Windows XP, Windows 2003, Windows Vista, Windows 7 et Windows 8.1. Les versions 32 bit et 64 bit sont supportées. Yoctopuce teste régulièrement le bon fonctionnement des modules sur Windows XP et Windows 7.
1. Introduction Vous devez raccorder votre module Yocto-Demo à l'aide d'un cable USB de type A - micro B Si vous branchez un hub USB entre l'ordinateur et le module Yocto-Demo, 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.
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.
2.2. Les éléments spécifiques La led de test Le module Yocto-Demo ne sert pratiquement à rien, il est simplement conçu pour vous permettre de tester les API de programmation de Yoctopuce. C'est pourquoi le Yocto-Demo est un module de base équipé d'une seule LED verte en plus de la YoctoLED. Une fois que vous aurez compris comment piloter cette LED depuis votre langage de programmation préféré, il y a de bonnes...
3. Premiers pas Arrivé à ce chapitre votre Yocto-Demo devrait être branché à votre ordinateur, qui devrait l'avoir reconnu. Il est temps de le faire fonctionner. Rendez-vous sur le site de Yoctopuce et téléchargez le programme Virtual Hub , Il est disponible pour Windows, Linux et Mac OS X.
Le firmware du module peut être facilement être mis à jour à l'aide de l'interface. Pour ce faire, vous devez au préalable disposer du firmware adéquat sur votre disque local. Les firmwares destinés aux modules Yoctopuce se présentent sous la forme de fichiers .byn et peuvent être téléchargés depuis le site web de Yoctopuce.
ê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 La seule fonction du module Yocto-Demo est la led de test, dont le nom hardware est www.yoctopuce.com...
Exemples de montage sur un support. Le module Yocto-Demo 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.
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...
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 à...
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.
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.
Attribut de type entier 32 bits à disposition de l'utilisateur. 5.4. Interface de la fonction Led La librairie de programmation Yoctopuce permet non seulement d'allumer la led à une intensité donnée, mais aussi de la faire osciller à plusieurs fréquences.
(toutes les 2 secondes), RUN (toutes les secondes), CALL (2 fois par seconde) ou PANIC (4 fois par seconde). 5.5. Quelle interface: Native, DLL ou Service? Il y existe plusieurs méthodes pour contrôler un module Yoctopuce depuis un programme. Contrôle natif Dans ce cas de figure le programme pilotant votre projet est directement compilé avec une librairie qui offre le contrôle des modules.
Certain langages ne permettent tout simplement pas d'accéder facilement au niveau matériel de la machine. C'est le cas de Javascript par exemple. Pour gérer ce cas Yoctopuce offre la solution sous la forme d'un petit programme, appelé Hub Virtuel qui lui est capable d'accéder aux modules, et votre application n'a plus qu'à...
Arrivé à ce point du manuel, vous devriez connaître l'essentiel de la théorie à propos de votre Yocto- Demo. 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 .
Page 26
5. Programmation, concepts généraux Une fois que vous maîtriserez la programmation de base de votre module, vous pourrez vous intéresser au chapitre concernant la programmation avancée qui décrit certaines techniques qui vous permettront d'exploiter au mieux votre Yocto-Demo. www.yoctopuce.com...
à votre plateforme/OS dans le répertoire de votre choix. Ajoutez éventuellement ce répertoire à votre variable environnement PATH pour avoir accès aux exécutables depuis n'importe où. C'est tout, il ne vous reste plus qu'à brancher votre Yocto-Demo, ouvrir un shell et commencer à travailler en tapant par exemple: C:\>YLed...
C:\>executable commande /help Pour obtenir une description détaillée des paramètres d'une commande. 6.3. Contrôle de la fonction Led Pour contrôler la fonction Led de votre Yocto-Demo, vous avez besoin de l'exécutable YLed. Vous pouvez par exemple lancer: C:\>YLed set_power ON C:\>YLed...
6. Utilisation du Yocto-Demo en ligne de commande 6.4. Contrôle de la partie module Chaque module peut être contrôlé d'une manière similaire à l'aide de l'exécutable . Par YModule exemple, pour obtenir la liste de tous les modules connectés, utilisez: C:\>YModule inventory...
Page 30
6. Utilisation du Yocto-Demo en ligne de commande Vous obtenez un inventaire des modules connectés par USB, en utilisant un accès natif. Si il y a déjà une autre commande en cours qui accède aux modules en natif, cela ne fonctionnera pas. Mais si vous lancez un virtual hub et que vous lancez votre commande sous la forme: C:\>YModule -r 127.0.0.1 inventory...
VirtualHub,et vous pouvez commencer vos premiers test. Vous n'avez pas besoin d'installer de driver. 7.2. Contrôle de la fonction Led Il suffit de quelques lignes de code pour piloter un Yocto-Demo. Voici le squelette d'un fragment de code JavaScript qui utilise la fonction Led. <SCRIPT type="text/javascript"...
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-Demo n'est pas branché sur la machine où fonctionne le navigateur internet, remplacez dans l'exemple l'adresse par l'adresse IP de la machine où...
7. Utilisation du Yocto-Demo en Javascript <HTML> <HEAD> <TITLE>Hello World</TITLE> <SCRIPT type="text/javascript" src="yocto_api.js"></SCRIPT> <SCRIPT type="text/javascript" src="yocto_led.js"></SCRIPT> <SCRIPT language='javascript1.5' type='text/JavaScript'> <!-- // Use explicit error handling rather than exceptions yDisableExceptions(); // Setup the API to use the VirtualHub on local machine if(yRegisterHub('http://127.0.0.1:4444/')
Page 34
7. Utilisation du Yocto-Demo en Javascript module; function refresh() 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.getElementById('serial').value = serial; module = yFindModule(serial); if(module.isOnline()) { document.getElementById('msg').value...
7. Utilisation du Yocto-Demo en Javascript yDisableExceptions(); // Setup the API to use the VirtualHub on local machine if(yRegisterHub('http://127.0.0.1:4444/') YAPI_SUCCESS) { alert("Cannot contact VirtualHub on 127.0.0.1"); module; function refresh() serial = document.getElementById('serial').value; if(serial == '') { // Detect any conected module suitable for the demo module = yFirstModule().nextModule();...
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: •...
Page 37
7. Utilisation du Yocto-Demo en Javascript même logique: une méthode retournera une valeur , une get_state() Y_STATE_INVALID méthode retournera une valeur , etc. Dans get_currentValue Y_CURRENTVALUE_INVALID 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.
Vous n'avez pas besoin d'installer de driver. 8.2. Contrôle de la fonction Led Il suffit de quelques lignes de code pour piloter un Yocto-Demo. Voici le squelette d'un fragment de code PHP qui utilise la fonction Led. include('yocto_api.php');...
Page 40
Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez préalablement configurés. Imaginons un module Yocto-Demo avec le numéros de série YCTOPOC1-123456 que vous auriez appelé "MonModule" et dont vous auriez nommé la fonction led "MaFonction", les cinq appels suivants seront strictement équivalents (pour autant que...
8. Utilisation du Yocto-Demo en PHP <HTML> <HEAD> <TITLE>Hello World</TITLE> </HEAD> <BODY> <FORM method='get'> <?php include('yocto_api.php'); include('yocto_led.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/',$errmsg) YAPI_SUCCESS) { die("Cannot contact VirtualHub on...
Page 42
8. Utilisation du Yocto-Demo en PHP @$serial = $_GET['serial']; ($serial != '') { // Check if a specified module is available online $module = yFindModule("$serial"); if (!$module->isOnline()) { die("Module not connected (check serial and USB cable)"); } else { // or use any connected module suitable for the demo $module = yFirstModule();...
Page 43
8. Utilisation du Yocto-Demo en PHP // Setup the API to use the VirtualHub on local machine if(yRegisterHub('http://127.0.0.1:4444/',$errmsg) YAPI_SUCCESS) { die("Cannot contact VirtualHub on 127.0.0.1"); @$serial = $_GET['serial']; ($serial != '') { // Check if a specified module is available online $module = yFindModule("$serial");...
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é...
Page 45
8. Utilisation du Yocto-Demo en PHP 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.
8. Utilisation du Yocto-Demo en PHP Cliquer sur le bouton "configure" de la première ligne Cliquer sur le bouton "edit" de la section Outgoing callbacks. 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 à...
VirtualHub pour fonctionner. Pour coder un site Web qui contrôle des modules Yoctopuce de manière interactive, il faudra créer une interface utilisateur qui stockera dans un fichier ou une base de données les actions à effectuer sur les modules Yoctopuce. Ces actions seront ensuite lues puis exécutés par le script de contrôle.
Page 48
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: •...
à la création d'un projet à neuf linké avec les librairies Yoctopuce. 9.1. Contrôle de la fonction Led Il suffit de quelques lignes de code pour piloter un Yocto-Demo. Voici le squelette d'un fragment de code C++ qui utilise la fonction Led. #include "yocto_api.h"...
Page 50
Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez préalablement configurés. Imaginons un module Yocto-Demo avec le numéros de série YCTOPOC1-123456 que vous auriez appelé "MonModule" et dont vous auriez nommé la fonction led "MaFonction", les cinq appels suivants seront strictement équivalents (pour autant que...
9. Utilisation du Yocto-Demo en C++ #include <iostream> #include <stdlib.h> using namespace std; static void usage(void) cout << "usage: demo <serial_number> [ on | off ]" << endl; cout << " demo <logical_name> [ on | off ]" << endl;...
Page 52
9. Utilisation du Yocto-Demo en C++ // Setup the API to use local USB devices if(yRegisterHub("usb", errmsg) YAPI_SUCCESS) { cerr << "RegisterHub error: " << errmsg << endl; return if(argc < usage(argv[0]); YModule *module = yFindModule(argv[1]); // use serial or logical name if (module->isOnline()) {...
9. Utilisation du Yocto-Demo en C++ if(argc < usage(argv[0]); YModule *module = yFindModule(argv[1]); // use serial or logical name if (module->isOnline()) { (argc >= string newname = argv[2]; if (!yCheckLogicalName(newname)){ cerr << "Invalid name (" << newname << ")" << endl;...
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: •...
Pour intégrer le code source, le plus simple est d'inclure simplement le répertoire de la Sources librairie Yoctopuce à votre IncludePath, et d'ajouter tous les fichiers de ce répertoire (y compris le sous-répertoire ) à votre projet. yapi Pour que votre projet se construise ensuite correctement, il faudra linker avec votre projet les librairies systèmes requises, à...
Page 56
9. Utilisation du Yocto-Demo en C++ gcc (...) -lyocto -lm -lpthread -lusb-1.0 -lstdc++ www.yoctopuce.com...
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.
Page 58
Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez préalablement configurés. Imaginons un module Yocto-Demo avec le numéros de série YCTOPOC1-123456 que vous auriez appelé "MonModule" et dont vous auriez nommé la fonction led "MaFonction", les cinq appels suivants seront strictement équivalents (pour autant que...
10. Utilisation du Yocto-Demo en Objective-C isOnline La méthode de l'objet renvoyé par permet de savoir si le module isOnline [YLed FindLed] correspondant est présent et en état de marche. set_power La fonction de l'objet renvoyé par permet d'allumer et d'éteindre la set_power() YLed.FindLed...
Page 60
10. Utilisation du Yocto-Demo en Objective-C Modifications des réglages du module Lorsque que vous souhaitez modifier les réglages d'un module, il suffit d'appeler la fonction correspondante, cependant cette modification n'a lieu que dans la mémoire vive du set_xxx: 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...
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: •...
Page 62
10. Utilisation du Yocto-Demo en Objective-C cadre attendu pour la valeur retournée. Dans le cas de fonctions qui ne retournent à priori pas d'information, la valeur de retour sera si tout va bien, et un code d'erreur différent YAPI_SUCCESS en cas d'échec.
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 à...
11.3. Contrôle de la fonction Led Il suffit de quelques lignes de code pour piloter un Yocto-Demo. Voici le squelette d'un fragment de code VisualBasic .NET qui utilise la fonction Led. [...]...
11. Utilisation du Yocto-Demo en VisualBasic .NET isOnline La méthode de l'objet renvoyé par permet de savoir si le module isOnline() yFindLed correspondant est présent et en état de marche. set_power La fonction de l'objet renvoyé par permet d'allumer et d'éteindre la led.
11. Utilisation du Yocto-Demo en VisualBasic .NET 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.
Page 67
11. Utilisation du Yocto-Demo en VisualBasic .NET 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...
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: •...
12.2. Utilisation l'API yoctopuce dans un projet Visual C# La librairie Yoctopuce pour Visual C# .NET se présente sous la forme d'une DLL et de fichiers sources en Visual C#. La DLL n'est pas une DLL .NET mais une DLL classique, écrite en C, qui gère les communications à...
Il va de soit que que les fonctionnement des librairies est strictement identiques si vous les intégrez dans une application dotée d'une interface graphique. 12.3. Contrôle de la fonction Led Il suffit de quelques lignes de code pour piloter un Yocto-Demo. Voici le squelette d'un fragment de code C# qui utilise la fonction Led. [...] string errmsg = "";...
12. Utilisation du Yocto-Demo en C# isOnline La méthode de l'objet renvoyé par permet de savoir si le module YLed.isOnline() FindLed correspondant est présent et en état de marche. set_power La fonction de l'objet renvoyé par permet d'allumer et d'éteindre la set_power() YLed.FindLed...
12. Utilisation du Yocto-Demo en C# 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;...
Page 73
12. Utilisation du Yocto-Demo en C# Chaque propriété 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 Pour plus de détails concernant ces fonctions utilisées, reportez-vous aux YModule.set_xxx()
La librairie Yoctopuce est prévue pour vous aider à supporter ce genre de comportements, mais votre code doit néanmoins être fait pour se comporter au mieux pour interpréter les erreurs signalées par la librairie.
Page 75
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: •...
Delphi Par défaut la librairie Yoctopuce pour Delphi utilise une DLL yapi.dll, toutes les applications que vous créerez avec Delphi devront avoir accès à cette DLL. Le plus simple est de faire en sorte qu'elle soit présente dans le même répertoire que l'exécutable de votre application.
Page 78
13. Utilisation du Yocto-Demo en Delphi SysUtils, yocto_api, yocto_led; Procedure Usage(); exe : string; begin exe:= ExtractFileName(paramstr(0)); WriteLn(exe+' <serial_number>'); WriteLn(exe+' <logical_name>'); WriteLn(exe+' any'); halt; End; procedure setLedState(led:TYLed; state:boolean); begin if (led.isOnline()) then begin state then led.set_power(Y_POWER_ON) else led.set_power(Y_POWER_OFF); else Writeln('Module not connected (check identification and USB cable)');...
13. Utilisation du Yocto-Demo en Delphi yocto_api et yocto_led Ces deux unités permettent d'avoir accès aux fonctions permettant de gérer les modules Yoctopuce. doit toujours être utilisé, est nécessaire pour gérer les modules contenant yocto_api yocto_led une led, comme le Yocto-Demo.
Page 80
13. Utilisation du Yocto-Demo en Delphi else Writeln('off'); Writeln('uptime intToStr(module.get_upTime() div 1000)+'s'); Writeln('USB current + intToStr(module.get_usbCurrent())+'mA'); Writeln('Logs Writeln(module.get_lastlogs()); Writeln(''); Writeln('r : refresh / b:beacon ON / space : beacon off'); else Writeln('Module not connected (check identification and USB cable)'); end;...
Page 81
13. Utilisation du Yocto-Demo en Delphi // Setup the API to use local USB devices yRegisterHub('usb', errmsg)<>YAPI_SUCCESS then begin Write('RegisterHub error: '+errmsg); exit; end; module := yFindModule(serial); if (not(module.isOnline)) then begin writeln('Module not connected (check identification and USB cable)'); exit;...
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: •...
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.
14. Utilisation du Yocto-Demo en Python 14.3. Contrôle de la fonction Led Il suffit de quelques lignes de code pour piloter un Yocto-Demo. Voici le squelette d'un fragment de code Python qui utilise la fonction Led. [...] errmsg=YRefParam() #On récupère l'objet représentant le module (ici connecté en local sur USB) YAPI.RegisterHub("usb",errmsg)
14. Utilisation du Yocto-Demo en Python #!/usr/bin/python # -*- coding: utf-8 -*- import os,sys from yocto_api import from yocto_led import usage(): scriptname = os.path.basename(sys.argv[0]) print("Usage:") print(scriptname+' <serial_number>') print(scriptname+' <logical_name>') print(scriptname+' any sys.exit() die(msg): sys.exit(msg+' (check USB cable)') setLedState(led,state): led.isOnline(): state : led.set_power(YLed.POWER_ON)
Page 86
14. Utilisation du Yocto-Demo en Python sys.exit("usage: demo <serial or logical name> [ON/OFF]") errmsg =YRefParam() YAPI.RegisterHub("usb", errmsg) YAPI.SUCCESS: sys.exit("RegisterHub error: " str(errmsg)) len(sys.argv)<2 usage() YModule.FindModule(sys.argv[1]) ## use serial or logical name m.isOnline(): if len(sys.argv) > 2: if sys.argv[2].upper() "ON" m.set_beacon(YModule.BEACON_ON) if sys.argv[2].upper()
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: •...
Page 88
14. Utilisation du Yocto-Demo en Python 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 exceptions à chaque ligne code.
Il va de soit que que le fonctionnement des librairies est strictement identiques si vous les intégrez dans une application dotée d'une interface graphique. 15.2. Contrôle de la fonction Led Il suffit de quelques lignes de code pour piloter un Yocto-Demo. Voici le squelette d'un fragment de code Java qui utilise la fonction Led. [...] // On récupère l'objet représentant le module (ici connecté...
Mais vous pouvez tout aussi bien utiliser des noms logiques que vous auriez préalablement configurés. Imaginons un module Yocto-Demo avec le numéros de série YCTOPOC1-123456 que vous auriez appelé "MonModule" et dont vous auriez nommé la fonction led "MaFonction", les cinq appels suivants seront strictement équivalents (pour autant que...
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 www.yoctopuce.com...
Page 94
15. Utilisation du Yocto-Demo en Java 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 à...
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.
"USB Host" en AndroidManifest.xml ajoutant le tag <uses-feature android:name="android.hardware.usb.host" /> dans la section manifest <manifest ...> <uses-feature android:name="android.hardware.usb.host" />; Les YoctoHub sont un moyen simple et efficace d'ajouter une connectivité réseau à vos modules Yoctopuce. http:// www.yoctopuce.com/FR/products/category/extensions-et-reseau www.yoctopuce.com...
16. Utilisation du Yocto-Demo avec Android </manifest> 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 l a c c è s au périphérique. Si l'utilisateur accepte, l'application pourra accéder au périphérique connecté...
16. Utilisation du Yocto-Demo avec Android 16.5. Contrôle de la fonction Led Il suffit de quelques lignes de code pour piloter un Yocto-Demo. Voici le squelette d'un fragment de code Java qui utilise la fonction Led. [...] // On récupère l'objet représentant le module (ici connecté en local sur USB) YAPI.EnableUSBHost(this);...
Page 99
16. Utilisation du Yocto-Demo avec Android Un exemple réel Lancez votre environnement java et ouvrez le projet correspondant, fourni dans le répertoire Examples/Doc-Examples de la librairie Yoctopuce. Vous reconnaîtrez 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.
16. Utilisation du Yocto-Demo avec Android @Override public void onNothingSelected(AdapterView<?> arg0) /** Called when the user touches the button State A */ public void setLedOn(View view) // Do something in response to button click (led != null) try { led.setPower(YLed.POWER_ON);...
Page 101
16. Utilisation du Yocto-Demo avec Android protected void onStart() super.onStart(); try { aa.clear(); YAPI.EnableUSBHost(this); YAPI.RegisterHub("usb"); YModule r = YModule.FirstModule(); while (r != null) { String hwid = r.get_hardwareId(); aa.add(hwid); r = r.nextModule(); } catch (YAPI_Exception e) { e.printStackTrace(); // refresh Spinner with detected relay aa.notifyDataSetChanged();...
Page 102
16. Utilisation du Yocto-Demo avec Android try { if (on) { module.setBeacon(YModule.BEACON_ON); } else { module.setBeacon(YModule.BEACON_OFF); } catch (YAPI_Exception e) { e.printStackTrace(); Chaque propriété 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 Pour plus de détails concernant ces fonctions utilisées, reportez-vous aux...
Page 103
16. Utilisation du Yocto-Demo avec Android YModule r = YModule.FirstModule(); while (r != null) { String hwid = r.get_hardwareId(); aa.add(hwid); r = r.nextModule(); } catch (YAPI_Exception e) { e.printStackTrace(); // refresh Spinner with detected relay aa.notifyDataSetChanged(); @Override protected void onStop() super.onStop();...
Page 104
16. Utilisation du Yocto-Demo avec Android 100000 fois au cours de la vie du module. Veillez donc à ne pas appeler cette fonction depuis l'intérieur d'une boucle. Enumeration des modules Obtenir la liste des modules connectés se fait à l'aide de la fonction YModule.yFirstModule()
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.
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 www.yoctopuce.com...
Page 108
à 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 .
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é.
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-Demo avec le numéro de de série YCTOPOC1-12345 et le nom logique monModule. l'URL suivante permettra de connaître l'état du module.
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.
Page 112
(yapiHTTPRequest(serial,getValue,data,sizeof(dataBuffer),fullsize,errmsg)<0) then begin writeln(errmsg); halt; end; // searches for the HTTP header end p := pos(#13#10#13#10,data); // displays the response minus the HTTP header writeln(copy(data,p+4,length(data)-p-3)); // change the luminosity if (yapiHTTPRequest(serial,setValue,data,sizeof(dataBuffer),fullsize,errmsg)<0) then begin writeln(errmsg); halt; end; end. 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.
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.
19. Référence de l'API de haut niveau Ce chapitre résume les fonctions de l'API de haut niveau pour commander votre Yocto-Demo. 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...
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 à suffira en tout et pour tout. Ensuite, vous yRegisterHub() pourrez appeler la fonction globale correspondant à...
Page 117
Effectue une pause dans l'exécution du programme pour une durée spécifiée. yTriggerHubDiscovery(errmsg) Relance une détection des hubs réseau. yUnregisterHub(url) Configure la librairie Yoctopuce pour ne plus utiliser les modules connectés sur une machine préalablement enregistrer avec RegisterHub. yUpdateDeviceList(errmsg) Force une mise-à-jour de la liste des modules Yoctopuce connectés.
. 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 false si le nom est valide, dans le cas contraire. www.yoctopuce.com...
Page 119
) void yDisableExceptions( ) +(void) DisableExceptions procedure yDisableExceptions( ) procedure yDisableExceptions( ) void DisableExceptions( ) def DisableExceptions( ) Lorsque les exceptions sont désactivées, chaque fonction retourne une valeur d'erreur spécifique selon son type, documentée dans ce manuel de référence. www.yoctopuce.com...
Page 120
Attention, lorsque les exceptions sont activées, tout appel à une fonction de la librairie qui échoue déclenche une exception. Dans le cas où celle-ci n'est pas interceptée correctement par le code appelant, soit le debugger se lance, soit le programme de l'utilisateur est immédiatement stoppé (crash). www.yoctopuce.com...
Page 121
(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...
Page 122
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. function yFreeAPI( ) function FreeAPI( ) nodejs function yFreeAPI( ) void yFreeAPI( ) +(void) FreeAPI procedure yFreeAPI( ) procedure yFreeAPI( )
Page 123
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( ) nodejs function yGetAPIVersion( ) string yGetAPIVersion( ) +(NSString*) GetAPIVersion function yGetAPIVersion( ): string function yGetAPIVersion( ) As String...
Page 124
GetTickCount( ) java def GetTickCount( ) Ce compteur peut être utilisé pour calculer des délais en rapport avec les modules Yoctopuce, dont la base de temps est aussi la milliseconde. Retourne : un long entier contenant la valeur du compteur de millisecondes.
Page 125
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.
Page 126
19. Référence de l'API de haut niveau YAPI.InitAPI() YAPI yInitAPI() Initialise la librairie de programmation de Yoctopuce explicitement. function yInitAPI( mode, errmsg) function InitAPI( mode, errmsg) nodejs function yInitAPI( $mode, &$errmsg) YRETCODE yInitAPI( int mode, string& errmsg) +(YRETCODE) InitAPI :(int)
Page 127
"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 : 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...
Page 128
RegisterDeviceArrivalCallback( yDeviceUpdateFunc arrivalCallback) void RegisterDeviceArrivalCallback( DeviceArrivalCallback arrivalCallback) java def RegisterDeviceArrivalCallback( arrivalCallback) Le callback sera appelé pendant l'éxecution de la fonction , que vous devrez yHandleDeviceList appeler régulièrement. Paramètres : arrivalCallback une procédure qui prend un YModule en paramètre, ou null www.yoctopuce.com...
Page 129
RegisterDeviceRemovalCallback( yDeviceUpdateFunc removalCallback) void RegisterDeviceRemovalCallback( DeviceRemovalCallback removalCallback) java def RegisterDeviceRemovalCallback( removalCallback) Le callback sera appelé pendant l'éxecution de la fonction , que vous devrez yHandleDeviceList appeler régulièrement. Paramètres : removalCallback une procédure qui prend un YModule en paramètre, ou null www.yoctopuce.com...
Page 130
C'est un mode spécial permettant, entre autres, de prendre le contrôle de modules Yoctopuce à travers un filtre NAT par l'intermédiaire d'un VirtualHub ou d'un Hub Yoctopuce. Il vous suffit de configuer le hub pour qu'il appelle votre script à intervalle régulier. Ce mode de fonctionnement n'est disponible actuellement qu'en PHP et en Node.JS.
Page 131
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...
Page 132
à la fonction yRegisterHub . Le callback sera appelé pendant l’exécution de la fonction , que vous devrez appeler régulièrement. yHandleDeviceList Paramètres : hubDiscoveryCallback null une procédure qui prend deux chaîne de caractères en paramètre, ou www.yoctopuce.com...
Page 133
ByVal logfun As yLogFunc) void RegisterLogFunction( yLogFunc logfun) void RegisterLogFunction( LogCallback logfun) java 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...
Page 134
à 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" "i386" "x86_64" "32bit" "64bit" Retourne : rien. En cas d'erreur, déclenche une exception. www.yoctopuce.com...
Page 135
(Objective-C uniquement) Enregistre un objet délégué qui doit se conformer au protocole YDeviceHotPlug +(void) SetDelegate :(id) object Les méthodes seront appelées pendant l’exécution de la yDeviceArrival yDeviceRemoval fonction , que vous devrez appeler régulièrement. yHandleDeviceList Paramètres : object un objet qui soit se conformer au protocole YAPIDelegate , ou www.yoctopuce.com...
Page 136
ê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. www.yoctopuce.com...
Page 137
à lire périodiquement les informations en provenance des modules Yoctopuce en appelant la fonction afin de se maintenir à jour. yHandleEvents() Cette fonction peut signaler une erreur au cas à la communication avec un module Yoctopuce ne se passerait pas comme attendu. Paramètres : ms_duration un entier correspondant à...
Page 138
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...
Page 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. function yUnregisterHub( url) function UnregisterHub( url) nodejs function yUnregisterHub( $url) void yUnregisterHub( const string& url)
Page 140
19. Référence de l'API de haut niveau YAPI.UpdateDeviceList() YAPI yUpdateDeviceList() Force une mise-à-jour de la liste des modules Yoctopuce connectés. function yUpdateDeviceList( errmsg) function UpdateDeviceList( errmsg) nodejs function yUpdateDeviceList( &$errmsg) YRETCODE yUpdateDeviceList( string& errmsg) +(YRETCODE) UpdateDeviceList :(NSError**) errmsg function yUpdateDeviceList( var errmsg: string): integer...
Page 141
19. Référence de l'API de haut niveau YAPI.UpdateDeviceList_async() YAPI yUpdateDeviceList_async() Force une mise-à-jour de la liste des modules Yoctopuce connectés. function yUpdateDeviceList_async( callback, context) function UpdateDeviceList_async( callback, context) nodejs La librairie va vérifier sur les machines ou ports USB précédemment enregistrés en utilisant la fonction si un module a été...
19. Référence de l'API de haut niveau 19.2. Interface de contrôle du module Cette interface est la même pour tous les modules USB de Yoctopuce. Elle permet de contrôler les paramètres généraux du module, et d'énumérer les fonctions fournies par chaque module.
Page 143
Continue l'énumération des modules commencée à l'aide de module→reboot(secBeforeReboot) Agende un simple redémarrage du module dans un nombre donné de secondes. module→registerLogCallback(callback) Enregistre une fonction de callback qui sera appelée à chaque fois le module émet un message de log. www.yoctopuce.com...
Page 144
Agende un redémarrage du module en mode spécial de reprogrammation du logiciel embarqué. module→updateFirmware(path) Prepare une mise à jour de firmware du module. module→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...
Page 145
Retourne : YModule un objet de classe qui permet ensuite de contrôler le module ou d'obtenir de plus amples informations sur le module. www.yoctopuce.com...
Page 146
YModule FirstModule( ) java def FirstModule( ) Utiliser la fonction pour itérer sur les autres modules. YModule.nextModule() Retourne : YModule null un pointeur sur un objet , correspondant au premier module accessible en ligne, ou aucun module n'a été trouvé. www.yoctopuce.com...
Page 147
Retourne : : le path du fichier byn a utiliser ou une chaine vide si aucun firmware plus récent est disponible En cas d'erreur, déclenche une exception ou retourne une chaine de caractère qui comment par "error:". www.yoctopuce.com...
Page 148
) As String string describe( ) String describe( ) java def describe( ) Ce texte peut contenir soit le nom logique du module, soit son numéro de série. Retourne : une chaîne de caractères décrivant le module www.yoctopuce.com...
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 YAPI_INVALID_STRING www.yoctopuce.com...
Page 150
) -(int) functionCount function functionCount( ): integer function functionCount( ) As Integer int functionCount( ) def functionCount( ) Retourne : le nombre de fonctions sur le module En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif. www.yoctopuce.com...
Page 151
à 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...
Page 152
à 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. www.yoctopuce.com...
Page 153
à 0 pour la première fonction. Retourne : une chaîne de caractères correspondant à la valeur publiée par la fonction désirée En cas d'erreur, déclenche une exception ou retourne un chaîne vide. www.yoctopuce.com...
Page 154
) As Byte def get_allSettings( ) YModule target get_allSettings Utile pour sauvgarder les noms logiques et les calibrations du module. Retourne : un buffer binaire avec touts les paramètres En cas d'erreur, déclenche une exception ou retourne YAPI_INVALID_STRING www.yoctopuce.com...
Page 155
) As Integer int get_beacon( ) int get_beacon( ) java 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 www.yoctopuce.com...
Page 156
String get_errorMessage( ) java 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 chaîne de caractères correspondant au message de la dernière erreur qui s'est produit lors de l'utilisation du module www.yoctopuce.com...
Page 157
) java 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...
Page 158
) As String string get_firmwareRelease( ) String get_firmwareRelease( ) java 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...
Page 159
) As String string get_hardwareId( ) String get_hardwareId( ) java def get_hardwareId( ) L'identifiant unique est composé du numéro de série du module suivi de la chaîne ".module". Retourne : une chaîne de caractères identifiant la fonction www.yoctopuce.com...
Page 160
) 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. En cas d'erreur, déclenche une exception ou retourne YAPI_INVALID_STRING www.yoctopuce.com...
Page 161
) 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. En cas d'erreur, déclenche une exception YAPI_INVALID_STRING ou retourne www.yoctopuce.com...
Page 162
) As String string get_logicalName( ) String get_logicalName( ) java def get_logicalName( ) YModule target get_logicalName Retourne : une chaîne de caractères représentant le nom logique du module En cas d'erreur, déclenche une exception ou retourne Y_LOGICALNAME_INVALID www.yoctopuce.com...
Page 163
) int get_luminosity( ) java def get_luminosity( ) YModule target get_luminosity Retourne : un entier représentant la luminosité des leds informatives du module (valeur entre 0 et 100) En cas d'erreur, déclenche une exception ou retourne Y_LUMINOSITY_INVALID www.yoctopuce.com...
Page 164
) As Integer int get_persistentSettings( ) int get_persistentSettings( ) java def get_persistentSettings( ) YModule target get_persistentSettings Retourne : une valeur parmi Y_PERSISTENTSETTINGS_LOADED Y_PERSISTENTSETTINGS_SAVED Y_PERSISTENTSETTINGS_MODIFIED représentant l'état courant des réglages persistents du module En cas d'erreur, déclenche une exception ou retourne Y_PERSISTENTSETTINGS_INVALID www.yoctopuce.com...
Page 165
) As Integer int get_productId( ) int get_productId( ) java def get_productId( ) YModule target get_productId Retourne : un entier représentant l'identifiant USB du module, préprogrammé en usine En cas d'erreur, déclenche une exception ou retourne Y_PRODUCTID_INVALID www.yoctopuce.com...
Page 166
) As String string get_productName( ) String get_productName( ) java def get_productName( ) YModule target get_productName Retourne : une chaîne de caractères représentant le nom commercial du module, préprogrammé en usine En cas d'erreur, déclenche une exception ou retourne Y_PRODUCTNAME_INVALID www.yoctopuce.com...
Page 167
) As Integer int get_productRelease( ) int get_productRelease( ) java 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 www.yoctopuce.com...
Page 168
) 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...
Page 169
) As String string get_serialNumber( ) String get_serialNumber( ) java def get_serialNumber( ) YModule target get_serialNumber Retourne : une chaîne de caractères représentant le numéro de série du module, préprogrammé en usine En cas d'erreur, déclenche une exception ou retourne Y_SERIALNUMBER_INVALID www.yoctopuce.com...
) long get_upTime( ) java 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...
Page 171
) int get_usbCurrent( ) java 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...
Page 172
) As Object object get_userData( ) Object get_userData( ) java def get_userData( ) Cet attribut n'es pas utilisé directement par l'API. Il est à la disposition de l'appelant pour stocker un contexte. Retourne : l'objet stocké précédemment par l'appelant. www.yoctopuce.com...
Page 173
) YModule target get_userVar Au démarrage du module (ou après un redémarrage), la valeur est toujours zéro. Retourne : un entier représentant la valeur entière précédemment stockée dans cet attribut En cas d'erreur, déclenche une exception ou retourne Y_USERVAR_INVALID www.yoctopuce.com...
Page 174
Si les valeurs des attributs du module en cache sont valides au moment de l'appel, le module est considéré joignable. Cette fonction ne cause en aucun cas d'exception, quelle que soit l'erreur qui pourrait se produire lors de la vérification de joignabilité. Retourne : true si le module est joignable, false sinon www.yoctopuce.com...
Page 175
à la fonction de callback Retourne : rien du tout : le résultat sera passé en paramètre à la fonction de callback. www.yoctopuce.com...
Page 176
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...
Page 177
YAPI_SUCCESS d'erreur (ou 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...
Page 178
YModule * nextModule( ) -(YModule*) nextModule function nextModule( ): TYModule function nextModule( ) As YModule YModule nextModule( ) YModule nextModule( ) java def nextModule( ) Retourne : YModule null un pointeur sur un objet accessible en ligne, ou lorsque l'énumération est terminée. www.yoctopuce.com...
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. www.yoctopuce.com...
Page 180
LogCallback callback) void registerLogCallback( LogCallback callback) java def registerLogCallback( callback) Utile pour débugger le fonctionnement d'un module Yoctopuce. Paramètres : callback la fonction de callback à rappeler, ou un pointeur nul. La fonction de callback doit accepter deux arguments: l?objet module qui a produit un log, un chaîne de caractère qui contiens le log...
Page 181
) As Integer int revertFromFlash( ) int revertFromFlash( ) java 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...
Page 182
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. www.yoctopuce.com...
Page 183
Utile pour restorer les noms logiques et les calibrations du module depuis un sauvgarde. Paramètres : settings un buffer binaire avec touts les paramètres Retourne : YAPI_SUCCESS si l'opération se déroule sans erreur. En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif. www.yoctopuce.com...
Page 184
YModule target set_beacon newval Paramètres : newval soit Y_BEACON_OFF , soit Y_BEACON_ON Retourne : YAPI_SUCCESS si l'opération se déroule sans erreur. En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif. www.yoctopuce.com...
Page 185
ê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. www.yoctopuce.com...
Page 186
ê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...
Page 187
As Object) void set_userData( object data) void set_userData( Object data) java 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...
Page 188
Au démarrage du module (ou après un redémarrage), la valeur est toujours zéro. Paramètres : newval un entier Retourne : YAPI_SUCCESS si l'opération se déroule sans erreur. En cas d'erreur, déclenche une exception ou retourne un code d'erreur négatif. www.yoctopuce.com...
Page 189
YModule 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. www.yoctopuce.com...
Page 190
YModule target updateFirmware path Cette methode un object qui est utilisé pour mettre à jour le firmware du module. YFirmwareUpdate Paramètres : path le path sur un fichier byn Retourne : : Un object YFirmwareUpdate www.yoctopuce.com...
Page 191
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...
19. Référence de l'API de haut niveau 19.3. Interface de la fonction Led La librairie de programmation Yoctopuce permet non seulement d'allumer la led à une intensité donnée, mais aussi de la faire osciller à plusieurs fréquences. Pour utiliser les fonctions décrites ici, vous devez inclure: <script type='text/javascript' src='yocto_led.js'></script>...
Page 193
19. Référence de l'API de haut niveau Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction. led→get_module_async(callback, context) Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction. led→get_power() Retourne l'état courant de la led. led→get_userData() set_userData Retourne le contenu de l'attribut userData, précédemment stocké...
Page 194
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 la led sans ambiguïté Retourne : YLed un objet de classe qui permet ensuite de contrôler la led. www.yoctopuce.com...
Page 195
FirstLed( ) Utiliser la fonction pour itérer sur les autres leds. YLed.nextLed() Retourne : YLed null un pointeur sur un objet , correspondant à la première led accessible en ligne, ou si il n'y a pas de leds disponibles. www.yoctopuce.com...
Page 196
Cette Relay(BadCustomeName.relay1)=unresolved methode ne declenche aucune transaction USB ou TCP et peut donc être utilisé dans un debuggeur. Retourne : Relay(MyCustomName.relay1)=RELAYLO1- une chaîne de caractères décrivant la led (ex: 123456.relay1 www.yoctopuce.com...
) String get_advertisedValue( ) java def get_advertisedValue( ) YLed target get_advertisedValue Retourne : une chaîne de caractères représentant la valeur courante de la led (pas plus de 6 caractères). En cas d'erreur, déclenche une exception ou retourne Y_ADVERTISEDVALUE_INVALID www.yoctopuce.com...
Page 198
) int get_blinking( ) java def get_blinking( ) YLed target get_blinking Retourne : une valeur parmi Y_BLINKING_STILL Y_BLINKING_RELAX Y_BLINKING_AWARE Y_BLINKING_RUN Y_BLINKING_CALL Y_BLINKING_PANIC représentant le mode de signalisation de la led En cas d'erreur, déclenche une exception ou retourne Y_BLINKING_INVALID www.yoctopuce.com...
Page 199
String get_errorMessage( ) java 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 chaîne de caractères correspondant au message de la dernière erreur qui s'est produit lors de l'utilisation de la led.
Page 200
) java def get_errorType( ) Cette méthode est principalement utile lorsque la librairie Yoctopuce est utilisée en désactivant la gestion des exceptions. Retourne : un nombre correspondant au code de la dernière erreur qui s'est produit lors de l'utilisation de la led.
Page 201
(par exemple: MyCustomName.relay1 Retourne : une chaîne de caractères identifiant la led en utilisant les noms logiques (ex: MyCustomName.relay1 En cas d'erreur, déclenche une exception ou retourne Y_FRIENDLYNAME_INVALID www.yoctopuce.com...
Page 202
é t é c o n t a c t é e , v a l e u r r e t o u r n é e s e r a Y_FUNCTIONDESCRIPTOR_INVALID www.yoctopuce.com...
Page 203
-(NSString*) functionId function get_functionId( ) As String string get_functionId( ) String get_functionId( ) java def get_functionId( ) Par example relay1 Retourne : une chaîne de caractères identifiant la led (ex: relay1 En cas d'erreur, déclenche une exception ou retourne Y_FUNCTIONID_INVALID www.yoctopuce.com...
L'identifiant unique est composé du numéro de série du module et de l'identifiant matériel de la led (par example RELAYLO1-123456.relay1 Retourne : une chaîne de caractères identifiant la led (ex: RELAYLO1-123456.relay1 En cas d'erreur, déclenche une exception ou retourne Y_HARDWAREID_INVALID www.yoctopuce.com...
Page 205
) As String string get_logicalName( ) String get_logicalName( ) java def get_logicalName( ) YLed target get_logicalName Retourne : une chaîne de caractères représentant le nom logique de la led. En cas d'erreur, déclenche une exception ou retourne Y_LOGICALNAME_INVALID www.yoctopuce.com...
Page 206
) As Integer int get_luminosity( ) int get_luminosity( ) java def get_luminosity( ) YLed target get_luminosity Retourne : un entier représentant l'intensité de la led en pour cent En cas d'erreur, déclenche une exception ou retourne Y_LUMINOSITY_INVALID www.yoctopuce.com...
Page 207
19. Référence de l'API de haut niveau led→get_module() YLed led→module() Retourne l'objet correspondant au module Yoctopuce qui héberge la fonction. YModule function get_module( ) function get_module( ) nodejs function get_module( ) YModule * get_module( ) -(YModule*) module function get_module( ): TYModule...
Page 208
19. Référence de l'API de haut niveau led→get_module_async() YLed led→module_async() Retourne l'objet correspondant au module Yoctopuce qui héberge la fonction. YModule function get_module_async( callback, context) function get_module_async( callback, context) nodejs Si la fonction ne peut être trouvée sur aucun module, l'instance de YModule retournée ne sera pas...
Page 209
) As Integer int get_power( ) int get_power( ) java def get_power( ) YLed target get_power Retourne : soit Y_POWER_OFF , soit Y_POWER_ON , selon l'état courant de la led En cas d'erreur, déclenche une exception ou retourne Y_POWER_INVALID www.yoctopuce.com...
Page 210
) As Object object get_userData( ) Object get_userData( ) java def get_userData( ) Cet attribut n'es pas utilisé directement par l'API. Il est à la disposition de l'appelant pour stocker un contexte. Retourne : l'objet stocké précédemment par l'appelant. www.yoctopuce.com...
Page 211
Si les valeurs des attributs en cache de la led sont valides au moment de l'appel, le module est considéré joignable. Cette fonction ne cause en aucun cas d'exception, quelle que soit l'erreur qui pourrait se produire lors de la vérification de joignabilité. Retourne : true si la led est joignable, false sinon www.yoctopuce.com...
Page 212
à la fonction de callback Retourne : rien du tout : le résultat sera passé en paramètre à la fonction de callback. www.yoctopuce.com...
Page 213
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...
Page 214
YAPI_SUCCESS d'erreur (ou 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...
Page 215
YLed * nextLed( ) -(YLed*) nextLed function nextLed( ): TYLed function nextLed( ) As YLed YLed nextLed( ) YLed nextLed( ) java def nextLed( ) Retourne : YLed null un pointeur sur un objet accessible en ligne, ou lorsque l'énumération est terminée. www.yoctopuce.com...
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...
Page 217
Y_BLINKING_STILL Y_BLINKING_RELAX Y_BLINKING_AWARE Y_BLINKING_RUN Y_BLINKING_CALL Y_BLINKING_PANIC représentant le mode de signalisation de la led 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...
Page 218
être préservé. Paramètres : newval une chaîne de caractères représentant le nom logique de la led. 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. www.yoctopuce.com...
Page 219
YLed target set_luminosity newval Paramètres : newval un entier représentant l'intensité lumineuse de la led (en pour cent) 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...
Page 220
Paramètres : newval soit Y_POWER_OFF , soit Y_POWER_ON , selon l'état courant de la led 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...
Page 221
As Object) void set_userData( object data) void set_userData( Object data) java 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...
Page 222
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...
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 "...
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.
21. Caractéristiques Vous trouverez résumées ci dessous les principales caractéristiques techniques de votre module Yocto-Demo Largeur 20 mm Longueur 20 mm Poids Connecteur USB micro-B 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...