Package jmri.jmrix.openlcb
Class OlcbThrottleManager
- java.lang.Object
-
- jmri.jmrix.AbstractThrottleManager
-
- jmri.jmrix.openlcb.OlcbThrottleManager
-
- All Implemented Interfaces:
ThrottleManager
public class OlcbThrottleManager extends AbstractThrottleManager
Implementation of a ThrottleManager for OpenLCB
-
-
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 OlcbThrottleManager()
OlcbThrottleManager(SystemConnectionMemo memo)
Constructor.
-
Method Summary
All 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 1 and above can be a long addressboolean
canBeShortAddress(int address)
Address 127 and below can be a short addressboolean
disposeThrottle(DccThrottle t, ThrottleListener l)
Not for general use, seereleaseThrottle
anddispatchThrottle
.LocoAddress
getAddress(java.lang.String value, LocoAddress.Protocol protocol)
Get the object representing a particular address.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 implementationvoid
requestThrottleSetup(LocoAddress a, boolean control)
Abstract member to actually do the work of configuring a new throttle, usually via interaction with the DCC 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, getAddressTypeString, getProtocolFromString, getThrottleInfo, getThrottleUsageCount, getThrottleUsageCount, getThrottleUsageCount, getThrottleUsageCount, getUserName, hasDispatchFunction, hideStealNotifications, makeHardwareDecision, notifyDecisionRequest, notifyThrottleKnown, releaseThrottle, removeListener, requestThrottle, requestThrottle, requestThrottle, requestThrottle, requestThrottle, requestThrottle, requestThrottleSetup, responseThrottleDecision, responseThrottleDecision, responseThrottleDecision, showSessionCancelDialogue, singleUse, supportedSpeedModes, updateNumUsers
-
-
-
-
Constructor Detail
-
OlcbThrottleManager
public OlcbThrottleManager()
-
OlcbThrottleManager
public OlcbThrottleManager(SystemConnectionMemo memo)
Constructor.- Parameters:
memo
- system connection memo
-
-
Method Detail
-
requestThrottleSetup
public void requestThrottleSetup(LocoAddress a, 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:
a
- addresscontrol
- false - read only.
-
canBeLongAddress
public boolean canBeLongAddress(int address)
Address 1 and above can be a long address- Parameters:
address
- address number to test- Returns:
- true if address can be long; false otherwise
-
canBeShortAddress
public boolean canBeShortAddress(int address)
Address 127 and below can be a short address- 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?- Returns:
- true if ambiguous addresses are not allowed; false otherwise
-
getAddress
public LocoAddress getAddress(java.lang.String value, LocoAddress.Protocol protocol)
Description copied from class:AbstractThrottleManager
Get the object representing a particular address.- Specified by:
getAddress
in interfaceThrottleManager
- Overrides:
getAddress
in classAbstractThrottleManager
- Parameters:
value
- address in protocol-specific formatprotocol
- the control protocol- Returns:
- the address, possibly as a protocol-specific subclass
-
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
-
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.
-
-