Éléments de conception

Cyberrail se décompose en différents modules. Chaque module est un processus différent qui communique avec d’autres modules par l’intermédiaire d’un noeud central. Pour que la communication entre les modules soit efficace, il est souhaitable qu’un modèle de données soit partagé entre ces différents modules.

Différents modules

Parmis ces modules, on peut citer :

  • le noeud central : c’est le processus central qui distribue l’ensemble des messages échangés par les différents autres modules.
  • le diorama virtuel : il s’agit du module simulant une maquette réelle. L’idée est d’ailleurs de pouvoir remplacer ce module par un autre qui ferait l’interface avec un vrai diorama.
  • le construction de réseau, qui permet de définir la topologie du réseau.
  • différents modules de pilotages, manuels et automatiques
  • un module de signalisation et d’aiguillage : en charge de gérer toute la partie de navigation des trains, positionnement des aiguillages, etc. Dans un premier temps, il sera probablement manuel.

L’ensemble de ces modules émettent des messages permettant de communiquer des évènements, des ordres, des informations (voir protocole). Ces messages n’ont pas de destinataire particulier. Chaque module doit par contre annoncer quels sont les messages qu’il souhaite recevoir (afin de ne pas être inondé d’informations peu pertinente pour son fonctionnement propre).

Plusieurs instances du même module peuvent être présente dans le système. Si cette fonctionnalité n’est pas souhaitée, c’est à la charge de chaque module de vérifier qu’une autre instance de ce même module n’est pas déjà présente.

Modèles de données communs

Ces modèles de données sont utilisés par les modules de base de Cyberrail. Cela dit, des modules tiers ne sont pas obligés de suivre ces modèles, seul le respect du protocole étant important.

documentation/conception.txt · Dernière modification: 24/09/2011 16:41 par Yvan
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante : CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki