Présentation du programme.Pour découvrir le programme commençons par un rapide survol global.
Voici la liste des différents fichiers dans lesquels sont réparties les différentes parties du programme.
Le cœur du programme est contenu dans les fichiers
Node.h et
Node.cpp. J’ai choisi Node (nœud en français) car le satellite autonome est avant tout un nœud dans une chaine, un ensemble d’autres satellites avec lesquels il échange et collabore.
Node est un peu le « cœur de satellite ». Les membres de la classe Node représentent "en logiciel" les objets physique du canton. Ce même fichier contient une autre classe
NodePeriph qui elle "symbolise" de manière épurée les satellites "voisins". L'instance de la classe Node initialise huit instances de la classe NodePeriph, nombre maximal de satellites "voisins" possible dans cette version.
Les fichiers
Aig, Loco, Sensor, Signal sont les éléments logiciels qui figurent ces objets physiques et les méthodes, les actions de ces objets physiques.
Railcom est à rapprocher de ces fichiers en ce sens qu’il apporte des informations sur l’éventuelle présence d’une locomotive sur le canton en nous précisant l’adresse de cette locomotive.
Settings contient tout ce qui est nécessaire au paramétrage du satellite. C’est par l’intermédiaire des fonctions contenues dans ce fichier que l’on lit ou que l'on sauvegarde
le fichier json où sont regroupées les données de paramétrage.
Discovery contient tous les éléments logiciels qui permettent le processus de découverte présenté précédemment. Discovery est activé par défaut au premier lancement de la carte satellite. Une fois la configuration globale réalisée, on doit désactiver le mode Discovery pour activer GestionReseau qui maintenant restera activé en permanence jusqu’à ce que l’on active à nouveau Discovery pour une extension par exemple.
GestionReseau contient toutes les fonctions qui vont analyser tous les messages CAN reçus par le satellite. Je rappelle que chaque satellite envoie toutes les 100 milli secondes environ les principales données le concernant : présence d’une locomotive et adresse de cette locomotive, position de ses aiguille, cantons à partir desquels il est possible d’accéder.
Nous verrons plus tard en détail comment chaque satellite traite les données reçues des autres pour adapter son propre comportement.
Enfin, le fichier
main.cpp qui correspond au fichier «
.ino » sous l’IDE Arduino. C’est le premier fichier appelé au lancement du microcontrôleur. On y trouve principalement les instances des objets logiciels et aussi l’activation des méthodes de ces différents objets logiciels.
Je ne m’attarderai pas sur les fichiers
Wifi,
WebHandler,
Config et même
Can qui ne sont que des programmes « utilitaires » permettant le fonctionnement de l’ensemble.
Voilà pour la présentation globale des fichiers du programme. Nous verrons dans les postes suivants le fonctionnement détaillé des principaux d’entre eux.