Package jmri.jmrix.mqtt
Class MqttThrottle
- java.lang.Object
-
- jmri.beans.PropertyChangeSupport
-
- jmri.jmrix.AbstractThrottle
-
- jmri.jmrix.mqtt.MqttThrottle
-
- All Implemented Interfaces:
java.util.EventListener
,PropertyChangeFirer
,PropertyChangeProvider
,DccThrottle
,MqttEventListener
,Throttle
public class MqttThrottle extends AbstractThrottle implements MqttEventListener
An implementation of AbstractThrottle with code specific to a MQTT connection.
-
-
Field Summary
Fields Modifier and Type Field Description protected int
address
java.lang.String
rcvDirectionTopic
java.lang.String
rcvFunctionTopic
java.lang.String
rcvThrottleTopic
java.lang.String
sendDirectionTopic
java.lang.String
sendFunctionTopic
java.lang.String
sendThrottleTopic
-
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 MqttThrottle(MqttSystemConnectionMemo memo)
Constructor.MqttThrottle(MqttSystemConnectionMemo memo, java.lang.String sendThrottleTopic, java.lang.String rcvThrottleTopic, java.lang.String sendDirectionTopic, java.lang.String rcvDirectionTopic, java.lang.String sendFunctionTopic, java.lang.String rcvFunctionTopic)
MqttThrottle(MqttSystemConnectionMemo memo, java.lang.String sendThrottleTopic, java.lang.String rcvThrottleTopic, java.lang.String sendDirectionTopic, java.lang.String rcvDirectionTopic, java.lang.String sendFunctionTopic, java.lang.String rcvFunctionTopic, LocoAddress address)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getDccAddress()
LocoAddress
getLocoAddress()
Locomotive address.void
notifyMqttMessage(java.lang.String receivedTopic, java.lang.String message)
void
sendFunctionGroup(int functionNum, boolean momentary)
Send whole (DCC) Function Group for a particular function number.int
setDccAddress(int newaddress)
void
setIsForward(boolean forward)
Set the directionvoid
setSpeedSetting(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.protected void
throttleDispose()
Dispose when finished with this object.protected void
throttleRelease()
-
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, sendFunctionGroup1, sendFunctionGroup10, sendFunctionGroup2, sendFunctionGroup3, 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, 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
-
sendThrottleTopic
@Nonnull public java.lang.String sendThrottleTopic
-
rcvThrottleTopic
@Nonnull public java.lang.String rcvThrottleTopic
-
sendDirectionTopic
@Nonnull public java.lang.String sendDirectionTopic
-
rcvDirectionTopic
@Nonnull public java.lang.String rcvDirectionTopic
-
sendFunctionTopic
@Nonnull public java.lang.String sendFunctionTopic
-
rcvFunctionTopic
@Nonnull public java.lang.String rcvFunctionTopic
-
address
protected int address
-
-
Constructor Detail
-
MqttThrottle
public MqttThrottle(MqttSystemConnectionMemo memo)
Constructor.- Parameters:
memo
- system connection.
-
MqttThrottle
public MqttThrottle(MqttSystemConnectionMemo memo, java.lang.String sendThrottleTopic, java.lang.String rcvThrottleTopic, java.lang.String sendDirectionTopic, java.lang.String rcvDirectionTopic, java.lang.String sendFunctionTopic, java.lang.String rcvFunctionTopic)
-
MqttThrottle
public MqttThrottle(MqttSystemConnectionMemo memo, java.lang.String sendThrottleTopic, java.lang.String rcvThrottleTopic, java.lang.String sendDirectionTopic, java.lang.String rcvDirectionTopic, java.lang.String sendFunctionTopic, java.lang.String rcvFunctionTopic, LocoAddress address)
Constructor.- Parameters:
memo
- system connectionsendThrottleTopic
- MQTT topic for sending speedrcvThrottleTopic
- MQTT topic for receiving speedsendDirectionTopic
- MQTT topic for sending directionrcvDirectionTopic
- MQTT topic for receiving directionsendFunctionTopic
- MQTT topic for sending function valuesrcvFunctionTopic
- MQTT topic for receiving function valuesaddress
- loco address to set on throttle
-
-
Method Detail
-
setSpeedSetting
public void setSpeedSetting(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.- Specified by:
setSpeedSetting
in interfaceThrottle
- Overrides:
setSpeedSetting
in classAbstractThrottle
- Parameters:
speed
- the speed as a 0.0 -> 1.0. fraction of maximum possible speed or -1 for emergency stop.
-
setIsForward
public void setIsForward(boolean forward)
Set the direction- Specified by:
setIsForward
in interfaceThrottle
- Overrides:
setIsForward
in classAbstractThrottle
- Parameters:
forward
- true if forward; false otherwise
-
sendFunctionGroup
public void sendFunctionGroup(int functionNum, boolean momentary)
Send whole (DCC) Function Group for a particular function number.- Overrides:
sendFunctionGroup
in classAbstractThrottle
- Parameters:
functionNum
- Function Numbermomentary
- False to send normal function status, true to send momentary.
-
throttleRelease
protected void throttleRelease()
-
throttleDispose
protected void 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:
throttleDispose
in classAbstractThrottle
-
setDccAddress
public int setDccAddress(int newaddress)
-
getDccAddress
public int getDccAddress()
-
getLocoAddress
public LocoAddress getLocoAddress()
Description copied from interface:Throttle
Locomotive 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:
getLocoAddress
in interfaceThrottle
- Returns:
- The locomotive address
-
notifyMqttMessage
public void notifyMqttMessage(java.lang.String receivedTopic, java.lang.String message)
- Specified by:
notifyMqttMessage
in interfaceMqttEventListener
-
-