Files
JIMRI/help/en/html/apps/DecoderPro/MoreInfo.shtml
T
2026-06-17 14:00:51 +02:00

127 lines
5.9 KiB
Plaintext

<!DOCTYPE html>
<html lang="en">
<head>
<meta name="generator" content="HTML Tidy for HTML5 for Apple macOS version 5.8.0">
<!-- Copyright Bob Jacobsen 2008 -->
<title>JMRI: DecoderPro - The Details</title><!--#include virtual="/help/en/parts/Style.shtml" -->
</head>
<body>
<!--#include virtual="/help/en/parts/Header.shtml" -->
<div id="mBody">
<!--#include virtual="Sidebar.shtml" -->
<div id="mainContent">
<h1>JMRI: DecoderPro User Guide</h1>
<h2>DecoderPro Details</h2>
<p>This page provides information on how DecoderPro (Symbolic Programmer) works.<br>
For details on the JMRI internals, please see the <a href=
"../../doc/Technical/IntroStructure.shtml">Technical Documentation pages</a>.</p>
<dl>
<dt class="left">Configuration Files</dt>
<dd class="first">
<p>There are three types of <a href="Files.shtml">Configuration Files</a>:</p>
<ul>
<li>Decoder configuration files - These carry the description of a specific type of
decoder, and control how the programmer displays the variable information.</li>
<li>Locomotive configuration files - These carry the specific information on a single
locomotive.</li>
<li>Programmer definitions - These define the formats for the various programming
sheets.</li>
</ul>
<p>The programmer can read either type of file. If you select a decoder file after
clicking Read File, the programmer will be set up with the variables, options, etc for
that type. The values will be blank, as the programmer doesn't know anything about what's
been programmed into a specific decoder unit.</p>
<p>If you select a locomotive file after clicking Read File, information on both the
decoder configuration and the specific settings in this locomotive will be displayed.
This shows you how the locomotive is already configured, allowing you to make small
changes with less chance of confusion.</p>
<p>You can also write locomotive files with the Write File button. This will store the
known contents of the decoder, allowing you to come back to it later.</p>
<p>The configuration files are stored in XML format. This is a standard form for
structured data. XML is being widely used to standardize the exchange of data between
different manufacturers in many fields; perhaps someday DCC decoder manufacturers will
provide an XML description of each decoder they make. In the meantime, the configuration
files are being created by volunteers. If one doesn't exist for a specific decoder you've
got, you can <a href="CreateDecoder.shtml">create your own</a>. You can also modify a
file if you'd prefer different names, a different grouping of options, or you just never
want to see that certain options that you don't use. A simple text editor can create
these files easily, as the format doesn't have fixed length fields, special characters,
etc. There are also powerful public-domain XML tools that make it really easy to manage a
large number of decoder files.</p>
</dd>
<dt class="left">Variables</dt>
<dd>
<p>A "variable" defines the value that will be loaded into all or part of a CV. For
example, a variable can be defined that sets the value of the three most-significant bits
of CV 47. If there are several options configured in a single CV, these would normally be
handled by separate variables. Currently, there are several types of variables:</p>
<ul>
<li>Decimal - numbers entered in the usual decimal notation. These are useful for short
address, starting voltages, etc.</li>
<li>Enum (enumerated) - choose from a set of options. These can be used for simple
on/off, yes/no choices, or more complicated sets like the FX lighting example above.
The configuration contains a name for each possibility.</li>
<li>Long address - like a decimal value, except the constraints on a valid long address
are taken into account.</li>
<li>Hex - This is not so much needed, since the multiple options in a single CV can be
handled by multiple variables. But if its needed for some reason, the capability is
present.</li>
<li>Speed table - not yet really working well, this type of variable is intended to
provide a graphic speed table chart that you can drag around to configure as you
wish.</li>
</ul>
</dd>
<dt class="left">Programmer communication: States</dt>
<dd>
<p>Communication with the Command Station/programmer, hence reading and writing of the
decoder, are only done when the "Read" or "Write" buttons are pressed. DecoderPro keeps
track of whether a value has been sent to the decoder using four States for variables or
CVs:</p>
<ul>
<li>Read - The value shown was read from the decoder.</li>
<li>Stored - The value shown has been written to the decoder.</li>
<li>Edited - The value shown has been changed in the computer, but not yet written to
the decoder. Push the Write button when you're happy with the value.</li>
<li>Unknown - A default value, or a read has failed, or for some other reason the
program has no confidence that the value is what you really want. Edit the value or
press the Write button.</li>
</ul>
</dd>
</dl>
<!--#include virtual="/help/en/parts/Footer.shtml" -->
</div>
<!-- close #mainContent -->
</div>
<!-- closes #mBody -->
<script src="/js/help.js"></script>
</body>
</html>