Class MqttTurnout

All Implemented Interfaces:
PropertyChangeListener, Comparable<NamedBean>, EventListener, PropertyChangeProvider, DigitalIO, MqttEventListener, NamedBean, Turnout, VariableControlSpanBean

public class MqttTurnout extends AbstractTurnout implements MqttEventListener
Implementation of the Turnout interface for MQTT layouts.
  • Field Details

  • Constructor Details

    • MqttTurnout

      MqttTurnout(MqttAdapter ma, String systemName, String sendTopic, String rcvTopic)
      Requires, but does not check, that the system name and topic be consistent
      Parameters:
      ma - Adapter to reference for connection
      systemName - System name of turnout
      sendTopic - MQTT topic to use when sending (full string, including systemName part)
      rcvTopic - MQTT topic to use when receiving (full string, including systemName part)
  • Method Details

    • setParser

      public void setParser(MqttContentParser<Turnout> parser)
    • canInvert

      public boolean canInvert()
      Description copied from class: AbstractTurnout
      Determine if the turnouts can be inverted. If true, inverted turnouts are supported.
      Specified by:
      canInvert in interface Turnout
      Overrides:
      canInvert in class AbstractTurnout
      Returns:
      invert supported
    • forwardCommandChangeToLayout

      protected void forwardCommandChangeToLayout(int s)
      Handle a request to change state, typically by sending a message to the layout in some child class. Public version (used by TurnoutOperator) sends the current commanded state without changing it. Implementing classes will typically check the value of s and send a system specific sendMessage command. Sends an MQTT payload command
      Specified by:
      forwardCommandChangeToLayout in class AbstractTurnout
      Parameters:
      s - new state value
    • notifyMqttMessage

      public void notifyMqttMessage(String receivedTopic, String message)
      Specified by:
      notifyMqttMessage in interface MqttEventListener
    • turnoutPushbuttonLockout

      protected void turnoutPushbuttonLockout(boolean _pushButtonLockout)
      Specified by:
      turnoutPushbuttonLockout in class AbstractTurnout
    • dispose

      public void dispose()
      Description copied from class: AbstractTurnout
      Deactivate this object, so that it releases as many resources as possible and no longer effects others.

      For example, if this object has listeners, after a call to this method it should no longer notify those listeners. Any native or system-wide resources it maintains should be released, including threads, files, etc.

      It is an error to invoke any other methods on this object once dispose() has been called. Note, however, that there is no guarantee about behavior in that case.

      Afterwards, references to this object may still exist elsewhere, preventing its garbage collection. But it's formally dead, and shouldn't be keeping any other objects alive. Therefore, this method should null out any references to other objects that this NamedBean contained.

      Specified by:
      dispose in interface NamedBean
      Overrides:
      dispose in class AbstractTurnout