Package jmri.jmrix.dccpp
Class DCCppThrottle
java.lang.Object
jmri.beans.PropertyChangeSupport
jmri.jmrix.AbstractThrottle
jmri.jmrix.dccpp.DCCppThrottle
- All Implemented Interfaces:
EventListener,PropertyChangeFirer,PropertyChangeProvider,DccThrottle,AbstractMRListener,DCCppListener,Throttle
An implementation of DccThrottle with code specific to a DCC++
connection.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intprotected LinkedBlockingQueue<DCCppThrottle.RequestMessage>intprotected DCCppTrafficControllerprotected static final intprotected static final intprotected static final intFields 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
ConstructorsConstructorDescriptionDCCppThrottle(DCCppSystemConnectionMemo memo, DCCppTrafficController controller) Constructor.DCCppThrottle(DCCppSystemConnectionMemo memo, LocoAddress address, DCCppTrafficController controller) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionintprotected intprotected intLocomotive address.(package private) intGet the Register Number for this Throttle's assigned addressprotected voidvoidMember function that will be invoked by a DCCppInterface implementation to forward a DCC++ message sent to the layout.voidMember function that will be invoked by a DCCppInterface implementation to forward a DCC++ message from the layout.voidMember function invoked by an DCCppInterface implementation to notify a sender that an outgoing message timed out and was dropped from the queue.protected voidqueueMessage(DCCppMessage m, int s) protected voidprotected voidSend the DCC++ message to set the state of locomotive direction and functions F0, F1, F2, F3, F4protected voidSend the DCC++ message to set the state of functions F5, F6, F7, F8protected voidSend the DCC++ message to set the state of functions F9, F10, F11, F12protected voidSend the DCC++ message to set the state of functions F13, F14, F15, F16, F17, F18, F19, F20protected voidSend the DCC++ message to set the state of functions F21, F22, F23, F24, F25, F26, F27, F28protected voidintsetDccAddress(int newaddress) voidsetDCCppTrafficController(DCCppTrafficController controller) voidsetFunction(int functionNum, boolean newState) Set Loco Function and send to Layout.voidsetIsForward(boolean forward) Implementing functions should override this function, but should either make a call to super.setIsForward() to notify the listeners, or should notify the listeners themselves.voidsetSpeedSetting(float speed) setSpeedSetting - Implementing functions should override this function, but should either make a call to super.setSpeedSetting() to notify the listeners at the end of their work, or should notify the listeners themselves.voidSet the speed step value.protected voidDispose when finished with this object.Methods 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, sendFunctionGroup10, sendFunctionGroup6, sendFunctionGroup7, sendFunctionGroup8, sendFunctionGroup9, sendMomentaryFunctionGroup1, sendMomentaryFunctionGroup10, sendMomentaryFunctionGroup2, sendMomentaryFunctionGroup3, sendMomentaryFunctionGroup4, sendMomentaryFunctionGroup5, sendMomentaryFunctionGroup6, sendMomentaryFunctionGroup7, sendMomentaryFunctionGroup8, sendMomentaryFunctionGroup9, setFunctionMomentary, setRosterEntry, setSpeedSetting, 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
-
Field Details
-
tc
-
THROTTLEIDLE
- See Also:
-
THROTTLESPEEDSENT
- See Also:
-
THROTTLEFUNCSENT
- See Also:
-
requestState
-
address
-
requestList
-
-
Constructor Details
-
DCCppThrottle
Constructor.- Parameters:
memo- system connection.controller- system connection traffic controller.
-
DCCppThrottle
public DCCppThrottle(DCCppSystemConnectionMemo memo, LocoAddress address, DCCppTrafficController controller) Constructor.- Parameters:
memo- system connection.address- loco address to set on throttlecontroller- system connection traffic controller.
-
-
Method Details
-
setDCCppTrafficController
-
getRegisterNum
int getRegisterNum()Get the Register Number for this Throttle's assigned address- Returns:
- register number currently
-
setFunction
Set Loco Function and send to Layout.- Specified by:
setFunctionin interfaceThrottle- Overrides:
setFunctionin classAbstractThrottle- Parameters:
functionNum- Function Number, 0-28newState- New Function State. True on, false off.
-
sendFunctionGroup1
Send the DCC++ message to set the state of locomotive direction and functions F0, F1, F2, F3, F4- Overrides:
sendFunctionGroup1in classAbstractThrottle
-
sendFunctionGroup2
Send the DCC++ message to set the state of functions F5, F6, F7, F8- Overrides:
sendFunctionGroup2in classAbstractThrottle
-
sendFunctionGroup3
Send the DCC++ message to set the state of functions F9, F10, F11, F12- Overrides:
sendFunctionGroup3in classAbstractThrottle
-
sendFunctionGroup4
Send the DCC++ message to set the state of functions F13, F14, F15, F16, F17, F18, F19, F20- Overrides:
sendFunctionGroup4in classAbstractThrottle
-
sendFunctionGroup5
Send the DCC++ message to set the state of functions F21, F22, F23, F24, F25, F26, F27, F28- Overrides:
sendFunctionGroup5in classAbstractThrottle
-
setSpeedSetting
Description copied from class:AbstractThrottlesetSpeedSetting - Implementing functions should override this function, but should either make a call to super.setSpeedSetting() to notify the listeners at the end of their work, or should notify the listeners themselves.- Specified by:
setSpeedSettingin interfaceThrottle- Overrides:
setSpeedSettingin classAbstractThrottle- Parameters:
speed- the speed as a 0.0 -> 1.0. fraction of maximum possible speed or -1 for emergency stop.
-
sendEmergencyStop
-
setIsForward
Description copied from class:AbstractThrottleImplementing functions should override this function, but should either make a call to super.setIsForward() to notify the listeners, or should notify the listeners themselves.- Specified by:
setIsForwardin interfaceThrottle- Overrides:
setIsForwardin classAbstractThrottle- Parameters:
forward- true if forward; false otherwise
-
setSpeedStepMode
Description copied from class:AbstractThrottleSet the speed step value. Default should be 128 speed step mode in most cases.Specific implementations should override this function.
- Specified by:
setSpeedStepModein interfaceDccThrottle- Overrides:
setSpeedStepModein classAbstractThrottle- Parameters:
Mode- the current speed step mode
-
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.- Specified by:
throttleDisposein classAbstractThrottle
-
setDccAddress
-
getDccAddress
-
getDccAddressHigh
-
getDccAddressLow
-
message
Description copied from interface:DCCppListenerMember function that will be invoked by a DCCppInterface implementation to forward a DCC++ message from the layout.- Specified by:
messagein interfaceDCCppListener- Parameters:
l- The received DCC++ message. Note that this same object may be presented to multiple users. It should not be modified here.
-
handleLocoState
-
message
Description copied from interface:DCCppListenerMember function that will be invoked by a DCCppInterface implementation to forward a DCC++ message sent to the layout. Normally, this function will do nothing.- Specified by:
messagein interfaceDCCppListener- Parameters:
l- The received DCC++ message. Note that this same object may be presented to multiple users. It should not be modified here.
-
notifyTimeout
Description copied from interface:DCCppListenerMember function invoked by an DCCppInterface implementation to notify a sender that an outgoing message timed out and was dropped from the queue.- Specified by:
notifyTimeoutin interfaceDCCppListener- Parameters:
msg- the message that timed out.
-
getLocoAddress
Description copied from interface:ThrottleLocomotive address. The exact format is defined by the specific implementation, as subclasses of LocoAddress will contain different information.This is an unbound property.
- Specified by:
getLocoAddressin interfaceThrottle- Returns:
- The locomotive address
-
sendQueuedMessage
-
queueMessage
-