Cloner la config d'un module depuis un terminal

Cloner la config d'un module depuis un terminal

Quand on travaille avec plusieurs YoctoHubs, il est fastidieux de devoir configurer à chaque fois les paramètres réseau et les callbacks HTTP. Cette semaine, nous allons voir comment copier la configuration d'un YoctoHub sur un autre YoctoHub à l'aide de la ligne de commande.




Notre API en ligne de commande permet d’interagir avec tous nos modules depuis un terminal. Les paramètres sont passés sur la ligne de commande et le résultat est affiché sur la sortie standard.

Le résultat de la commande est affichée avec un préfixe "OK: XXX.YYY = ". XXX correspond à l'identifiant du module et YYY à la commande qui a été exécutée. Cela permet de vérifier si toutes les opérations se sont bien passées.

Par exemple, pour commuter tous les relais vers la sortie B pendant 1 seconde, on utilise l’exécutable YRelay et on lui passe les arguments all, pulse et 1000

yocto@laptop-linux:~$ YRelay all pulse 1000
OK: RELAYLO1-27EAB.relay2.pulse = 1000.
OK: RELAYLO1-27EAB.relay1.pulse = 1000.




Pour cloner la configuration d'un YoctoHub, il faut utiliser les commandes get_allSettings et set_allSettingsAndFiles de l'utilitaire YModule. Mais, au lieu d'afficher le résultat de ces commandes il faut le sauver dans un fichier pour pourvoir l'appliquer plus tard.

Sauver les paramètres de configuration


La commande get_allSettings retourne tous les paramètres de configuration du module, y compris les éventuels fichiers qui ont été uploadés sur le YoctoHub.

Par défaut, ces paramètres sont affichés sur la sortie standard. Pour rediriger le résultat de cette commande dans un fichier il y a deux solutions:

  1. Utiliser l'option -o
  2. Utiliser la redirection du terminal à l'aide du caractère '>'


Sauver les paramètres dans un fichier avec l'option -o


L'option globale -o permet de spécifier un nom de fichier dans lequel le résultat de la commande est enregistré. Seul le résultat de la commande est sauvé dans le fichier, le préfixe "OK: XXX.YYY = " est toujours affiché sur le terminal.

Donc pour sauver les paramètres de configuration du YoctoHub-Ethernet YHUBETH1-14AC00 dans un fichier mySettings.dat la commande est:

yocto@laptop-linux:~$ YModule -o mySettings.dat YHUBETH1-14AC00 get_allSettings



Si un fichier existe déjà, il est écrasé. Il est toutefois possible de modifier ce comportement et d'ajouter le résultat à la fin du fichier en ajoutant un + au début du nom de fichier.

Sauver les paramètres dans un fichier avec la redirection


L'autre option est d'utiliser la redirection d'entrée/sortie du terminal. Cette option redirige tout ce qui est affiché par la commande, y compris le préfixe "OK: XXX.YYY = ". Pour obtenir uniquement les paramètres, il faut changer ce préfixe à l'aide de l'option -f.

L'option -f spécifie le format d'affichage du résultat de la commande. Le format par défaut est 'OK: [identifierOrName].[command] = [result].'. Lors de l’exécution les parties entre crochets sont remplacés par les données correspondantes. Donc, pour afficher uniquement le résultat de la commande, il faut utiliser la chaîne '[result]'.

La commande pour obtenir, uniquement les paramètres de configuration du YoctoHub-Ethernet YHUBETH1-14AC00 dans un fichier mySettings.dat est:

yocto@laptop-linux:~$ YModule -f '[result]' YHUBETH1-14AC00 get_allSettings > mySettings.dat



Appliquer les paramètres de configuration


La commande set_allSettingsAndFiles applique tous les paramètres de configuration et fichiers sur un module, et uploade les éventuels fichiers custom.

Pour que la commande utilise le contenu du fichier que nous venons de créer, il faut utiliser le préfix file: suivi du nom de ficher.

Voici la commande, pour appliquer à tous les modules connectés les paramètres que nous avons sauvés plus haut:

yocto@laptop-linux:~$ YModule --save all set_allSettingsAndFiles file:mySettings.dat



Notez que nous avons ajouté l'option --save. Cette option sauve dans la flash du module les paramètres de configuration que nous venons d'appliquer. Sans cette option, les paramètres seraient appliqués de la même manière mais ils seraient perdus au premier reboot du module.

Conclusion


Comme nous l'avons dit, ces deux commandes sont très utiles pour cloner la configuration d'un YotoHub, mais pas que: Ces mêmes commandes peuvent être utilisées sur n'importe quel module Yoctopuce. Ces commandes peuvent par exemple servir à sauver une calibration réalisée sur un Yocto-MaxiThermistor.

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.