Package jmri.jmrix.marklin
Class MarklinThrottle
- java.lang.Object
-
- jmri.beans.PropertyChangeSupport
-
- jmri.jmrix.AbstractThrottle
-
- jmri.jmrix.marklin.MarklinThrottle
-
- All Implemented Interfaces:
java.util.EventListener,PropertyChangeFirer,PropertyChangeProvider,DccThrottle,AbstractMRListener,MarklinListener,Throttle
public class MarklinThrottle extends AbstractThrottle implements MarklinListener
An implementation of DccThrottle with code specific to an TAMS connection.Based on Glen Oberhauser's original LnThrottle implementation
-
-
Field Summary
Fields Modifier and Type Field Description (package private) MarklinTrafficControllertc-
Fields inherited from class jmri.jmrix.AbstractThrottle
active, adapterMemo, FUNCTION_GROUPS, isForward, speedSetting, speedStepMode, start
-
Fields inherited from class jmri.beans.PropertyChangeSupport
propertyChangeSupport
-
Fields 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
Constructors Constructor Description MarklinThrottle(MarklinSystemConnectionMemo memo, LocoAddress address)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected floatfloatSpeed(int lSpeed)Convert a Marklin speed integer to a float speed value(package private) intgetCANAddress()LocoAddressgetLocoAddress()Locomotive address.voidmessage(MarklinMessage m)voidreply(MarklinReply m)protected voidsendFunctionGroup1()Send the message to set the state of functions F0, F1, F2, F3, F4.protected voidsendFunctionGroup2()Send the message to set the state of functions F5, F6, F7, F8.protected voidsendFunctionGroup3()Send the message to set the state of functions F9, F10, F11, F12.protected voidsendFunctionGroup4()Send the message to set the state of functions F13, F14, F15, F16, F17, F18, F19, F20.protected voidsendFunctionGroup5()Send the message to set the state of functions F21, F22, F23, F24, F25, F26, F27, F28.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)Set the speed and direction.voidsetSpeedStepMode(SpeedStepMode Mode)Set the speed step value.voidthrottleDispose()Dispose when finished with this Throttle.-
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, setFunction, setFunctionMomentary, setRosterEntry, setSpeedSetting, setSpeedSettingAgain, startClock, updateFunction, updateFunctionMomentary
-
Methods inherited from class jmri.beans.PropertyChangeSupport
addPropertyChangeListener, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface jmri.beans.PropertyChangeProvider
addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener
-
Methods 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 Detail
-
MarklinThrottle
public MarklinThrottle(MarklinSystemConnectionMemo memo, LocoAddress address)
Constructor.- Parameters:
memo- system connection.address- loco address.
-
-
Method Detail
-
sendFunctionGroup1
protected void sendFunctionGroup1()
Send the message to set the state of functions F0, F1, F2, F3, F4. To send function group 1 we have to also send speed, direction etc.- Overrides:
sendFunctionGroup1in classAbstractThrottle
-
sendFunctionGroup2
protected void sendFunctionGroup2()
Send the message to set the state of functions F5, F6, F7, F8.- Overrides:
sendFunctionGroup2in classAbstractThrottle
-
sendFunctionGroup3
protected void sendFunctionGroup3()
Description copied from class:AbstractThrottleSend the message to set the state of functions F9, F10, F11, F12.This is used in the setFn implementations provided in this class, but a real implementation needs to be provided.
- Overrides:
sendFunctionGroup3in classAbstractThrottle
-
sendFunctionGroup4
protected void sendFunctionGroup4()
Description copied from class:AbstractThrottleSend the message to set the state of functions F13, F14, F15, F16, F17, F18, F19, F20.This is used in the setFn implementations provided in this class, but a real implementation needs to be provided.
- Overrides:
sendFunctionGroup4in classAbstractThrottle
-
sendFunctionGroup5
protected void sendFunctionGroup5()
Description copied from class:AbstractThrottleSend the message to set the state of functions F21, F22, F23, F24, F25, F26, F27, F28.This is used in the setFn implementations provided in this class, but a real implementation needs to be provided.
- Overrides:
sendFunctionGroup5in classAbstractThrottle
-
setSpeedSetting
public void setSpeedSetting(float speed)
Set the speed and direction.This intentionally skips the emergency stop value of 1.
- Specified by:
setSpeedSettingin interfaceThrottle- Overrides:
setSpeedSettingin classAbstractThrottle- Parameters:
speed- Number from 0 to 1; less than zero is emergency stop
-
floatSpeed
protected float floatSpeed(int lSpeed)
Convert a Marklin speed integer to a float speed value- Parameters:
lSpeed- Marklin-format speed value- Returns:
- 0.0 - 1.0 speed value
-
setIsForward
public void setIsForward(boolean forward)
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
public void setSpeedStepMode(SpeedStepMode Mode)
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
-
getLocoAddress
public LocoAddress 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
-
throttleDispose
public void throttleDispose()
Description copied from class:AbstractThrottleDispose when finished with this Throttle. May be used in tests for cleanup. Throttles normally callAbstractThrottle.finishRecord()here.- Specified by:
throttleDisposein classAbstractThrottle
-
message
public void message(MarklinMessage m)
- Specified by:
messagein interfaceMarklinListener
-
reply
public void reply(MarklinReply m)
- Specified by:
replyin interfaceMarklinListener
-
getCANAddress
int getCANAddress()
-
-