Package jmri.implementation
Class DoubleTurnoutSignalHead
java.lang.Object
jmri.implementation.AbstractNamedBean
jmri.implementation.AbstractSignalHead
jmri.implementation.DefaultSignalHead
jmri.implementation.DoubleTurnoutSignalHead
- All Implemented Interfaces:
VetoableChangeListener,Comparable<NamedBean>,EventListener,PropertyChangeProvider,NamedBean,Signal,SignalHead
- Direct Known Subclasses:
TripleOutputSignalHead,TripleTurnoutSignalHead
Drive a single signal head via two "Turnout" objects.
After much confusion, the user-level terminology was changed to call these "Double Output"; the class name remains the same to reduce recoding.
The two Turnout objects are provided during construction, and each drives a specific color (RED and GREEN). Normally, "THROWN" is on, and "CLOSED" is off. YELLOW is provided by turning both on ("THROWN")
This class also listens to the Turnouts to see if they've been changed via some other mechanism.
-
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) NamedBeanHandle<Turnout>(package private) int(package private) NamedBeanHandle<Turnout>(package private) int(package private) TimerFields inherited from class jmri.implementation.DefaultSignalHead
delay, masterDelay, mFlashOn, timerFields inherited from class jmri.implementation.AbstractSignalHead
mAppearance, mHeld, mLitFields 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.Signal
PROPERTY_HELD, PROPERTY_LITFields inherited from interface jmri.SignalHead
DARK, FLASHGREEN, FLASHLUNAR, FLASHRED, FLASHYELLOW, GREEN, HELD, LUNAR, PROPERTY_APPEARANCE, RED, YELLOW -
Constructor Summary
ConstructorsConstructorDescriptionDoubleTurnoutSignalHead(String sys, String user, NamedBeanHandle<Turnout> green, NamedBeanHandle<Turnout> red) DoubleTurnoutSignalHead(String sys, NamedBeanHandle<Turnout> green, NamedBeanHandle<Turnout> red) -
Method Summary
Modifier and TypeMethodDescription(package private) voidcommandState(int red, int green) Sets the output turnouts' commanded state.voiddispose()Remove references to and from this object, so that it can eventually be garbage-collected.getGreen()getRed()booleanCheck if a given turnout is used on this head.(package private) voidChecks if the turnouts' output state matches the commanded output state; if not, then changes the appearance to match the output's current state.voidvoidprotected voidType-specific routine to handle output to the layout hardware.Methods inherited from class jmri.implementation.DefaultSignalHead
appearanceSetsFlashTimer, getUsageReport, getValidStateKeys, getValidStateNames, getValidStates, setAppearance, setHeld, setLit, startFlash, stopFlashMethods inherited from class jmri.implementation.AbstractSignalHead
describeState, getAppearance, getAppearanceKey, getAppearanceKey, getAppearanceName, getAppearanceName, getBeanType, getDefaultStateName, getDefaultValidStateNames, getDefaultValidStates, getHeld, getLit, getState, isAtStop, isCleared, isShowingRestricting, setState, 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, removePropertyChangeListener
-
Field Details
-
mRed
-
mGreen
-
mRedCommanded
int mRedCommanded -
mGreenCommanded
int mGreenCommanded -
readUpdateTimer
-
-
Constructor Details
-
DoubleTurnoutSignalHead
public DoubleTurnoutSignalHead(String sys, String user, NamedBeanHandle<Turnout> green, NamedBeanHandle<Turnout> red) -
DoubleTurnoutSignalHead
public DoubleTurnoutSignalHead(String sys, NamedBeanHandle<Turnout> green, NamedBeanHandle<Turnout> red)
-
-
Method Details
-
updateOutput
Description copied from class:DefaultSignalHeadType-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:
- mAppearance
- mLit
- mFlashOn
- Specified by:
updateOutputin classDefaultSignalHead
-
commandState
Sets the output turnouts' commanded state.- Parameters:
red- state to set the mRed turnoutgreen- state to set the mGreen turnout.
-
dispose
Remove references to and from this object, so that it can eventually be garbage-collected.- Specified by:
disposein interfaceNamedBean- Overrides:
disposein classAbstractNamedBean
-
getRed
-
getGreen
-
setRed
-
setGreen
-
isTurnoutUsed
Description copied from class:AbstractSignalHeadCheck if a given turnout is used on this head.- Overrides:
isTurnoutUsedin classDefaultSignalHead- Parameters:
t- Turnout object to check- Returns:
- true if turnout is configured as output or driver of head
-
readOutput
void readOutput()Checks if the turnouts' output state matches the commanded output state; if not, then changes the appearance to match the output's current state.
-