Package jmri.jmrix.dccpp
Class DCCppSensor
- java.lang.Object
-
- jmri.implementation.AbstractNamedBean
-
- jmri.implementation.AbstractSensor
-
- jmri.jmrix.dccpp.DCCppSensor
-
- All Implemented Interfaces:
java.lang.Comparable<NamedBean>
,java.util.EventListener
,PropertyChangeProvider
,DigitalIO
,AbstractMRListener
,DCCppListener
,NamedBean
,Sensor
public class DCCppSensor extends AbstractSensor implements DCCppListener
Extend jmri.AbstractSensor for DCC++ layouts.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface jmri.NamedBean
NamedBean.BadNameException, NamedBean.BadSystemNameException, NamedBean.BadUserNameException, NamedBean.DisplayOptions, NamedBean.DuplicateSystemNameException
-
Nested classes/interfaces inherited from interface jmri.Sensor
Sensor.PullResistance
-
-
Field Summary
Fields Modifier and Type Field Description protected DCCppTrafficController
tc
-
Fields inherited from class jmri.implementation.AbstractSensor
_inverted, _knownState, _rawState, r, sensorDebounceGoingActive, sensorDebounceGoingInActive, thr, useDefaultTimerSettings
-
Fields inherited from class jmri.implementation.AbstractNamedBean
listenerRefs, mSystemName, register
-
Fields inherited from interface jmri.NamedBean
DISPLAY_NAME_FORMAT, INCONSISTENT, PROPERTY_STATE, QUOTED_NAME_FORMAT, UNKNOWN
-
Fields inherited from interface jmri.Sensor
ACTIVE, INACTIVE, MAX_DEBOUNCE
-
-
Constructor Summary
Constructors Constructor Description DCCppSensor(java.lang.String systemName, java.lang.String userName, DCCppTrafficController controller)
DCCppSensor(java.lang.String systemName, DCCppTrafficController controller)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
dispose()
Deactivate this object, so that it releases as many resources as possible and no longer effects others.(package private) int
getBaseAddress()
int
getIndex()
(package private) int
getNibble()
(package private) int
getNumber()
int
getPin()
boolean
getPullup()
(package private) void
initmessage(DCCppReply l)
initmessage is a package protected class which allows the Manger to send a feedback message at initialization without changing the state of the sensor with respect to whether or not a feedback request was sent.void
message(DCCppMessage l)
Member function that will be invoked by a DCCppInterface implementation to forward a DCC++ message sent to the layout.void
message(DCCppReply l)
Member function that will be invoked by a DCCppInterface implementation to forward a DCC++ message from the layout.void
notifyTimeout(DCCppMessage msg)
Member function invoked by an DCCppInterface implementation to notify a sender that an outgoing message timed out and was dropped from the queue.void
requestUpdateFromLayout()
request an update on status by sending a DCC++ message-
Methods inherited from class jmri.implementation.AbstractSensor
canInvert, describeState, getBeanType, getInverted, getKnownState, getPullResistance, getRawState, getReporter, getSensorDebounceGoingActiveTimer, getSensorDebounceGoingInActiveTimer, getState, getUseDefaultTimerSettings, sensorDebounce, setInverted, setKnownState, setOwnState, setPullResistance, setReporter, setSensorDebounceGoingActiveTimer, setSensorDebounceGoingInActiveTimer, setState, setUseDefaultTimerSettings, stateChangeCheck
-
Methods inherited from class jmri.implementation.AbstractNamedBean
addPropertyChangeListener, addPropertyChangeListener, addPropertyChangeListener, addPropertyChangeListener, compareSystemNameSuffix, equals, firePropertyChange, getComment, getDisplayName, getDisplayName, getListenerRef, getListenerRefs, getNumPropertyChangeListeners, getProperty, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeListenersByReference, getPropertyKeys, getSystemName, getUserName, hashCode, removeProperty, removePropertyChangeListener, removePropertyChangeListener, setComment, setProperty, setUserName, toString, toStringSuffix, updateListenerRef, vetoableChange
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface jmri.NamedBean
addPropertyChangeListener, addPropertyChangeListener, compareSystemNameSuffix, compareTo, getComment, getDisplayName, getDisplayName, getListenerRef, getListenerRefs, getNumPropertyChangeListeners, getProperty, getPropertyChangeListenersByReference, getPropertyKeys, getSystemName, getUsageReport, getUserName, removeProperty, setComment, setProperty, setUserName, toString, updateListenerRef, vetoableChange
-
Methods inherited from interface jmri.beans.PropertyChangeProvider
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
-
Methods inherited from interface jmri.Sensor
getCommandedState, isConsistentState, setCommandedState
-
-
-
-
Field Detail
-
tc
protected DCCppTrafficController tc
-
-
Constructor Detail
-
DCCppSensor
public DCCppSensor(java.lang.String systemName, java.lang.String userName, DCCppTrafficController controller)
-
DCCppSensor
public DCCppSensor(java.lang.String systemName, DCCppTrafficController controller)
-
-
Method Detail
-
getPullup
public boolean getPullup()
-
getPin
public int getPin()
-
getIndex
public int getIndex()
-
requestUpdateFromLayout
public void requestUpdateFromLayout()
request an update on status by sending a DCC++ message- Specified by:
requestUpdateFromLayout
in interfaceDigitalIO
-
initmessage
void initmessage(DCCppReply l)
initmessage is a package protected class which allows the Manger to send a feedback message at initialization without changing the state of the sensor with respect to whether or not a feedback request was sent. This is used only when the sensor is created by on layout feedback.- Parameters:
l
- Init message
-
message
public void message(DCCppReply l)
Member function that will be invoked by a DCCppInterface implementation to forward a DCC++ message from the layout. implementing classes will typically have a function/listener to get updates from the layout, which will then call public void firePropertyChange(String propertyName, Object oldValue, Object newValue) _once_ if anything has changed state (or set the commanded state directly)- Specified by:
message
in interfaceDCCppListener
- Parameters:
l
- The received DCC++ message. Note that this same object may be presented to multiple users. It should not be modified here.
-
message
public void message(DCCppMessage l)
Member function that will be invoked by a DCCppInterface implementation to forward a DCC++ message sent to the layout. Normally, this function will do nothing. Listen for the messages to the Base Station... but ignore them.- Specified by:
message
in interfaceDCCppListener
- Parameters:
l
- the message heard
-
notifyTimeout
public void notifyTimeout(DCCppMessage msg)
Description copied from interface:DCCppListener
Member function invoked by an DCCppInterface implementation to notify a sender that an outgoing message timed out and was dropped from the queue.- Specified by:
notifyTimeout
in interfaceDCCppListener
- Parameters:
msg
- the message that timed out.
-
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.
-
getNumber
int getNumber()
-
getBaseAddress
int getBaseAddress()
-
getNibble
int getNibble()
-
-