La detection réseau avec la cmdline

La detection réseau avec la cmdline

Chez Yoctopuce, nous pensons que c'est en utilisant régulièrement ses propres produits que l'on améliore la qualité. C'est aussi comme cela que l'on découvre s’il manque des fonctionnalités. C'est ainsi que l'autre jour, nous avons réalisé qu'il n'y avait aucun moyen de lister les YoctoHubs présents sur le réseau local depuis la command line.




Nous avons donc ajouté cette fonctionnalité à notre API en ligne de commande. Dans cet article nous allons uniquement expliquer son utilisation. Si vous êtes intéressé par l'implémentation, vous pouvez télécharger les fichiers sources depuis notre site web.

Par défaut, c'est-à-dire sans ajouter d'option particulière, les exécutables de la ligne de commandent utilisent les modules Yoctopuce qui sont connectés sur les ports USB de la machine.

Par exemple, l’exécution de la commande suivante permet de découvrir qu'il y a un module avec le numéro de série TMPSENS1-32130 qui est branché sur un port USB.

YModule inventory
TMPSENS1-32130



L'option -r


Il est possible d'énumérer les modules qui sont connectés sur un YoctoHub ou un VirtualHub en utilisant l'option -r et en spécifiant l'adresse IP ou le nom d’hôte du hub distant.

Par exemple, l’exécution suivante permet de voir qu'il y a un module avec le numéro de série RELAYHI1-05116 qui est branché au YoctoHub YHUBETH1-4C147 qui a l'adresse IP 192.168.1.34.

YModule -r 192.168.1.34 inventory
YHUBETH1-4C147
RELAYHI1-05116



Avec la dernière version de l'API en ligne de commande (v1.10.45975) il est désormais possible d'utiliser le mot clef net avec l'option -r. Ce mot clef permet d'utiliser tous les YoctoHubs qui sont sur le réseau local.

C'est particulièrement utile si l'on ne se souvient pas de l'adresse IP du YoctoHub. Il est par exemple, possible d'utiliser net au lieu de l'adresse IP et obtenir le même résultat que la précédente commande.

YModule -r net inventory
YHUBETH1-4C147
RELAYHI1-05116




Lors de l'utilisation du mot clef net le hub va effectuer une détection des hubs Yoctopuce sur le réseau local pendant 5 secondes. Il est possible de changer ce délai en ajoutant le nombre de secondes entre parenthèses après le mot clef net.

Par exemple, pour attendre seulement une seconde la syntaxe est la suivante:

YModule -r net(1) inventory
YHUBETH1-4C147
RELAYHI1-05116



Il y a un autre mot clef qui a un comportement particulier: le mot clef usb. Ce mot clef indique que l'on veut utiliser les modules qui sont connectés sur les ports USB de la machine. En fait, la ligne de commande ajoute automatiquement l'option -r usb si aucune option -r est spécifié. C'est-à-dire que notre tout premier exemple YModule inventory est équivalent à YModule -r usb inventory

Notez qu'il est possible d'utiliser plusieurs options -r. Par exemple, la commande suivante va détecter les modules Yoctopuce branchés sur un des ports USB, les modules connectés sur les YoctoHubs qui sont sur le réseau local et les modules branchés sur la machine qui a le hostname faraway.example.com.

YModule -r net(1) -r usb -r faraway.example.com inventory
YHUBETH1-4C147
RELAYHI1-05116
TMPSENS1-32130
VIRTHUB0-9367862e3b
YBUTTON1-2F471




Conclusion


Si l’on en revient au problème qui nous a fait remarquer que la détection réseau était manquante. Comment trouver facilement l’adresse IP d'un hub Yoctopuce?

La réponse est la suivante:

YNetwork -r net all get_ipAddress
OK: YHUBETH1-4C147.YHUBETH1-4C147.get_ipAddress = 192.168.1.34.



Il faut utiliser l'utilitaire YNetwork qui permet d'interagir avec la fonction Network d'un module Yoctopuce. L'option -r net spécifie que l'on veut utiliser les modules présents sur le réseau local au lieu des modules connectés par USB. Enfin, la commande all get_ipAddress afficher l'adresse IP de tous les modules.

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.