Class DccConsist

java.lang.Object
jmri.implementation.DccConsist
All Implemented Interfaces:
EventListener, Consist, ProgListener
Direct Known Subclasses:
EasyDccConsist, LocoNetConsist, MqttConsist, NceConsist, NmraConsist, TmccConsist, XNetConsist

public class DccConsist extends Object implements Consist, ProgListener
This is the Default DCC consist. It utilizes the fact that IF a Command Station supports OpsMode Programming, you can write the consist information to CV19, so ANY Command Station that supports Ops Mode Programming can write this address to a Command Station that supports it.
  • Field Details

  • Constructor Details

  • Method Details

    • dispose

      public void dispose()
      Description copied from interface: Consist
      A method for cleaning up the consist
      Specified by:
      dispose in interface Consist
    • setConsistType

      public void setConsistType(int consist_type)
      Description copied from interface: Consist
      Set the Consist Type.
      Specified by:
      setConsistType in interface Consist
      Parameters:
      consist_type - the consist type
    • getConsistType

      public int getConsistType()
      Description copied from interface: Consist
      Get the Consist Type.
      Specified by:
      getConsistType in interface Consist
      Returns:
      the consist type
    • getConsistAddress

      Description copied from interface: Consist
      Get the Consist Address
      Specified by:
      getConsistAddress in interface Consist
      Returns:
      the consist address
    • isAddressAllowed

      public boolean isAddressAllowed(DccLocoAddress address)
      Is this address allowed? Since address 00 is an analog locomotive, we can't program CV19 to include it in a consist, but all other addresses are ok.
      Specified by:
      isAddressAllowed in interface Consist
      Parameters:
      address - the address
      Returns:
      true if allowed; false otherwise
    • sizeLimit

      public int sizeLimit()
      Is there a size limit for this consist? For Decoder Assisted Consists, returns -1 (no limit) return 0 for any other consist type.
      Specified by:
      sizeLimit in interface Consist
      Returns:
      -1 if no limit; 0 if the Consist Type is not supported; or the total number of usable spaces if the consist has a limit (do not subtract used spaces).
    • getConsistList

      Description copied from interface: Consist
      Get a list of the locomotives in the consist.
      Specified by:
      getConsistList in interface Consist
      Returns:
      the list of addresses
    • contains

      public boolean contains(DccLocoAddress address)
      Description copied from interface: Consist
      Does the consist contain the specified locomotive address?
      Specified by:
      contains in interface Consist
      Parameters:
      address - the address to check
      Returns:
      true if in consist; false otherwise
    • getLocoDirection

      public boolean getLocoDirection(DccLocoAddress address)
      Description copied from interface: Consist
      Get the relative direction setting for a specific locomotive in the consist.
      Specified by:
      getLocoDirection in interface Consist
      Parameters:
      address - the address to check
      Returns:
      true if locomotive is in consist in its normal direction of travel; false otherwise
    • add

      public void add(DccLocoAddress address, boolean directionNormal)
      Add a Locomotive to an Advanced Consist
      Specified by:
      add in interface Consist
      Parameters:
      address - is the Locomotive address to add to the locomotive
      directionNormal - is True if the locomotive is traveling the same direction as the consist, or false otherwise.
    • restore

      public void restore(DccLocoAddress address, boolean directionNormal)
      Restore a Locomotive to an Advanced Consist, but don't write to the command station. This is used for restoring the consist from a file or adding a consist read from the command station.
      Specified by:
      restore in interface Consist
      Parameters:
      address - is the Locomotive address to add to the locomotive
      directionNormal - is True if the locomotive is traveling the same direction as the consist, or false otherwise.
    • remove

      public void remove(DccLocoAddress address)
      Remove a Locomotive from this Consist.
      Specified by:
      remove in interface Consist
      Parameters:
      address - is the Locomotive address to add to the locomotive
    • addToAdvancedConsist

      protected void addToAdvancedConsist(DccLocoAddress address, boolean directionNormal)
      Add a Locomotive to an Advanced Consist.
      Parameters:
      address - is the Locomotive address to add to the locomotive
      directionNormal - is True if the locomotive is traveling the same direction as the consist, or false otherwise.
    • removeFromAdvancedConsist

      protected void removeFromAdvancedConsist(DccLocoAddress address)
      Remove a Locomotive from an Advanced Consist
      Parameters:
      address - is the Locomotive address to remove from the consist
    • setPosition

      public void setPosition(DccLocoAddress address, int position)
      Set the position of a locomotive within the consist.
      Specified by:
      setPosition in interface Consist
      Parameters:
      address - is the Locomotive address
      position - is a constant representing the position within the consist.
    • getPosition

      public int getPosition(DccLocoAddress address)
      Get the position of a locomotive within the consist.
      Specified by:
      getPosition in interface Consist
      Parameters:
      address - is the Locomotive address of interest
      Returns:
      integer equal to jmri.Consist.POSITION_LEAD for the designated lead locomotive. equal to jmri.Consist.POSITION_TRAIL for the designated trailing locomotive. between 1 and 254 for other locomotives in the consist
    • setRosterId

      public void setRosterId(DccLocoAddress address, String rosterId)
      Set the roster entry of a locomotive within the consist.
      Specified by:
      setRosterId in interface Consist
      Parameters:
      address - is the Locomotive address
      rosterId - is the roster Identifier of the associated roster entry.
    • getRosterId

      public String getRosterId(DccLocoAddress address)
      Get the rosterId of a locomotive within the consist
      Specified by:
      getRosterId in interface Consist
      Parameters:
      address - is the Locomotive address of interest
      Returns:
      string roster Identifier associated with the given address in the consist. Returns null if no roster entry is associated with this entry.
    • setRosterEntryCVValue

      protected void setRosterEntryCVValue(DccLocoAddress address)
      Update the value in the roster entry for CV19 for the specified address
      Parameters:
      address - is the Locomotive address we are updating.
    • resetRosterEntryCVValue

      protected void resetRosterEntryCVValue(DccLocoAddress address)
      Set the value in the roster entry's value for for CV19 to 0
      Parameters:
      address - is the Locomotive address we are updating.
    • updateRosterCV

      protected void updateRosterCV(DccLocoAddress address, Boolean direction, int value)
      If allowed by the preferences, Update the CV19 value in the specified address's roster entry, if the roster entry is known.
      Parameters:
      address - is the Locomotive address we are updating.
      direction - the direction to set.
      value - the numeric value of the consist address.
    • loadDecoderFromLoco

      protected void loadDecoderFromLoco(RosterEntry r, VariableTableModel varTable)
    • loadDecoderFile

      protected void loadDecoderFile(DecoderFile df, RosterEntry re, VariableTableModel variableModel)
    • addConsistListener

      public void addConsistListener(ConsistListener listener)
      Add a Listener for consist events.
      Specified by:
      addConsistListener in interface Consist
      Parameters:
      listener - is a consistListener object
    • removeConsistListener

      public void removeConsistListener(ConsistListener listener)
      Remove a Listener for consist events
      Specified by:
      removeConsistListener in interface Consist
      Parameters:
      listener - is a consistListener object
    • setConsistID

      public void setConsistID(String id)
      Set the text ID associated with the consist.
      Specified by:
      setConsistID in interface Consist
      Parameters:
      id - is a string identifier for the consist.
    • getConsistID

      public String getConsistID()
      Get the text ID associated with the consist.
      Specified by:
      getConsistID in interface Consist
      Returns:
      String identifier for the consist. Default value is the string Identifier for the consist address.
    • reverse

      public void reverse()
      Reverse the order of locomotives in the consist and flip the direction bits of each locomotive.
      Specified by:
      reverse in interface Consist
    • restore

      public void restore()
      Restore the consist to the command station.
      Specified by:
      restore in interface Consist
    • notifyConsistListeners

      protected void notifyConsistListeners(DccLocoAddress locoAddress, int errorCode)
      Notify all listener objects of a status change.
      Parameters:
      locoAddress - is the address of any specific locomotive the status refers to.
      errorCode - is the status code to send to the consistListener objects
    • programmingOpReply

      public void programmingOpReply(int value, int status)
      Description copied from interface: ProgListener
      Receive a callback at the end of a programming operation.
      Specified by:
      programmingOpReply in interface ProgListener
      Parameters:
      value - Value from a read operation, or value written on a write
      status - Denotes the completion code. Note that this is a bitwise combination of the various status coded defined in this interface.