Skip to content

Commit

Permalink
update README
Browse files Browse the repository at this point in the history
  • Loading branch information
DCC4N committed Feb 9, 2019
1 parent 1c024ae commit 04ed7ee
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
# Locoduinodrome
# 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]()
12 changes: 9 additions & 3 deletions SAM/README.md
Original file line number Diff line number Diff line change
@@ -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.
4 changes: 2 additions & 2 deletions SAM/SAM.ino
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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)
{
Expand Down

0 comments on commit 04ed7ee

Please sign in to comment.