11. Utilisation du Yocto-I2C en C#
Une fenêtre de sélection de fichiers apparaît: sélectionnez le fichier
correspondant aux fonctions des modules Yoctopuce que votre projet va gérer. Dans le doute, vous
pouvez aussi sélectionner tous les fichiers.
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
4
. Puis depuis la fenêtre Explorateur de solutions, effectuez un clic droit sur la DLL, choisissez
dll
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 I2cPort
Il suffit de quelques lignes de code pour piloter un Yocto-I2C. Voici le squelette d'un fragment de
code C# qui utilise la fonction I2cPort.
[...]
// On active la détection des modules sur USB
string
errmsg
= "";
YAPI.RegisterHub("usb",
[...]
// On récupère l'objet permettant d'intéragir avec le module
YI2cPort
i2cport
= YI2cPort.FindI2cPort("YI2CMK01-123456.i2cPort");
// Pour gérer le hot-plug, on vérifie que le module est là
if (i2cport.isOnline())
{
// Utiliser i2cport.i2cSendAndReceiveBin()
[...]
}
Voyons maintenant en détail ce que font ces quelques lignes.
YAPI.RegisterHub
La fonction
YAPI.RegisterHub
être recherchés. Utilisée avec le paramètre
connectés localement à la machine. Si l'initialisation se passe mal, cette fonction renverra une valeur
différente de
YAPI.SUCCESS
YI2cPort.FindI2cPort
La fonction
YI2cPort.FindI2cPort
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-I2C avec le
numéros de série YI2CMK01-123456 que vous auriez appelé "MonModule" et dont vous auriez
nommé la fonction i2cPort "MaFonction", les cinq appels suivants seront strictement équivalents
(pour autant que MaFonction ne soit définie qu'une fois, pour éviter toute ambiguïté):
i2cport
= YI2cPort.FindI2cPort("YI2CMK01-123456.i2cPort");
i2cport
= YI2cPort.FindI2cPort("YI2CMK01-123456.MaFonction");
i2cport
= YI2cPort.FindI2cPort("MonModule.i2cPort");
4
Pensez à changer le filtre de la fenêtre de sélection de fichiers, sinon la DLL n'apparaîtra pas
70
yapi.dll
errmsg);
initialise l'API de Yoctopuce en indiquant où les modules doivent
"usb"
, et retournera via le paramètre
permet de retrouver un port I2C en fonction du numéro de
yocto_api.cs
, qui se trouve dans le répertoire
, elle permet de travailler avec les modules
une explication du problème.
errmsg
et les fichiers
Sources/
www.yoctopuce.com