Package jmri.jmrix.roco.z21
Class Z21XNetThrottle
java.lang.Object
jmri.beans.PropertyChangeSupport
jmri.jmrix.AbstractThrottle
jmri.jmrix.lenz.XNetThrottle
jmri.jmrix.roco.RocoXNetThrottle
jmri.jmrix.roco.z21.Z21XNetThrottle
- All Implemented Interfaces:
EventListener,PropertyChangeFirer,PropertyChangeProvider,DccThrottle,AbstractMRListener,XNetListener,Throttle
An implementation of DccThrottle with code specific to a z21 XpressNet
connection.
-
Nested Class Summary
Nested classes/interfaces inherited from class jmri.jmrix.lenz.XNetThrottle
XNetThrottle.RequestMessage -
Field Summary
Fields inherited from class jmri.jmrix.lenz.XNetThrottle
address, isAvailable, requestList, requestState, statTimeoutValue, statusTask, tc, THROTTLEFUNCSENT, THROTTLEHIGHMOMSTATSENT, THROTTLEHIGHSTATSENT, THROTTLEIDLE, THROTTLEMOMSTATSENT, THROTTLESPEEDSENT, THROTTLESTATSENTFields inherited from class jmri.jmrix.AbstractThrottle
active, adapterMemo, FUNCTION_GROUPS, isForward, speedSetting, speedStepMode, startFields inherited from class jmri.beans.PropertyChangeSupport
propertyChangeSupportFields inherited from interface jmri.Throttle
CONNECTED, DISPATCH_ENABLED, F0, F0Momentary, F1, F10, F10Momentary, F11, F11Momentary, F12, F12Momentary, F13, F13Momentary, F14, F14Momentary, F15, F15Momentary, F16, F16Momentary, F17, F17Momentary, F18, F18Momentary, F19, F19Momentary, F1Momentary, F2, F20, F20Momentary, F21, F21Momentary, F22, F22Momentary, F23, F23Momentary, F24, F24Momentary, F25, F25Momentary, F26, F26Momentary, F27, F27Momentary, F28, F28Momentary, F2Momentary, F3, F3Momentary, F4, F4Momentary, F5, F5Momentary, F6, F6Momentary, F7, F7Momentary, F8, F8Momentary, F9, F9Momentary, ISFORWARD, RELEASE_ENABLED, SPEEDINCREMENT, SPEEDSETTING, SPEEDSTEPMODE, SPEEDSTEPS -
Constructor Summary
ConstructorsConstructorDescriptionZ21XNetThrottle(XNetSystemConnectionMemo memo, XNetTrafficController controller) Constructor.Z21XNetThrottle(XNetSystemConnectionMemo memo, LocoAddress address, XNetTrafficController controller) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidMember function that will be invoked by an XNetInterface implementation to forward an XNet message from the layout.protected voidSince XpressNet has a seperate Opcode for emergency stop, we're setting this up as a seperate protected function.protected voidSend the XpressNet messages to set the state of locomotive direction and functions F0, F1, F2, F3, F4.protected voidSend the XpressNet message to set the state of functions F5, F6, F7, F8.protected voidSend the XpressNet message to set the state of functions F9, F10, F11, F12.protected voidSend the XpressNet message to set the state of functions F13, F14, F15, F16, F17, F18, F19, F20.protected voidSend the XpressNet message to set the state of functions F21, F22, F23, F24, F25, F26, F27, F28.protected voidSend a request to get the speed, direction and function status from the command station.voidsetSpeedSetting(float speed) Notify listeners and send the new speed to the command station.voidsetSpeedSetting(float speed, boolean allowDuplicates, boolean allowDuplicatesOnStop) setSpeedSetting - Implementations should override this method only if they normally suppress messages to the system if, as far as JMRI can tell, the new message would make no difference to the system state (eg.voidDispose when finished with this object.Methods inherited from class jmri.jmrix.roco.RocoXNetThrottle
sendFunctionHighMomentaryStatusRequest, sendFunctionStatusInformationRequest, sendMomentaryFunctionGroup1, sendMomentaryFunctionGroup2, sendMomentaryFunctionGroup3, sendMomentaryFunctionGroup4, sendMomentaryFunctionGroup5Methods inherited from class jmri.jmrix.lenz.XNetThrottle
checkForFunctionMomentaryValueChange, csVersionSupportFn13to28, csVersionSupportFn29to68, getDccAddress, getDccAddressHigh, getDccAddressLow, getLocoAddress, message, notifyNewDirection, notifyNewSpeedStepMode, notifyTimeout, parseFunctionHighInformation, parseFunctionHighMomentaryInformation, parseFunctionInformation, parseFunctionMomentaryInformation, parseSpeedAndAvailability, parseSpeedAndDirection, queueMessage, sendFunctionGroup10, sendFunctionGroup6, sendFunctionGroup7, sendFunctionGroup8, sendFunctionGroup9, sendFunctionHighInformationRequest, sendMomentaryFunctionGroup10, sendMomentaryFunctionGroup6, sendMomentaryFunctionGroup7, sendMomentaryFunctionGroup8, sendMomentaryFunctionGroup9, sendQueuedMessage, setDccAddress, setIsAvailable, setIsForward, setSpeedStepMode, setXNetTrafficController, startStatusTimer, stopStatusTimerMethods inherited from class jmri.jmrix.AbstractThrottle
addPropertyChangeListener, dispatch, dispose, finishRecord, getFunction, getFunctionMomentary, getFunctionMomentaryNoWarn, getFunctionNoWarn, getFunctions, getFunctionsMomentary, getIsForward, getMemo, getRosterEntry, getSpeedIncrement, getSpeedSetting, getSpeedStepMode, intSpeed, intSpeed, notifyThrottleDisconnect, notifyThrottleDispatchEnabled, notifyThrottleReleaseEnabled, record, release, removePropertyChangeListener, sendFunctionGroup, setFunction, setFunctionMomentary, setRosterEntry, setSpeedSettingAgain, startClock, updateFunction, updateFunctionMomentaryMethods inherited from class jmri.beans.PropertyChangeSupport
addPropertyChangeListener, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListenerMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface jmri.beans.PropertyChangeProvider
addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListenerMethods inherited from interface jmri.Throttle
getF0, getF0Momentary, getF1, getF10, getF10Momentary, getF11, getF11Momentary, getF12, getF12Momentary, getF13, getF13Momentary, getF14, getF14Momentary, getF15, getF15Momentary, getF16, getF16Momentary, getF17, getF17Momentary, getF18, getF18Momentary, getF19, getF19Momentary, getF1Momentary, getF2, getF20, getF20Momentary, getF21, getF21Momentary, getF22, getF22Momentary, getF23, getF23Momentary, getF24, getF24Momentary, getF25, getF25Momentary, getF26, getF26Momentary, getF27, getF27Momentary, getF28, getF28Momentary, getF2Momentary, getF3, getF3Momentary, getF4, getF4Momentary, getF5, getF5Momentary, getF6, getF6Momentary, getF7, getF7Momentary, getF8, getF8Momentary, getF9, getF9Momentary, setF0, setF0Momentary, setF1, setF10, setF10Momentary, setF11, setF11Momentary, setF12, setF12Momentary, setF13, setF13Momentary, setF14, setF14Momentary, setF15, setF15Momentary, setF16, setF16Momentary, setF17, setF17Momentary, setF18, setF18Momentary, setF19, setF19Momentary, setF1Momentary, setF2, setF20, setF20Momentary, setF21, setF21Momentary, setF22, setF22Momentary, setF23, setF23Momentary, setF24, setF24Momentary, setF25, setF25Momentary, setF26, setF26Momentary, setF27, setF27Momentary, setF28, setF28Momentary, setF2Momentary, setF3, setF3Momentary, setF4, setF4Momentary, setF5, setF5Momentary, setF6, setF6Momentary, setF7, setF7Momentary, setF8, setF8Momentary, setF9, setF9Momentary
-
Constructor Details
-
Z21XNetThrottle
Constructor.- Parameters:
memo- system connection.controller- traffic controller.
-
Z21XNetThrottle
public Z21XNetThrottle(XNetSystemConnectionMemo memo, LocoAddress address, XNetTrafficController controller) Constructor.- Parameters:
memo- system connection.address- loco address.controller- traffic controller.
-
-
Method Details
-
setSpeedSetting
Notify listeners and send the new speed to the command station.- Specified by:
setSpeedSettingin interfaceThrottle- Overrides:
setSpeedSettingin classXNetThrottle- Parameters:
speed- the speed as a 0.0 -> 1.0. fraction of maximum possible speed or -1 for emergency stop.
-
setSpeedSetting
setSpeedSetting - Implementations should override this method only if they normally suppress messages to the system if, as far as JMRI can tell, the new message would make no difference to the system state (eg. the speed is the same, or effectivly the same, as the existing speed). Then, the boolean options can affect this behaviour.- Specified by:
setSpeedSettingin interfaceThrottle- Overrides:
setSpeedSettingin classAbstractThrottle- Parameters:
speed- the new speedallowDuplicates- don't suppress messagesallowDuplicatesOnStop- don't suppress messages if the new speed is 'stop'
-
sendStatusInformationRequest
Send a request to get the speed, direction and function status from the command station.- Overrides:
sendStatusInformationRequestin classXNetThrottle
-
sendFunctionGroup1
Send the XpressNet messages to set the state of locomotive direction and functions F0, F1, F2, F3, F4.- Overrides:
sendFunctionGroup1in classXNetThrottle
-
sendFunctionGroup2
Send the XpressNet message to set the state of functions F5, F6, F7, F8.- Overrides:
sendFunctionGroup2in classXNetThrottle
-
sendFunctionGroup3
Send the XpressNet message to set the state of functions F9, F10, F11, F12.- Overrides:
sendFunctionGroup3in classXNetThrottle
-
sendFunctionGroup4
Send the XpressNet message to set the state of functions F13, F14, F15, F16, F17, F18, F19, F20.- Overrides:
sendFunctionGroup4in classXNetThrottle
-
sendFunctionGroup5
Send the XpressNet message to set the state of functions F21, F22, F23, F24, F25, F26, F27, F28.- Overrides:
sendFunctionGroup5in classXNetThrottle
-
sendEmergencyStop
Description copied from class:XNetThrottleSince XpressNet has a seperate Opcode for emergency stop, we're setting this up as a seperate protected function.- Overrides:
sendEmergencyStopin classRocoXNetThrottle
-
message
Description copied from interface:XNetListenerMember function that will be invoked by an XNetInterface implementation to forward an XNet message from the layout.- Specified by:
messagein interfaceXNetListener- Overrides:
messagein classXNetThrottle- Parameters:
l- The received XNet message. Note that this same object may be presented to multiple users. It should not be modified here.
-
throttleDispose
Dispose when finished with this object. After this, further usage of this Throttle object will result in a JmriException.This is quite problematic, because a using object doesn't know when it's the last user.
- Overrides:
throttleDisposein classRocoXNetThrottle
-