<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="../XSLT/decoder.xsl"?>
<!DOCTYPE decoder-config SYSTEM "../DTD/decoder-config.dtd">

<!-- Copyright (C) JMRI 2003, 2005, 2007 All rights reserved -->
<!-- $Id: Digitrax_CS.xml,v 1.18 2008/04/27 00:41:36 jacobsen Exp $ -->
<!--                                                                        -->
<!-- JMRI is free software; you can redistribute it and/or modify it under  -->
<!-- the terms of version 2 of the GNU General Public License as published  -->
<!-- by the Free Software Foundation. See the "COPYING" file for a copy     -->
<!-- of this license.                                                       -->
<!--                                                                        -->
<!-- JMRI is distributed in the hope that it will be useful, but WITHOUT    -->
<!-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or  -->
<!-- FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License  -->
<!-- for more details.                                                      -->

<decoder-config>
		<version author="Michael Mosher mjmx@comcast.net" 
					version="8" lastUpdated="20050112"/>
		<version author="Walter Thompson wsthompson@earthlink.net" 
					version="10" lastUpdated="20080412"/>
					
		<!-- made from 150 file (Basic FX) -->
		<!-- version 3 added BEMF, transponding control, short address -->
		<!--   side effects -->
		<!-- version 4 adjusts versionID range -->
		<!-- version 5 correct BEMF defaults -->
		<!-- version 6 - add consist direction - jake -->
		<!-- version 7 - fixed numOuts & numFns numbers and add cv29 defaults -->
        <!-- Version 7.1 - changed spelling of "behavior" (Jack Shall) -->
        <!-- Version 8 - fixed mask for "Vstart/Vmid/Vfull in 128 step mode" - Bob Jacobsen -->
        <!-- Version 9 - fixed labels for Enable/Disable "Vstart/Vmid/Vfull in 128 step mode" - Paul Bender -->
        <!-- Version 10 - added factory reset -->
        
