JMRI: Defining Your Own Signaling System

# JMRI: Définition de Votre Propre Système de Signalisation

Cette page décrit comment définir un nouveau système de signalisation de JMRI.

Nous passons par la création à partir de zéro, mais il est souvent plus facile de copier et de modifier l'un de ceux existants, dans le répertoire xml/signaux.

## Création d'un Nouveau Système de Signalisation

Premièrement, vous avez besoin de créer manuellement un nouveau répertoire dans le répertoire système de JMRI sous le "xml/signaux" ou dans le répertoire preferences utilisateur "resources/signals" qui détiendra votre nouvelle définition de signal. Par convention, le nom de ce répertoire (par exemple "basic" ou "AAR-1946") fournit le nom du système pour votre définition du signal. Tous les Mâts de Signalisation que vous créez utilisent votre nouvelle définition de système de signaux qui inclut le nom système du système de signalisation dans leur propre nom système, car c'est un inconvénient de changer le nom système du système de signaux. Pensez à l'avance un petit peu: ce qu'il y aura de variable dans cette définiton suivants les époques différentes ou de divisions différentes? Si oui, inclure une année, ou l'emplacement dans le nom, pour rendre facile la création des versions modifiées. Note: ne pas utiliser les caractères spéciaux comme l'esperluette (&) ou les espaces dans les noms de fichiers et de répertoires. JMRI s'exécute sur pleins d'ordinateurs, et les noms de fichiers avec espaces ou caractères spéciaux peuvent provoquer des problèmes pour des personnes si jamais vous contribuez avec vos fichiers à la distribution JMRI.

Ensuite, fournir ces fichiers:

- index.shtml - description de forme libre du système de signalisation
- aspects.xml - Définir l'ensemble des aspects disponibles
- apparence-*. xml - Un dossier pour chaque type de Mât de Signalisation, définissant comment afficher chaque aspect. Jetez un œil à certains systèmes de signalisation existants pour voir les conventions de dénominations typiques.

### Créez un nouveau fichier index.shtml

Ce fichier fournit seulement une description mais il est important de le faire en premier de sorte que vous enregistrez les détails de ce que vous avez fait.

Si vous capturez un système réaliste, enregistrez ce que vous savez à son sujet: compagnie ferroviaire, région/district, année, où vous avez trouvé les information, etc.

Si vous faites votre propre système, décrivez le en quelques détails de sorte que vous pourrez y revenir plus tard et vous rappelez de ce que vous aviez à l'esprit.

### Créer un nouveau fichier aspects.xml

L'élément `<name>` dans la partie supérieure de ce fichier fournit le nom utilisateur pour votre système de signalisation, qui figure en bonne place dans l'interface utilisateur. Il peut être un peu plus prolixe que le nom du répertoire, mais devrait être assez semblable pour que l'utilisateur puisse les associer en cas de besoin.

