Package jmri.implementation
Class MatrixSignalMast
java.lang.Object
jmri.implementation.AbstractNamedBean
jmri.implementation.AbstractSignalMast
jmri.implementation.MatrixSignalMast
- All Implemented Interfaces:
VetoableChangeListener,Comparable<NamedBean>,EventListener,PropertyChangeProvider,NamedBean,Signal,SignalMast
SignalMast implemented via a Binary Matrix (Truth Table) of Apects x Turnout objects.
A MatrixSignalMast is built up from an array of turnouts to control each aspect. System name specifies the creation information (except for the actual output beans):
IF$xsm:basic:one-searchlight:($0001)-3tThe name is a colon-separated series of terms:
- IF$xsm - defines signal masts of this type (x for matriX)
- basic - name of the signaling system
- one-searchlight - name of the particular aspect map/mast model
- ($0001) - small ordinal number for telling various matrix signal masts apart
- name ending in -nt for (binary) Turnout outputs where n = the number of binary outputs, between 1 and mastBitNum i.e. -3t
-
Nested Class Summary
Nested classes/interfaces inherited from interface jmri.NamedBean
NamedBean.BadNameException, NamedBean.BadSystemNameException, NamedBean.BadUserNameException, NamedBean.DisplayOptions, NamedBean.DuplicateSystemNameException -
Field Summary
FieldsFields inherited from class jmri.implementation.AbstractSignalMast
aspect, disabledAspects, disablePermissiveSignalMastLogic, map, mastType, speed, systemDefnFields 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.SignalMast
PROPERTY_ASPECT, PROPERTY_ASPECT_DISABLED, PROPERTY_ASPECT_ENABLED, PROPERTY_PERMISSIVE_SML_DISABLED -
Constructor Summary
ConstructorsConstructorDescriptionMatrixSignalMast(String systemName) MatrixSignalMast(String systemName, String userName) -
Method Summary
Modifier and TypeMethodDescriptionintchar[]getBitsForAspect(String aspect) Look up the pattern for an aspect.getBitstring(String aspect) Provide one series of on/off digits from aspectToOutput hashmap to xml.static intintGet the delay between issuing Matrix Output commands to the outputs on this specific mast.getOutputHandle(int colNum) Fetch output from outputsToBeans hashmap.getOutputName(int colnum) Fetch output from outputsToBeans hashmap and provide to xml.Provide the names of the on/off turnout outputs from outputsToBeans hashmap to xml.char[]Provide Unlit bits to panel for editing.Hand unLitBits to xml.booleanbooleanvoidresetPreviousStates(boolean boo) If the signal mast driver requires the previous state to be cleared down before the next state is set.voidSet aspect to a valid name in the current signal system definition.voidsetAspectDisabled(String aspect) voidsetBitNum(char[] bits) Store number of outputs from integer.voidsetBitNum(int number) Store number of outputs from integer.voidsetBitsForAspect(String aspect, char[] bitArray) Store bits in aspectToOutput hashmap, synchronized.voidsetBitstring(String aspect, char[] bitArray) Receive aspect name from xml and store matching setting in outputsToBeans hashmap.voidsetBitstring(String aspect, String bitString) Receive aspect name from xml and store matching setting in outputsToBeans hashmap.protected static voidsetLastRef(int newVal) voidsetLit(boolean newLit) Set the lit property.voidsetMatrixMastCommandDelay(int delay) Set the delay between issuing Matrix Output commands to the outputs on this specific mast.voidReceive properties from xml, convert name to NamedBeanHandle, store in hashmap outputsToBeans.voidsetUnLitBits(char[] bits) voidsetUnLitBits(String bitString) Receive unLitBits from xml and store.voidupdateOutputs(char[] bits) Send hardware instruction.voidMethods inherited from class jmri.implementation.AbstractSignalMast
allowUnLit, configureAspectTable, configureSignalSystemDefinition, getAllKnownAspects, getAppearanceMap, getAspect, getBeanType, getDisabledAspects, getHeld, getLit, getMastType, getSignalSystem, getSpeed, getState, getUsageReport, getValidAspects, isAspectDisabled, isAtStop, isCleared, isPermissiveSmlDisabled, isShowingRestricting, setAllowUnLit, setAspectEnabled, setHeld, setMastType, setPermissiveSmlDisabled, setStateMethods inherited from class jmri.implementation.AbstractNamedBean
addPropertyChangeListener, addPropertyChangeListener, addPropertyChangeListener, addPropertyChangeListener, compareSystemNameSuffix, describeState, dispose, 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, describeState, dispose, 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
-
outputsToBeans
-
-
Constructor Details
-
MatrixSignalMast
-
MatrixSignalMast
-
-
Method Details
-
setBitsForAspect
Store bits in aspectToOutput hashmap, synchronized.Length of bitArray should match the number of outputs defined, so one digit per output.
- Parameters:
aspect- String valid aspect to definebitArray- char[] of on/off outputs for the aspect, like "00010"
-
getBitsForAspect
Look up the pattern for an aspect.- Parameters:
aspect- String describing a (valid) signal mast aspect, like "Clear" only called for an already existing mast- Returns:
- char[] of on/off outputs per aspect, like "00010" length of array should match the number of outputs defined when a mast is changed in the interface, extra 0's are added or superfluous elements deleted by the Add Mast panel
-
setAspect
Description copied from interface:SignalMastSet aspect to a valid name in the current signal system definition.- Specified by:
setAspectin interfaceSignalMast- Overrides:
setAspectin classAbstractSignalMast- Parameters:
aspect- the new aspect shown
-
setLit
Description copied from class:AbstractSignalMastSet the lit property.This acts on all the SignalHeads included in this SignalMast
- Specified by:
setLitin interfaceSignal- Specified by:
setLitin interfaceSignalMast- Overrides:
setLitin classAbstractSignalMast- Parameters:
newLit- the new value of lit
-
setUnLitBits
-
setUnLitBits
Receive unLitBits from xml and store.- Parameters:
bitString- String for 1-n 1/0 chararacters setting an unlit aspect
-
getUnLitBits
Provide Unlit bits to panel for editing.- Returns:
- char[] containing a series of 1's and 0's set for Unlit mast
-
getUnLitChars
Hand unLitBits to xml.- Returns:
- String for 1-n 1/0 chararacters setting an unlit aspect
-
getOutputHandle
Fetch output from outputsToBeans hashmap. Used?- Parameters:
colNum- int index (1 up to mastBitNum) for the column of the desired output- Returns:
- NamedBeanHandle to the configured turnout output
-
getOutputName
Fetch output from outputsToBeans hashmap and provide to xml.- Parameters:
colnum- int index (1 up to mastBitNum) for the column of the desired output- Returns:
- String with the desplay name of the configured turnout output
- See Also:
-
setBitstring
Receive aspect name from xml and store matching setting in outputsToBeans hashmap.- Parameters:
aspect- String describing (valid) signal mast aspect, like "Clear"bitString- String of 1/0 digits representing on/off outputs per aspect, like "00010"- See Also:
-
setBitstring
Receive aspect name from xml and store matching setting in outputsToBeans hashmap.- Parameters:
aspect- String describing (valid) signal mast aspect, like "Clear"bitArray- char[] of 1/0 digits representing on/off outputs per aspect, like {0,0,0,1,0}
-
getBitstring
Provide one series of on/off digits from aspectToOutput hashmap to xml.- Parameters:
aspect- String describing valid signal mast aspect, like "Clear"- Returns:
- bitString String of 1 (= on) and 0 (= off) chars
-
getOutputs
Provide the names of the on/off turnout outputs from outputsToBeans hashmap to xml.- Returns:
- outputlist List<String> of display names for the outputs in order 1 to (max) mastBitNum
-
setOutput
Receive properties from xml, convert name to NamedBeanHandle, store in hashmap outputsToBeans.- Parameters:
colname- String describing the name of the corresponding output, like "output1"turnoutname- String for the display name of the output, like "LT1"
-
updateOutputs
Send hardware instruction.- Parameters:
bits- char[] of on/off outputs per aspect, like "00010" Length of array should match the number of outputs defined
-
resetPreviousStates
If the signal mast driver requires the previous state to be cleared down before the next state is set.- Parameters:
boo- true to configure for intermediate reset step
-
resetPreviousStates
-
isTurnoutUsed
-
getLastRef
- Returns:
- highest ordinal of all MatrixSignalMasts in use
-
setLastRef
- Parameters:
newVal- for ordinal of all MatrixSignalMasts in use
-
vetoableChange
Description copied from class:AbstractNamedBean- Specified by:
vetoableChangein interfaceNamedBean- Specified by:
vetoableChangein interfaceVetoableChangeListener- Overrides:
vetoableChangein classAbstractSignalMast- Throws:
PropertyVetoException
-
setBitNum
Store number of outputs from integer.- Parameters:
number- int for the number of outputs defined for this mast- See Also:
-
mastBitNum
-
setBitNum
Store number of outputs from integer.- Parameters:
bits- char[] for outputs defined for this mast- See Also:
-
mastBitNum
-
getBitNum
-
setAspectDisabled
- Overrides:
setAspectDisabledin classAbstractSignalMast
-
setMatrixMastCommandDelay
Set the delay between issuing Matrix Output commands to the outputs on this specific mast. Mast Delay will be extended by a connection specific Output Delay set in the connection config.- Parameters:
delay- the new delay in milliseconds- See Also:
-
getMatrixMastCommandDelay
Get the delay between issuing Matrix Output commands to the outputs on this specific mast. Delay be extended by a connection specific Output Delay set in the connection config.- Returns:
- the delay in milliseconds
- See Also:
-