Détecter les modules en mode "mise à jour" avec la cmdline

Détecter les modules en mode "mise à jour" avec la cmdline

Notre librairie en ligne de commande permet d'utiliser presque toutes les fonctionnalités de notre API directement depuis un terminal. Mais certaines fonctionnalités de débug, comme la création d'un dump de l'état des modules Yoctopuce, n'étaient pas disponibles. Cette semaine, on vous présente deux nouvelles commandes qui pourraient vous aider si vos modules ne fonctionnent pas correctement.




La première amélioration est l'ajout de commandes qui permettent de débloquer un module coincé dans le mode "mise à jour".

Débloquer les modules qui sont dans le mode "mise à jour"


Le mode "mise à jour" des modules est un état particulier dans lequel un module passe durant la mise à jour de firmware. Dans ce mode, le module n'est plus détecté par les fonctions traditionnelles de la librairie et répond uniquement aux paquets de reprogrammation.

Normalement, un module reste dans cet état seulement quelques dizaines de secondes et rebascule dans le mode standard. Mais si un problème, comme une coupure de courant, se produit durant la mise à jour il est possible que le module reste bloqué dans ce mode.


La commande get_allBootloaders permet d'afficher les numéros de série des modules qui sont dans le mode "mise à jour" et la commande downloadAndUpdate permet de redémarrer la mise à jour de firmware.


Dans l'exemple suivant, nous avons deux modules qui sont en mode "mise à jour". Comme on peut le voir, les deux modules ne sont plus listés dans l'inventaire, mais sont détectés par la nouvelle commande get_allBootloaders:

C:\>YModule.exe inventory
ERR: No module found

C:\>YModule.exe get_allBootloaders
TX010V01-A13BC
LIGHTMK3-32067



Pour sortir ces modules du mode "mise à jour", il faut recommencer la mise à jour du firmware. Pour ce faire, on utilise la commande downloadAndUpdate en préfixant le numéro de série du module qui est dans le mode "mise à jour". Notez que cette commande fonctionne avec n'importe quel module, qu'il soit dans le mode "mise à jour" ou non.

C:\>YModule.exe LIGHTMK3-17F0AF downloadAndUpdate
ok: Update firmware of device LIGHTMK3-17F0AF.
ok: with firmware http://www.yoctopuce.com/FR/downloads/LIGHTMK3.48245.byn.
ok: 0% Firmware update started.
ok: 36% Device info retrieved.
ok: 39% Flash zone.
ok: 51% Flash zone.
ok: 63% Flash zone.
ok: 75% Flash zone.
ok: 79% Device info retrieved.
ok: 90% Firmware updated.
ok: 100% success.
ok: 100% Firmware Updated Successfully in 10.650000.
ok: Yocto-Light-V3 LIGHTMK3-17F0AF(rev=48245) is up to date.
ok: 0 / 0 hubs in 0.000000s.
ok: 0 / 0 shields in 0.000000s.
ok: 1 / 1 devices in 0.088000s 0.088000s per device.
ok: 1 / 1 bootloaders in 10.748000s 10.748000s per bootloaders.
ok: All devices are now up to date.



Une fois la mise à jour passée, le module apparaît à nouveau dans l'inventaire.

C:\>YModule.exe inventory
LIGHTMK3-32067

C:\>YModule.exe get_allBootloaders
TX010V01-A13BC



Get Debug Info


De manière similaire à ce que nous avons fait dans le VirtualHub il y a quelques temps, nous avons ajouté une commande showDebugInformation qui permet de dumper l'état de tous les modules connectés.

Cette fonction est très utile si vous avez besoin de contacter le support. En effet, quand les clients nous contactent pour des questions de support, la plupart du temps, il nous manque des informations. Par exemple, la version du firmware, les logs du module, la valeur de certains paramètres, etc.

Cette commande récupère toutes les informations utiles et les affiche en format Markdown.

Concrètement, cette commande dump les informations suivantes:

  • La liste de tous les modules détectés.
  • La liste de tous les modules dans le mode "mise à jour".
  • La valeur de tous les paramètres de tous les modules (sans les mots de passe).
  • Les logs de tous les modules.
  • La liste de tous les fichiers uploadés sur les modules, mais pas leur contenu.
  • Le contenu des éventuels core dump des YoctoHubs.


Par défaut, le rapport est affiché sur la sortie standard, mais il est aussi possible de spécifier un fichier de sortie à l'aide de l'option "-o":

C:\>YModule.exe -o debuginfo.md showDebugInformation
OK: output saved in file debuginfo.md



Le fichier debuginfo.md peut ensuite être envoyé au support avec
une description claire du problème.

Conclusion


Ces quelques ajouts sont surtout utiles pour les machines "headless" sur lesquelles on intervient à distance, par exemple au travers d'une connexion SSH. Dans ce genre de situation, il n'y a pas toujours quelqu'un qui peut aller voir physiquement l'état du module. Ces améliorations permettent de débloquer certaines situations. Si ce n'est pas le cas, au moins elles vous permettront de gagner du temps lors des échanges d'email avec le support.

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.