Package jmri.jmrix.bidib
Class BiDiBThrottle
- java.lang.Object
-
- jmri.beans.PropertyChangeSupport
-
- jmri.jmrix.AbstractThrottle
-
- jmri.jmrix.bidib.BiDiBThrottle
-
- All Implemented Interfaces:
PropertyChangeFirer
,PropertyChangeProvider
,DccThrottle
,Throttle
public class BiDiBThrottle extends AbstractThrottle
An implementation of DccThrottle with code specific to an BiDiB connection.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) DccLocoAddress
locoAddress
(package private) org.bidib.jbidibc.core.MessageListener
messageListener
protected org.bidib.jbidibc.messages.Node
node
-
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 BiDiBThrottle(BiDiBSystemConnectionMemo memo, DccLocoAddress locoAddress)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
driveReceive(byte[] address, org.bidib.jbidibc.messages.DriveState driveState)
float
floatSpeed(int speed, int steps)
Convert speed step value to floating value.LocoAddress
getLocoAddress()
Locomotive address.protected void
receiveFunctions(byte[] functions)
protected void
receiveIsForward(boolean forward)
protected void
receiveSpeedSetting(int speed)
void
requestState()
Request the state of a loco from BiDiBprotected boolean
sendDriveCommand(boolean isSpeedSet)
Internal send method for this class.protected void
sendFunctionGroup1()
Send the message to set the state of functions F0, F1, F2, F3, F4.protected void
sendFunctionGroup2()
Send the 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.protected void
sendFunctionGroup4()
Send the message to set the state of functions F13, F14, F15, F16, F17, F18, F19, F20protected void
sendFunctionGroup5()
Send the message to set the state of functions F21, F22, F23, F24, F25, F26, F27, F28void
setIsForward(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.void
setSpeedSetting(float speed)
Set the speed & direction.protected void
throttleDispose()
Dispose when finished with this Throttle.-
Methods inherited from class jmri.jmrix.AbstractThrottle
addPropertyChangeListener, dispatch, dispose, finishRecord, getFunction, getFunctionMomentary, getFunctionMomentaryNoWarn, getFunctionNoWarn, getFunctions, getFunctionsMomentary, getIsForward, 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, 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, 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
-
-
-
-
Field Detail
-
messageListener
org.bidib.jbidibc.core.MessageListener messageListener
-
node
protected org.bidib.jbidibc.messages.Node node
-
locoAddress
DccLocoAddress locoAddress
-
-
Constructor Detail
-
BiDiBThrottle
public BiDiBThrottle(BiDiBSystemConnectionMemo memo, DccLocoAddress locoAddress)
Constructor.- Parameters:
memo
- system connection memo to uselocoAddress
- DCC loco locoAddress
-
-
Method Detail
-
requestState
public void requestState()
Request the state of a loco from BiDiB
-
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
-
sendFunctionGroup1
protected void sendFunctionGroup1()
Send the message to set the state of functions F0, F1, F2, F3, F4.- Overrides:
sendFunctionGroup1
in classAbstractThrottle
-
sendFunctionGroup2
protected void sendFunctionGroup2()
Send the message to set the state of functions F5, F6, F7, F8.- Overrides:
sendFunctionGroup2
in classAbstractThrottle
-
sendFunctionGroup3
protected void sendFunctionGroup3()
Send the message to set the state of functions F9, F10, F11, F12.- Overrides:
sendFunctionGroup3
in classAbstractThrottle
-
sendFunctionGroup4
protected void sendFunctionGroup4()
Send the message to set the state of functions F13, F14, F15, F16, F17, F18, F19, F20- Overrides:
sendFunctionGroup4
in classAbstractThrottle
-
sendFunctionGroup5
protected void sendFunctionGroup5()
Send the message to set the state of functions F21, F22, F23, F24, F25, F26, F27, F28- Overrides:
sendFunctionGroup5
in classAbstractThrottle
-
setSpeedSetting
public void setSpeedSetting(float speed)
Set the speed & direction.- 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)
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.- Specified by:
setIsForward
in interfaceThrottle
- Overrides:
setIsForward
in classAbstractThrottle
- Parameters:
forward
- true if forward; false otherwise
-
sendDriveCommand
protected boolean sendDriveCommand(boolean isSpeedSet)
Internal send method for this class. Allocates speed and function data and constructs a BiDiB message- Parameters:
isSpeedSet
- false if not yet- Returns:
- true if successful
-
receiveFunctions
protected void receiveFunctions(byte[] functions)
-
receiveSpeedSetting
protected void receiveSpeedSetting(int speed)
-
receiveIsForward
protected void receiveIsForward(boolean forward)
-
floatSpeed
public float floatSpeed(int speed, int steps)
Convert speed step value to floating value. This is the oppsite of AbstractThrottle.intSpeed(speed, steps)- Parameters:
speed
- as integer from 1...stepssteps
- number if speed steps- Returns:
- speed as floating number from 0.0 to 1.0
-
driveReceive
protected void driveReceive(byte[] address, org.bidib.jbidibc.messages.DriveState driveState)
-
throttleDispose
protected 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
-
-