Package jmri.jmrix.bidib
Class BiDiBThrottleManager
java.lang.Object
jmri.jmrix.AbstractThrottleManager
jmri.jmrix.bidib.BiDiBThrottleManager
- All Implemented Interfaces:
ThrottleManager
BiDiB implementation of a ThrottleManager.
-
Nested Class Summary
Nested classes/interfaces inherited from class jmri.jmrix.AbstractThrottleManager
AbstractThrottleManager.Addresses -
Field Summary
FieldsModifier and TypeFieldDescription(package private) String(package private) BiDiBTrafficControllerprotected HashMap<LocoAddress,BiDiBThrottle> Fields inherited from class jmri.jmrix.AbstractThrottleManager
adapterMemo, userName -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanAre there any ambiguous addresses (short vs long) on this system?booleancanBeLongAddress(int address) Addresses 0-10239 can be longbooleancanBeShortAddress(int address) The short addresses 1-127 are availablevoidThe throttle listener has finished with the specific Throttle and is is available for reuse/reallocation by somebody else.booleanNot for general use, seereleaseThrottleanddispatchThrottle.voidThe specified Throttle Listener has finished using a given throttle and no longer requires access to it.voidrequestThrottleSetup(LocoAddress a, boolean control) Abstract member to actually do the work of configuring a new throttle, usually via interaction with the DCC system.protected booleanDoes this DCC system allow a Throttle (e.g. an address) to be used by only one user at a time?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, dispose, enablePrefSilentShareOption, enablePrefSilentStealOption, failedThrottleRequest, forceDisposeThrottle, getAddress, getAddress, getAddressProtocolTypes, getAddressTypes, getAddressTypeString, getProtocolFromString, getThrottleInfo, getThrottleUsageCount, getThrottleUsageCount, getThrottleUsageCount, getThrottleUsageCount, getUserName, hasDispatchFunction, hideStealNotifications, makeHardwareDecision, notifyDecisionRequest, notifyThrottleKnown, removeListener, requestThrottle, requestThrottle, requestThrottle, requestThrottle, requestThrottle, requestThrottle, requestThrottleSetup, responseThrottleDecision, responseThrottleDecision, responseThrottleDecision, showSessionCancelDialogue, updateNumUsers
-
Field Details
-
throttles
-
tc
-
prefix
-
-
Constructor Details
-
BiDiBThrottleManager
Constructor.- Parameters:
memo- system connection memo
-
-
Method Details
-
requestThrottleSetup
Description copied from class:AbstractThrottleManagerAbstract member to actually do the work of configuring a new throttle, usually via interaction with the DCC system.- Specified by:
requestThrottleSetupin classAbstractThrottleManager- Parameters:
a- addresscontrol- false - read only.
-
singleUse
Description copied from class:AbstractThrottleManagerDoes this DCC system allow a Throttle (e.g. an address) to be used by only one user at a time?- Overrides:
singleUsein classAbstractThrottleManager- Returns:
- true or false
-
canBeLongAddress
Addresses 0-10239 can be long- Parameters:
address- address number to test- Returns:
- true if address can be long; false otherwise
-
canBeShortAddress
The short addresses 1-127 are available- Parameters:
address- address number to test- Returns:
- true if address can be short; false otherwise
-
addressTypeUnique
Are there any ambiguous addresses (short vs long) on this system?- Returns:
- true if ambiguous addresses are not allowed; false otherwise
-
supportedSpeedModes
Description copied from class:AbstractThrottleManagerWhat speed modes are supported by this system? value should be xor of possible modes specifed by the DccThrottle interface- Specified by:
supportedSpeedModesin interfaceThrottleManager- Overrides:
supportedSpeedModesin classAbstractThrottleManager- Returns:
- an XOR of the possible modes specified in the throttle interface
-
dispatchThrottle
Description copied from class:AbstractThrottleManagerThe throttle listener has finished with the specific Throttle and is is available for reuse/reallocation by somebody else. If possible, tell the layout that this locomotive has been dispatched to another user. Not all layouts will implement this, in which case it is synomous with release();Normally, dispatch ends with a call to dispose.
- Specified by:
dispatchThrottlein interfaceThrottleManager- Overrides:
dispatchThrottlein classAbstractThrottleManager- Parameters:
t- Throttle being releasedl- Throttle Listener releasing the throttle
-
releaseThrottle
Description copied from class:AbstractThrottleManagerThe specified Throttle Listener has finished using a given throttle and no longer requires access to it.After releasing the throttle, the manager will perform further checks to see if it is in use by any other listeners or if there are any PropertyChangeListeners attached. If there are no other uses of the throttle then it is disposed of.
Normally, release ends with a call to dispose.
- Specified by:
releaseThrottlein interfaceThrottleManager- Overrides:
releaseThrottlein classAbstractThrottleManager- Parameters:
t- Throttle being releasedl- Throttle Listener releasing the throttle
-
disposeThrottle
Not for general use, seereleaseThrottleanddispatchThrottle.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:
disposeThrottlein interfaceThrottleManager- Overrides:
disposeThrottlein classAbstractThrottleManager- Parameters:
t- Throttle being releasedl- Throttle Listener releasing the throttle- Returns:
- true if the throttle has been disposed of.
-