Class LNCPSignalMast

All Implemented Interfaces:
VetoableChangeListener, Comparable<NamedBean>, EventListener, PropertyChangeProvider, LocoNetListener, NamedBean, SignalMast

public class LNCPSignalMast
extends DccSignalMast
implements LocoNetListener
Extend jmri.SignalMast for signals implemented by an LNCP.

This implementation writes out to the physical signal when it's commanded to change appearance, and updates its internal state when it hears commands from other places.

setAspect(java.lang.String) does not immediately change the local aspect. Instead, it produces the message on the network, waiting for that to return and do the local state change, notification, etc.

This is a specific implementation for the RR-cirkits LNCP interface board. A more general implementation, which can work with any system(s), is available in DccSignalMast.

  • Field Details

  • Constructor Details

  • Method Details

    • init

      void init()
    • message

      public void message​(LocoNetMessage l)
      Description copied from interface: LocoNetListener
      Member function that will be invoked by a LocoNetInterface implementation to forward a LocoNet message from the layout.
      Specified by:
      message in interface LocoNetListener
      Parameters:
      l - The received LocoNet message. Note that this same object may be presented to multiple users. It should not be modified here.
    • setAspect

      public void setAspect​(@Nonnull String aspect)
      Description copied from interface: SignalMast
      Set aspect to a valid name in the current signal system definition.
      Specified by:
      setAspect in interface SignalMast
      Overrides:
      setAspect in class DccSignalMast
      Parameters:
      aspect - the new aspect shown
    • setKnownState

      public void setKnownState​(String aspect)
    • dispose

      public void dispose()
      Description copied from interface: NamedBean
      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 AbstractNamedBean