jmri.jmrix.nce
Class NceSensorManager

Show UML class diagram
java.lang.Object
  extended by jmri.managers.AbstractManager
      extended by jmri.managers.AbstractSensorManager
          extended by jmri.jmrix.nce.NceSensorManager
All Implemented Interfaces:
PropertyChangeListener, EventListener, AbstractMRListener, NceListener, Manager, SensorManager

public class NceSensorManager
extends AbstractSensorManager
implements NceListener

Manage the NCE-specific Sensor implementation.

System names are "NSnnn", where nnn is the sensor number without padding.

This class is responsible for generating polling messages for the NceTrafficController, see nextAiuPoll()


Field Summary
(package private)  int activeAIUMax
           
(package private)  int[] activeAIUs
           
(package private)  NceAIU[] aiuArray
           
(package private)  int aiucab
           
(package private)  int iName
           
(package private)  NceListener listener
           
(package private) static org.slf4j.Logger log
           
(package private)  int pin
           
(package private)  Thread pollThread
           
(package private)  String prefix
           
(package private)  boolean stopPolling
           
(package private)  NceTrafficController tc
           
 
Fields inherited from class jmri.managers.AbstractSensorManager
sensorDebounceGoingActive, sensorDebounceGoingInActive
 
Fields inherited from class jmri.managers.AbstractManager
_tsys, _tuser
 
Fields inherited from interface jmri.Manager
AUDIO, BLOCKBOSS, BLOCKS, CONDITIONALS, ENTRYEXIT, IDTAGS, LAYOUTBLOCKS, LIGHTS, LOGIXS, MEMORIES, OBLOCKS, PANELFILES, REPORTERS, ROUTES, SECTIONS, SENSORGROUPS, SENSORS, SIGNALGROUPS, SIGNALHEADS, SIGNALMASTLOGICS, SIGNALMASTS, TIMEBASE, TRANSITS, TURNOUTS, WARRANTS
 
Constructor Summary
NceSensorManager(NceTrafficController tc, String prefix)
           
 
Method Summary
 boolean allowMultipleAdditions(String systemName)
          A method that determines if it is possible to add a range of sensors in numerical order eg 10 to 30, primarily used to enable/disable the add range box in the add sensor panel
 Sensor createNewSensor(String systemName, String userName)
          Internal method to invoke the factory, after all the logic for returning an existing method has been invoked.
 String createSystemName(String curAddress, String prefix)
           
 void dispose()
          Free resources when no longer used.
 String getNextValidAddress(String curAddress, String prefix)
          Determine if the address supplied is valid and free, if not then it shall return the next free valid address up to a maximum of 10 address away from the initial address.
 String getSystemPrefix()
          Provides access to the system prefix string.
 void handleSensorMessage(AbstractMRReply r)
          Handle an unsolicited sensor (AIU) state message
 NceMessage makeAIUPoll(int aiuNo)
           
 void message(NceMessage r)
           
 void reply(NceReply r)
          Process single received reply from sensor poll
 
Methods inherited from class jmri.managers.AbstractSensorManager
getBySystemName, getByUserName, getDefaultSensorDebounceGoingActive, getDefaultSensorDebounceGoingInActive, getInstanceBySystemName, getSensor, getXMLOrder, newSensor, normalizeSystemName, provideSensor, setDefaultSensorDebounceGoingActive, setDefaultSensorDebounceGoingInActive, typeLetter, updateAll
 
Methods inherited from class jmri.managers.AbstractManager
addPropertyChangeListener, deregister, firePropertyChange, getBeanBySystemName, getBeanByUserName, getInstanceByUserName, getNamedBean, getNamedBeanList, getSystemNameArray, getSystemNameList, makeSystemName, propertyChange, register, registerSelf, removePropertyChangeListener, systemLetter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface jmri.SensorManager
getSystemNameList
 
Methods inherited from interface jmri.Manager
addPropertyChangeListener, deregister, getBeanBySystemName, getBeanByUserName, getNamedBean, getNamedBeanList, getSystemNameArray, makeSystemName, register, removePropertyChangeListener, systemLetter
 

Field Detail

tc

NceTrafficController tc

prefix

String prefix

aiuArray

NceAIU[] aiuArray

activeAIUs

int[] activeAIUs

activeAIUMax

int activeAIUMax

pollThread

Thread pollThread

stopPolling

boolean stopPolling

listener

NceListener listener

aiucab

int aiucab

pin

int pin

iName

int iName

log

static org.slf4j.Logger log
Constructor Detail

NceSensorManager

public NceSensorManager(NceTrafficController tc,
                        String prefix)
Method Detail

getSystemPrefix

public String getSystemPrefix()
Description copied from interface: Manager
Provides access to the system prefix string. This was previously called the "System letter"

Specified by:
getSystemPrefix in interface Manager

dispose

public void dispose()
Description copied from interface: Manager
Free resources when no longer used. Specifically, remove all references to and from this object, so it can be garbage-collected.

Specified by:
dispose in interface Manager
Specified by:
dispose in interface SensorManager
Overrides:
dispose in class AbstractManager

createNewSensor

public Sensor createNewSensor(String systemName,
                              String userName)
Description copied from class: AbstractSensorManager
Internal method to invoke the factory, after all the logic for returning an existing method has been invoked.

Specified by:
createNewSensor in class AbstractSensorManager
Returns:
new null

makeAIUPoll

public NceMessage makeAIUPoll(int aiuNo)

message

public void message(NceMessage r)
Specified by:
message in interface NceListener

reply

public void reply(NceReply r)
Process single received reply from sensor poll

Specified by:
reply in interface NceListener

handleSensorMessage

public void handleSensorMessage(AbstractMRReply r)
Handle an unsolicited sensor (AIU) state message

Parameters:
r - sensor message

allowMultipleAdditions

public boolean allowMultipleAdditions(String systemName)
Description copied from class: AbstractSensorManager
A method that determines if it is possible to add a range of sensors in numerical order eg 10 to 30, primarily used to enable/disable the add range box in the add sensor panel

Specified by:
allowMultipleAdditions in interface SensorManager
Overrides:
allowMultipleAdditions in class AbstractSensorManager

createSystemName

public String createSystemName(String curAddress,
                               String prefix)
                        throws JmriException
Specified by:
createSystemName in interface SensorManager
Overrides:
createSystemName in class AbstractSensorManager
Throws:
JmriException

getNextValidAddress

public String getNextValidAddress(String curAddress,
                                  String prefix)
Description copied from interface: SensorManager
Determine if the address supplied is valid and free, if not then it shall return the next free valid address up to a maximum of 10 address away from the initial address.

Specified by:
getNextValidAddress in interface SensorManager
Overrides:
getNextValidAddress in class AbstractSensorManager
Parameters:
curAddress - - The hardware address of the turnout we which to check.
prefix - - The System Prefix used to make up the systemName


Copyright © 1997-2013 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