Class MqttSensor

All Implemented Interfaces:
Comparable<NamedBean>, EventListener, PropertyChangeProvider, DigitalIO, MqttEventListener, NamedBean, Sensor

public class MqttSensor extends AbstractSensor implements MqttEventListener
Implementation of the Sensor interface for MQTT layouts.
  • Field Details

  • Constructor Details

    • MqttSensor

      MqttSensor(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 specific connection
      systemName - System Name for this Sensor
      sendTopic - Topic string to be used when sending from JMRI
      rcvTopic - Topic string to be used when receiving by JMRI
  • Method Details

    • setParser

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

      public boolean canInvert()
      Description copied from class: AbstractSensor
      By default, all implementations based on this can invert
      Specified by:
      canInvert in interface Sensor
      Overrides:
      canInvert in class AbstractSensor
      Returns:
      true if can be inverted; false otherwise
    • requestUpdateFromLayout

      public void requestUpdateFromLayout()
      The request is just swallowed
      Specified by:
      requestUpdateFromLayout in interface DigitalIO
    • setKnownState

      public void setKnownState(int s)
      Description copied from class: AbstractSensor
      Perform setKnownState(int) for implementations that can't actually do it on the layout. Not intended for use by implementations that can.
      Specified by:
      setKnownState in interface Sensor
      Overrides:
      setKnownState in class AbstractSensor
      Parameters:
      s - the state to set
    • notifyMqttMessage

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

      public void dispose()
      Description copied from class: AbstractNamedBean
      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
      Specified by:
      dispose in interface Sensor
      Overrides:
      dispose in class AbstractSensor