760 lines
38 KiB
Plaintext
760 lines
38 KiB
Plaintext
<!DOCTYPE html>
|
||
<html lang="fr">
|
||
<head>
|
||
<!-- Copyright Bob Jacobsen 2008 -->
|
||
<!--Translated by Hervé Blorec le 2016-06-18 -->
|
||
<title>JMRI: DecoderPro User Guide - Advanced Decoder Definitions</title>
|
||
<!--#include virtual="/help/fr/parts/Style.shtml" -->
|
||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||
</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> Définitions Avancées des Décodeurs </h2>
|
||
|
||
<p>Cette page fournit des informations sur les fonctionnalités avancées dans
|
||
les fichiers de définiton décodeur pour le Programmateur Symbolique DecoderPro
|
||
.</p>
|
||
|
||
<a name="html_formatting" id="html_formatting"></a>
|
||
<h3> Formatage sur la page </h3>
|
||
Vous pouvez faire une mise en forme limitée sur l'écran en utilisant les balises HTML de formatage.
|
||
|
||
<p>
|
||
Vous pouvez intégrer du HTML dans le texte du volet, mais il doit être enfermé dans les Mots clés < html > ... < /html > .
|
||
</p>
|
||
<p> Ceci est un peu difficile à cause du chevauchement entre les "balises comme
|
||
partie de la structure XML du fichier décodeur" et "les balises HTML inclus dans le fichier décodeur".
|
||
Toutes les balises HTML doivent être citées, avec leurs caractères < et >
|
||
remplacées par leurs chaines &lt; et &gt; et tous les guillemets
|
||
intégrés remplacés par &quot;.</p>
|
||
<p>
|
||
Par exemple:
|
||
</p>
|
||
<pre style="white-space: pre-wrap;">
|
||
<label label="&lt;html&gt;&lt;strong&gt;JMRI 3.7.2 ou plus tard est requis pour utiliser cette définition.&lt;/strong&gt;&lt;/html&gt;"/>
|
||
</pre>
|
||
Après le XML est lu, les contenus de ce label seront affiché depuis le texte dans l'attribut "label", qui est:
|
||
<pre>
|
||
<html><strong>JMRI 3.7.2 ou plus tard est requis pour utiliser cette définition.</strong></html>
|
||
</pre>
|
||
et qui apparaitre à l'écran comme
|
||
<p>
|
||
<strong>JMRI 3.7.2 ou plus tard est requis pour utiliser cette définition.</strong>
|
||
<p>
|
||
Pour plus d'exemple voir:
|
||
<a href="https://github.com/JMRI/JMRI/blob/master/xml/decoders/esu/v4readMePane.xml" target="_blank">
|
||
xml/decoders/esu/v4readMePane.xml</a>.
|
||
</p>
|
||
<p>
|
||
Ceci fournit seulement le support HTML5, ainsi si quelque chose n'est pas affichée comme vous l'attendiez, voyiez si une
|
||
approche utilisant un simple HTML fonctionnera.
|
||
</p>
|
||
|
||
<a name="id" id="id"></a>
|
||
<h3>Identification</h3>
|
||
Trois parties:
|
||
<dl>
|
||
<dt>Fabricant:</dt><dd>Valeur numérique depuis CV8, qui est adaptée à un nom en utilisant
|
||
les entrées dans le fichier xml/decoderIndex.xml. </dd>
|
||
<dt>Version code:</dt><dd>Valeur numérique depuis CV7, qui est adaptée pour modéliser le nom (s) en utilisant
|
||
les valeurs lowVersionID et highVersionID sur les éléments du modèle
|
||
au sein de toutes les définitions de décodeur pour le fabricant spécifique.
|
||
Ceci est un processus complexe qui n'aboutit pas toujours
|
||
en raison des valeurs à dupliquer , etc..</dd>
|
||
<dt>Code Identification Produits:</dt><dd>à l'origine une valeur numérique lu à partir d'un CV ou CVs
|
||
spécifique au fabricant; cela ne fonctionne que pour certains fabricants. Le processus de lecture
|
||
est traité dans le code ( la classe
|
||
<a href="http://jmri.org/JavaDoc/doc/jmri/jmrit/decoderdefn/IdentifyDecoder.html">jmri.jmrit.decoderdefn.IdentifyDecoder</a> )
|
||
et doit être mis à jour chaque fois qu'un fabricant commence à fournir des valeurs dans un ou plusieurs
|
||
nouveaux CV. Lorsque le code produit est présent, il devrait briser toute dégénérescence entre chevauchement des valeurs de CV7
|
||
dans une famille de décodeur.
|
||
<p>
|
||
L'aide a aussi été ajoutée pour trouver cette valeur en utilisant le
|
||
<a href="../../hardware/loconet/Addressing.shtml#SVs">ProtocoleLocoNet SV2</a>
|
||
quelque fois au cours de la validation de la série JMRI 4.1. Voir les notes de release
|
||
pour plus infos sur la progression.
|
||
<p>
|
||
Étant donné que le code produit fonctionne avec les opérations d'inclusion/exclusion décrites ci-dessous
|
||
vous pouvez également l'utiliser dans les cas où il n'y a pas de CV ou CV qui en contiennent.
|
||
Dans ce cas , aucune ID automatique n'est donnée, mais la valeur depuis le
|
||
id_produit attribut du modèle sélectionné par l'utilisateur est utilisée pendant le traitement
|
||
et l'extension de la définition du décodeur ultérieur.
|
||
Les valeurs productId sont quelques fois utilisées pour pour éviter
|
||
les conflits avec les valeurs numériques trouvées dans les CV.
|
||
</dd>
|
||
</dl>
|
||
Par exemple:
|
||
<code>
|
||
<décodeurcoder>
|
||
<Nom de famille="Mon Nom de Famille" mfg="NMRA">
|
||
<model model="Modèle A" lowVersionID="16" highVersionID="19" productID="400" />
|
||
</model>
|
||
<model model="Modèle B" lowVersionID="21" highVersionID="22" productID="401" />
|
||
</model>
|
||
</décodeur>
|
||
</code>
|
||
|
||
Si l'utilisateur sélectionne manuellenment un décodeur modèle, cettte sélection définie
|
||
les trois valeurs pour une utilisation lorsque la définition de décodeur est élargie
|
||
pour la programmation (voir la section <a href="#conditional">Définitions Conditionnelles de Décodeur </a> ci-dessous).
|
||
|
||
<a name="pane_considerations" id="pane_considerations"></a>
|
||
<h3>Volet Considérations</h3>
|
||
Les volets du programmateur sont utilisées pour répartir et organiser les variables du décodeur dans des catégories nommées
|
||
pratiques.
|
||
<ul>
|
||
<li>
|
||
JMRI fournit un jeu standard de volets, défini par les éléments <pane> inclus dans les éléments <programmer>
|
||
de chacun des fichiers des Programmateur standard (Basique, Complet, Avancé etc.) dans le dossier xml/programmers/.
|
||
</li>
|
||
<li>
|
||
Les fichiers définition Décodeur peuvent contenir des volets personnalisés pour des décodeurs particuliers ou des familles
|
||
de décodeurs, définis par les éléments <pane> inclus dans l'élément (Haut-niveau) <decoder-config> du fichier
|
||
décodeur.
|
||
</li>
|
||
<li>
|
||
Les noms de volets sont spécifiés par un élément <name> en haut de chaque élement <pane>.
|
||
</li>
|
||
</ul>
|
||
<a name="pane_replacement" id="pane_replacement"></a>
|
||
<h4>Volet de Remplacement </h4>
|
||
Les volets personnalisés sont habituellement ajoutés aux fichiers définition pour une des raisons suivantes:
|
||
<ol type="A">
|
||
<li>
|
||
Les éléments à montrer ne sont dans aucunes des catégories définies par les noms standards des volets.
|
||
<ul>
|
||
<li>Dans ce cas le <name>se l'élément du volet doit être différent d'un nom standard existant..</li>
|
||
<li>Le nouveau volet personnalisé sera ajouté à la fin de la liste volet.</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
La catégorie standard volet applicable n'a pas la disposition correcte ou le nombre de variables.
|
||
<ul>
|
||
<li>Dans ce cas l'élément volet <name> correspondra exactement à un élément standard volet <name> existant.</li>
|
||
<li>Le nouveau volet personnalisé <strong><em>remplace</em></strong> le panneau standard du même nom.</li>
|
||
</ul>
|
||
</li>
|
||
</ol>
|
||
<h4>Volets Vides</h4>
|
||
Les volets vides sont définis comme ceux qui n'ont aucun éléments variables actifs à afficher pour le décodeur sélectionné.
|
||
Ils peuvent encore contenir du texte..
|
||
<a name="pane_visibility" id="pane_visibility"></a>
|
||
<a name="visibility" id="visibility"></a>
|
||
<h4>Visibilité Volet</h4>
|
||
La visibilité volet est régit par un ensemble de règles complexes:
|
||
<ul>
|
||
<li>
|
||
Indépendamment de toutes les autres règles, un volet ne sera pas affiché s'il échoue à
|
||
<a href="#pane_include">"inclure" ou "exclure" des attributs </a> dans son élément <pane>.
|
||
</li>
|
||
<li>
|
||
La visibilité d'un volet vide est contrôlée par ce qui suit, par ordre de priorité croissante:
|
||
<ul>
|
||
<li>les Préférences->Inventaire->programmateur->Montre des Onglets de réglages Vides.</li>
|
||
<li>Si présent, un attribut showEmptyPanes dans le fichier programmateur actuel XML.</li>
|
||
<li>Si présent, un attribut showEmptyPanes dans le fichier definition décodeur XML.</li>
|
||
</ul>
|
||
|
||
</li>
|
||
<li>
|
||
Le fait qu'un volet vide spécifique (tel que défini dans Volets vides ci-dessus) indique également dépend du type de volet :
|
||
<ul>
|
||
<li>
|
||
Si le volet vide est un volet standard ( comme défini dans <a href="#pane_considerations">Considérations Volet</a> ci-
|
||
dessus )
|
||
il ne se montrera que si showEmptyPanes est en vigueur.
|
||
<em>Cependant, son contenu usuel sera remplacé par un message générique expliquant que le volet est inutilisé puisque
|
||
ses contenus sont inapplicables ou apparaissent dans un autre volet.</em>
|
||
</li>
|
||
<li>
|
||
Si le volet vide est un volet de remplacement (comme défini dans l'élément de <a href="#pane_replacement">Volet de
|
||
Remplacement</a> ci-dessus ),
|
||
il ne se montrerera que si showEmptyPanes est en vigueur.
|
||
</li>
|
||
<li>
|
||
Si le volet vide est est un volet personnalisé ( comme défini dans l'élément A de <a href="#pane_replacement">Volet de
|
||
Remplacement</a> ci-dessus ),
|
||
il sera toujours montré, indépendamment du fait que showEmptyPanes soit en vigueur.
|
||
</li>
|
||
</ul>
|
||
|
||
</li>
|
||
</ul>
|
||
<a name="pane_best_practice" id="pane_best_practice"></a>
|
||
<h4>Bonne Pratique</h4>
|
||
Les utilisateurs expérimentés peuvent choisir de masquer des volets vides, mais Montrer Onglets Vides est activé par défaut
|
||
ainsi les utilisateurs débutants ont besoin de savoir pourquoi les volets sont vides et où trouver les éléments qui ne sont pas
|
||
sur les volets attendus<p>
|
||
La meilleur pratique recommandée est:<ul>
|
||
<li>
|
||
Où c'est possible, les éléments doivent utiliser les volet standard existant
|
||
</li>
|
||
<li>
|
||
Où un volet particulier standard existant ne convient pas en termes de nombre d'éléments ou de mise en page :
|
||
<ul>
|
||
<li>
|
||
Créez un <a href="#pane_replacement">volet de remplacement</a> avec le même nom que le panneau standard existant.
|
||
</li>
|
||
<li>
|
||
Par exemples, voir les volets Avancés et Sons du décodeur des
|
||
<a href="https://github.com/JMRI/JMRI/blob/master/xml/decoders/ESU_LokSoundV4_0.xml" target="_blank">
|
||
ESU_LokSoundV4_0</a> .
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
Si un volet standard existant ne convient pas en termes de conception:
|
||
<ul>
|
||
<li>
|
||
Créez un ou plusieurs nouveaux<a href="#pane_replacement"> volets personnalisés</a> avec un des noms descriptifs uniques.
|
||
</li>
|
||
<li>
|
||
Créez des
|
||
<a href="#pane_replacement">volets de remplacements</a> d'information seulement ( pas d'affichage d'éléments, rien que
|
||
du texte ) avec les mêmes noms que les volets standards existants non-utilisés. Utilisez ces volets pour expliquer
|
||
pourquoi chaque volet est inutilisé et/ou trouver les informations qu'un utilisateur peut raisonnablement espérer
|
||
trouver sur ces volets.
|
||
Utilisez un <a href="#html_formatting">formatage HTML</a> pour améliorer l'affichage de ces panneaux explicatifs.
|
||
</li>
|
||
<li>
|
||
Par exemples, voir les volets de Niveaux Lumière et Sons de la définition du décodeur
|
||
<a href="https://github.com/JMRI/JMRI/blob/master/xml/decoders/ESU_LokSoundV4_0.xml" target="_blank">
|
||
ESU_LokSoundV4_0</a> .
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
Les <a href="#pane_replacement">volets personnalisés</a> d'Information
|
||
seront <em>toujours</em> affichés.
|
||
</li>
|
||
</ul>
|
||
<p>
|
||
Dans quelques cas, exemple: un décodeur accessoire pour servos où aucun des volets décodeur-locomotive n'a de sens, ainsi la
|
||
définition du décodeur contient un nombre de panneau personnalisés, c'est une simplification de mettre un attribut
|
||
showEmptyPanes="no" dans l'élément <decoder-config> de la définition XML et de masquer tous les panneaux vides par défaut.
|
||
|
||
<a name="frag_include" id="frag_include"></a>
|
||
<h3>Inclusion de Fragment de Fichier</h3>
|
||
|
||
Des parties communes des définitions de décodeur peuvent être placées dans des "fragments de fichiers",
|
||
qui peuvent alors être inclus dans de multiples fichiers de définitions de décodeur.
|
||
Ceci rend plus aisé la maintenance et l'actualisation de ces définitions communes, exemple:
|
||
les traduire dans d'autres langues.
|
||
<p>
|
||
Par convention, nous avons ces fichiers fragmentés dans les sous-répertoires:
|
||
<dl>
|
||
<dt>xml/decoders/nmra</dt>
|
||
<dd> Les définitions The NMRA pour les CVs, utilisé par beaucoup de décodeurs
|
||
types
|
||
<dt>xml/decoders/(mfg)</dt>
|
||
<dd> Les variables spécifiques Constructeurs, par exemple xml/decoders/esu
|
||
</dl>
|
||
Le format pour une inclusion est:
|
||
<code>
|
||
<xi:include href="http://jmri.org/xml/decoders/nmra/shortAndLongAddress.xml"/>
|
||
</code>
|
||
|
||
Le programme cherche ces fragments de fichier d'abord dans le répertoire <preferences>,
|
||
puis dans le répertoire <programme>. Le chemin complet doit être présent, exemple
|
||
vous avez besoin d'un répertoire xml qui contient un répertoire décodeurs dans votre répertoire <preferences> pour le fragment de
|
||
fichier à trouver.
|
||
<p>
|
||
Utilisez un fichier existant comme un exemple pour pour les meilleurs éléments et & le format nécessaire.
|
||
|
||
<a name="update" id="update"></a>
|
||
<h3>Actualisations et Migration</h3>
|
||
|
||
Quelquefois, nous remplaçons une définition décodeur par une meilleure. La plus vieille est en service,
|
||
mais nous aimerions déplacer les utilisateurs vers la nouvelle éventuellement. Il y a des attributs model-level
|
||
qui peuvent être ajoutés à l'ancienne ( pas la nouvelle ) définition pour faciliter cette tâche:
|
||
|
||
<code>
|
||
<model show="no" model="A4X" replacementModel="A4X" replacementFamily="Jan 2012">
|
||
</code>
|
||
|
||
Quand l'utilisateur sélectionne "Mise à Jour Définitions de Décodeur" depuis le menu Débogage de la fenêtre PanelPro
|
||
ou le menu Action dans DecoderPro,
|
||
toutes les entrées inventaire existantes qui utilisent la définition décodeur avec "replacementModel" et/ou
|
||
"replacementFamily" définie seront mises à jour avec la définition décodeur de remplacement spécifiée.
|
||
Cela permet au gens d'utiliser la vieille et confortable définition décodeur ( l'ancien fichier reste dans JMRI ) jusqu'à ce
|
||
qu'ils décident d'avancer pour la nouvelle.
|
||
<p>
|
||
L'attribut de l'élément model "show" permet de garantir que les nouveaux utilisateurs
|
||
démarrent avec la nouvelle définition.
|
||
Ses valeurs possibles sont:
|
||
<ul>
|
||
<li>"yes" (par défaut) - le comportement traditionnel, montre toujours ce modèle et la famille qu'il contient
|
||
<li>"no" - ne jamais montrer ce modèle, même s'il correspond à une sélection possible.
|
||
Utilisé pour les anciennes (vieilles) définitions qui ont été remplacées par des nouvelles.
|
||
<li>"maybe" - afficher uniquement si elle correspond à une (possible) identification automatique.
|
||
</ul>
|
||
|
||
Pour créer une nouvelle définition complète pour un modèle existant:
|
||
<ol>
|
||
<li>Décidez où vous voulez que le nouveau modèle soit défini. Il doit y avoir soit un nouveau nom de modèle, un nouveau
|
||
nom de famille (nouveau fichier) ou les deux
|
||
<li>Créer votre définition.
|
||
<li>Ajouter les attributs "replacementModel" et "replacementFamily"pour la vieille définition.
|
||
<li>Généralement, définissez l'attribut "show" dans l'ancienne définition à «no». La seule exception à cette règle est
|
||
lorsque certains utilisateurs voudront sélectionner encore l'ancienne définition pour un nouveau décodeur, peut-être
|
||
parce que l'identification automatique peut indiquer l'usage de l'ancienne définition depuis de la nouvelle.
|
||
( Par exemple, vous allez partager l'ancienne définition en deux parties, car une nouvelle version locomotive existe )
|
||
</ol>
|
||
|
||
<h3>Capacités de Programmation</h3>
|
||
|
||
Quelques décodeurs peuvent faire des opérations de programmation supplémentaires, par exemple en contournant les limitations de
|
||
la programmation de CV dans la station de commande. Les éléments "Capability" sont utilisés pour indiquer ceux-ci à DecoderPro.
|
||
|
||
<h4>Accès aux CV d'adresses Hautes</h4>
|
||
|
||
Certaines centrales de commandes peuvent seulement accéder aux CV 256 ou CV 512. Quelques
|
||
fabricants de décodeur ont construit des mécanismes pour contourner cela. Par exemple,
|
||
quelques décodeurs ESU peuvent utiliser l'écritures sur divers CV pour accéder aux CV adresse CV.
|
||
Pour dire à DecoderPro qu'un décodeur peut faire cela, utilisez un élément comme:
|
||
<code>
|
||
<capability>
|
||
<name>High Access via Double Index</name>
|
||
<parameter name="Adresse CV Max ">256</parameter>
|
||
<parameter name="CV Adresse Haute ">96</parameter>
|
||
<parameter name="CV Adresse basse">97</parameter>
|
||
<parameter name="CV Accès Registre">99</parameter>
|
||
<parameter name="Modulo">100</parameter>
|
||
</capability>
|
||
</code>
|
||
<p>
|
||
Les paramètres doivent apparaître dans l'ordre montré. Ils signifient:
|
||
<ul>
|
||
<li>"CV Adresse Max" - Les adresses CV égale ou inférieure n'utilisent
|
||
pas ce mécanisme. ( Le mécanisme ne sera pas utilisée si la centrale de commande
|
||
peut directement lire/écrire le CV demandé, mais même si elle ne peut pas, ce
|
||
mécanisme ne sera pas utilisé en dessous de cette valeur )
|
||
<li>"CV Adresse Haute" - La partie haute ( voir Modulo ) de l'adresse CV
|
||
est écrite ici au début de l'opération
|
||
<li>"CV Adresse basse" -La partie basse (voir Modulo) de l'adresse de CV est
|
||
écrite ici en 2ème partie de l'opération.
|
||
<li>"CV Accès Registre" - après que les valeurs d'adresse sont définies, ceci est le
|
||
CV qui est lu ou écrit pour lire ou régler le CV réel désiré.
|
||
<li>"Modulo" - valeur utilisée pour partager l'adresse réelle des CVs entre l'adresse haute et basse.
|
||
|
||
</ul>
|
||
<p>
|
||
Par exemple, pour écrire 21 dans le CV 614 avec les valeurs montrées, DecoderPro écrira:
|
||
<ul>
|
||
<li> 6 =(614/100) dans le CV 96 pour la partie haute de l'adresse
|
||
<li> 14 = (614 mod 100) dans le CV 97 pour la partie basse de l'adresse
|
||
<li> 21 dans CV 99 pour écrire dans le CV actuel
|
||
</ul>
|
||
<p>
|
||
Pour un exemple d'où placer cette élément "capability" dans le fichier, etc,... voir le fichier
|
||
<a href="https://github.com/JMRI/JMRI/blob/master/xml/decoders/ESU_LokSoundV4_0.xml" target="_blank">
|
||
xml/decoders/ESU_LokSoundV4_0.xml</a> .
|
||
|
||
<p>
|
||
<a name="zimocapability" id="zimocapability"></a>
|
||
Autre approche utilisée par exemple par Zimo, est de fournir un moyen d'accès à la page.
|
||
par exemple, pour écrire 21 dans le CV614 avec un de ceux-ci, vous devez écrire:
|
||
<ul>
|
||
<li> 60 =(614/100)*10 dans le CV 7 pour la partie haute de l'adresse
|
||
<li> 21 dans le CV 14 (614 mod 100) pour écrire dans le CV actuel
|
||
</ul>
|
||
Cet élément "capability" va faire:
|
||
<code>
|
||
<capability>
|
||
<name>High Access via Partial Index</name>
|
||
<parameter name="CV Adresse Max ">100</parameter>
|
||
<parameter name="CV Adresse Haute">7</parameter>
|
||
<parameter name="Multiplicateur Adresse Haute">10</parameter>
|
||
<parameter name="Modulo">100</parameter>
|
||
</capability>
|
||
</code>
|
||
Notez que "name" a une valeur différente. C'est ce qui sélectionne l'algorithme nécessaire ici.
|
||
<p>
|
||
Les paramètres doivent apparaître dans l'ordre montré. Ils signifient:
|
||
<ul>
|
||
<li>"CV Adresse Max" - Les adresses CV égale ou inférieure n'utilisent
|
||
pas ce mécanisme. ( Le mécanisme ne sera pas utilisée si la centrale de commande
|
||
peut directement lire/écrire le CV demandé, mais même si elle ne peut pas, ce
|
||
mécanisme ne sera pas utilisé en dessous de cette valeur )
|
||
<li>"CV Adresse Haute" - La partie haute ( voir Modulo ) de l'adresse CV
|
||
est écrite ici au début de l'opération
|
||
<li>"Multiplicateur Adresse Haute" - Ceci multiplie la partie haute de l'adresse du CV
|
||
avant qu'il soit stocké dans l'Adresse Haute du CV. Par exemple,
|
||
mettre un 10 ici stockera la partie haute de l'adresse dans le "10ieme digit" de
|
||
l'Adresse Haute du CV.
|
||
<li>"Modulo" - valeur utilisée pour partager l'adresse réelle des CVs entre l'adresse haute et basse.
|
||
|
||
</ul>
|
||
|
||
<p>
|
||
<a id="zimobis"></a>
|
||
Une autre approche utilisé, exemple: Zimo utilise une page registre qui
|
||
sera effacée ensuite.
|
||
Par exemple, pour écrire 21 dans CV614 avec une de celles-ci vous devez:
|
||
<ul>
|
||
<li>Écrire 260 =(614/100)*10+200 dans CV 7 pour la partie haute de l'adresse
|
||
Le"200" est un indicateur pour utiliser ce mode.
|
||
<li>Écrire 21 dans CV 14 (614 mod 100) pour écrire dans le CV actuel
|
||
<li>Écrire 0 dans CV7 pour réinitialiser l'indexage.
|
||
</ul>
|
||
Cet élément "capability" fera ceci wi:
|
||
<code>
|
||
<capability>
|
||
<name>High Access via Partial Index with Reset</name>
|
||
<parameter name="CV Adresse Max ">100</parameter>
|
||
<parameter name="CV Adresse Haute">7</parameter>
|
||
<parameter name="Multiplicateur Adresse Haute">10</parameter>
|
||
<parameter name="Modulo">100</parameter>
|
||
<parameter name="Indicateur">200</parameter>
|
||
</capability>
|
||
</code>
|
||
<p>
|
||
Les paramètres doivent apparaître dans l'ordre montré. Ils signifient:
|
||
<ul>
|
||
<li>"CV Adresse Max" -Les adresses CV égale ou inférieure n'utilisent
|
||
pas ce mécanisme. ( Le mécanisme ne sera pas utilisée si la centrale de commande
|
||
peut directement lire/écrire le CV demandé, mais même si elle ne peut pas, ce
|
||
mécanisme ne sera pas utilisé en dessous de cette valeur )
|
||
<li>"CV Adresse Haute" - La partie haute (voir Modulo) de l'adresse CV est
|
||
écrite ici au début de l'opération
|
||
<li>"Multiplicateur Adresse Haute" - Ceci multiplie la partie haute de l'adresse CV
|
||
avant quelle soit stockée dans le cv Adresse Haute. Par exemple,
|
||
mettre un 10 ici stockera la partie haute de l'adresse le "10ieme digit" de
|
||
l'Adresse Haute du CV.
|
||
<li>"Modulo" - valeur utilisée pour partager l'adresse réelle des CVs entre l'adresse haute et basse.
|
||
CVs.
|
||
<li>"Indicateur" - valeur ajoutée à la valeur stockée dans le CV Adresse Haute
|
||
pour dire au décodeur d'utiliser ce mode.
|
||
</ul>
|
||
|
||
<a id="accessoryops"></a>
|
||
<h4>Décodeur Accessoire Mode Ops( Exploitaion )</h4>
|
||
Les paquets spéciaux de programmation sont utilisés par certains décodeurs accessoires
|
||
pour configurer leur CVs depuis le signal DCC de la voie.
|
||
La <capability> à faire ceci est écrite:
|
||
<code>
|
||
<capability>
|
||
<name>Ops Mode Accessory Programming</name>
|
||
</capability>
|
||
</code>
|
||
Il n'y a pas de paramètres. Notez que ceci fonctionne seulement pour l'écriture en mode Ops;
|
||
ces paquets NMRA DCC particuliers ne remplissent pas les opérations de lecture, ils ne travaillent
|
||
pas en mode service (voie de programmation).
|
||
<h4>Accès CV Indexé</h4>
|
||
|
||
Pour accéder à des CV indexés, inclure cet élément de <capability>::
|
||
<code>
|
||
<capability>
|
||
<name>Indexed CV access</name>
|
||
<parameter name="PI">31</parameter>
|
||
<parameter name="SI">32</parameter>
|
||
<parameter name="cvFirst">false</parameter>
|
||
</capability>
|
||
</code>
|
||
Si cvFirst est true (vrai), le format est CV.PI ou CV.PI.SI comme utilisé par QSI.
|
||
S'il est false (faux), le format est PI.CV ou PI.SI.CV comme utilisé par ESU.
|
||
<p>
|
||
Si à la fois ceci et les capacités "accès à CV haut" sont présents, celui-ci devrait être énuméré en deuxième.
|
||
<p>
|
||
Pour un exemple de l'endroit où le positionner etc., voir le fichier
|
||
<a href="https://github.com/JMRI/JMRI/blob/master/xml/decoders/ESU_LokSoundV4_0.xml" target="_blank">
|
||
xml/decoders/ESU_LokSoundV4_0.xml</a>.
|
||
|
||
<a id="tcsaccess"></a>
|
||
<h4>Accès Décodeur TCS WOW</h4>
|
||
Les Décodeurs TCS WOW utilisent utiliser plusieurs méthodes uniques (pour le moins) d'accès aux CV..
|
||
JMRI les reçoit par l'intermédiaire d'un élément de capacité spéciale:
|
||
|
||
<code>
|
||
<capability>
|
||
<name>TCS 4 CV access</name>
|
||
</capability>
|
||
</code>
|
||
|
||
Ceci fournit deux formats personnalisés de CV:
|
||
<ul>
|
||
<li> T2CV.11.12 Écrit 11 dans le premier CV index (201), 12 dans le second CV index(202),
|
||
puis lit/écrit/confirme les opérations sur les CV 203 et 204
|
||
<li> T3CV.11.12.13 Écrit 11 ans le premier CV index (201), la donnée dans le second CV index (202),
|
||
puis écrit 12 dans le CV 203 et 13 dans le CV204.
|
||
</ul>
|
||
Par exemples sur comment l'utiliser, voir la définition décodeur TCS WOW .
|
||
|
||
<h4>Partage de Variables - "Adresses longues sur 2 CVs</h4>
|
||
|
||
<p>Quelques décodeurs, principalement des décodeurs accessoires, utilisent des adresses "longues" qui sont réparties sur 2 CVs, contigus ou non.</p>
|
||
<p>CV1 et CV9 sont standardisés par le NMRA pour les adresses primaires des décodeurs d'accessoires, voir <a href="http://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.2.2_decoder_cvs_2012.07.pdf">NMRA standard 9.2.2</a>.</p>
|
||
|
||
<p>Les adresses longues peuvent être accessible par le type "splitVal", comme dans les exemples suivants:</p>
|
||
|
||
<code>
|
||
<variable CV="1" item="Accessory Address" default="1" minOut="1">
|
||
<splitVal highCV="9" upperMask="XXXXXVVV"/>
|
||
<label>Accessory Address</label>
|
||
</variable>
|
||
</code>
|
||
|
||
<p>Le premier CV déclaré est le LSB (l'octet le moins significatif) tandis que dans le"CV HautV" se trouve le MSB (l'octet le plus significatif).</p>
|
||
|
||
<p>splitVal actuellement a deux paramètres, un "Factor" et un "Offset":</p>
|
||
<ul>
|
||
<li>Valeur à mettre dans les CVs = ((valeur dans le champ texte) - Offset)/Factor</li>
|
||
<li>Valeur à mettre dans le champ texte = ((valeur dans les CVs) * Factor) + Offset</li>
|
||
</ul>
|
||
<code>
|
||
<splitVal highCV="9" factor="4" offset="-3"/>
|
||
</code>
|
||
|
||
<p>Pour exemple, voir le fichier <a href="https://github.com/JMRI/JMRI/blob/master/xml/decoders/SPROG_DCC_Servo6." target="_blank">xml/decoders/SPROG_DCC_Servo6.xml</a> .</p>
|
||
|
||
<p>Pour les détails et les fonctionnalités avancées , voir cette page <a href="/JavaDoc/doc/jmri/jmrit/symbolicprog/SplitVariableValue.html" target="_blank">JavaDoc page</a></p>
|
||
|
||
|
||
<a name="conditional" id="conditional"></a>
|
||
<h3>Définitions Conditionnelles de Décodeur </h3>
|
||
|
||
Pour réduire le nombre de fichiers de définition décodeur nécessaires, chaque fichier peut contenir
|
||
les définitions pour de multiples modèles de décodeur.
|
||
JMRI fournit les moyens d'adaptation de la définition à des modèles spécifiques
|
||
à la fois quand le fichier est initialement développé pour une utilisation, et
|
||
plus tard tandis que le programme travaille sur la définition.
|
||
Il y a des utilisations particulières utilisant des fragment de fichiers communs
|
||
qui peuvent être inclus par de multiple fichiers de définition de décodeur (définition
|
||
différente-mais-familles similaires)
|
||
|
||
<a name="var_include" id="var_include"></a>
|
||
<h4>Inclure/Exclure lors de l'Expansion de la Variable</h4>
|
||
|
||
Un élément "variable" développé et utilisé peut être rendu conditionnel au décodeur type utilisant les attributs "include" et "exclude" dans les éléments <variables> et <variable>.
|
||
<p>
|
||
Une définition de variable ne peut pas être développée et utilisée:
|
||
</p>
|
||
<ul>
|
||
<li>Si un attribut "exclude" est présent, ni si l'ID
|
||
produit décodeurs, nom de modèle, nom de famille est trouvé dans la liste exclure.
|
||
<li>Si un attribut "include" est présent, au moins
|
||
l'une des ID produit décodeurs, le nom du modèle, ou le nom de famille se trouve dans la liste d'inclusion. </ Ul>
|
||
</ul>
|
||
Ces deux conditions doivent être vrai, et il est possible d'utiliser
|
||
à la fois inclure et exclure sur le même élément, mais il est plus habituel d'en
|
||
utiliser qu'un.
|
||
<p>
|
||
Exemple:
|
||
</p>
|
||
<pre>
|
||
<variable label="My Variable" CV="72" include="ModelA,400">
|
||
<decVal/>
|
||
</variable>
|
||
</pre>
|
||
|
||
<p>
|
||
La variable ci-dessus apparaît seulement lors du développement de la définition
|
||
pour le ModelA ou le product ID 400.
|
||
</p>
|
||
<p>
|
||
Vous pouvez aussi mettre des attributs inclure et exclure sur des choix individuels dans une variable de type
|
||
énumération. Ceci peut être utilisé par exemple pour inclure des options spécifiques d'éclairage dans
|
||
certaines familles de décodeur.
|
||
</p>
|
||
<p>
|
||
Les attributs sur un élément <variable> agissent sur tous les éléments <variable> en son sein,
|
||
ainsi que tous les attributs include ou exclude sur les variables individuelles.
|
||
</p>
|
||
|
||
<a name="pane_include" id="pane_include"></a>
|
||
<h4>Inclure/Exclure Pendant la Création d'un Volet</h4>
|
||
|
||
si un volet (ou partie d'un volet) est créé il peut être rendu conditionnel sur le type de décodeur en utilisant les attributs "include" et "exclude" sur le <pane> et les éléments <group>.
|
||
<p>
|
||
Un volet ne peut pas être créé
|
||
</p>
|
||
<ul>
|
||
<li>Si un attribut "exclude" est présent, ni si l'ID
|
||
produit décodeurs, nom de modèle, nom de famille est trouvé dans la liste exclure.
|
||
<li>Si un attribut "include" est présent, au moins
|
||
l'une des ID produit décodeurs, le nom du modèle, ou le nom de famille se trouve dans la liste d'inclusion.
|
||
</ul>
|
||
Ces deux conditions doivent être vrai, et il est possible d'utiliser
|
||
à la fois inclure et exclure sur le même élément, mais il est plus habituel d'en
|
||
utiliser qu'un.
|
||
<p>
|
||
Exemple:
|
||
</p>
|
||
<pre>
|
||
<pane label="My Pane" include="ModelA,400">
|
||
...
|
||
</pane>
|
||
</pre>
|
||
|
||
<p>
|
||
"My Pane" sera créé seulement lors du développement de la définition décodeur pour le
|
||
ModelA ou l'ID produit 400.
|
||
</p>
|
||
<p>
|
||
Vous pouvez aussi créer un élément <group> avec les attributs inclus et exclus.
|
||
Les éléments au sein du <group> seront créer seulement si les conditions <group> sont respectées.
|
||
Ceci peut être utilisé par exemple pour afficher des étiquettes texte spécifiques pour certains modèles de décodeurs.
|
||
</p>
|
||
<p>
|
||
Exemple:
|
||
|
||
<pre>
|
||
<group include="ModelA,400">
|
||
<label>
|
||
<text>Ces décodeurs sont très vieux.</text>
|
||
</label>
|
||
<label>
|
||
<text>Quelques fonctions sont indisponibles.</text>
|
||
</label>
|
||
</group>
|
||
</pre>
|
||
|
||
<p>
|
||
Le texte sera créer seulement lors du développement de la définition décodeur
|
||
pour le ModelA ou le produit ID 400.
|
||
</p>
|
||
|
||
<a name="qualify" id="qualify"></a>
|
||
<h4>Qualification de Temps d'exécution de Variables</h4>
|
||
<h5>Qualification des variables</h5>
|
||
|
||
Un éléments "qualifier" sur un élément variable pour permettre d'activer ou désactiver la variable dépendant des valeurs actuelles
|
||
d'une autre variable. Ceci peut être utile si, par exemple, le décodeur a un CV "mode" qui détermine la
|
||
signification des autres CVs.
|
||
<p>
|
||
Si une variable est qualifiée d'inactive, elle ne doit pas apparaître dans aucun
|
||
volet et ni lue ou écrite dans le décodeur quand vous faites les opérations
|
||
de lecture ou d'écriture "All" ou "Changes only". La valeur est sauvée dans l'inventaire et sera
|
||
rechargée quand l'entrée inventaire sera réouverte plus tard.
|
||
</p>
|
||
<p>Dans l'exemple suivant,
|
||
un CV est interprêté comme deux variables différentes selon
|
||
que le décodeur est réglé pour un adressage court ou long.
|
||
|
||
<pre>
|
||
<variable label="Variable for Short Address" CV="11">
|
||
<qualifier>
|
||
<variableref>Address Format</variableref>
|
||
<relation>eq</relation>
|
||
<value>0</value>
|
||
</qualifier>
|
||
<decVal/>
|
||
</variable>
|
||
<variable label="Variable for Long Address" CV="11">
|
||
<qualifier>
|
||
<variableref>Address Format</variableref>
|
||
<relation>eq</relation>
|
||
<value>1</value>
|
||
</qualifier>
|
||
<decVal/>
|
||
</variable>
|
||
</pre>
|
||
|
||
D'autres opérateurs disponibles incluent "gt", "ge", "ne", "lt", "le" and "exists".
|
||
L'opérateur "exists" vérifie si une variable est définie ou pas; une valeur "1"
|
||
signifie qu'elle l'est, et un "0" signifie qu'elle ne l'est pas.
|
||
|
||
<p>
|
||
Si de multiple élément "qualifier" sont présent, tout doit être vrai pour que la variable soit active et affichée.
|
||
</p>
|
||
|
||
<a name="panes" id="panes"></a>
|
||
<h5>Qualification des Volets </h5>
|
||
|
||
Un élément "qualifier" sur un élément volet vous permet d'activer ou de désactiver le volet dépendant de la valeur actuelle d'une variable.
|
||
|
||
<p>Si un volet est qualifié d'inactif, ses contenus ne seront plus affichés.
|
||
Ceci inclus tous les labels ou autres décorations sur le volet, en plus de toutes les
|
||
variables qu'il contient.
|
||
Dépendant d'autres options,le volet peut soit être montré vide ou pas montré
|
||
du tout. Pourtant, Les variables en son sein sont toujours actives, et un
|
||
"Lire toutes les feuilles" ou "Écrire toutes les feuilles" les écriront toujours.
|
||
Si vous avez des définitions de variables qui se chevauchent, examiner attentivement si cela est ce que vous voulez. Vous
|
||
pourriez avoir besoin de qualifier les variables qui se chevauchent individuellements.
|
||
|
||
<p>L'exemple suivant active
|
||
un des deux volets dépendant du décodeur selon qu'il est actuellement fixé à un adressage court ou à long .
|
||
</p>
|
||
<pre>
|
||
<pane name="Courte Seulement">
|
||
<qualifier>
|
||
<variableref>Address Format</variableref>
|
||
<relation>eq</relation>
|
||
<value>0</value>
|
||
</qualifier>
|
||
<column><row>
|
||
<label label="Volet Courte Seulement"/>
|
||
</row></column>
|
||
</pane>
|
||
<pane name="Longue Seulemnt">
|
||
<qualifier>
|
||
<variableref>Address Format</variableref>
|
||
<relation>eq</relation>
|
||
<value>1</value>
|
||
</qualifier>
|
||
<column><row>
|
||
<label label="Volet Longue Seulement"/>
|
||
</row></column>
|
||
</pane>
|
||
</pre>
|
||
|
||
Autre opérateur incluant disponible "gt", "ge", "ne", "lt" et "le".
|
||
<p>
|
||
Si de multiple éléments "qualifier" sont présent, tous doivent être vrais pour que
|
||
le volet soit actif et affiché.
|
||
|
||
<a name="labels" id="labels"></a>
|
||
<h5>Qualification des Éléments sur un Volet</h5>
|
||
|
||
Un élément "qualifier" sur un élément "label", "soundlabel", "row", "column", "grid" or "griditem"
|
||
vous permet d'activer ou désactiver l'affichage de cet élément sur un volet spécifique.
|
||
<p>L'exemple suivant affiche un message d'avertissement si une
|
||
variable version-number a une valeur trop faible:</p>
|
||
<pre>
|
||
<label label="Version number too low!">
|
||
<qualifier>
|
||
<variableref>Version Number</variableref>
|
||
<relation>lt</relation>
|
||
<value>3</value>
|
||
</qualifier>
|
||
</label>
|
||
</pre>
|
||
<p>
|
||
Vous pouvez utiliser le même "qualifier" pour de multiple éléments en enfermant les éléments dans
|
||
un élément "group" et en ajoutant le "qualifier" à l'élément "group":
|
||
</p>
|
||
<pre>
|
||
<group>
|
||
<qualifier>
|
||
<variableref>Version Number</variableref>
|
||
<relation>lt</relation>
|
||
<value>3</value>
|
||
</qualifier>
|
||
<label label="Version number too low!"/>
|
||
<label label=" "/>
|
||
<label label="Please update."/>
|
||
</group>
|
||
</pre>
|
||
<p>
|
||
Une fois que vous avez lu le "Version Number" (variable ou CV) depuis le décodeur
|
||
Le label s'affichera si ce version-number est trop faible. Notez
|
||
qu'initialement avant que les valeurs soient lues depuis le décodeur, cet
|
||
affichage dépendra de la valeur par défaut depuis le fichier qui pourrait induire en erreur l'utilisateur.
|
||
</p>
|
||
|
||
<!--#include virtual="/help/fr/parts/Footer_fr.shtml" -->
|
||
</div><!-- closes #mainContent-->
|
||
</div> <!-- close #mBody -->
|
||
<script src="/js/help.js"></script>
|
||
</body>
|
||
</html>
|
||
|
||
|
||
|
||
|