Nouveau: des alarmes dans Yocto-Visualisation

Nouveau: des alarmes dans Yocto-Visualisation

On nous a demandé récemment s'il n'était pas possible de rajouter des alarmes dans l'application Yocto-Visualization. C'est maintenant chose faite. Voyons comment ça marche....

Pour rappel, l'application Yocto-Visualization est une petite application proposée par Yoctopuce, qui tourne sous Windows et qui permet de visualiser facilement les valeurs de capteurs Yoctopuce, que ce soit sous la forme de graphiques, de jauges ou encore d'afficheur numériques. Non seulement cette application est gratuite, mais son code source est disponible sur GitHub.

Le principe des nouvelles alarmes

La dernière version de Yocto-Visualization ajoute deux alarmes par senseur Yoctopuce. Ces alarmes peuvent exécuter une ligne de commande système à chaque déclenchement.

La configuration des alarmes
La configuration des alarmes


Chacune de ces alarmes est définie à l'aide de 5 paramètres:

  • Data source type: qui vous permet de choisir si l'alarme est déclenchée par la valeur minimale, moyenne ou maximum durant la dernière période de mesure. Cette période est directement liée à la fréquence définie pour le senseur.
  • Test condition: qui permet de choisir quel type de test est effectué pour déclencher l'alarme( ">=",">","=","<=","<"). La valeur "disabled" désactive l'alarme.
  • Test value: la valeur contre laquelle le test est fait.
  • Trigger action: la ligne de commande à exécuter quand l'alarme se déclenche.
  • Trigger delai: le temps minimal entre deux déclenchements consécutifs de la même alarme.

A chaque fois que le test est "vrai" la ligne de commande est exécutée, pour autant que le délai spécifié se soit écoulé depuis la dernière alarme. Le test est fait à la fréquence du capteur.

Les alarmes apparaissent dans les log de l'application, que vous pouvez faire apparaitre avec un clic droit sur n'importe lequel des widgets. Bien que les alarmes soient exécutées en tâche de fond et ne devraient pas ralentir l'application principale, on vous suggère de définir un délai suffisamment long pour éviter de vous faire submerger.

La ligne de commande

La ligne de commande spécifiée est lancée à chaque fois qu'une alarme se déclenche. Vous pouvez utiliser des variables qui seront automatiquement remplacées avant le lancement de la ligne de commande. Ces variables sont:

  • $SENSORVALUE$: La valeur de senseur
  • $HWDID$: l'identifient matériel du senseur
  • $NAME$: le nom senseur
  • $UNIT$: l'unité de mesure utilisée par le capteur
  • $CONDITION$: la condition de l'alarme (">=",">","=","<=","<")
  • $TRIGGER$: la valeur limite de l'alarme
  • $DATATYPE$: Le type de la source de donnée ("MIN","MAX","AVG")
  • $NOW$: L'heure courante


Voici, par exemple, une ligne de commande qui va créer un log des alarmes dans un fichier C:\alarms.txt

echo $NOW$:$NAME$ Alarm ($SENSORVALUE$^$CONDITION$$TRIGGER$$UNIT$)>>C:\alarms.txt



Utiliser un actuateur Yoctopuce

Vous pouvez parfaitement utiliser les alarmes pour piloter des modules Yoctopuce, en passant par l'API en ligne de commande, mais il y a une subtilité. Comme il ne peut y avoir qu'une seule application qui accède aux modules Yoctopuce en mode USB natif, il faut utiliser un VirtualHub et configurer tant l'application que la ligne de commande pour qu'elles utilisent ce VirtualHub.

Pour que les alarmes puissent piloter des modules Yoctopuce, il faut utiliser le mode virtualHub
Pour que les alarmes puissent piloter des modules Yoctopuce, il faut utiliser le mode virtualHub


Imaginons qu'on veuille utiliser un Yocto-Buzzer pour faire un bip à chaque fois qu'une alarme se déclenche. On va configurer l'application pour qu'elle utilise le virtualHub, comme illustré sur l'image ci dessus. Et on utilisera l'exécutable ybuzzer.exe pour faire le bip, en prenant bien soin lui signaler qu'il doit utiliser le VirtualHub lui aussi (-r 127.0.0.1).

Déclenchement d'un bip toutes les 5 secondes quand la température dépasse 30°C
Déclenchement d'un bip toutes les 5 secondes quand la température dépasse 30°C


Notez que la fréquence du capteur étant de 1Hz, si on avait mis un delai de 0, on aurait obtenu un bip toutes les secondes.

Le cas des relais

Si vous souhaitez utiliser les alarmes pour piloter des relais, vous pouvez utiliser la première des deux alarmes pour enclencher le relais et la seconde pour le dés-enclencher, vous pouvez même implémenter un schmitt-trigger avec cette méthode. Mais il faut bien comprendre les alarmes sont entièrement implémentées au niveau de l'application Yocto-Visualization, si cette application s'arrête les alarmes disparaissent. Cela signifie que si l'application s'arrête juste après le déclenchement d'une alarme qui enclenche un relais, le relais va rester indéfiniment enclenché, ce qui peut poser un problème.

C'est pourquoi il est peut-être préférable d'utiliser la fonction pulse plutôt que la fonction set_state, ainsi le relais se dés-enclenchera automatiquement au bout d'un temps prédéfini.

Configuration d'une alarme pour relais avec la fonction pulse
Configuration d'une alarme pour relais avec la fonction pulse


Dans l'exemple ci dessus, sans nouvelle alarme, le relais rebasculera automatiquement au bout de 2 secondes.

Persistance des alarmes

Les alarmes sont gérées intégralement par l'application Yocto-Visualization, elles sont sauvées automatiquement dans le fichier de configuration pour autant qu'au moins une de ces deux conditions soit remplie:

  • que le capteur correspondant ait été connecté au moins une fois avant la sauvegarde de la configuration
  • ou que le capteur correspondant, connecté ou non, soit utilisé dans un des widgets

Pour finir, notez que les alarmes d'un capteur sont gérées même si le capteur en question n'est pas utilisé dans un widget. Si vous voulez désactiver les alarmes d'un capteur qui n'est pas utilisé dans l'interface, vous devrez

  • Créer un widget, par exemple un afficheur digital (digital display)
  • Lui affecter le senseur
  • Désactiver les alarmes
  • Supprimer le widget

Si vous avez des alarmes qui se déclenchent sans que vous sachiez d'où elles viennent, vous trouverez des indices dans les logs de l'application.

Voila voila... vous savez tout.

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.