<decoder>
	<family name="Basic CS" mfg="Digitrax" lowVersionID="225" highVersionID="239">
		<model model="DZ121" numOuts="2" numFns="0"/>
		<model model="DN122K2" numOuts="2" numFns="0"/>
	</family>

	<programming direct="no" paged="yes" 
	                     register="yes" ops="yes"></programming>

	<variables>
		<variable label="Primary Address" CV="1" comment="Short address"
						item="Short Address"  default="03">
			<shortAddressVal>
				<shortAddressChanges cv="55" />
				<shortAddressChanges cv="56" />
				<shortAddressChanges cv="57" />
			</shortAddressVal></variable>
		<variable label="Start Volts" CV="2" item="Vstart"
						comment="A value of 255 corresponds to 100%">
			<decVal></decVal>
			</variable>
		<variable label="Acceleration Rate" CV="3" item="Accel">
			<decVal max="31"/>
			</variable>
		<variable label="Deceleration Rate" CV="4" item="Decel">
			<decVal max="31"/>
			</variable>
		<variable label="Max Volts" CV="5" item="Vhigh">
			<decVal/>
			</variable>
		<variable label="Mid Volts" CV="6" item="Vmid">
			<decVal/>
			</variable>
		<variable label="Version ID" CV="7" readOnly="yes" item="Decoder Version">
				<decVal/>
			</variable>
		<variable label="Manufacturer" CV="8" readOnly="yes">
				<decVal/>
			</variable>
		<variable label="F1 during DC operation" CV="13" mask="XXXXXXXV"
						 minFn="1" item="Analog Mode Function Status - F1">
			<enumVal>
				<enumChoice choice="Off"/>
				<enumChoice choice="On"/>
				</enumVal>
			</variable>
		<variable label="F2 during DC operation" CV="13" mask="XXXXXXVX"
						 minFn="2" item="Analog Mode Function Status - F2">
			<enumVal>
				<enumChoice choice="Off"/>
				<enumChoice choice="On"/>
				</enumVal>
			</variable>
		<variable label="F3 during DC operation" CV="13" mask="XXXXXVXX"
						 minFn="3" item="Analog Mode Function Status - F3">
			<enumVal>
				<enumChoice choice="Off"/>
				<enumChoice choice="On"/>
				</enumVal>
			</variable>
		<variable label="F4 during DC operation" CV="13" mask="XXXXVXXX"
						 minFn="4" item="Analog Mode Function Status - F4">
			<enumVal>
				<enumChoice choice="Off"/>
				<enumChoice choice="On"/>
				</enumVal>
			</variable>
		<variable label="F5 during DC operation" CV="13" mask="XXXVXXXX"
						 minFn="5" item="Analog Mode Function Status - F5">
			<enumVal>
				<enumChoice choice="Off"/>
				<enumChoice choice="On"/>
				</enumVal>
			</variable>
		<variable label="F6 during DC operation" CV="13" mask="XXVXXXXX"
						 minFn="6" item="Analog Mode Function Status - F6">
			<enumVal>
				<enumChoice choice="Off"/>
				<enumChoice choice="On"/>
				</enumVal>
			</variable>
		<variable label="F0 Forward during DC operation" CV="13" mask="XVXXXXXX"
						item="Analog Mode Function Status - FL(f)">
			<enumVal>
				<enumChoice choice="Off"/>
				<enumChoice choice="On"/>
				</enumVal>
			</variable>
		<variable label="F0 Reverse during DC operation" CV="13" mask="VXXXXXXX"
						item="Analog Mode Function Status - FL(r)">
			<enumVal>
				<enumChoice choice="Off"/>
				<enumChoice choice="On"/>
				</enumVal>
			</variable>
		<variable label="Long Address" CV="17" item="Extended Address">
			<longAddressVal/>
			</variable>
			
		<variable label="Consist Address" CV="19" mask="XVVVVVVV" item="Consist Address">
			<decVal/></variable>
		
		<variable label="Consist Direction" CV="19" mask="VXXXXXXX">
			<enumVal>
				<enumChoice choice="Normal"></enumChoice>
				<enumChoice choice="Reversed"></enumChoice>
				</enumVal></variable>

		<variable label="Normal direction of motion" CV="29" mask="XXXXXXXV" item="Locomotive Direction">
			<enumVal>
				<enumChoice choice="forward"/>
				<enumChoice choice="reverse"/>
				</enumVal>
			</variable>
		<variable label="Speed steps" CV="29" mask="XXXXXXVX"
					item="Speed Step Mode" default="1" >
			<enumVal>
				<enumChoice choice="14"/>
				<enumChoice choice="28/128"/>
				</enumVal>
			</variable>
		<variable label="Analog conversion mode" CV="29" mask="XXXXXVXX" 
					item="Analog (DC) Operation" default="1" >
			<enumVal>
				<enumChoice choice="Off"/>
				<enumChoice choice="On"/>
				</enumVal>
			</variable>
		<variable label="Use Speed Table" CV="29" mask="XXXVXXXX"
					item="Speed Table Definition">
			<enumVal>
				<enumChoice choice="Use Vstart, Vmid, Vhigh"/>
				<enumChoice choice="Use Table"/>
				</enumVal>
			</variable>
		<variable label="Addressing Mode" CV="29" mask="XXVXXXXX"
					item="Address Format">
			<enumVal>
				<enumChoice choice="2 digit addressing"/>
				<enumChoice choice="4 digit addressing"/>
				</enumVal>
			</variable>
		<variable label="Function F0F effect generated" CV="49" mask="XXXXVVVV">
			<enumVal>
				<enumChoice choice="Normal function of lead"/>
				<enumChoice choice="Blink"/>
				<enumChoice choice="Mars light"/>
				<enumChoice choice="Blinking headlight"/>
				<enumChoice choice="Single pulse strobe"/>
				<enumChoice choice="Double pulse strobe"/>
				<enumChoice choice="Rotary beacon simulation"/>
				<enumChoice choice="Reserved (0x07)"/>
				</enumVal>
			</variable>
		<variable label="Function F0F behavior" CV="49" mask="VVVVXXXX">
			<enumVal>
				<enumChoice choice="Forward direction"/>
				<enumChoice choice="Reverse direction"/>
				<enumChoice choice="Non directional"/>
				</enumVal>
			</variable>
		<variable label="Function F0R effect generated" CV="50" mask="XXXXXVVV">
			<enumVal>
				<enumChoice choice="Normal function of lead"/>
				<enumChoice choice="Blink"/>
				<enumChoice choice="Mars light"/>
				<enumChoice choice="Blinking headlight"/>
				<enumChoice choice="Single pulse strobe"/>
				<enumChoice choice="Double pulse strobe"/>
				<enumChoice choice="Rotary beacon simulation"/>
				<enumChoice choice="Reserved (0x07)"/>
				</enumVal>
			</variable>
		<variable label="Function F0R behavior" CV="50" mask="VVVVXXXX">
			<enumVal>
				<enumChoice choice="Forward direction"/>
				<enumChoice choice="Reverse direction"/>
				<enumChoice choice="Non directional"/>
				</enumVal>
			</variable>

		<variable label="Static compensation for speed stabilization" CV="55" default="128"
				item="EMF Static Config"
				comment="Factory default is 128, no effect until droop (CV57) set">
			<decVal/>
			</variable>
		<variable label="Dynamic compensation for speed stabilization" CV="56" default="48"
				item="EMF Dynamic Config"
				comment="Factory default is 48, no effect until droop (CV57) set">
			<decVal/>
			</variable>
		<variable label="Solo operation droop compensation for speed stabilization" 
						CV="57" mask="XXXXVVVV" default="6"
				item="EMF Droop Config"
				comment="0 is compenstation off, 15 is full on, typical value is 5">
			<decVal max="15"/>
			</variable>
		<variable label="Advanced consist droop compensation for speed stabilization" 
						CV="57" mask="VVVVXXXX" default="0"
				comment="0 is compenstation off, 15 is full on, typical value is 5">
			<decVal max="15"/>
			</variable>
		<variable label="Speed Compensation Control" CV="61" mask="XXXVXXXX">
			<enumVal>
				<enumChoice choice="F5 has no effect on speed compensation"/>
				<enumChoice choice="F5 On disables speed compensation"/>
				</enumVal>
			</variable>
		<variable label="Digitrax Transponding" CV="61" mask="XXXXXXVX"
			item="Advanced Ack">
			<enumVal>
				<enumChoice choice="Off"/>
				<enumChoice choice="On"/>
				</enumVal></variable>
				
		<variable label="Directional Headlights" CV="61" mask="XXXXXXXV">
			<enumVal>
				<enumChoice choice="Normal headlight operation"/>
				<enumChoice choice="Enable configurable strobes"/>
				</enumVal>
			</variable>
		<variable label="Vstart/Vmid/Vfull in 128 step mode" CV="61" mask="XXVXXXXX">
			<enumVal>
				<enumChoice choice="Enabled"/>
				<enumChoice choice="Disabled"/>
				</enumVal>
			</variable>
		<variable label="Short-circuit protection" CV="61" mask="XVXXXXXX"
				comment="Undocumented feature, occasionally requested by Digitrax tech support">
			<enumVal>
				<enumChoice choice="Enabled"/>
				<enumChoice choice="Disabled"/>
				</enumVal>
			</variable>
		<variable label="Lamp keep-alive voltage" CV="62" mask="VVVVXXXX"
				item="Global lighting option 1"
				comment="0 is no keep-alive, use with LEDs">
				<decVal max="15"/>
			</variable>
		<variable label="FX rate adjust" CV="62" mask="XXXXVVVV"
				item="Global lighting option 2"
				comment="0 is fast, 15 is slow, 4 is recommended for start">
				<decVal max="15"/>
			</variable>
		<variable label="Ditch light hold-over time" CV="63"
				item="Global lighting option 3"
				comment="0 is none, 40 is realistic 5 seconds, 255 is about 20 seconds">
				<decVal/>
			</variable>
		<variable label="Kick Start" CV="65">
			<decVal/>
			</variable>
		<variable label="Forward Trim" CV="66">
			<decVal/>
			</variable>
		<variable label="Reverse Trim" CV="95">
			<decVal/>
			</variable>
		<variable label="User Private ID #1" CV="105"
					item="User Id #1">
			<decVal/>
			</variable>
		<variable label="User Private ID #2" CV="106"
					item="User Id #2">
			<decVal/>
			</variable>
		<variable label="Speed Table" CV="67">
			<speedTableVal/>
			</variable>

	<!-- Define the fixed Function-Output mapping -->
	<constant label="FL(f) controls output 1" minOut="1" default="1" /> 
	<constant label="FL(r) controls output 2" minOut="2" default="1" /> 
	<constant label="F1 controls output 3" minOut="3" minFn="1" default="1" /> 
	<constant label="F2 controls output 4" minOut="4" minFn="2" default="1" /> 
	<constant label="F3 controls output 5" minOut="5" minFn="3" default="1" /> 
	<constant label="F4 controls output 6" minOut="6" minFn="4" default="1" /> 
	<constant label="F5 controls output 7" minOut="7" minFn="5" default="1" /> 
	<constant label="F6 controls output 8" minOut="8" minFn="6" default="1" /> 
	<constant label="F7 controls output 9" minOut="9" minFn="7" default="1" /> 
	<constant label="F8 controls output 10" minOut="10" minFn="8" default="1" /> 

	</variables>

  <resets>
  	<factReset label="Reset All CVs" CV="8" default="8"/>
  	<factReset label="Reset All CVs except speed table" CV="8" default="9"/>
  </resets>

	
</decoder>

<pane name="Digitrax">
	<column>
		<display item="Vstart/Vmid/Vfull in 128 step mode" />
		<display item="Short-circuit protection" />
                <display item="Speed Compensation Control" />
	</column>
</pane>

</decoder-config>
