Class OlcbSignalMast

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

public class OlcbSignalMast
extends AbstractSignalMast
This class implements a SignalMast that use OpenLCB Events to set aspects.

This implementation writes out to the OpenLCB when it's commanded to change appearance, and updates its internal state when it hears Events from the network (including its own events).

System name specifies the creation information:

 IF$dsm:basic:one-searchlight(123)
 
The name is a colon-separated series of terms:
  • I - system prefix
  • F$olm - defines signal masts of this type
  • basic - name of the signaling system
  • one-searchlight - name of the particular aspect map
  • ($123) - number distinguishing this from others

EventIDs are returned in format in which they were provided.

To keep OpenLCB distributed state consistent, setAspect(java.lang.String) does not immediately change the local aspect. Instead, it produces the relevant EventId on the network, waiting for that to return and do the local state change, notification, etc.

Needs to have held/unheld, lit/unlit state completed - those need to Produce and Consume events as above Based upon DccSignalMast by Kevin Dickerson