<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../XSLT/decoder.xsl"?>
<!-- Copyright (C) JMRI 2006 All rights reserved -->
<!--                                                                        -->
<!-- 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 xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" showEmptyPanes="no" xsi:noNamespaceSchemaLocation="http://jmri.org/xml/schema/decoder-4-15-2.xsd">
  <version version="1" author="Alain Le Marchand" lastUpdated="20140716"/>
  <version version="2" author="Alain Le Marchand" lastUpdated="20181227"/>
  <!-- 1 Creation (nearly) from scratch - very different from D&H decoders with firmware version 3+   -->
  <!-- 2 Light options is now a dropdown for bits 5 and 6, as bits are not independent from each other
         No reset on this model (confirmed by manufacturer) -->
  <version version="3" author="Pierre Billon" lastUpdated="20260805"/>
  <!-- 3 Added some translations   -->
  <version version="3.1" author="Ronald Kuhn" lastUpdated="20260911"/>
  <!-- 3.1 Decoder files renamed for sorted display   -->
  <decoder>
    <family name="Function Decoders (old)" mfg="Doehler und Haass">
      <model model="DHF250" lowVersionID="1" highVersionID="1" numOuts="2" numFns="9" productID="DHF250" comment="without cable" maxInputVolts="30V" maxTotalCurrent="1.0A" connector="other">
        <output name="1" label="Front Light" maxcurrent="1.0A"/>
        <output name="2" label="Rear Light" maxcurrent="1.0A"/>
        <size length="21.5" width="7.3" height="2.1" units="mm"/>
        <protocols>
          <protocol>dcc</protocol>
          <protocol>selectrix</protocol>
        </protocols>
      </model>
      <model model="DHF251" lowVersionID="1" highVersionID="1" numOuts="2" numFns="9" productID="DHF251" comment="with NEM651 cable" maxInputVolts="30V" maxTotalCurrent="1.0A" connector="NEM651">
        <output name="1" label="Front Light" maxcurrent="1.0A"/>
        <output name="2" label="Rear Light" maxcurrent="1.0A"/>
        <size length="21.5" width="7.3" height="2.1" units="mm"/>
        <protocols>
          <protocol>dcc</protocol>
          <protocol>selectrix</protocol>
        </protocols>
      </model>
      <model model="DHF253" lowVersionID="1" highVersionID="1" numOuts="2" numFns="9" productID="DHF253" comment="with 4 wires" maxInputVolts="30V" maxTotalCurrent="1.0A" connector="Wires/NEM651">
        <output name="1" label="Front Light" maxcurrent="1.0A"/>
        <output name="2" label="Rear Light" maxcurrent="1.0A"/>
        <size length="21.5" width="7.3" height="2.1" units="mm"/>
        <protocols>
          <protocol>dcc</protocol>
          <protocol>selectrix</protocol>
        </protocols>
      </model>
    </family>
    <programming direct="yes" paged="yes" register="yes" ops="yes"/>
    <variables>
	  <xi:include href="http://jmri.org/xml/decoders/nmra/shortAndLongAddress.xml"/>
	  <xi:include href="http://jmri.org/xml/decoders/nmra/accelDecel.xml"/>
	  <xi:include href="http://jmri.org/xml/decoders/nmra/mfgVersionId.xml"/>
	  <xi:include href="http://jmri.org/xml/decoders/nmra/cv29speedSteps.xml"/>
	  <xi:include href="http://jmri.org/xml/decoders/nmra/cv29direction.xml"/>
      <xi:include href="http://jmri.org/xml/decoders/nmra/cv29analog.xml"/>
	  <!-- Specific decoder CVs start here -->
      <variable CV="33" mask="XXXXVVVV" item="Function F0F options" default="0" tooltip="Functions F0 to F8 (F9 for SelecTRIX only)">
        <enumVal>
          <enumChoice choice="F0">
            <choice>F0</choice>
          </enumChoice>
          <enumChoice choice="F1">
            <choice>F1</choice>
          </enumChoice>
          <enumChoice choice="F2">
            <choice>F2</choice>
          </enumChoice>
          <enumChoice choice="F3">
            <choice>F3</choice>
          </enumChoice>
          <enumChoice choice="F4">
            <choice>F4</choice>
          </enumChoice>
          <enumChoice choice="F5">
            <choice>F5</choice>
          </enumChoice>
          <enumChoice choice="F6">
            <choice>F6</choice>
          </enumChoice>
          <enumChoice choice="F7">
            <choice>F7</choice>
          </enumChoice>
          <enumChoice choice="F8">
            <choice>F8</choice>
          </enumChoice>
          <enumChoice choice="F9">
            <choice>F9 (SX1 Horn)</choice>
          </enumChoice>
        </enumVal>
        <label>Output (white) function mapping</label>
        <label xml:lang="fr">Fonction pour la sortie (blanche)</label>
        <label xml:lang="it">Uscita (bianca) mappa funzioni</label>
        <label xml:lang="de">Ausgang (weiss) Funktionszuordnung</label>
        <label xml:lang="ca">Mapa de funcions (blanc)</label>
      </variable>
	  <variable CV="33" mask="XXXVXXXX" item="Function F0F check 1" default="0">
		    <xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
        <label>Running only</label>
        <label xml:lang="fr">En marche uniquement</label>
        <label xml:lang="de">Fahrtabhängig</label>
        <label xml:lang="it">Solo in marcia</label>
        <label xml:lang="ca">Només en marxa</label>
		    <tooltip>Output is ON only when the vehicle is running (speed different from 0)</tooltip>
		    <tooltip xml:lang="fr">La sortie est active uniquement lorsque le véhicule roule (vitesse différente de 0)</tooltip>
		    <tooltip xml:lang="it">Uscita in On solo se il veicolo è in marcia (velocità diversa da 0)</tooltip>
			<tooltip xml:lang="de">Der Ausgang ist nur an, wenn das Fahrzeug fährt (Fahrstufe nicht 0)</tooltip>
			<tooltip xml:lang="ca">La funció és encesa només quan el vehicle corre</tooltip>
	  </variable>
      <variable CV="33" mask="XVVXXXXX" item="Function F0F option 1" default="1">
        <enumVal>
          <enumChoice>
            <choice>Always On</choice>
            <choice xml:lang="fr">Toujours ON</choice>
            <choice xml:lang="de">Immer AN</choice>
            <choice xml:lang="it">Sempre attivo</choice>
            <choice xml:lang="ca">Sempre activa</choice>
          </enumChoice>
          <enumChoice>
            <choice>Forward only</choice>
            <choice xml:lang="fr">Seulement en avant</choice>
            <choice xml:lang="de">Nur vorwärts</choice>
            <choice xml:lang="it">Solo in avanti</choice>
            <choice xml:lang="ca">Només endavant</choice>
          </enumChoice>
          <enumChoice>
            <choice>Inverted</choice>
            <choice xml:lang="fr">Inversé</choice>
            <choice xml:lang="de">Invertiert</choice>
            <choice xml:lang="it">Invertita</choice>
            <choice xml:lang="ca">Invert</choice>
          </enumChoice>
          <enumChoice>
            <choice>Reverse only</choice>
            <choice xml:lang="fr">Seulement en arrière</choice>
            <choice xml:lang="de">Nur rückwärts</choice>
            <choice xml:lang="it">Solo in indietro</choice>
            <choice xml:lang="ca">Només invers</choice>
          </enumChoice>
        </enumVal>
        <label>Output (white) Direction</label>
        <label xml:lang="fr">Sens de marche de la sortie (blanche)</label>
        <label xml:lang="it">Uscita (bianca) direzione</label>
        <label xml:lang="de">Ausgang (weiss) Richtungsabhängig</label>
        <label xml:lang="ca">Sortida (blanc) Direcció</label>
		    <tooltip>&lt;html&gt;
                 Always On: Output is ON irrespective of the direction of travel&lt;br&gt;
                 Forward only: Output is ON only when the vehicle is running forwards&lt;br&gt;
                 Inverted: Output is ON when function is OFF, and vice-versa&lt;br&gt;
                 Reverse only: Output is ON only when the vehicle is running in reverse&lt;br&gt;
                 &lt;/html&gt;</tooltip>
		    <tooltip xml:lang="fr">&lt;html&gt;
                 Toujours ON : la sortie est active quel que soit le sens de marche&lt;br&gt;
                 Seulement en avant : la sortie est active uniquement en marche avant&lt;br&gt;
                 Inversé : la sortie est active lorsque la fonction est désactivée, et inversement&lt;br&gt;
                 Seulement en arrière : la sortie est active uniquement en marche arrière&lt;br&gt;
                 &lt;/html&gt;</tooltip>
		    <tooltip xml:lang="de">&lt;html&gt;
                 Immer AN:  Ausgang ist AN, unabhängig von der Fahrtrichtung&lt;br&gt;
                 Nur vorwärts: Ausgang ist nur AN, wenn die Fahrtrichtung vorwärts ist&lt;br&gt;
                 Invertiert: Ausgang ist AN, wenn die zugeordnete Funktion AUS ist, und vice versa&lt;br&gt;
                 Nur rückwärts: Ausgang ist nur AN, wenn die Fahrtrichtung rückwärts ist&lt;br&gt;
                 &lt;/html&gt;</tooltip>
		    <tooltip xml:lang="it">&lt;html&gt;
                 Sempre attivo: Uscita è ON indipendentemente dalla direzione di marcia&lt;br&gt;
                 Solo in avanti: Uscita in ON solo se il veicolo è in marcia in avanti&lt;br&gt;
                 Invertita: Uscita in ON quando la funzione è in OFF, e viceversa&lt;br&gt;
                 Solo in indietro: Uscita in ON solo se il veicolo è in marcia in indietro&lt;br&gt;
                 &lt;/html&gt;</tooltip>
		    <tooltip xml:lang="ca">&lt;html&gt;
                 Sempre activa: Sortida activa independentment de la direcció del viatge&lt;br&gt;
                 Només endavant: Sortida activa només si el vehicle està en marxa endavant&lt;br&gt;
                 Invert: Sortida activada quan la funció està apagada, i vice versa&lt;br&gt;
                 Només invers: Sortida activa només si el vehicle està en marxa invers&lt;br&gt;
                 &lt;/html&gt;</tooltip>
      </variable>
      <!--
	  <variable CV="33" mask="XXVXXXXX" item="Function F0F check 2" default="1">
		    <xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
		    <label>Forward only</label>
		    <label xml:lang="it">Solo in avanti</label>
			<label xml:lang="de">Richtungsabhängig (vorwärts)</label>
		    <label xml:lang="ca">Només endavant</label>
		    <tooltip>Output is ON only when the vehicle is running forwards</tooltip>
		    <tooltip xml:lang="it">Uscita in On solo se il veicolo è in marcia in avanti</tooltip>
			<tooltip xml:lang="de">Der Ausgang ist nur an, wenn die Fahrtrichtung vorwärts ist</tooltip>
      <tooltip xml:lang="ca">Sortida activa només si el vehicle està en marxa endavant</tooltip>
	  </variable>
	  <variable CV="33" mask="XVXXXXXX" item="Function F0F check 3" default="0">
		<xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
		    <label>Reverse</label>
        <label xml:lang="de">Invertiert</label>
        <label xml:lang="it">Invertita</label>
        <label xml:lang="ca">Invert</label>
		    <tooltip>Output is ON when the function is OFF (use for reverse)</tooltip>
		    <tooltip xml:lang="it">Uscita in On quando la funzione è in Off</tooltip>
        <tooltip xml:lang="de">Der Ausgang ist an, wenn die zugeordnete Funktion aus ist (benutzen für rückwärts)</tooltip>
        <tooltip xml:lang="ca">La sortida està activada quan la funció està apagada</tooltip>
	  </variable>
    -->
	  <variable CV="33" mask="VXXXXXXX" item="Function F0F check 4" default="0">
		    <xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
		    <label>Impulse</label>
		    <label xml:lang="fr">Impulsion</label>
        <label xml:lang="de">Impuls</label>
        <label xml:lang="it">Impulsiva</label>
        <label xml:lang="ca">Impuls</label>
		    <tooltip>Output is ON during ca. 0.5 sec</tooltip>
		    <tooltip xml:lang="fr">La sortie est active pendant env. 0,5 s</tooltip>
		    <tooltip xml:lang="it">Uscita in On per circa 0,5 sec</tooltip>
			<tooltip xml:lang="de">Abschaltung des Ausgangs nach ca. 0,5 Sekunden</tooltip>
			<tooltip xml:lang="ca">La sortida està activada 0,5 segons</tooltip>
	  </variable>
     <variable CV="34" mask="XXXXVVVV" item="Function F0R options" default="0" tooltip="Functions F0 to F8 (F9 for SelecTRIX only)">
        <enumVal>
          <enumChoice choice="F0">
            <choice>F0</choice>
          </enumChoice>
          <enumChoice choice="F1">
            <choice>F1</choice>
          </enumChoice>
          <enumChoice choice="F2">
            <choice>F2</choice>
          </enumChoice>
          <enumChoice choice="F3">
            <choice>F3</choice>
          </enumChoice>
          <enumChoice choice="F4">
            <choice>F4</choice>
          </enumChoice>
          <enumChoice choice="F5">
            <choice>F5</choice>
          </enumChoice>
          <enumChoice choice="F6">
            <choice>F6</choice>
          </enumChoice>
          <enumChoice choice="F7">
            <choice>F7</choice>
          </enumChoice>
          <enumChoice choice="F8">
            <choice>F8</choice>
          </enumChoice>
          <enumChoice choice="F9">
            <choice>F9 (SX1 Horn)</choice>
          </enumChoice>
        </enumVal>
        <label>Output (yellow) function mapping</label>
        <label xml:lang="fr">Fonction pour la sortie (jaune)</label>
        <label xml:lang="it">Uscita (giallo) mappa funzioni</label>
        <label xml:lang="de">Ausgang (gelb) Funktionszuordnung</label>
        <label xml:lang="ca">Mapa de funcions (groc)</label>
      </variable>
	  <variable CV="34" mask="XXXVXXXX" item="Function F0R check 1" default="0">
		    <xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
        <label>Running only</label>
        <label xml:lang="fr">En marche uniquement</label>
        <label xml:lang="it">Solo in marcia</label>
        <label xml:lang="de">Fahrtabhängig</label>
        <label xml:lang="ca">Només en marxa</label>
		    <tooltip>Output is ON only when the vehicle is running (speed different from 0)</tooltip>
		    <tooltip xml:lang="fr">La sortie est active uniquement lorsque le véhicule roule (vitesse différente de 0)</tooltip>
		    <tooltip xml:lang="it">Uscita in On solo se il veicolo è in marcia (velocità diversa da 0)</tooltip>
			<tooltip xml:lang="de">Der Ausgang ist nur an, wenn das Fahrzeug fährt (Fahrstufe nicht 0)</tooltip>
			<tooltip xml:lang="ca">La funció és on quan el vehicle es mou</tooltip>
	  </variable>
      <variable CV="34" mask="XVVXXXXX" item="Function F0R option 1" default="1">
        <enumVal>
          <enumChoice>
            <choice>Always On</choice>
            <choice xml:lang="fr">Toujours ON</choice>
            <choice xml:lang="de">Immer AN</choice>
            <choice xml:lang="it">Sempre attivo</choice>
            <choice xml:lang="ca">Sempre activa</choice>
          </enumChoice>
          <enumChoice>
            <choice>Forward only</choice>
            <choice xml:lang="fr">Seulement en avant</choice>
            <choice xml:lang="de">Nur vorwärts</choice>
            <choice xml:lang="it">Solo in avanti</choice>
            <choice xml:lang="ca">Només endavant</choice>
          </enumChoice>
          <enumChoice>
            <choice>Inverted</choice>
            <choice xml:lang="fr">Inversé</choice>
            <choice xml:lang="de">Invertiert</choice>
            <choice xml:lang="it">Invertita</choice>
            <choice xml:lang="ca">Invert</choice>
          </enumChoice>
          <enumChoice>
            <choice>Reverse only</choice>
            <choice xml:lang="fr">Seulement en arrière</choice>
            <choice xml:lang="de">Nur rückwärts</choice>
            <choice xml:lang="it">Solo in indietro</choice>
            <choice xml:lang="ca">Només invers</choice>
          </enumChoice>
        </enumVal>
        <label>Output (yellow) Direction</label>
        <label xml:lang="fr">Sens de marche de la sortie (jaune)</label>
        <label xml:lang="it">Uscita (giallo) direzione</label>
        <label xml:lang="de">Ausgang (gelb) Richtungsabhängig</label>
        <label xml:lang="ca">Sortida (groc) Direcció</label>
		    <tooltip>&lt;html&gt;
                 Always On: Output is ON irrespective of the direction of travel&lt;br&gt;
                 Forward only: Output is ON only when the vehicle is running forwards&lt;br&gt;
                 Inverted: Output is ON when function is OFF, and vice-versa&lt;br&gt;
                 Reverse only: Output is ON only when the vehicle is running in reverse&lt;br&gt;
                 &lt;/html&gt;</tooltip>
		    <tooltip xml:lang="fr">&lt;html&gt;
                 Toujours ON : la sortie est active quel que soit le sens de marche&lt;br&gt;
                 Seulement en avant : la sortie est active uniquement en marche avant&lt;br&gt;
                 Inversé : la sortie est active lorsque la fonction est désactivée, et inversement&lt;br&gt;
                 Seulement en arrière : la sortie est active uniquement en marche arrière&lt;br&gt;
                 &lt;/html&gt;</tooltip>
		    <tooltip xml:lang="de">&lt;html&gt;
                 Immer AN:  Ausgang ist AN, unabhängig von der Fahrtrichtung&lt;br&gt;
                 Nur vorwärts: Ausgang ist nur AN, wenn die Fahrtrichtung vorwärts ist&lt;br&gt;
                 Invertiert: Ausgang ist AN, wenn die zugeordnete Funktion AUS ist, und vice versa&lt;br&gt;
                 Nur rückwärts: Ausgang ist nur AN, wenn die Fahrtrichtung rückwärts ist&lt;br&gt;
                 &lt;/html&gt;</tooltip>
		    <tooltip xml:lang="it">&lt;html&gt;
                 Sempre attivo: Uscita è ON indipendentemente dalla direzione di marcia&lt;br&gt;
                 Solo in avanti: Uscita in ON solo se il veicolo è in marcia in avanti&lt;br&gt;
                 Invertita: Uscita in ON quando la funzione è in OFF, e viceversa&lt;br&gt;
                 Solo in indietro: Uscita in ON solo se il veicolo è in marcia in indietro&lt;br&gt;
                 &lt;/html&gt;</tooltip>
		    <tooltip xml:lang="ca">&lt;html&gt;
                 Sempre activa: Sortida activa independentment de la direcció del viatge&lt;br&gt;
                 Només endavant: Sortida activa només si el vehicle està en marxa endavant&lt;br&gt;
                 Invert: Sortida activada quan la funció està apagada, i vice versa&lt;br&gt;
                 Només invers: Sortida activa només si el vehicle està en marxa invers&lt;br&gt;
                 &lt;/html&gt;</tooltip>
      </variable>
    <!--
	  <variable CV="34" mask="XXVXXXXX" item="Function F0R check 2" default="1">
		    <xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
		    <label>Forward only</label>
		    <label xml:lang="it">Solo in avanti</label>
			<label xml:lang="de">Richtungsabhängig (vorwärts)</label>
			<label xml:lang="ca">Només endavant</label>
		    <tooltip>Output is ON only when the vehicle is running forwards</tooltip>
		    <tooltip xml:lang="it">Uscita in On solo se il veicolo è in marcia in avanti</tooltip>
		    <tooltip xml:lang="ca">La sortida està engegafda si el vehicle va endavant</tooltip>
            <tooltip xml:lang="de">Der Ausgang ist nur an, wenn die Fahrtrichtung vorwärts ist</tooltip>
	  </variable>
	  <variable CV="34" mask="XVXXXXXX" item="Function F0R check 3" default="1">
		    <xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
		    <label>Reverse</label>
		    <label xml:lang="it">Invertita</label>
			<label xml:lang="de">Invertiert</label>
			<label xml:lang="ca">Invertida</label>
		    <tooltip>Output is ON when the function is OFF (use for reverse)</tooltip>
		    <tooltip xml:lang="it">Uscita in On quando la funzione è in Off</tooltip>
		    <tooltip xml:lang="ca">La sortida està activada quan la funció està apagada</tooltip>
			<tooltip xml:lang="de">Der Ausgang ist an, wenn die zugeordnete Funktion aus ist (benutzen für rückwärts)</tooltip>
	  </variable>
    -->
	  <variable CV="34" mask="VXXXXXXX" item="Function F0R check 4" default="0">
		    <xi:include href="http://jmri.org/xml/decoders/parts/enum-NoYes.xml"/>
		    <label>Impulse</label>
		    <label xml:lang="fr">Impulsion</label>
		    <label xml:lang="it">Impulsiva</label>
			<label xml:lang="de">Impuls</label>
			<label xml:lang="ca">Impuls</label>
		    <tooltip>Output is ON during ca. 0.5 sec</tooltip>
		    <tooltip xml:lang="fr">La sortie est active pendant env. 0,5 s</tooltip>
		    <tooltip xml:lang="it">Uscita in On per circa 0,5 sec</tooltip>
			<tooltip xml:lang="de">Abschaltung des Ausgangs nach ca. 0,5 Sekunden</tooltip>
			<tooltip xml:lang="ca">La soprtida està activada durant 0,5 segons</tooltip>
	  </variable>
    </variables>
    <!--
    <resets>
      <factReset label="Reset All CVs" CV="8" default="8">
         <label xml:lang="it">Reset delle CV ai valori di fabbrica</label>
         <label xml:lang="ca">Reset de les CV a valors de fàbrica</label>
     </factReset>
    </resets>
    -->
  </decoder>
</decoder-config>
