Package jmri.jmrix.marklin
Class MarklinThrottleManager
- java.lang.Object
-
- jmri.jmrix.AbstractThrottleManager
-
- jmri.jmrix.marklin.MarklinThrottleManager
-
- All Implemented Interfaces:
java.util.EventListener
,AbstractMRListener
,MarklinListener
,ThrottleManager
public class MarklinThrottleManager extends AbstractThrottleManager implements MarklinListener
MarklinDCC implementation of a ThrottleManager.Based on early NCE code and on work by Bob Jacobsen.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class jmri.jmrix.AbstractThrottleManager
AbstractThrottleManager.Addresses
-
-
Field Summary
-
Fields inherited from class jmri.jmrix.AbstractThrottleManager
adapterMemo, userName
-
-
Constructor Summary
Constructors Constructor Description MarklinThrottleManager(MarklinSystemConnectionMemo memo)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
addressTypeUnique()
Are there any ambiguous addresses (short vs long) on this system?boolean
canBeLongAddress(int address)
Address 100 and above is a long addressboolean
canBeShortAddress(int address)
Address 99 and below is a short addressboolean
disposeThrottle(DccThrottle t, ThrottleListener l)
Not for general use, seereleaseThrottle
anddispatchThrottle
.LocoAddress.Protocol[]
getAddressProtocolTypes()
Get a list of different protocols supported by the system, to include short vs long or DCC vs Selectrix vs Motorola.java.lang.String[]
getAddressTypes()
By default, only DCC in this implementationboolean
hasDispatchFunction()
Check to see if the Dispatch Button should be enabled or not Default to true, override if necessary(package private) static boolean
isLongAddress(int num)
void
message(MarklinMessage m)
void
reply(MarklinReply m)
void
requestThrottleSetup(LocoAddress address, boolean control)
Abstract member to actually do the work of configuring a new throttle, usually via interaction with the DCC system.protected boolean
singleUse()
Returns falsejava.util.EnumSet<SpeedStepMode>
supportedSpeedModes()
What speed modes are supported by this system?-
Methods inherited from class jmri.jmrix.AbstractThrottleManager
addressReleased, addressStillRequired, addressStillRequired, addressStillRequired, addressStillRequired, attachListener, cancelThrottleRequest, cancelThrottleRequest, cancelThrottleRequest, cancelThrottleRequest, dispatchThrottle, dispose, enablePrefSilentShareOption, enablePrefSilentStealOption, failedThrottleRequest, forceDisposeThrottle, getAddress, getAddress, getAddressTypeString, getProtocolFromString, getThrottleInfo, getThrottleUsageCount, getThrottleUsageCount, getThrottleUsageCount, getThrottleUsageCount, getUserName, hideStealNotifications, makeHardwareDecision, notifyDecisionRequest, notifyThrottleKnown, releaseThrottle, removeListener, requestThrottle, requestThrottle, requestThrottle, requestThrottle, requestThrottle, requestThrottle, requestThrottleSetup, responseThrottleDecision, responseThrottleDecision, responseThrottleDecision, showSessionCancelDialogue, updateNumUsers
-
-
-
-
Constructor Detail
-
MarklinThrottleManager
public MarklinThrottleManager(MarklinSystemConnectionMemo memo)
Constructor.- Parameters:
memo
- system connection.
-
-
Method Detail
-
reply
public void reply(MarklinReply m)
- Specified by:
reply
in interfaceMarklinListener
-
message
public void message(MarklinMessage m)
- Specified by:
message
in interfaceMarklinListener
-
requestThrottleSetup
public void requestThrottleSetup(LocoAddress address, boolean control)
Description copied from class:AbstractThrottleManager
Abstract member to actually do the work of configuring a new throttle, usually via interaction with the DCC system.- Specified by:
requestThrottleSetup
in classAbstractThrottleManager
- Parameters:
address
- addresscontrol
- false - read only.
-
hasDispatchFunction
public boolean hasDispatchFunction()
Description copied from class:AbstractThrottleManager
Check to see if the Dispatch Button should be enabled or not Default to true, override if necessary- Specified by:
hasDispatchFunction
in interfaceThrottleManager
- Overrides:
hasDispatchFunction
in classAbstractThrottleManager
- Returns:
- true if dispatch is possible; false otherwise
-
canBeLongAddress
public boolean canBeLongAddress(int address)
Address 100 and above is a long address- Specified by:
canBeLongAddress
in interfaceThrottleManager
- Parameters:
address
- address number to test- Returns:
- true if address can be long; false otherwise
-
canBeShortAddress
public boolean canBeShortAddress(int address)
Address 99 and below is a short address- Specified by:
canBeShortAddress
in interfaceThrottleManager
- Parameters:
address
- address number to test- Returns:
- true if address can be short; false otherwise
-
addressTypeUnique
public boolean addressTypeUnique()
Are there any ambiguous addresses (short vs long) on this system?- Specified by:
addressTypeUnique
in interfaceThrottleManager
- Returns:
- true if ambiguous addresses are not allowed; false otherwise
-
singleUse
protected boolean singleUse()
Returns falseDoes this DCC system allow a Throttle (e.g. an address) to be used by only one user at a time?
- Overrides:
singleUse
in classAbstractThrottleManager
- Returns:
- true or false
-
getAddressTypes
public java.lang.String[] getAddressTypes()
Description copied from class:AbstractThrottleManager
By default, only DCC in this implementation- Specified by:
getAddressTypes
in interfaceThrottleManager
- Overrides:
getAddressTypes
in classAbstractThrottleManager
- Returns:
- the list of supported address protocols
-
getAddressProtocolTypes
public LocoAddress.Protocol[] getAddressProtocolTypes()
Description copied from class:AbstractThrottleManager
Get a list of different protocols supported by the system, to include short vs long or DCC vs Selectrix vs Motorola.- Specified by:
getAddressProtocolTypes
in interfaceThrottleManager
- Overrides:
getAddressProtocolTypes
in classAbstractThrottleManager
- Returns:
- a list of supported address protocols
-
isLongAddress
static boolean isLongAddress(int num)
-
supportedSpeedModes
public java.util.EnumSet<SpeedStepMode> supportedSpeedModes()
Description copied from class:AbstractThrottleManager
What speed modes are supported by this system? value should be xor of possible modes specifed by the DccThrottle interface- Specified by:
supportedSpeedModes
in interfaceThrottleManager
- Overrides:
supportedSpeedModes
in classAbstractThrottleManager
- Returns:
- an XOR of the possible modes specified in the throttle interface
-
disposeThrottle
public boolean disposeThrottle(DccThrottle t, ThrottleListener l)
Description copied from class:AbstractThrottleManager
Not for general use, seereleaseThrottle
anddispatchThrottle
.Dispose of object when finished it. This will free up hardware resource
Used for handling certain internal error conditions, where the object still exists but hardware is not associated with it.
After this, further usage of this Throttle object will result in a JmriException.
- Specified by:
disposeThrottle
in interfaceThrottleManager
- Overrides:
disposeThrottle
in classAbstractThrottleManager
- Parameters:
t
- Throttle being releasedl
- Throttle Listener releasing the throttle- Returns:
- true if the throttle has been disposed of.
-
-