Package jmri.implementation
Class DefaultSignalMastLogic
java.lang.Object
jmri.implementation.AbstractNamedBean
jmri.implementation.DefaultSignalMastLogic
- All Implemented Interfaces:
VetoableChangeListener,Comparable<NamedBean>,EventListener,PropertyChangeProvider,NamedBean,SignalMastLogic
public class DefaultSignalMastLogic
extends AbstractNamedBean
implements SignalMastLogic, VetoableChangeListener
Default implementation of
SignalMastLogic.-
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) SignalMast(package private) Hashtable<SignalMast,jmri.implementation.DefaultSignalMastLogic.DestinationMast> (package private) boolean(package private) LayoutEditor(package private) LayoutBlock(package private) boolean(package private) LayoutBlock(package private) SignalMast(package private) StringFields 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.SignalMastLogic
PROPERTY_AUTO_BLOCKS, PROPERTY_AUTO_MASTS, PROPERTY_AUTO_TURNOUTS, PROPERTY_BLOCKS, PROPERTY_LENGTH, PROPERTY_MASTS, PROPERTY_SENSORS, PROPERTY_TURNOUTS, PROPERTY_UPDATED_DESTINATION, PROPERTY_UPDATED_SOURCE, STOREALL, STOREMASTSONLY, STORENONE -
Constructor Summary
ConstructorsConstructorDescriptionDefaultSignalMastLogic(SignalMast source) Initialise a Signal Mast Logic for a given source Signal Mast. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddSensor(String sensorName, int state, SignalMast destination) Add an individual control Sensor and its set to state to the Signal Mast Logic.voidallowAutoMaticSignalMastGeneration(boolean allow, SignalMast destination) Sets whether we should allow the system to automatically generate a list of signal masts that could cause a conflicting route.booleanallowAutoMaticSignalMastGeneration(SignalMast destination) Query if we are allowing the system to automatically generate a list of conflicting Signal Mast that have a direct effect on our logic.voidallowTurnoutLock(boolean lock, SignalMast destination) Sets whether we should lock all turnouts between the source and destination signal masts when the logic goes active, to prevent them from being changed.booleanareBlocksIncluded(List<Block> blks) Returns true if any of the blocks in the supplied list are included in any of the logics that set this signal.(package private) booleanCheck if routes to the destination Signal Mast are clear.voidvoiddispose()Note: This does not stop any delayed operations that might be queued.Get the active destination Signal Mast for this Signal Mast Logic.getAssociatedSection(SignalMast destination) Return the Section configured between the source and destination mast.getAutoBlocks(SignalMast destination) Return all the blocks that have been detected as being in use for this logic.getAutoBlocksBetweenMasts(SignalMast destination) Return a list of blocks just that have been detected as being directly between the source and destination mast.intgetAutoBlockState(Block block, SignalMast destination) Return the Set State of a control block as it is configured between the source and destination mast.getAutoMasts(SignalMast destination) Return a list of control masts that have been automatically detected as being directly between the source and destination mast.getAutoSignalMastState(SignalMast mast, SignalMast destination) Return the Set State (Aspect) of a control mast as it is configured between the source and destination mast.getAutoTurnouts(SignalMast destination) Return only the turnouts that have been detected as being directly between the source and destination mast.intgetAutoTurnoutState(Turnout turnout, SignalMast destination) Return the Set State of a control turnout as it is configured between the source and destination mast.For instances in the code where we are dealing with just a bean and a message needs to be passed to the user or in a log.getBlocks(SignalMast destination) Return the Layout Blocks that have been defined by the user to control the SML to the destination mast.intgetBlockState(Block block, SignalMast destination) Return the Set To State of a control block as it is configured between the source and destination mast.getComment(SignalMast dest) Get the comment set on this SML.Return a list of all Signal Masts that have been configured as Destination Masts on this SML.Get the block defined as facing our source signal mast.floatgetMaximumSpeed(SignalMast destination) Get the Maximum Speed set for the destination Signal Mast in this SML.getNamedSensors(SignalMast destination) Return the Sensors that have been defined by the user to control the SML to the destination mast as NamedBeanHandles.getNamedTurnouts(SignalMast destination) Return the Turnouts that have been defined by the user to control the SML to the destination mast as NamedBeanHandles.getProtectingBlock(SignalMast dest) Get the block that the source signal is protecting on the path to the destination signal mast.getSensors(SignalMast destination) Return the Sensors that have been defined by the user to control the SML to the destination mast.intgetSensorState(Sensor sensor, SignalMast destination) Return the Set To State of a control Sensor as it is configured between the source and destination mast.getSignalMasts(SignalMast destination) Return the Signal Masts that have been defined by the user to control the SML to the destination mast.getSignalMastState(SignalMast mast, SignalMast destination) Return the Set To State (Aspect) of a control Signal Mast as it is configured between the source and destination mast.Get the Source Mast.intgetState()No valid integer state, always return a constant.intgetStoreState(SignalMast destination) Return where the signal mast logic should be stored, if so how much.getTurnouts(SignalMast destination) Return the Turnouts that have been defined by the user to control the SML to the destination mast.intgetTurnoutState(Turnout turnout, SignalMast destination) Return the Set State of a control Turnout as it is configured between the source and destination mast.getUsageReport(NamedBean bean) Get a list of references for the specified bean.voidGeneral method to initialise all SMLs on the source SIgnal Mast using destListvoidinitialise(SignalMast destination) Initialise the signal mast after all the parameters have been set.booleanisActive(SignalMast dest) Query if the Signal Mast Logic from the current source signal mast to the destination signal mast is active.booleanisBlockIncluded(Block block, SignalMast destination) Check whether the Block is part of at least one of the logics.booleanisDestinationValid(SignalMast dest) Check if signal mast is a destination signal mast in one of the logicsbooleanisEnabled(SignalMast dest) Query if the Signal Mast Logic from the current source signal mast to the specified destination signal mast is enabled.booleanisSensorIncluded(Sensor sensor, SignalMast destination) Check if a sensor is part of at least one of the logics that set a SignalMast.booleanisSignalMastIncluded(SignalMast signal, SignalMast destination) Check if a signal mast is part of at least one of the logics that set another signal mast.booleanisTurnoutIncluded(Turnout turnout, SignalMast destination) Check if a turnout is part of at least one of the logics that set a signal mast.booleanisTurnoutLockAllowed(SignalMast destination) Query if we are allowing the system to lock turnouts when the logic goes active.voidRemove control elements for a SML pair containing a destination signal mast that itself is incompatible with an SML around a level crossing.booleanremoveDestination(SignalMast dest) Remove the destination signal mast as a pair in this SML.voidremove direction sensors from SML need to autoActiveTrains.voidremoveSensor(String sensorName, SignalMast destination) Remove an individual control Sensor from the Signal Mast Logic.voidremoveSensor(Sensor sen, SignalMast destination) voidremoveTurnout(Turnout turn, SignalMast destination) voidreplaceDestinationMast(SignalMast oldMast, SignalMast newMast) Replace the existing destination Signal Mast with another signal mast.voidreplaceSourceMast(SignalMast oldMast, SignalMast newMast) Replace the existing source Signal Mast with another signal mast.voidsetAssociatedSection(Section sec, SignalMast destination) Define a Section between the source and destination mast.voidsetAutoBlocks(LinkedHashMap<Block, Integer> blocks, SignalMast destination) Set which blocks must be in a given state for the signal mast not to be set to a Stop aspect.voidsetAutoMasts(Hashtable<SignalMast, String> masts, SignalMast destination) Set which control signal masts must be in a given state before our source mast can be set.voidsetAutoTurnouts(Hashtable<Turnout, Integer> turnouts, SignalMast destination) Set which turnouts must be set to a given state for the signal mast not to be set to a Stop aspect.voidsetBlocks(Hashtable<Block, Integer> blocks, SignalMast destination) Set which blocks must be in a given state for the signal mast not to be set to a Stop aspect.voidsetComment(String comment, SignalMast dest) Set the comment for this SML.voidsetConflictingLogic(SignalMast sm, LevelXing lx) Add control elements for a SML pair containing a destination signal mast that itself is skipped as it is incompatible with an SML around a level crossing.voidsetDestinationMast(SignalMast dest) Set the destination signal mast for this SML.voidsetDisabled(SignalMast dest) Set the logic to the destination signal mast to Disabled.voidsetEnabled(SignalMast dest) Set the logic to the destination signal mast to Enabled.voidsetFacingBlock(LayoutBlock facing) Set the block facing our source signal mast.(package private) voidEvaluate the destination signal mast Aspect and set ours accordingly.voidsetMasts(Hashtable<SignalMast, String> masts, SignalMast destination) Set which control signal masts must be in a given state before our source mast can be set.voidsetSensors(Hashtable<NamedBeanHandle<Sensor>, Integer> sensors, SignalMast destination) Set which sensors must be in a given state before our source signal mast can be set.(package private) voidBefore going active or checking that we can go active, wait 500ms for things to settle down to help prevent a race condition.voidsetState(int i) Provide generic access to internal state.voidsetStore(int store, SignalMast destination) Determine if the signal mast logic is stored in the panel file and if all the information is stored.voidsetTurnouts(Hashtable<NamedBeanHandle<Turnout>, Integer> turnouts, SignalMast destination) Set the states that each control turnout must be in for the source signal mast not to be set to a Stop aspect.intAdd direction sensors to SMLvoidSet up a Signal Mast Logic from the Layout Editor panel where its source Signal Mast is present, when useLayoutEditor is set to true.setupLayoutEditorTurnoutDetails(List<LayoutBlock> blks, SignalMast destination) Set the auto turnouts based upon a given list of layout blocks for a specific destination mast.voiduseLayoutEditor(boolean boo, SignalMast destination) Set whether this logic should use the details stored in the Layout Editor to determine which blocks, turnouts will make up the logic between the source and destination signal mast.booleanuseLayoutEditor(SignalMast destination) Query if we are using the Layout Editor panels to build the signal mast logic, blocks, turnouts.booleanuseLayoutEditorBlocks(SignalMast destination) Query if we are using the Layout Editor block information in the signal mast logic.voiduseLayoutEditorDetails(boolean turnouts, boolean blocks, SignalMast destination) Set whether this logic should use the information from the Layout Editor for either blocks or turnouts.booleanuseLayoutEditorTurnouts(SignalMast destination) Query if we are using the Layout Editor turnout information in the signal mast logic.voidMethods inherited from class jmri.implementation.AbstractNamedBean
addPropertyChangeListener, addPropertyChangeListener, addPropertyChangeListener, addPropertyChangeListener, compareSystemNameSuffix, describeState, 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, getComment, getDisplayName, getDisplayName, getListenerRef, getListenerRefs, getProperty, getPropertyChangeListenersByReference, getPropertyKeys, getRecommendedToolTip, getSystemName, getUserName, removeProperty, setComment, setProperty, setUserName, toString, updateListenerRefMethods inherited from interface jmri.beans.PropertyChangeProvider
addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListenerMethods inherited from interface jmri.SignalMastLogic
addPropertyChangeListener, getNumPropertyChangeListeners, removePropertyChangeListener
-
Field Details
-
source
-
destination
-
stopAspect
-
destList
Hashtable<SignalMast,jmri.implementation.DefaultSignalMastLogic.DestinationMast> destList -
editor
-
facingBlock
-
remoteProtectingBlock
-
disposing
boolean disposing -
inWait
-
-
Constructor Details
-
DefaultSignalMastLogic
Initialise a Signal Mast Logic for a given source Signal Mast.- Parameters:
source- The Signal Mast we are configuring an SML for
-
-
Method Details
-
setFacingBlock
Set the block facing our source signal mast.- Specified by:
setFacingBlockin interfaceSignalMastLogic- Parameters:
facing- The Layout Block facing the source Signal Mast
-
getFacingBlock
Get the block defined as facing our source signal mast.- Specified by:
getFacingBlockin interfaceSignalMastLogic- Returns:
- The Layout Block facing the source Signal Mast
-
getProtectingBlock
Get the block that the source signal is protecting on the path to the destination signal mast.- Specified by:
getProtectingBlockin interfaceSignalMastLogic- Parameters:
dest- controlled signal mast- Returns:
- the Layout Block
-
getSourceMast
Get the Source Mast.- Specified by:
getSourceMastin interfaceSignalMastLogic- Returns:
- Signal Mast object.
-
replaceSourceMast
Replace the existing source Signal Mast with another signal mast. This is for use with such tools as the Layout Editor where a signal mast in a certain location can be replaced with another, while the remainder of the configuration stays the same.- Specified by:
replaceSourceMastin interfaceSignalMastLogic- Parameters:
oldMast- Signal Mast currently configured as the source mastnewMast- Signal Mast to act as the replacement source mast
-
replaceDestinationMast
Replace the existing destination Signal Mast with another signal mast. This is for use with such tools as the Layout Editor where a signalmast in a certain location can be replaced with another, while the remainder of the configuration stays the same.- Specified by:
replaceDestinationMastin interfaceSignalMastLogic- Parameters:
oldMast- Signal Mast currently configured as the destination mastnewMast- Signal Mast to act as the replacement destination mast
-
setDestinationMast
Set the destination signal mast for this SML.- Specified by:
setDestinationMastin interfaceSignalMastLogic- Parameters:
dest- controlled signal mast
-
isDestinationValid
Check if signal mast is a destination signal mast in one of the logics- Specified by:
isDestinationValidin interfaceSignalMastLogic- Parameters:
dest- controlled signal mast- Returns:
- true if destination is a destination mast in this object
-
getDestinationList
Return a list of all Signal Masts that have been configured as Destination Masts on this SML.- Specified by:
getDestinationListin interfaceSignalMastLogic- Returns:
- A list of Signal Mast objects
-
getComment
Get the comment set on this SML.- Specified by:
getCommentin interfaceSignalMastLogic- Parameters:
dest- the mast to get the comment from- Returns:
- the comment or an empty string
-
setComment
Set the comment for this SML.- Specified by:
setCommentin interfaceSignalMastLogic- Parameters:
comment- text to add as commentdest- signal mast to add comment to
-
setStore
Determine if the signal mast logic is stored in the panel file and if all the information is stored.- Specified by:
setStorein interfaceSignalMastLogic- Parameters:
store- one ofSignalMastLogic.STOREALL,SignalMastLogic.STOREMASTSONLYorSignalMastLogic.STORENONEdestination- controlled signal mast
-
getStoreState
Return where the signal mast logic should be stored, if so how much.- Specified by:
getStoreStatein interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- one of
SignalMastLogic.STOREALL,SignalMastLogic.STOREMASTSONLYorSignalMastLogic.STORENONE
-
setEnabled
Set the logic to the destination signal mast to Enabled.- Specified by:
setEnabledin interfaceSignalMastLogic- Parameters:
dest- controlled signal mast
-
setDisabled
Set the logic to the destination signal mast to Disabled.- Specified by:
setDisabledin interfaceSignalMastLogic- Parameters:
dest- controlled signal mast
-
isEnabled
Query if the Signal Mast Logic from the current source signal mast to the specified destination signal mast is enabled.- Specified by:
isEnabledin interfaceSignalMastLogic- Parameters:
dest- controlled signal mast- Returns:
- true if enabled
-
isActive
Query if the Signal Mast Logic from the current source signal mast to the destination signal mast is active.- Specified by:
isActivein interfaceSignalMastLogic- Parameters:
dest- controlled signal mast- Returns:
- true if active; false otherwise
-
getActiveDestination
Get the active destination Signal Mast for this Signal Mast Logic.- Specified by:
getActiveDestinationin interfaceSignalMastLogic- Returns:
- the active signal mast or null if none
-
removeDestination
Remove the destination signal mast as a pair in this SML.- Specified by:
removeDestinationin interfaceSignalMastLogic- Parameters:
dest- controlled signal mast- Returns:
- true if there are no more destination signal masts
-
disableLayoutEditorUse
- Specified by:
disableLayoutEditorUsein interfaceSignalMastLogic
-
useLayoutEditor
Set whether this logic should use the details stored in the Layout Editor to determine which blocks, turnouts will make up the logic between the source and destination signal mast.- Specified by:
useLayoutEditorin interfaceSignalMastLogic- Parameters:
boo- Use the Layout Editor details to determine logic detailsdestination- the Destination Signal Mast- Throws:
JmriException- if a path on the layout editor is not valid
-
setupDirectionSensors
Add direction sensors to SML- Specified by:
setupDirectionSensorsin interfaceSignalMastLogic- Returns:
- number of errors
-
removeDirectionSensors
remove direction sensors from SML need to autoActiveTrains.- Specified by:
removeDirectionSensorsin interfaceSignalMastLogic
-
useLayoutEditor
Query if we are using the Layout Editor panels to build the signal mast logic, blocks, turnouts.- Specified by:
useLayoutEditorin interfaceSignalMastLogic- Parameters:
destination- Destination Signal Mast- Returns:
- true if we are using the Layout Editor to build the signal mast logic.
-
useLayoutEditorDetails
public void useLayoutEditorDetails(boolean turnouts, boolean blocks, SignalMast destination) throws JmriException Set whether this logic should use the information from the Layout Editor for either blocks or turnouts.- Specified by:
useLayoutEditorDetailsin interfaceSignalMastLogic- Parameters:
turnouts- set false if not to use the turnout information gathered from the layout editorblocks- set false if not to use the block information gathered from the layout editordestination- Destination Signal Mast- Throws:
JmriException- if a path on the layout editor is not valid
-
useLayoutEditorBlocks
Query if we are using the Layout Editor block information in the signal mast logic.- Specified by:
useLayoutEditorBlocksin interfaceSignalMastLogic- Parameters:
destination- Destination Signal Mast- Returns:
- true if we are using the block information from the Layout Editor.
-
useLayoutEditorTurnouts
Query if we are using the Layout Editor turnout information in the signal mast logic.- Specified by:
useLayoutEditorTurnoutsin interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- true if we are using the turnout information from the Layout Editor.
-
getAssociatedSection
Return the Section configured between the source and destination mast.- Specified by:
getAssociatedSectionin interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- The section object
-
setAssociatedSection
Define a Section between the source and destination mast.- Specified by:
setAssociatedSectionin interfaceSignalMastLogic- Parameters:
sec- The sectiondestination- controlled signal mast
-
allowAutoMaticSignalMastGeneration
Query if we are allowing the system to automatically generate a list of conflicting Signal Mast that have a direct effect on our logic.- Specified by:
allowAutoMaticSignalMastGenerationin interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- true if this is allowed.
-
allowAutoMaticSignalMastGeneration
Sets whether we should allow the system to automatically generate a list of signal masts that could cause a conflicting route.- Specified by:
allowAutoMaticSignalMastGenerationin interfaceSignalMastLogic- Parameters:
allow- set true if we are to allow automatic generation.destination- controlled signal mast
-
allowTurnoutLock
Sets whether we should lock all turnouts between the source and destination signal masts when the logic goes active, to prevent them from being changed. This is dependant upon the hardware allowing for this.- Specified by:
allowTurnoutLockin interfaceSignalMastLogic- Parameters:
lock- set true if the system should lock the turnout.destination- controlled signal mast
-
isTurnoutLockAllowed
Query if we are allowing the system to lock turnouts when the logic goes active.- Specified by:
isTurnoutLockAllowedin interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- true if locking is allowed.
-
setTurnouts
public void setTurnouts(Hashtable<NamedBeanHandle<Turnout>, Integer> turnouts, SignalMast destination) Set the states that each control turnout must be in for the source signal mast not to be set to a Stop aspect.- Specified by:
setTurnoutsin interfaceSignalMastLogic- Parameters:
turnouts- A list of named turnouts and their respective set to state to checkdestination- controlled signal mast
-
setAutoTurnouts
Set which turnouts must be set to a given state for the signal mast not to be set to a Stop aspect. These Turnouts are not stored in the panel file.- Specified by:
setAutoTurnoutsin interfaceSignalMastLogic- Parameters:
turnouts- map of turnouts and their respective set to statedestination- controlled signal mast
-
setBlocks
Set which blocks must be in a given state for the signal mast not to be set to a Stop aspect.- Specified by:
setBlocksin interfaceSignalMastLogic- Parameters:
blocks- map of Blocks and their respective set to statedestination- controlled signal mast
-
setAutoBlocks
Set which blocks must be in a given state for the signal mast not to be set to a Stop aspect. These blocks are not stored in the panel file.- Specified by:
setAutoBlocksin interfaceSignalMastLogic- Parameters:
blocks- map ofBlocks and their respective set to state to be checkeddestination- controlled signal mast
-
setMasts
Set which control signal masts must be in a given state before our source mast can be set.- Specified by:
setMastsin interfaceSignalMastLogic- Parameters:
masts- map of control signal masts and respective set to states to be checkeddestination- controlled signal mast
-
setAutoMasts
Set which control signal masts must be in a given state before our source mast can be set. These Signal Masts are not stored in the panel file.- Specified by:
setAutoMastsin interfaceSignalMastLogic- Parameters:
masts- list of control signal masts and their respective set to state to be checkeddestination- controlled signal mast
-
setSensors
Set which sensors must be in a given state before our source signal mast can be set.- Specified by:
setSensorsin interfaceSignalMastLogic- Parameters:
sensors- TheSensors to be checkeddestination- controlled signal mast
-
addSensor
Add an individual control Sensor and its set to state to the Signal Mast Logic.- Specified by:
addSensorin interfaceSignalMastLogic- Parameters:
sensorName- The sensor to be removedstate- Integer representing the state the control Sensor should be indestination- controlled signal mast
-
removeSensor
Remove an individual control Sensor from the Signal Mast Logic.- Specified by:
removeSensorin interfaceSignalMastLogic- Parameters:
sensorName- The sensor to be removeddestination- controlled signal mast
-
removeSensor
-
getBlocks
Return the Layout Blocks that have been defined by the user to control the SML to the destination mast.- Specified by:
getBlocksin interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- A list of Block objects
-
getAutoBlocks
Return all the blocks that have been detected as being in use for this logic. This includes blocks on level xings that are not directly in the path but do have an effect on the logic.- Specified by:
getAutoBlocksin interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- A list of Block objects
-
getAutoBlocksBetweenMasts
Return a list of blocks just that have been detected as being directly between the source and destination mast. The order of the blocks in the list is the order in which they are connected.- Specified by:
getAutoBlocksBetweenMastsin interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- A list of block objects
-
getTurnouts
Return the Turnouts that have been defined by the user to control the SML to the destination mast.- Specified by:
getTurnoutsin interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- A list of Turnout objects
-
getNamedTurnouts
Return the Turnouts that have been defined by the user to control the SML to the destination mast as NamedBeanHandles.- Specified by:
getNamedTurnoutsin interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- A list of Turnout NamedBeanHandles
-
removeTurnout
-
getAutoTurnouts
Return only the turnouts that have been detected as being directly between the source and destination mast. The order of the turnouts in the list is the order in which they are connected.- Specified by:
getAutoTurnoutsin interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- A list of turnout objects
-
getSensors
Return the Sensors that have been defined by the user to control the SML to the destination mast.- Specified by:
getSensorsin interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- A list of Sensor objects
-
getNamedSensors
Return the Sensors that have been defined by the user to control the SML to the destination mast as NamedBeanHandles.- Specified by:
getNamedSensorsin interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- A list of Sensor NamedBeanHandles
-
getSignalMasts
Return the Signal Masts that have been defined by the user to control the SML to the destination mast.- Specified by:
getSignalMastsin interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- A list of Signal Mast objects
-
getAutoMasts
Return a list of control masts that have been automatically detected as being directly between the source and destination mast. The order of the control masts in the list is the order in which they are connected.- Specified by:
getAutoMastsin interfaceSignalMastLogic- Parameters:
destination- controlled signal mast- Returns:
- A list of signal mast objects
-
initialise
General method to initialise all SMLs on the source SIgnal Mast using destList- Specified by:
initialisein interfaceSignalMastLogic
-
initialise
Initialise the signal mast after all the parameters have been set.- Specified by:
initialisein interfaceSignalMastLogic- Parameters:
destination- controlled signal mast
-
setupLayoutEditorTurnoutDetails
public LinkedHashMap<Block,Integer> setupLayoutEditorTurnoutDetails(List<LayoutBlock> blks, SignalMast destination) Set the auto turnouts based upon a given list of layout blocks for a specific destination mast.- Specified by:
setupLayoutEditorTurnoutDetailsin interfaceSignalMastLogic- Parameters:
blks- List of Layout Blocks.destination- Destination Signal Mast- Returns:
- A LinkedHashMap of the original blocks and their required state, plus any blocks found on double cross-overs that also need to be un-occupied.
-
setupLayoutEditorDetails
Set up a Signal Mast Logic from the Layout Editor panel where its source Signal Mast is present, when useLayoutEditor is set to true.- Specified by:
setupLayoutEditorDetailsin interfaceSignalMastLogic
-
checkStates
boolean checkStates()Check if routes to the destination Signal Mast are clear.- Returns:
- true if the path to the next signal is clear
-
areBlocksIncluded
Returns true if any of the blocks in the supplied list are included in any of the logics that set this signal.- Specified by:
areBlocksIncludedin interfaceSignalMastLogic- Parameters:
blks- A list of Layout Blocks to query against- Returns:
- whether all supplied blocks are in at least one of the logics
-
getBlockState
Return the Set To State of a control block as it is configured between the source and destination mast.- Specified by:
getBlockStatein interfaceSignalMastLogic- Parameters:
block- The Control Layout Blockdestination- controlled signal mast- Returns:
- Integer representing the state the control block should be in
-
isBlockIncluded
Check whether the Block is part of at least one of the logics.- Specified by:
isBlockIncludedin interfaceSignalMastLogic- Parameters:
block- a layout blockdestination- controlled signal mast- Returns:
- true if block is included in any of the Signal Mast Logics that set destination
-
isTurnoutIncluded
Check if a turnout is part of at least one of the logics that set a signal mast.- Specified by:
isTurnoutIncludedin interfaceSignalMastLogic- Parameters:
turnout- the turnout to checkdestination- controlled signal mast- Returns:
- true if turnout is included in any of the Signal Mast Logics that set destination
-
isSensorIncluded
Check if a sensor is part of at least one of the logics that set a SignalMast.- Specified by:
isSensorIncludedin interfaceSignalMastLogic- Parameters:
sensor- the sensor to checkdestination- controlled signal- Returns:
- true if sensor is included in any of the Signal Mast Logics that set destination
-
isSignalMastIncluded
Check if a signal mast is part of at least one of the logics that set another signal mast.- Specified by:
isSignalMastIncludedin interfaceSignalMastLogic- Parameters:
signal- the signal mast to checkdestination- controlled signal mast- Returns:
- true if signal is included in any of the Signal Mast Logics that set destination
-
getAutoBlockState
Return the Set State of a control block as it is configured between the source and destination mast.- Specified by:
getAutoBlockStatein interfaceSignalMastLogic- Parameters:
block- The Control Layout Block.destination- controlled signal mast- Returns:
- The int value representing the occupancy state that the block should show
-
getSensorState
Return the Set To State of a control Sensor as it is configured between the source and destination mast.- Specified by:
getSensorStatein interfaceSignalMastLogic- Parameters:
sensor- The Control Sensordestination- controlled signal mast- Returns:
- Integer representing the state the control Sensor should be in
-
getTurnoutState
Return the Set State of a control Turnout as it is configured between the source and destination mast.- Specified by:
getTurnoutStatein interfaceSignalMastLogic- Parameters:
turnout- The Control Turnoutdestination- controlled signal mast- Returns:
- Integer representing the state the control Sensor should be in
-
getAutoTurnoutState
Return the Set State of a control turnout as it is configured between the source and destination mast.- Specified by:
getAutoTurnoutStatein interfaceSignalMastLogic- Parameters:
turnout- The Control Turnoutdestination- controlled signal mast- Returns:
- The name of the Aspect the Control Mast should display
-
getSignalMastState
Return the Set To State (Aspect) of a control Signal Mast as it is configured between the source and destination mast.- Specified by:
getSignalMastStatein interfaceSignalMastLogic- Parameters:
mast- The Control Signal Mastdestination- controlled signal mast- Returns:
- Integer representing the state the control Signal Mast should be in
-
getAutoSignalMastState
Return the Set State (Aspect) of a control mast as it is configured between the source and destination mast.- Specified by:
getAutoSignalMastStatein interfaceSignalMastLogic- Parameters:
mast- The Control Signal Mastdestination- controlled signal mast- Returns:
- The name of the Aspect the Control Mast should display
-
getMaximumSpeed
Get the Maximum Speed set for the destination Signal Mast in this SML.- Specified by:
getMaximumSpeedin interfaceSignalMastLogic- Parameters:
destination- the destination mast- Returns:
- A number representing the speed
-
setSignalAppearance
void setSignalAppearance()Before going active or checking that we can go active, wait 500ms for things to settle down to help prevent a race condition. -
setMastAppearance
void setMastAppearance()Evaluate the destination signal mast Aspect and set ours accordingly. -
setConflictingLogic
Add control elements for a SML pair containing a destination signal mast that itself is skipped as it is incompatible with an SML around a level crossing.- Specified by:
setConflictingLogicin interfaceSignalMastLogic- Parameters:
sm- The destination Signal Mastlx- The LevelXing Layout Editor element
-
removeConflictingLogic
Remove control elements for a SML pair containing a destination signal mast that itself is incompatible with an SML around a level crossing.- Specified by:
removeConflictingLogicin interfaceSignalMastLogic- Parameters:
sm- The destination Signal Mastlx- The LevelXing Layout Editor element
-
vetoableChange
Description copied from class:AbstractNamedBean- Specified by:
vetoableChangein interfaceNamedBean- Specified by:
vetoableChangein interfaceSignalMastLogic- Specified by:
vetoableChangein interfaceVetoableChangeListener- Overrides:
vetoableChangein classAbstractNamedBean- Throws:
PropertyVetoException
-
dispose
Note: This does not stop any delayed operations that might be queued.- Specified by:
disposein interfaceNamedBean- Specified by:
disposein interfaceSignalMastLogic- Overrides:
disposein classAbstractNamedBean
-
getBeanType
For instances in the code where we are dealing with just a bean and a message needs to be passed to the user or in a log.- Specified by:
getBeanTypein interfaceNamedBean- Returns:
- a string of the bean type, eg Turnout, Sensor etc
-
getState
No valid integer state, always return a constant. -
setState
Description copied from interface:NamedBeanProvide generic access to internal state.This generally shouldn't be used by Java code; use the class-specific form instead (e.g. setCommandedState in Turnout). This is provided to make scripts access easier to read.
-
getUsageReport
Get a list of references for the specified bean.- Specified by:
getUsageReportin interfaceNamedBean- Parameters:
bean- The bean to be checked.- Returns:
- a list of NamedBeanUsageReports or an empty ArrayList.
-