Package jmri.jmrix.nce
Class NceTurnout
java.lang.Object
jmri.implementation.AbstractNamedBean
jmri.implementation.AbstractTurnout
jmri.jmrix.nce.NceTurnout
- All Implemented Interfaces:
PropertyChangeListener,Comparable<NamedBean>,EventListener,PropertyChangeProvider,DigitalIO,NamedBean,Turnout,VariableControlSpanBean
Implement a Turnout via NCE communications.
This object doesn't listen to the NCE communications. This is because it should be the only object that is sending messages for this turnout; more than one Turnout object pointing to a single device is not allowed.
-
Nested Class Summary
Nested classes/interfaces inherited from interface jmri.NamedBean
NamedBean.BadNameException, NamedBean.BadSystemNameException, NamedBean.BadUserNameException, NamedBean.DisplayOptions, NamedBean.DuplicateSystemNameException -
Field Summary
FieldsModifier and TypeFieldDescription(package private) int(package private) static String[](package private) static int[](package private) String(package private) NceTrafficControllerFields inherited from class jmri.implementation.AbstractTurnout
_activeFeedbackType, _cabLockout, _decoderName, _enableCabLockout, _enablePushButtonLockout, _inverted, _pushButtonLockout, _reportLocked, _validDecoderNames, _validFeedbackModes, _validFeedbackNames, _validFeedbackTypes, binaryOutput, DELAYED_FEEDBACK_INTERVAL, inhibitOperation, myOperator, myTurnoutOperation, r, thrFields inherited from class jmri.implementation.AbstractNamedBean
listenerRefs, mSystemName, registerFields inherited from interface jmri.NamedBean
DISPLAY_NAME_FORMAT, INCONSISTENT, PROPERTY_COMMENT, PROPERTY_ENABLED, PROPERTY_KNOWN_STATE, PROPERTY_STATE, PROPERTY_USERNAME, QUOTED_NAME_FORMAT, UNKNOWNFields inherited from interface jmri.Turnout
CABLOCKOUT, CLOSED, DELAYED, DIRECT, EXACT, INDIRECT, LNALTERNATE, LOCKED, MONITORING, ONESENSOR, PROPERTY_COMMANDED_STATE, PROPERTY_DECODER_NAME, PROPERTY_FEEDBACK_MODE, PROPERTY_INVERTED, PROPERTY_LEADING_TURNOUT, PROPERTY_LOCKED, PROPERTY_REPORT_LOCKED, PROPERTY_TURNOUT_DIVERGING_SPEED, PROPERTY_TURNOUT_FEEDBACK_FIRST_SENSOR, PROPERTY_TURNOUT_FEEDBACK_SECOND_SENSOR, PROPERTY_TURNOUT_OPERATION_STATE, PROPERTY_TURNOUT_STRAIGHT_SPEED, PUSHBUTTONLOCKOUT, SIGNAL, THROWN, TWOSENSOR, UNLOCKED -
Constructor Summary
ConstructorsConstructorDescriptionNceTurnout(NceTrafficController tc, String p, int i) NCE turnouts use the NMRA number (0-2044) as their numerical identification. -
Method Summary
Modifier and TypeMethodDescriptionbooleanNCE turnouts can be inverted.booleancanLock(int turnoutLockout) NCE turnouts support two types of lockouts, pushbutton and cab.voidenableLockOperation(int turnoutLockout, boolean enabled) Control which turnout locks are enabled.protected voidforwardCommandChangeToLayout(int newState) Handle a request to change state, typically by sending a message to the layout in some child class.intstatic intintNCE turnouts can provide both modes when properly configured.protected voidsendMessage(boolean closed) (package private) voidsetCommandedStateFromCS(int state) Set the turnout known state to reflect what's been observed from the command station polling.(package private) voidsetKnownStateFromCS(int state) Set the turnout known state to reflect what's been observed from the command station polling.protected voidturnoutPushbuttonLockout(boolean pushButtonLockout) Send a message to the layout to lock or unlock the turnout pushbuttons if true, pushbutton lockout enabled.Methods inherited from class jmri.implementation.AbstractTurnout
describeState, dispose, forwardCommandChangeToLayout, getBeanType, getCommandedState, getControlType, getCurrentOperator, getDecoderName, getDivergingLimit, getDivergingSpeed, getFeedbackMode, getFeedbackModeForOperation, getFeedbackModeName, getFirstNamedSensor, getFirstSensor, getInhibitOperation, getInverted, getKnownState, getLeadingTurnout, getLocked, getNumberControlBits, getReportLocked, getSecondNamedSensor, getSecondSensor, getState, getStraightLimit, getStraightSpeed, getTurnoutOperation, getTurnoutOperator, getUsageReport, getValidDecoderNames, getValidFeedbackModes, getValidFeedbackNames, getValidFeedbackTypes, isCanFollow, isConsistentState, isFollowingCommandedState, leadingTurnoutPropertyChange, newCommandedState, newKnownState, operationPropertyChange, propertyChange, provideFirstFeedbackNamedSensor, provideFirstFeedbackSensor, provideSecondFeedbackNamedSensor, provideSecondFeedbackSensor, requestUpdateFromLayout, sensorPropertyChange, setBinaryOutput, setCommandedState, setCommandedStateAtInterval, setControlType, setDecoderName, setDivergingSpeed, setFeedbackMode, setFeedbackMode, setFollowingCommandedState, setInhibitOperation, setInitialKnownStateFromFeedback, setInverted, setLeadingTurnout, setLeadingTurnout, setLocked, setNumberControlBits, setReportLocked, setState, setStraightSpeed, setTurnoutOperation, stateChangeCheck, statesOk, turnoutPushbuttonLockout, vetoableChangeMethods 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, updateListenerRefMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface jmri.NamedBean
addPropertyChangeListener, addPropertyChangeListener, compareSystemNameSuffix, compareTo, getComment, getDisplayName, getDisplayName, getListenerRef, getListenerRefs, getNumPropertyChangeListeners, getProperty, getPropertyChangeListenersByReference, getPropertyKeys, getRecommendedToolTip, getSystemName, getUserName, removeProperty, setComment, setProperty, setUserName, toString, updateListenerRefMethods inherited from interface jmri.beans.PropertyChangeProvider
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListenerMethods inherited from interface jmri.Turnout
provideFeedbackSensor
-
Field Details
-
tc
-
prefix
-
modeNames
-
modeValues
-
_number
int _number
-
-
Constructor Details
-
NceTurnout
NCE turnouts use the NMRA number (0-2044) as their numerical identification.- Parameters:
tc- traffic controller for connectionp- system connection prefixi- NMRA turnout number
-
-
Method Details
-
getNumber
-
getNumNtTurnouts
-
forwardCommandChangeToLayout
Handle a request to change state, typically by sending a message to the layout in some child class. Public version (used by TurnoutOperator) sends the current commanded state without changing it. Implementing classes will typically check the value of s and send a system specific sendMessage command.- Specified by:
forwardCommandChangeToLayoutin classAbstractTurnout- Parameters:
newState- new state value
-
turnoutPushbuttonLockout
Send a message to the layout to lock or unlock the turnout pushbuttons if true, pushbutton lockout enabled.- Specified by:
turnoutPushbuttonLockoutin classAbstractTurnout
-
setCommandedStateFromCS
Set the turnout known state to reflect what's been observed from the command station polling. A change there means that somebody commanded a state change (by using a throttle), and that command has already taken effect. Hence we use "newCommandedState" to indicate it's taken place. Must be followed by "newKnownState" to complete the turnout action.- Parameters:
state- Observed state, updated state from command station
-
setKnownStateFromCS
Set the turnout known state to reflect what's been observed from the command station polling. A change there means that somebody commanded a state change (by using a throttle), and that command has already taken effect. Hence we use "newKnownState" to indicate it's taken place.- Parameters:
state- Observed state, updated state from command station
-
canInvert
NCE turnouts can be inverted.- Specified by:
canInvertin interfaceTurnout- Overrides:
canInvertin classAbstractTurnout- Returns:
- invert supported
-
getPossibleLockModes
NCE turnouts can provide both modes when properly configured.- Specified by:
getPossibleLockModesin interfaceTurnout- Overrides:
getPossibleLockModesin classAbstractTurnout- Returns:
- Both cab and pushbutton (decoder) modes
-
canLock
NCE turnouts support two types of lockouts, pushbutton and cab. Cab lockout requires the feedback mode to be Monitoring. This implementation by itself doesn't provide locking support. Override this in subclasses that do.- Specified by:
canLockin interfaceTurnout- Overrides:
canLockin classAbstractTurnout- Parameters:
turnoutLockout- the type of lock, one of CABLOCKOUT, PUSHBUTTONLOCKOUT or BOTH = CABLOCKOUT | PUSHBUTTONLOCKOUT- Returns:
- false for not supported
-
enableLockOperation
Control which turnout locks are enabled. Enable turnout lock operators. A turnout can be locked to prevent it being thrown from a cab or push button on the layout if supported by the protocol. Not implemented in AbstractTurnout.- Specified by:
enableLockOperationin interfaceTurnout- Overrides:
enableLockOperationin classAbstractTurnout- Parameters:
turnoutLockout- the type of lockenabled- true if locking is enabled for the given type; false otherwise
-
sendMessage
-