Cet élément `<aspects>` dans ce fichier listes tous les aspects qui peuvent apparaître dans ce système de signalisation. ( La plupart des Chemins de fer modèles représente un seul modèle de chemin de fer, il n'y a donc qu'un seul système présent, mais il est possible d'en utiliser plus ). Vous pouvez revenir et ajouter plus tard si nécessaire, mais il est préférable de tout saisir au début parce que les noms seront plus cohérents, etc

La plupart des fichiers sont des blocs qui ressemblent à ceci:

      <aspect>
        <name></name>
        <title></title>
        <indication></indication>
        <description></description>
        <reference></reference>
        <comment></comment>
        <imagelink></imagelink>
        <speed></speed>
        <speed2></speed2>
        <route></route>
        <dccAspect></dccAspect>
      </aspect>

Vous devez remplir l'élément `<name>`, Les autres sont facultatifs, mais l'ordre de tous les éléments est obligatoire pour passer avec succès la validation XML. Les éléments `<title>` et `<indication>` ne peuvent être inclus qu'une fois. Les éléments `<description>`, `<reference>` et `<comment>` peuvent être inclus autant de fois que vous le souhaitez.

L'élément`<imagelink>`, s'il est présent, doit pointer un fichier image (. gif,. png ou. jpg) montrant ce à quoi la famille des Apparences ressemble. Si vous fournissez des images individuelles dans les fichiers apparence , elles vont également être affichées ici. Les Images individuelles sont une meilleure solution, mais c'est aussi plus de travail.

L'élément `<speed>`, s'il est présent, doit être soit une valeur numérique ou une chaîne valeur qui a été défini dans le fichier signalSpeeds.xml. L'élément `<speed>` se rapporte à la vitesse maximale à laquelle un train peut passer à l'aspect. La Logique Mât de Signalisation utilise cette vitesse pour aider à déterminer quel aspect doit être affiché où il y a de multiples aspects possibles. Un élément facultatif `<speed2>` contient la vitesse ( valeur ) que le train doit - ou peut - atteindre en arrivant au prochain signal. Pour un aspect Libre, elle sera identique à `<speed>` mais en aspect Approche Déviée, elle sera généralement moins.
Les deux entrées de vitesse se réfèrent au bloc protégé comme il était quand le train est arrivé au signal, Parce que naturellement il aura changé pour "stop" une fois le train entré dans le canton suivant ( plus sur les vitesses dans la liste des developpeurs JMRI).

L'élément `<route>`, s'il est présent, devrait être entré simplement comme "Dévié", "Droit" ou "Autre". Si l'élément est omis ou laissé vide alors il est pris comme étant "Droit". L'élément `<route>` indique que cet Aspect spécifique est utilisé quand un aiguillage a été dévié dans le chemin à parcourir. La Logique Mât de Signalisation utilise cet élément pour aider à déterminer quel aspect doit être affiché là où il y a plusieurs Aspects possibles.

L'élément `<dccAspect>`, s'il est présent, est l'Identifiant du décodeur DCC accessoire signal par défaut pour cet aspect, Ces valeurs sont ensuite utilisées pour remplir les identifiants d'aspect quand un pilote de signal DCC ou LNCP est utilisé. Les valeurs peuvent être écrasées par l'utilisateur lors de la création ou de la modification du Mât de Signalisation particulier.

L'élément `<delay>` s'il est présent, permet à une temporisation d'être configurée entre l'évolution de l'aspect sur chaque tête de signal où plusieurs têtes sont configurés sur un mât.
Ceci est idéalement utilisé dans le prototype où un signal à commande manuelle (par exemple sémaphore) devrait être configuré par le signaleur, donc seul la tête du signal (ou Bras) pourrait être définie à n'importe quel moment.

Ci-dessous les blocs `<aspect>`, il y a un bloc qui nomme tous les fichiers d'apparence valide , par exemple:

       <appearancefiles/>
         <appearancefile href="appearance-SL-1-high-abs.xml"/>
          <appearancefile href="appearance-SL-1-high-pbs.xml"/>
          <appearancefile href="appearance-SL-1-low.xml"/>
        </appearancefiles>

Créer cette partie quand vous créez les fichiers apparence (voir ci-dessous), pour que le programme puisse localiser chacun d'eux et les afficher pour l'utilisateur.

### Créer les fichiers apparence-*. xml

Pour chaque sorte de signal sur le réseau (un feu, deux feux, nain, sémaphore, etc), vous avez besoin de créer un fichier apparence dédié.

Jetez un œil à certains systèmes de signalisation existants pour voir les conventions typiques de dénomination. Note: ne pas utiliser les caractères spéciaux comme l'esperluette (&) ou les espaces dans les noms de fichiers et de répertoires. JMRI s'exécute sur pleins d'ordinateurs, et les noms de fichiers avec espaces ou caractères spéciaux peuvent provoquer des problèmes pour des personnes si jamais vous contribuez avec vos fichiers pour la distribution JMRI .

Le haut du fichier est un certain texte standard que vous pouvez copier depuis un système existant, puis modifier avec votre information d'historique de révision et d'auteur.

La valeur de l'élément `<aspecttable>` devrait être le nom utilisateur pour le système global, comme défini dans l'élément `<name>` du fichier aspects.xml.

L'élément `<name>` est le nom utilisateur pour ce type particulier de mât de signalisation. Il devrait être assez descriptif du mât, et relater d'une certaine façon évidente le nom du fichier. Utilisez les éléments `<reference>` et `<description>` pour fournir des informations au futurs utilisateurs de ce système de signaux. Vous pouvez voir comment ceci est affiché dans un fichier exemple.

Ensuite il y a l'élément `<appearances>`, qui contient une série d'éléments de `<appearance>` qui définissent comment apparaissent les divers Aspects sur ce type de mât de signalisation. Chaque aspect ne doit pas être défini dans chaque fichier, car chaque type de signal ne peut pas montrer tous les aspects.

Chaque aspect que le signal peut montrer a besoin d'être décrit avec un bloc comme ceci:

      <appearance>
        <aspectname>Clear</aspectname>
        <show>green</show>
        <show>red</show>
        <reference></reference>
        <delay></delay>
        <imagelink></imagelink>
      </appearance>

Le `<aspectname>` doit être au début, suivi par zéro ou plus d'éléments `<show>`.

L'élément `<show>` sera utilisé pour définir les Feux de Signalisation, qui composent le signal pour afficher correctement cet Aspect. Il peut y en avoir zéro ou plus , contenant "red", "flash red", "yellow", "flash yellow", "green", "flash green", "lunar", "flash lunar" or "dark".

Vous pouvez avoir autant d'éléments `<reference>` que vous le souhaitez, ils sont lisible par l'utilisateur pour la documentation.

L'élément imagelink, s'il est présent, doit pointer un fichier image (. gif,. png ou. jpg) montrant ce à quoi ressemble cette apparence.
Si vous créez ou utilisez des images personnalisées celles-ci doivent être placés dans un sous-répertoire à l'intérieur de la zone de préférence utilisateur, le lien de l'image doit ensuite être préfixé par "préférence:" suivi par le reste du chemin. Tant que vous travaillez localement, utiliser préférence: ressources/chemins etc. Si tous les aspects de votre nouvelle définition du signal travaillent sur votre panneau/réseau et vous envisagez de présenter votre nouveau système de signalisation comme un patch pour JMRI, utiliser les chemins d'URL complètes comme http://jmri.org/resources/icons/etc dans les fichiers XML de sorte qu'ils vont travailler à la fois avec le programme JMRI local et pour les personnes qui vont les consulté sur le site web JMRI.

#### Apparences Spécifiques

Il y a quatre apparences spécifiques auquelles JMRI doit et peut se référer, comme les noms d'apparence sont tous définis par l'utilisateur et peut être dans n'importe quelle langue et Tous sont facultatifs et dépendent du Mât de Signalisation
danger C'est l'aspect le plus restrictif que le mât du signal peut montrer. Lorsque le chemin à parcourir n'est pas définie ou effacé la logique de mât de signalisation fixera le mât de signal à cette apparence.
permissive (Call-On) cette apparence est affichée si le canton suivant est occupé, mais qu'un autre train est autorisé à entrer.
held fournit ( via l'élément imagelink ) une autre image sur le panneau pour indiquer que la condition "held" a été maintenu à
Dark est utilisé pour fournir une autre image sur le panneau pour indiquer que le signal n'est pas allumé.
Chaque aspect spécifique peut donnée une image alternative à une utilisation autre que celle donnée dans la définition principale de l'apparence.
Cette information peut être entrée après l'information d'apparence sous la forme suivante.

      <specificappearances>
        <danger>
          <aspect>Danger</aspect>
        </danger>
        <permissive>
          <aspect>Off</aspect>
        </permissive>
        <held>
          <aspect>Danger</aspect>
          <imagelink>held.gif</imagelink<
        </held>
        <dark>
          <aspect>Not Lit</aspect>
          <imagelink>notlit.gif</imagelink<
        </dark>
      </specificappearances>

Seul un aspect peut être défini pour chaque apparence spécifique. Pour chaque aspect spécifique entré, l'entrée correspondante `<aspect>` doit être un `<aspectname>` valide qui se produit dans les définitions d'apparence pour le mât

#### Modélisation Aspect

La modélisation aspect est utilisé pour aider à déterminer la progression des Aspects de la signalisation. Le but de la modélisation est de définir quelles Aspects potentiels sont valables selon l'Aspect qui est affiché sur le mât de signalisation qui est devant nous. Cette modélisation peut être un simple un à un, Ex. Mât de Signalisation avancé montre l'Approche, nous devrions montrer Libre. Ou un système plus complexe un-à-plusieurs modèle où il pourrait y avoir de multiples Aspects que l'on pourrait afficher, Exemple le signal Avancé présente Stop, mais nous pourrions afficher soit une Approche ou Approche Déviée en fonction d'autres conditions.

La valeur de `<advancedAspect>` peut être n'importe quoi de défini dans le tableau Aspect pour ce système de signalisation.
La valeur de `<ourAspect>`, doit être celui qui est défini et soutenu par le fichier apparence (Il peut être affiché sur ce type de mât de signalisation). dans le fichier apparence.

Toutes les modélisations sont contenues dans les balises <aspectMappings>, au sein de leurs propres balises <aspectMapping>. `<aspectMappings> <aspectMapping> <advancedAspect>Approach</advancedAspect> <ourAspect>Clear</ourAspect> </aspectMapping>
<aspectMapping> <advancedAspec1.7t>Stop</advancedAspect> <ourAspect>Approach</ourAspect> <ourAspect>Diverging Approach</ourAspect> </aspectMapping> </aspectMappings>`

### Vérifiez votre Travail

Vous pouvez utiliser les outils " Vérifier le fichier XML" et "Valider le fichier XML" sous la fenêtre JMRI "Debogaga" fenêtre pour vérifier vos fichiers. ( Notez que vous devez être connecté à internet pour le faire car les fichiers se réfèrent à plusieurs ressources de vérification qui sont sur le site web de JMRI ). Le premier vérifie le format de base: que tous les caractères < e > soient au bon endroit? Etc. Le second permet de s'assurer que les éléments de droite sont dans les bons endroits, et vérifie une partie du contenu,.

### Modifications apportées à un système de signalisation existant, etc.

Il ya un certain nombre de définitions de signalisation déjà fournis dans JMRI qui sont situéés dans le répertoire "xml/signal", certaines d'entre elles peuvent généralement répondre à vos exigences mais certaines peuvent nécessiter des modifications pour s'adapter au matériel que vous utilisez, ou il y a des variations locales dans les opérations, ou tout simplement que vous n'avez pas la possibilité de travailler à un ensemble entièrement réaliste de signaux.

Dans ce cas, il est possible de modifier et de créer vos propres fichiers d'apparence qui écrasera ceux fournis par JMRI. Vous devrez d'abord créer un sous-répertoire dans le répertoire de ressources situé dans la zône de préférences de l'utilisateur appelé "signals", vous aurez alors besoin de créer un sous-répertoire dans lequel il a exactement le même nom que le nom fourni par JMRI. De là, tous les fichiers d'apparence que vous créez ou copiez soit seront ajouter à la liste de mât pour ce système de signalisation soit écraseront le Mât de Signalisation JMRI prédéfinie

L'avantage de placer les fichiers (nouveaux et modifiés) de l'Apparence du mât de signalisation ici est que lorsque JMRI est mis à jour, ces fichiers ne seront pas écrasées et perdues!.

Lexique:

- * Aspect= couleur du feu
- * Apparence (du Mât)= ce qu'il signifie ex: Rappel de ralentissement