Package jmri.jmrix.loconet
Class Pr2Throttle
- java.lang.Object
-
- jmri.beans.PropertyChangeSupport
-
- jmri.jmrix.AbstractThrottle
-
- jmri.jmrix.loconet.Pr2Throttle
-
- All Implemented Interfaces:
PropertyChangeFirer
,PropertyChangeProvider
,DccThrottle
,Throttle
public class Pr2Throttle extends AbstractThrottle
An implementation of DccThrottle via AbstractThrottle with code specific to a PR2 connection.Speed in the Throttle interfaces and AbstractThrottle is a float, but in LocoNet is an int with values from 0 to 127.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) DccLocoAddress
address
-
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
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, SPEEDINCREMENT, SPEEDSETTING, SPEEDSTEPMODE, SPEEDSTEPS
-
-
Constructor Summary
Constructors Constructor Description Pr2Throttle(LocoNetSystemConnectionMemo memo, DccLocoAddress address)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected float
floatSpeed(int lSpeed)
Convert a LocoNet speed integer to a float speed value.LocoAddress
getLocoAddress()
Locomotive address.protected int
intSpeed(float fSpeed)
Get an integer speed for the given raw speed value.protected void
sendFunctionGroup1()
Send the LocoNet message to set the state of locomotive direction and functions F0, F1, F2, F3, F4.protected void
sendFunctionGroup2()
Send the LocoNet message to set the state of functions F5, F6, F7, F8.protected void
sendFunctionGroup3()
Send the message to set the state of functions F9, F10, F11, F12.void
setIsForward(boolean forward)
LocoNet actually puts forward and backward in the same message as the first function group.void
setSpeedSetting(float speed)
Set the speed.void
throttleDispose()
Dispose when finished with this Throttle.java.lang.String
toString()
void
writeData()
-
Methods inherited from class jmri.jmrix.AbstractThrottle
addPropertyChangeListener, dispatch, dispose, finishRecord, getFunction, getFunctionMomentary, getFunctionMomentaryNoWarn, getFunctionNoWarn, getFunctions, getFunctionsMomentary, getIsForward, getRosterEntry, getSpeedIncrement, getSpeedSetting, getSpeedStepMode, intSpeed, notifyThrottleDisconnect, notifyThrottleDispatchEnabled, notifyThrottleReleaseEnabled, record, release, removePropertyChangeListener, sendFunctionGroup, sendFunctionGroup10, sendFunctionGroup4, sendFunctionGroup5, sendFunctionGroup6, sendFunctionGroup7, sendFunctionGroup8, sendFunctionGroup9, sendMomentaryFunctionGroup1, sendMomentaryFunctionGroup10, sendMomentaryFunctionGroup2, sendMomentaryFunctionGroup3, sendMomentaryFunctionGroup4, sendMomentaryFunctionGroup5, sendMomentaryFunctionGroup6, sendMomentaryFunctionGroup7, sendMomentaryFunctionGroup8, sendMomentaryFunctionGroup9, setFunction, setFunctionMomentary, setRosterEntry, setSpeedSetting, setSpeedSettingAgain, setSpeedStepMode, 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, 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
-
-
-
-
Field Detail
-
address
DccLocoAddress address
-
-
Constructor Detail
-
Pr2Throttle
public Pr2Throttle(LocoNetSystemConnectionMemo memo, DccLocoAddress address)
Constructor- Parameters:
memo
- a LocoNetSystemConnectionMemo to associate with this throttleaddress
- a DccLocoAddress to associate with this throttle
-
-
Method Detail
-
floatSpeed
protected float floatSpeed(int lSpeed)
Convert a LocoNet speed integer to a float speed value.- Parameters:
lSpeed
- loconet speed value- Returns:
- speed as float 0->1.0
-
intSpeed
protected int intSpeed(float fSpeed)
Get an integer speed for the given raw speed value. This is a convenience method that callsAbstractThrottle.intSpeed(float, int)
with a maxStep of 127.This implementation does not support 128 speed steps.
- Overrides:
intSpeed
in classAbstractThrottle
- Parameters:
fSpeed
- the speed as a percentage of maximum possible speed; negative values indicate a need for an emergency stop- Returns:
- an integer in the range 0-127
-
writeData
public void writeData()
-
sendFunctionGroup1
protected void sendFunctionGroup1()
Send the LocoNet message to set the state of locomotive direction and functions F0, F1, F2, F3, F4. Invoked by AbstractThrottle when needed.- Overrides:
sendFunctionGroup1
in classAbstractThrottle
-
sendFunctionGroup2
protected void sendFunctionGroup2()
Send the LocoNet message to set the state of functions F5, F6, F7, F8. Invoked by AbstractThrottle when needed.- Overrides:
sendFunctionGroup2
in classAbstractThrottle
-
sendFunctionGroup3
protected void sendFunctionGroup3()
Send 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:
sendFunctionGroup3
in classAbstractThrottle
-
setSpeedSetting
public void setSpeedSetting(float speed)
Set the speed.This intentionally skips the emergency stop value of 1.
- Specified by:
setSpeedSetting
in interfaceThrottle
- Overrides:
setSpeedSetting
in classAbstractThrottle
- Parameters:
speed
- Number from 0 to 1; less than zero is emergency stop
-
setIsForward
public void setIsForward(boolean forward)
LocoNet actually puts forward and backward in the same message as the first function group.- Specified by:
setIsForward
in interfaceThrottle
- Overrides:
setIsForward
in classAbstractThrottle
- Parameters:
forward
- true if forward; false otherwise
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getLocoAddress
public LocoAddress getLocoAddress()
Locomotive address. The exact format is defined by the specific implementation, as subclasses of LocoAddress will contain different information.This is an unbound property.
- Returns:
- The locomotive address
-
throttleDispose
public void throttleDispose()
Dispose when finished with this Throttle. May be used in tests for cleanup. Throttles normally callAbstractThrottle.finishRecord()
here.- Specified by:
throttleDispose
in classAbstractThrottle
-
-