Une fois qu'on a goûté aux modules Yoctopuce, il n'est par rare d'avoir des systèmes qui soient composés d'une dizaine de modules. Quand tous ces modules sont installés et configurés correctement, il est judicieux de sauvegarder leur configuration, pour le cas où l'on fasse une fausse manipulation. Nous venons d'ajouter dans notre librairie en ligne de commande deux commandes qui simplifient cette opération.
Avant de parler de cette nouvelle fonctionnalité, il faut rappeler qu'il était déjà possible d'automatiser la sauvegarde et la restauration de la configuration des modules Yoctopuce en utilisant une de nos librairies de programmation. Mais c'était à l'utilisateur d'écrire les quelques lignes de code nécessaires.
Afin de simplifier la vie de nos utilisateurs, nous avons décidé d'ajouter deux nouvelles commandes à l'exécutable YModule de notre librairie cmdline.
Note: si vous n'avez jamais utilisé l'utilitaire YModule, vous pouvez lire l'article qui explique le fonctionnement de notre librairie en ligne de commande. La suite de l'article sera plus facile à comprendre.
La commande saveConfig
La première commande que nous avons ajoutée à l’exécutable YModule est saveConfig. Comme son nom le laisse supposer, cette fonction va sauver la configuration complète du module. Cela inclut les noms logiques, les calibrations et les fichiers uploadés ainsi que tous les paramètres persistants du module.
Cette commande suit les mêmes conventions que les autres commandes. C'est-à-dire que le premier paramètre est d'identifiant du module que l'on désire utiliser. On peut aussi utiliser le mot clef all qui permet d'appliquer la commande à tous les modules détectés. Comme les autres commandes, l'option -r permet de se connecter à VirtualHub ou à un YoctoHub distant à la place du port USB.
La commande saveConfig requiert un argument supplémentaire qui est un répertoire de sortie. Lors de l’exécution, la commande saveConfig crée un fichier JSON pour chaque module qui contient sa configuration complète. Le nom de fichier utilisé est le numéro de série suivit de l’extension .json.
Dans l'exemple suivant, on sauvegarde la configuration de tous les modules qui sont connectés à l’YoctoHub-Wireless-n dans le répertoire backup.
ok: Yocto-Meteo-V2 METEOMK2-114F07 settings are saved to backup\METEOMK2-114F07.json file.
ok: Yocto-MaxiDisplay YD128X64-1D105E settings are saved to backup\YD128X64-1D105E.json file.
ok: YoctoHub-Wireless-n YHUBWLN4-1FBDF4 settings are saved to backup\YHUBWLN4-1FBDF4.json file.
La commande restoreConfig
La commande restoreConfig est l'opposé de saveConfig. Cette commande restaure la configuration complète (paramètres + fichiers) du module depuis un fichier JSON que la commande saveConfig a créé.
La commande restoreConfig a aussi un paramètre obligatoire qui est le répertoire dans lequel tous les fichiers des sauvegardes sont stockés. Lors de l’exécution, la commande parcourt le répertoire et utilise le fichier qui correspond au numéro de série du module courant.
Contrairement aux autres commandes, i n'est pas nécessaire d'utiliser l'option --save. En effet, la commande restoreConfig appel implicitement la fonction saveToFlash pour que les paramètres modifiés soient sauvegardés de manière persistante dans la mémoire flash.
L'exemple suivant restaure les configurations que nous avons sauvées plus haut.
ok: Yocto-Meteo-V2 METEOMK2-114F07 settings are restored from ./backup\METEOMK2-114F07.json file.
ok: Yocto-MaxiDisplay YD128X64-1D105E settings are restored from ./backup\YD128X64-1D105E.json file.
ok: YoctoHub-Wireless-n YHUBWLN4-1FBDF4 settings are restored from ./backup\YHUBWLN4-1FBDF4.json file.
Notez que si un seul module est ciblé, il est aussi possible de passer directement le fichier
ok: Yocto-Meteo-V2 METEOMK2-114F07 settings are restored from ./backup\METEOMK2-114F07.json file.
Les usages avancés
Par défaut, restoreConfig vérifie que le fichier JSON passé en argument est valide pour le module ciblé. Concrètement, l'application vérifie que le nom du produit sauvé dans le fichier est identique au nom de produit du module ciblé. Il y a cependant des cas où l'on aimerait pouvoir appliquer des sauvegardes à des modules différents.
Par exemple, si l'on modifie une installation pour remplacer un Yocto-PowerRelay-V2 par un Yocto-PowerRelay-V3. Hormis les caractéristiques techniques du relais, ces deux modules fonctionnent de la même manière. Il peut être pratique de pouvoir restaurer les paramètres de configuration d'un Yocto-PowerRelay-V2 sur un Yocto-PowerRelay-V3.
C'est possible en utilisant true pour le paramètre supplémentaire force:
WARN: Setting file is not designed for targeted Yocto-PowerRelay-V3 (RELAYHI3-1A88CB)
ok: Yocto-PowerRelay-V3 RELAYHI3-1A88CB settings are restored from ..\backup\RELAYHI1-057B0.json file.
Conclusion
Ces deux nouvelles commandes ont été ajoutées la version 55272 de la librairie en ligne de commande et sont disponibles sur notre site web.