Nouveau! Librairie Yoctopuce pour LabVIEW

Nouveau! Librairie Yoctopuce pour LabVIEW

Oyez, Oyez ! Après toutes ces années, la librairie LabVIEW est enfin arrivée! Jusqu'à aujourd'hui les utilisateurs LabVIEW qui voulaient utiliser des modules Yoctopuce devaient se contenter d'un petit bricolage qu'on avait conçu il y a quelques années. Mais cette fois on ne rigole plus, on propose une vraie librairie pour LabVIEW qui permet d'exploiter tout le potentiel des modules Yoctopuce.


Pourquoi avoir attendu si longtemps ?

Chez Yoctopuce, les librairies ne sont pas entièrement écrites à la main. Une grosse partie est décrite dans un langage programmation interne qu'on appelle le Y-C. Puis une moulinette maison transforme ce code Y-C en code source pour toutes les librairies. Ainsi, si on doit modifier des classes ou en ajouter d'autres, il suffit de modifier le code Y-C et tout le reste se fait (presque) tout seul. Le problème avec LabVIEW, c'est que le code source n'est pas du texte, ce qui rend la génération automatique de code source un peu problématique, d'où notre manque d'enthousiasme pour écrire une librairie. Mais on a fini par prendre notre courage à deux mains et s'atteler à la résolution de ce problème difficile. Pour faire court: à partir du code Y-C on génère un fichier texte qui décrit les VIs de la librairie et on a écrit, en LabVIEW, un générateur de VIs qui lit ce fichier et crée les VIs automatiquement. Le générateur, qui fait une utilisation intensive de VI scripting, ressemble furieusement à une usine à gaz, mais ça marche.

Utilisation

La librairie a été pensée pour être le plus simple possible à utiliser. Pour interfacer une fonction d'un de vos modules, vous aurez besoin de trois VIs:

  • YRegisterHub pour initialiser l'API
  • Le VI correspondant à la fonction que vous souhaitez utiliser, par exemple YTemperature pour lire la température
  • YFreeAPI pour libérer l'API


Voici un exemple pour lire la température et un second pour commuter un relais.

Lire la température
Lire la température



Commuter un relais
Commuter un relais



Remarquez que les deux boucles ci-dessus ne sont pas temporisées. Ce n'est pas strictement nécessaire parce que les VIs de la librairie sont optimisés pour minimiser les communications avec les modules Yoctopuce.

Par défaut chaque VI mappe la première fonction disponible qu'il trouve, c'est l'équivalent du YXxxx.FirstXxxx dans les autres librairies, mais vous pouvez parfaitement utiliser un nom hardware ou un nom logique pour lever les ambiguïtés.

Il va de soi que vous pouvez combiner les VIs, voici un programme qui commute le relais RELAYHI1-56FC0.relay1 en fonction de la température mesurée par le senseur THRMCPL1-0D7C5.temperature1.

Commutation en fonction de la température (avec Schmitt trigger)
Commutation en fonction de la température (avec Schmitt trigger)




Comment ça marche?

En fait, afin de simplifier la génération des VIs, on a mis tout le code compliqué dans une DLL .Net, appelée DotNetProxyLibrary.dll, et les VIs générés se contentent de faire des appels dans cette DLL. La DLL est basée sur la librairie Yoctopuce C#. Ce qui veut dire que la libraire LabVIEW a besoin de trois DLL: DotNetProxyLibrary.dll, yapi.dll et amd64\yapi.dll.

Notez que pour que la librairie LabVIEW fonctionne bien, vous devrez avoir des modules avec un firmware à jour.

Compatibilité

Les VIs et les exemples sont livrés pré-compilés pour les versions 2012 à 2019. Mais si vous travaillez avec des versions de LabVIEW encore plus vieilles, contactez-nous et on pourra peut-être faire quelque chose. La librairie n'est pas compatible avec LabVIEW NXG, on a essayé de la transposer et ça a tourné à la catastrophe: la plupart des techniques qu'on a utilisées ne sont pas encore implémentées dans NXG. On n'a pas vérifié, mais la librairie ne fonctionne probablement pas avec les versions Linux et MacOS de LabVIEW.

Installation

Vous pouvez télécharger la nouvelle librairie pour LabVIEW depuis la page librairies. Pour l'instant, elle est livrée avec les VIs et les exemples en vrac. Vous pouvez "drag-and-dropper" les VIs directement dans votre code, ou les intégrer dans une palette en utilisant la méthode, fastidieuse, décrite dans la section LabVIEW qu'on a ajouté dans la doc de tous les produits. Pensez à ajouter le répertoire des VIs Yoctopuce dans la liste des répertoires de recherche de LabVIEW: Tools > Options > Paths > VI search path

On a bien compris que VIPM est la méthode de prédilection pour installer les librairies LabVIEW. Mais apparemment, VIPM n'est pas scriptable, ce qui le met hors course pour une intégration dans le processus de build automatique des softs Yoctopuce. On va essayer de trouver une méthode d'installation plus pratique. Si vous avez des suggestions, elle seront les bienvenues.

Le cas de l'erreur 1386

En fonction de sa configuration et de la façon dont vous avez décompressé le fichier zip de la librairie, Windows pourrait être amené à décider que la DLL DotNetProxyLibrary.dll provenant d'un autre machine, elle doit impérativement être bloquée, pour votre propre sécurité. Si LabVIEW n'arrive pas à charger la DLL vous obtiendrez l'erreur n°1386. Vous pouvez résoudre le problème soit en débloquant manuellement la DLL, soit en créant dans le même répertoire que labview.exe, un fichier XML nommé labview.exe.config autorisant le chargement d'assemblages provenant de l'extérieur.

Débloquer une DLL bloquée par Windows
Débloquer une DLL bloquée par Windows



Conclusion

On a fait un tour de présentation plutôt rapide mais vous trouverez le reste de ce qu'il faut savoir dans la documentation de chaque module et on aura sûrement l'occasion d'approfondir le sujet dans de prochains articles. Ceci dit, on a cru remarquer que dans l'univers de la programmation, la programmation visuelle et la programmation traditionnelle sont des mondes distincts qui s'évitent soigneusement. Toute l'équipe Yoctopuce étant issue de la branche traditionnelle, on espère qu'on a pas visé trop à côté de la plaque et que notre librairie respecte l'essentiel des us et coutumes de LabVIEW. Mais si vous avez des remarques, n'hésitez pas à nous en faire part. On pourra peut-être corriger le tir.

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.