Package jmri.implementation
Class DccConsist
java.lang.Object
jmri.implementation.DccConsist
- All Implemented Interfaces:
EventListener,Consist,ProgListener
- Direct Known Subclasses:
EasyDccConsist,LocoNetConsist,MqttConsist,NceConsist,NmraConsist,TmccConsist,XNetConsist
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 Summary
FieldsModifier and TypeFieldDescriptionprotected DccLocoAddressprotected HashMap<DccLocoAddress,Boolean> protected Stringprotected ArrayList<DccLocoAddress>protected HashMap<DccLocoAddress,Integer> protected HashMap<DccLocoAddress,String> protected intFields inherited from interface jmri.Consist
ADVANCED_CONSIST, CS_CONSIST, POSITION_LEAD, POSITION_TRAILFields inherited from interface jmri.ProgListener
CommError, ConfirmFailed, FailedTimeout, NoAck, NoLocoDetected, NotImplemented, OK, ProgrammerBusy, ProgrammingShort, SequenceError, UnknownError, UserAborted -
Constructor Summary
ConstructorsConstructorDescriptionDccConsist(int address) DccConsist(DccLocoAddress address) DccConsist(DccLocoAddress address, AddressedProgrammerManager apm) -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(DccLocoAddress address, boolean directionNormal) Add a Locomotive to an Advanced ConsistvoidaddConsistListener(ConsistListener listener) Add a Listener for consist events.protected voidaddToAdvancedConsist(DccLocoAddress address, boolean directionNormal) Add a Locomotive to an Advanced Consist.booleancontains(DccLocoAddress address) Does the consist contain the specified locomotive address?voiddispose()A method for cleaning up the consistGet the Consist AddressGet the text ID associated with the consist.Get a list of the locomotives in the consist.intGet the Consist Type.booleangetLocoDirection(DccLocoAddress address) Get the relative direction setting for a specific locomotive in the consist.intgetPosition(DccLocoAddress address) Get the position of a locomotive within the consist.getRosterId(DccLocoAddress address) Get the rosterId of a locomotive within the consistbooleanisAddressAllowed(DccLocoAddress address) Is this address allowed?protected voidloadDecoderFile(DecoderFile df, RosterEntry re, VariableTableModel variableModel) protected voidloadDecoderFromLoco(RosterEntry r, VariableTableModel varTable) protected voidnotifyConsistListeners(DccLocoAddress locoAddress, int errorCode) Notify all listener objects of a status change.voidprogrammingOpReply(int value, int status) Receive a callback at the end of a programming operation.voidremove(DccLocoAddress address) Remove a Locomotive from this Consist.voidremoveConsistListener(ConsistListener listener) Remove a Listener for consist eventsprotected voidremoveFromAdvancedConsist(DccLocoAddress address) Remove a Locomotive from an Advanced Consistprotected voidresetRosterEntryCVValue(DccLocoAddress address) Set the value in the roster entry's value for for CV19 to 0voidrestore()Restore the consist to the command station.voidrestore(DccLocoAddress address, boolean directionNormal) Restore a Locomotive to an Advanced Consist, but don't write to the command station.voidreverse()Reverse the order of locomotives in the consist and flip the direction bits of each locomotive.voidsetConsistID(String id) Set the text ID associated with the consist.voidsetConsistType(int consist_type) Set the Consist Type.voidsetPosition(DccLocoAddress address, int position) Set the position of a locomotive within the consist.protected voidsetRosterEntryCVValue(DccLocoAddress address) Update the value in the roster entry for CV19 for the specified addressvoidsetRosterId(DccLocoAddress address, String rosterId) Set the roster entry of a locomotive within the consist.intIs there a size limit for this consist?protected voidupdateRosterCV(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.
-
Field Details
-
consistList
-
consistDir
-
consistPosition
-
consistRoster
-
consistType
-
consistAddress
-
consistID
-
-
Constructor Details
-
DccConsist
-
DccConsist
-
DccConsist
-
-
Method Details
-
dispose
Description copied from interface:ConsistA method for cleaning up the consist -
setConsistType
Description copied from interface:ConsistSet the Consist Type.- Specified by:
setConsistTypein interfaceConsist- Parameters:
consist_type- the consist type
-
getConsistType
Description copied from interface:ConsistGet the Consist Type.- Specified by:
getConsistTypein interfaceConsist- Returns:
- the consist type
-
getConsistAddress
Description copied from interface:ConsistGet the Consist Address- Specified by:
getConsistAddressin interfaceConsist- Returns:
- the consist address
-
isAddressAllowed
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:
isAddressAllowedin interfaceConsist- Parameters:
address- the address- Returns:
- true if allowed; false otherwise
-
sizeLimit
Is there a size limit for this consist? For Decoder Assisted Consists, returns -1 (no limit) return 0 for any other consist type. -
getConsistList
Description copied from interface:ConsistGet a list of the locomotives in the consist.- Specified by:
getConsistListin interfaceConsist- Returns:
- the list of addresses
-
contains
Description copied from interface:ConsistDoes the consist contain the specified locomotive address? -
getLocoDirection
Description copied from interface:ConsistGet the relative direction setting for a specific locomotive in the consist.- Specified by:
getLocoDirectionin interfaceConsist- Parameters:
address- the address to check- Returns:
- true if locomotive is in consist in its normal direction of travel; false otherwise
-
add
Add a Locomotive to an Advanced Consist -
restore
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. -
remove
Remove a Locomotive from this Consist. -
addToAdvancedConsist
Add a Locomotive to an Advanced Consist.- Parameters:
address- is the Locomotive address to add to the locomotivedirectionNormal- is True if the locomotive is traveling the same direction as the consist, or false otherwise.
-
removeFromAdvancedConsist
Remove a Locomotive from an Advanced Consist- Parameters:
address- is the Locomotive address to remove from the consist
-
setPosition
Set the position of a locomotive within the consist.- Specified by:
setPositionin interfaceConsist- Parameters:
address- is the Locomotive addressposition- is a constant representing the position within the consist.
-
getPosition
Get the position of a locomotive within the consist.- Specified by:
getPositionin interfaceConsist- 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
Set the roster entry of a locomotive within the consist.- Specified by:
setRosterIdin interfaceConsist- Parameters:
address- is the Locomotive addressrosterId- is the roster Identifier of the associated roster entry.
-
getRosterId
Get the rosterId of a locomotive within the consist- Specified by:
getRosterIdin interfaceConsist- 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
Update the value in the roster entry for CV19 for the specified address- Parameters:
address- is the Locomotive address we are updating.
-
resetRosterEntryCVValue
Set the value in the roster entry's value for for CV19 to 0- Parameters:
address- is the Locomotive address we are updating.
-
updateRosterCV
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
-
loadDecoderFile
-
addConsistListener
Add a Listener for consist events.- Specified by:
addConsistListenerin interfaceConsist- Parameters:
listener- is a consistListener object
-
removeConsistListener
Remove a Listener for consist events- Specified by:
removeConsistListenerin interfaceConsist- Parameters:
listener- is a consistListener object
-
setConsistID
Set the text ID associated with the consist.- Specified by:
setConsistIDin interfaceConsist- Parameters:
id- is a string identifier for the consist.
-
getConsistID
Get the text ID associated with the consist.- Specified by:
getConsistIDin interfaceConsist- Returns:
- String identifier for the consist. Default value is the string Identifier for the consist address.
-
reverse
Reverse the order of locomotives in the consist and flip the direction bits of each locomotive. -
restore
Restore the consist to the command station. -
notifyConsistListeners
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
Description copied from interface:ProgListenerReceive a callback at the end of a programming operation.- Specified by:
programmingOpReplyin interfaceProgListener- Parameters:
value- Value from a read operation, or value written on a writestatus- Denotes the completion code. Note that this is a bitwise combination of the various status coded defined in this interface.
-