diff --git a/README.md b/README.md index 4fbf3da..0e589d8 100644 --- a/README.md +++ b/README.md @@ -1 +1,13 @@ -# Locoduinodrome \ No newline at end of file +# Locoduinodrome + +Le Locoduinodrome est un réseau minimum (un simple ovale avec une voie d'évitement) présenté au 16è salon du train miniature d'Orleans les 10 et 11 Novembre 2018. + +Ce réseau a été équipé avec 8 satellites dont le logiciel se trouve dans le **dossier Satellite** et était animé par deux gestionnaires des circulations en service à l'alternat (jamais simultanément). + +Le logiciel Satellite est décrit dans l'article : +[https://www.locoduino.org/spip.php?article239]() + +L'un des deux gestionnaires, celui de Pierre, a été installé dans un Arduino Mega et son programme a été complété par le middleware SAM qui se trouve dans le **dossier SAM**. + +Le middleware SAM est décrit dans l'article : +[https://www.locoduino.org/spip.php?article243]() \ No newline at end of file diff --git a/SAM/README.md b/SAM/README.md index 21eb7b6..a96a8e1 100644 --- a/SAM/README.md +++ b/SAM/README.md @@ -1,7 +1,13 @@ -# Gestionnaire +# SAM (Satellite Abstraction Middleware) -Le gestionnaire est basé sur le système conçu par Pierre. Il est constitué principalement couche applicative qui gère un ensemble de zones interconnectées pour former une représentation sous forme de graphe du réseau physique. Certains nœuds de ce graphe sont des aiguillages dont la position définit les prédécesseurs et successeurs adjacents. Il connaît l'occupation des zones et le franchissement de barrières permettant d'affiner la position d'un train à l'intérieur d'une zone. Il gère le mouvement des aiguillages, mouvement qui ne peut être permis que si aucun train n'est ou ne sera en transit au travers de cet aiguillage. Il gère également l'état des feux qui protège les zones. +Le SAM est l’interface (middleware) entre les satellites et le gestionnaire. + +Le gestionnaire ou système de gestion des circulations du réseau est constitué principalement d'une couche applicative qui gère un ensemble de zones interconnectées pour former une représentation sous forme de graphe du réseau physique. Certains nœuds de ce graphe sont des aiguillages dont la position définit les prédécesseurs et successeurs adjacents. Il connaît l'occupation des zones et le franchissement de barrières permettant d'affiner la position d'un train à l'intérieur d'une zone. Il gère le mouvement des aiguillages, mouvement qui ne peut être permis que si aucun train n'est ou ne sera en transit au travers de cet aiguillage. Il gère également l'état des feux qui protège les zones. Le gestionnaire reçoit en entrée l'occupation des zones et les informations de franchissement des barrières. Il émet en sortie la position des aiguillages et l'état des feux. -Les deux autres couches sont un middleware qui met en correspondance les éléments logiques (zones, barrières, aiguillages, feux) avec les élements physiques distants et la communication qui fait parvenir les commandes aux élements physiques distants et reçoit les états de ces mêmes élements physiques. +Pour échanger ces informations et commandes, le gestionnaire a besoin du middleware SAM qui met en correspondance les éléments logiques (zones, barrières, aiguillages, feux) avec les élements physiques distants et la communication qui fait parvenir les commandes aux élements physiques distants et reçoit les états de ces mêmes élements physiques. + +Cette communication utilise le réseau CAN. + +Ce dossier SAM contient donc le middleware SAM sous forme d'une application Arduino minimum qu'il faudra compléter par votre application gestionnaire personnelle. diff --git a/SAM/SAM.ino b/SAM/SAM.ino index d0192ec..0ae8068 100644 --- a/SAM/SAM.ino +++ b/SAM/SAM.ino @@ -143,7 +143,7 @@ void loop() // utilitaire de commande d'une aiguille a en position i -void Aiguille(int a, bool i) +void aiguille(int a, bool i) { Serial.print("Aiguille ");Serial.println(a); PointWrapper::setPointPosition(a,i); @@ -152,7 +152,7 @@ void Aiguille(int a, bool i) // utilitaire de commande d'un signal nsig avec un type de feux f -void Signal(int nsig, unsigned int f) +void signal(int nsig, unsigned int f) { switch (nsig) {