jmri.jmrix.loconet
Class SE8cSignalHead

java.lang.Object
  extended by jmri.implementation.AbstractNamedBean
      extended by jmri.implementation.AbstractSignalHead
          extended by jmri.implementation.DefaultSignalHead
              extended by jmri.jmrix.loconet.SE8cSignalHead
All Implemented Interfaces:
Serializable, EventListener, LocoNetListener, NamedBean, SignalHead

public class SE8cSignalHead
extends DefaultSignalHead
implements LocoNetListener

Extend jmri.SignalHead for signals implemented by an SE8c

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.

To get a complete set of aspects, we assume that the SE8C board has been configured such that the 4th aspect is "dark". We then do flashing aspects by commanding the lit appearance to change.

The algorithms in this class are a collaborative effort of Digitrax, Inc and Bob Jacobsen.

Some of the message formats used in this class are Copyright Digitrax, Inc. and used with permission as part of the JMRI project. That permission does not extend to uses in other software products. If you wish to use this code, algorithm or these message formats outside of JMRI, please contact Digitrax Inc for separate permission.

Author:
Bob Jacobsen Copyright (C) 2002
See Also:
Serialized Form

Field Summary
 
Fields inherited from class jmri.implementation.DefaultSignalHead
mFlashOn
 
Fields inherited from class jmri.implementation.AbstractSignalHead
mAppearance, mHeld, mLit
 
Fields inherited from interface jmri.SignalHead
DARK, FLASHGREEN, FLASHLUNAR, FLASHRED, FLASHYELLOW, GREEN, LUNAR, RED, YELLOW
 
Fields inherited from interface jmri.NamedBean
INCONSISTENT, UNKNOWN
 
Constructor Summary
SE8cSignalHead(int pNumber)
           
SE8cSignalHead(int pNumber, String userName)
           
 
Method Summary
 void dispose()
          Deactivate this object, so that it releases as many resources as possible and no longer effects others.
 int getNumber()
           
 String getSystemName()
          Get a system-specific name.
 void message(LocoNetMessage l)
          Member function that will be invoked by a LocoNetInterface implementation to forward a LocoNet message from the layout.
protected  void updateOutput()
          Type-specific routine to handle output to the layout hardware.
 
Methods inherited from class jmri.implementation.DefaultSignalHead
getValidStateNames, getValidStates, setAppearance, setHeld, setLit, startFlash, stopFlash
 
Methods inherited from class jmri.implementation.AbstractSignalHead
getAppearance, getAppearanceName, getAppearanceName, getDefaultStateName, getDefaultValidStateNames, getDefaultValidStates, getHeld, getLit, getState, setState
 
Methods inherited from class jmri.implementation.AbstractNamedBean
addPropertyChangeListener, firePropertyChange, getComment, getNumPropertyChangeListeners, getUserName, removePropertyChangeListener, setComment, setUserName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface jmri.NamedBean
addPropertyChangeListener, getComment, getNumPropertyChangeListeners, getUserName, removePropertyChangeListener, setComment, setUserName
 

Constructor Detail

SE8cSignalHead

public SE8cSignalHead(int pNumber,
                      String userName)

SE8cSignalHead

public SE8cSignalHead(int pNumber)
Method Detail

getNumber

public int getNumber()

getSystemName

public String getSystemName()
Description copied from interface: NamedBean
Get a system-specific name. This encodes the hardware addressing information.

Specified by:
getSystemName in interface NamedBean
Overrides:
getSystemName in class AbstractNamedBean

updateOutput

protected void updateOutput()
Description copied from class: DefaultSignalHead
Type-specific routine to handle output to the layout hardware. Does not notify listeners of changes; that's done elsewhere. Should use the following variables to determine what to send:

Specified by:
updateOutput in class DefaultSignalHead

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.

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


Copyright © 1997 - 2009 JMRI Community.
JMRI, DecoderPro, PanelPro, SoundPro, DispatcherPro and associated logos are our trademarks.

Additional information on copyright, trademarks and licenses is linked here.
Site hosted by: Get JMRI Model Railroad Interface at SourceForge.net. Fast, secure and Free Open Source software downloads