help/en/html/apps/DecoderPro/LocoFile.shtml

Summary

Maintainability
Test Coverage
<!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 User Guide - Locomotive Files</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>Locomotive Files</h2>

      <p>DecoderPro maintains the information for each roster entry in a separate file. You
      generally don't have to edit these, or even look at them. This page describes their content
      just in case you're interested.</p>

      <p>First, the XML contains some header information that describes the format & history of the
      file:</p>

      <p class="example">&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>
      &lt;!DOCTYPE locomotive-config SYSTEM "locomotive-config.dtd"&gt;<br>
      &lt;locomotive-config&gt;<br>
      &lt;!--Written by JMRI version 1.6.1 on Sat Oct 08 07:00:30 PDT 2005 $Id$--&gt;</p>
      This is followed by the summary information for the entry. Most of this comes from the
      "Roster Entry" pane in DecoderPro:
      <p class="example">&lt;locomotive id="UP 792" roadNumber="" roadName="" mfg="" model=""
      dccAddress="792" comment=""&gt;<br>
      &lt;decoder model="DH163" family="Series 3 with FX3, silent, readback" comment=""
      /&gt;<br></p>
      That's then followed by a section that contains values for all the variables defined in the
      decoder definition file. Note that these are numeric values; the decoder definition file are
      used to convert these to strings, etc, when this is read back in.
      <p class="example">&lt;values&gt;<br>
      &lt;decoderDef&gt;<br>
      &lt;varValue item="Primary Address" value="24" /&gt;<br>
      &lt;varValue item="Start Volts" value="0" /&gt;<br>
      &lt;varValue item="Acceleration Rate" value="0" /&gt;<br>
      &lt;varValue item="Deceleration Rate" value="0" /&gt;<br>
      &lt;varValue item="Max Volts" value="0" /&gt;<br>
      &lt;varValue item="Mid Volts" value="0" /&gt;<br>
      &lt;varValue item="Version ID" value="0" /&gt;<br></p>
      Finally, there's a similar section that contains numeric values for all the CVs. We store
      both variables and CVs so that if a decoder definition changes in the future, we can sort out
      what's actually in the decoder.
      <p class="example">&lt;CVvalue name="1" value="24" /&gt;<br>
      &lt;CVvalue name="2" value="0" /&gt;<br>
      &lt;CVvalue name="3" value="0" /&gt;<br>
      &lt;CVvalue name="4" value="0" /&gt;<br></p>
      <!--#include virtual="/help/en/parts/Footer.shtml" -->
    </div><!-- close #mainContent -->
  </div><!-- closes #mBody -->
  <script src="/js/help.js"></script>
</body>
</html>