280 lines
16 KiB
Plaintext
280 lines
16 KiB
Plaintext
<!DOCTYPE html>
|
|
<html lang="fr">
|
|
<head>
|
|
<!-- Copyright Bob Jacobsen 2008 -->
|
|
<!-- Updated by Hervé BLOREC <bzh56420@yahoo.fr> on 2016-07-02 -->
|
|
<title>JMRI: Create a Custom DecoderPro Programmer</title>
|
|
<!--#include virtual="/help/fr/parts/Style.shtml" -->
|
|
</head>
|
|
|
|
<body>
|
|
<!--#include virtual="/help/fr/parts/Header_fr.shtml" -->
|
|
<div id="mBody">
|
|
<!--#include virtual="Sidebar.shtml" -->
|
|
<div id="mainContent">
|
|
<!-- Page Body -->
|
|
|
|
<h1>JMRI: Guide Utilisateur DecoderPro </h1>
|
|
<h2>Créer un Programmateur Personnalisé</h2>
|
|
|
|
<p>Comment puis-je créer mon propre programmateur personnalisé?</p>
|
|
|
|
<p>La réponse commence par la création d'un fichier xml dans le sous-répertoire
|
|
"programmers" de la distribution JMRI. Le
|
|
contenu du fichier est décrit ci-dessous.</p>
|
|
|
|
<p>Après quelques parties initiales ( que vous pouvez copier depuis
|
|
un fichier existant ), le reste du fichier est une série de
|
|
"volets" de définitions d'éléments.
|
|
Chacun d'eux devient un volet dans la fenêtre DecoderPro.
|
|
<p>Les volets du fichier programmer apparaissent quand vous sélectionnez
|
|
ce programmateur dans DecoderPro. Notez que les volets peuvent aussi être définis
|
|
dans la définition décodeur, au quel cas ces volets apparaissent après
|
|
ceux qui présents dans les définitions de programmeur.</p>
|
|
<ul>
|
|
<li> Il y a une option pour montrer/masquer les volets depuis le fichier decoder. Si
|
|
vous écrivez un programmateur très basique, vous pouvez vouloir les cacher
|
|
pour conserver une interface simple.
|
|
<li>Si un volet est défini dans le fichier decoder et le fichier programmer
|
|
avec le même nom, celui du fichier décodeur ( le plus spécifique ) apparaît.
|
|
</ul>
|
|
|
|
<dl>
|
|
<dt class="left">Spécifier les éléments à afficher</dt>
|
|
<dd class="first">
|
|
<p>L'élément de base d'un volet de programmation est un "affichage". Cela signifie que
|
|
le programmateur ne présente qu'une seule variable. Les attributs sont:
|
|
<ul>
|
|
<li><dfn>name</dfn> - ( Nécessaire )
|
|
C'est le "nom standard" de la variable qui sera présenté.
|
|
<li><dfn>label</dfn> -
|
|
S'il est présent, il va être utilisé pour marquer la variable sur le volet
|
|
au lieu du nom ou du nom standard de la variable.
|
|
<li><dfn>Layout</dfn> -
|
|
Où trouver l'étiquette par rapport au champ modifiable,
|
|
par exemple, la zône de texte. Les valeurs possibles sont "gauche", "au-dessus",
|
|
"en dessous", "droit" , par défaut "droit" .
|
|
<li><dfn>format</dfn> -
|
|
Comment la variable devra être présentée. Les variables numériques peuvent être
|
|
présentées comme
|
|
<ul>
|
|
<li> un champ de texte modifiable, qui est la valeur par défaut si rien n'est spécifié
|
|
<li><dfn>hslider</dfn> - un curseur horizontal
|
|
<li><dfn>vslider</dfn> - un curseur vertical
|
|
</ul>
|
|
Les variables Enum peuvent être présentées comme
|
|
<ul>
|
|
<li> une zône de sélection, qui est la valeur par défaut si rien n'est
|
|
spécifié
|
|
<li><dfn>radiobuttons</dfn> - Chaque valeur possible est présentée
|
|
comme un bouton individuel
|
|
<li><dfn>checkbox</dfn> - Une liste avec seulement deux états peut également
|
|
être présentée comme une case à cocher
|
|
<li><dfn>offradiobutton</dfn> - Un seul bouton qui donne le choix 0
|
|
pour la variable lorsqu'il est sélectionné.
|
|
<li><dfn>onradiobutton</dfn> - Un seul bouton qui donne le choix 1
|
|
pour la variable lorsqu'il est sélectionné.
|
|
</ul>
|
|
Ces deux derniers peuvent être utiles pour indiquer quelles parties
|
|
d'une configuration sont actives, voir le volet "Table de Vitesse" de
|
|
Comprehensive.xml comme exemple.</li>
|
|
<li><dfn>tooltip</dfn> -
|
|
Vous permet de spécifier une info-bulle par défaut qui sera présentée lorsque le curseur
|
|
survole la variable. Cette info-bulle sera remplacée par toute info-bulle définie dans un fichier de décodeur.
|
|
(Note: Ce comportement est différent de celui défini pour <a href="#display">l'attribut d'étiquette
|
|
'label'</a>.)</li>
|
|
</ul>
|
|
|
|
<a name="display"></a>
|
|
<p>Le nom à afficher est commandé par le volet de l'attribut "nameFmt" et l'attribut "label" sur
|
|
chaque élément d'affichage (variable).</p>
|
|
|
|
<p>Les choix sont:</p>
|
|
<ul>
|
|
<li>Si une étiquette est spécifiée, elle sera utilisée. Utilisez une étiquette si
|
|
vous souhaitez un contrôle absolu sur comment une variable doit être appelée,
|
|
quel que soit le fichier décodeur qui l'appelle, et que vous n'aimez pas le nom standard.</li>
|
|
<li>Le volet attribut nameFmt est "élément ", auquel cas le nom de l'élément
|
|
sera utilisé indépendamment de ce que le fichier décodeur appelle la variable.
|
|
Utilisez ceci si vous voulez un aspect uniforme pour le volet pour tous les décodeurs.
|
|
Mais soyez conscient que certains noms standard sont vraiment tellement générique qu'ils sont inutiles.</li>
|
|
<li> Si le volet attribut nameFmt est autorisé par défaut, ou contient "mfg",
|
|
le nom du fichier de définition de décodeur sera utilisé. Il s'agit de la forme normale,
|
|
car il permet au fabricant d'indiquer en détail ce qu'une variable définit.</li>
|
|
</ul>
|
|
</dd>
|
|
|
|
<dt class="left">Formatage</dt>
|
|
<dd>
|
|
Chaque volet du programmateur se compose de lignes et/ou des colonnes ( imbriquées ) .
|
|
Les colonnes exposent les variables de haut en bas. Les rangées exposent les variables
|
|
de gauche à droite. Vous pouvez les imbriquer pour obtenir des effets différents; pour
|
|
un exemple, voir le volet "Table de Vitesse" du dossier Comprehensive.xml.
|
|
Il a deux colonnes, la gauche de chacune utilise une ligne pour mettre des curseurs
|
|
de gauche à droite.
|
|
</dd>
|
|
|
|
<dt class="left">Éléments spéciaux</dt>
|
|
<dd>
|
|
Il y a un certain nombre d'éléments que vous pouvez utiliser pour obtenir que le programmateur
|
|
formate exactement comme vous le souhaitez:
|
|
<ul>
|
|
<li><dfn>grid</dfn> - Créer une grille pour exposer les éléments en rangées et colonnes. Voir la section ci-dessous <a
|
|
href="#grid">Disposition de la grille</a></li>
|
|
<li><dfn>label</dfn> - Ajouter du texte dans un volet.</li>
|
|
<li><dfn>soundlabel</dfn> - Ajouter un soundlabel depuis un fichier decoder definition dans un volet. Il a un attribut:
|
|
<ul>
|
|
<li><dfn>dfn</dfn> - ( Requise )
|
|
C'est le nombre de label son à présenter</li>
|
|
</ul>
|
|
</li>
|
|
<li><dfn>separator</dfn> - Ajouter une ligne de séparation dans un volet. S'il est inclus
|
|
dans une colonne, ce sera une ligne de séparation horizontale. S'il
|
|
est inclus dans une ligne, ce sera une ligne verticale.</li>
|
|
<li><dfn>cvtable</dfn> - Insérer un tableau des valeurs de CV sur le volet.
|
|
Pour obtenir le droit d'espacement, vous devriez probablement ne pas combiner
|
|
cela avec d'autres variables sur le même volet.</li>
|
|
<li><dfn>fnmapping</dfn> -Afficher une grille fonction Mapping .
|
|
Cela nécessite des variables avec des noms spécifiques, qui
|
|
sont décrites sur une
|
|
<a href="FnMapping.shtml"> page séparée </a></li>
|
|
<li><dfn>dccaddress</dfn> - Afficher une variable combinée pour l'adresse DCC. Il
|
|
s'agit d'une case à cocher qui permet de sélectionner l'utilisation de l'adresse courte par rapport à une longue, et
|
|
un champ texte simple pour entrer l'adresse. Selon la façon dont la case est activée, le champ de texte
|
|
permet de configurer l'adresse courte dans CV 1 ou adresse longue dans CV 17/18.</li>
|
|
</ul>
|
|
</dd>
|
|
|
|
<dt class="left"><a id="grid"></a>Formatage avec la Disposition de la Grille </dt>
|
|
<dd>
|
|
<p>
|
|
Les éléments "row" et "column" vous permettent d'aligner les éléments dans les rangées ou les colonnes,
|
|
mais il si vous avez plusieurs colonnes avec un seul élément rangée ( ou vice versa )
|
|
il n'est pas possible d'assurer que les rangées dans les colonnes adjacentes ( ou vice versa ) restent alignées.
|
|
</p>
|
|
<p>
|
|
La Disposition de la Grille vous permet d'aligner les éléments en rangées et colonnes, en
|
|
conservant l'alignement même si un élément particulier est absent. Il y a deux éléments:
|
|
<ul>
|
|
<li><dfn>grid</dfn> - Crée une Disposition de Grille ( avec en son sein un élément colonne et rangée ) :
|
|
<ul>
|
|
<li>Il peut avoir un ou plusieurs attributs optionnels.</li>
|
|
<li>Le seul sous-élément autorisé est "griditem" et il doit y avoir au moins un d'eux.</li>
|
|
</ul></li>
|
|
<li><dfn>griditem</dfn> - Crée un élément grille au sein d'un élément "grille":
|
|
<ul>
|
|
<li>Il doit avoir les attributs "gridx" et "gridy".</li>
|
|
<li>Il peut avoir aussi un ou pusieurs attributs optionnels.</li>
|
|
<li>Il peut contenir un ou plusieurs éléments,
|
|
qui peuvent être n'importe quelle combinaison de n'importe quels éléments listés ci-dessus, incluant "row", column", ou même
|
|
une autre grille.</li>
|
|
</ul></li>
|
|
</ul>
|
|
|
|
<p>
|
|
Les attributs "gridx" et "gridy" d'un élément d'une grille spécifie l'emplacement de l'élément au sein de la grille.
|
|
Une valeur de gridx= "0" met l'élément dans la colonne la plus à gauche.
|
|
Une valeur de gridy= "0" met l'élément dans la rangée la plus haute.
|
|
D'autres attributs pour commander le format des éléments de la grille sont disponibles et sont documentés dans le
|
|
<a href="http://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html" target="_blank">
|
|
Tutoriel Java® GridBagLayout</a>.
|
|
<ul>
|
|
<li>Les Attributs de "grid" s'appliquent à tous les éléments de la table.</li>
|
|
<li>Les Attributs de "griditem" s'appliquent à cet élément et remplace tout attribut équivalent de "grid". </li>
|
|
<li>Les deux valeurs numérique et littérale d'une constante ( comme spécifié par le
|
|
<a href="http://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html" target="_blank">
|
|
documentation</a>) peuvent être utilisées.
|
|
</li>
|
|
<li>Deux valeurs littérales supplémentaires de constantes sont disponibles pour "gridx" et gridy":
|
|
<ul>
|
|
<li>"CURRENT" est la valeur du dernier "griditem" ajouté ( exemple la même colonne ou rangée ).</li>
|
|
<li>
|
|
"NEXT" est un de plus que la dernière valeur "griditem" ajoutée ( exemple la rangée ou la colonne suivante ).
|
|
<br> ("NEXT" est actuellement synonyme de "RELATIVE". )
|
|
</li>
|
|
</ul></li>
|
|
<li>L'attribut "insets" est spécifié comme insets= "haut,gauche,bas droit" où "haut", etc, sont des entiers.</li>
|
|
<li>Un "griditem peut avancer de plus d'une cellule de la grille. Les attributs "gridwidth" et "gridheight" commandent ceci.</li>
|
|
<li> Par défaut les éléments de la grille sont agglutinés au centre d'un container. L'attribut "weightx" peut modifier ceci et
|
|
justifier gauche/droite.</li>
|
|
<li> il est possible dans quelques circonstances d'oublier un ou les deux "gridx" et "gridy" d'un "griditem" et
|
|
spécifier une valeur par défaut dans "grid". Voir
|
|
<a href="http://sourceforge.net/p/jmri/code/HEAD/tree/trunk/jmri/xml/decoders/esu/v4fnOutPane.xml" target="_blank">
|
|
xml/decoders/esu/v4fnOutPane.xml</a>
|
|
pour un exemple de cet utilisation pour générer une simple grille à une colonne alignée à droite.
|
|
( Cependant si vous n'êtes pas rigoureux avec l'usage de cette technique et/ou la constante "RELATIVE", les résultats peuvent
|
|
être bizarres. )
|
|
</li>
|
|
<li>
|
|
Malheureusement "ipadx", "ipady", et "insets" allouent de l'espace même si la variable d'affichage contenue échoue à la
|
|
condition. Une solution de contournement est de qualifier l'ensemble "GridItem" entourant la variable ( si c'est approprié à la
|
|
situation ).
|
|
</li>
|
|
</ul>
|
|
|
|
<p>Pour un exemple d'utilisation de la Disposition de la Grille ( avec quelques explications sur les attributs utilisés ), voir
|
|
<a href="http://sourceforge.net/p/jmri/code/HEAD/tree/trunk/jmri/xml/decoders/esu/v4soundPane.xml" target="_blank">
|
|
xml/decoders/esu/v4soundPane.xml</a>.
|
|
Les définitons LokSound Select ( et V4 ) utilise ce fichier.</p>
|
|
</dd>
|
|
|
|
<dt class="left">Installation de votre nouveau programmateur</dt>
|
|
<dd>
|
|
<p>
|
|
Tous les fichiers .xml dans le sous-répertoire "programmers"
|
|
apparaîtront dans la boîte de sélection lorsque vous créerez un nouveau programmateur
|
|
dans DecoderPro. Pour utiliser votre nouveau fichier, il suffit de mettre dans
|
|
le sous-répertoire "programmers" du répertoire "prefs" et
|
|
de le sélectionnez. Vous n'avez pas à redémarrer le programme,
|
|
la liste est refaite à chaque fois que vous ouvrez une nouvelle fenêtre programmateur.
|
|
|
|
<p> Il ya une option pour présenter/masquer les volets depuis le fichier décodeur. Si vous écrivez
|
|
un programmateur tès basique, vous pouvez les cacher.</p>
|
|
|
|
</dd>
|
|
</dl>
|
|
|
|
<a name="id"></a>
|
|
<h3>Comment les variables dans un fichier décodeur correspondent avec le fichier programmateur</h3>
|
|
|
|
Chaque fichier décodeur définit
|
|
<a href="CreateDecoder.shtml#variable"> les variables </a> qui décrivent des commandes spécifiques dans
|
|
le décodeur. Le fichier programmateur décrit ensuite comment les placer sur ces volets, de telle sorte
|
|
que l'utilisateur puisse les trouver et les manipuler
|
|
<p>
|
|
Chaque élément "affichage" dans le fichier programmer définit une chose à montrer.
|
|
Mais laquelle? C'est contrôlé par l'attribut "name"
|
|
de l'élément "display" . DecoderPro ne prend que "name" et regarde à travers
|
|
la définition décodeur pour un élément "variable" qui a soit le
|
|
même "élément" ou le même attribut "label".
|
|
<p>
|
|
Cela a des effets très intéressants:
|
|
<ol>
|
|
<li>Le "nom" dans l'élément "display" est effectivement un "nom standard", qui
|
|
peut être utilisé dans les fichiers de définition décodeur provenant de différents
|
|
constructeurs. Comme il est distinct du "label" sur la variable décodeur,
|
|
il est possible d'avoir un fichier programmateur générique qui fonctionne pour
|
|
de nombreux types de décodeurs différents, tout en affichant les noms des variables spécifiques.
|
|
Pour en savoir plus, s'il vous plaît
|
|
<a href="#display"> voir ci-dessus </a>.
|
|
<li>
|
|
Il vous permet d'utiliser des noms très génériques pour commander où vont des choses un peu différentes.
|
|
Par exemple, différents décodeurs sonores donnent différents
|
|
commandes. On pourrait avoir "Pompe à air", tandis qu'un autre n'a pas
|
|
du tout ceci, et a au lieu "Crissement de frein". Nous ne voulons pas avoir les
|
|
fichiers programmateur contenant des milliards d'éléments "display"
|
|
à maîtriser avec toutes les options possibles. Au lieu de cela, nous utilisons des éléments avec
|
|
des noms plus génériques, comme "Option Son 1", pour le nom d'affichage.
|
|
<br>
|
|
La définition décodeur dispose alors d'un "label" de "Pompe à air" ou que ce soit, et
|
|
un "élément" de "Option Son 1". Tout correspond correctement, et
|
|
"Pompe à air" apparaît sur l'écran de l'ordinateur.</li>
|
|
</ol>
|
|
|
|
<!--#include virtual="/help/fr/parts/Footer_fr.shtml" -->
|
|
</div> <!-- close #mainContent -->
|
|
</div> <!-- close #mBody -->
|
|
<script src="/js/help.js"></script>
|
|
</body>
|
|
</html>
|