Class DefaultLightControl
- All Implemented Interfaces:
LightControl
Each LightControl holds the information for one control of the parent Light.
Each Light may have as many controls as desired by the user. It is the user's responsibility to ensure that the various control mechanisms do not conflict with one another.
Available control types are those defined in the Light.java interface. Control types: SENSOR_CONTROL FAST_CLOCK_CONTROL TURNOUT_STATUS_CONTROL TIMED_ON_CONTROL TWO_SENSOR_CONTROL
This file is part of JMRI.
JMRI is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation. See the "COPYING" file for a copy of this license.
JMRI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionMain constructor methodsCreate a New LightControl from existing, for use when editing a LightControl -
Method Summary
Modifier and TypeMethodDescriptionvoidActivates a Light Control by control type.booleanareFollowerTimesFaulty(List<LightControl> compareList) Check to see if we have the FastClock Follower has unique times for a single Light.voidDeactivates a LightControl by control type.booleanTest if a LightControl is equal to this oneGet the Second Sensor name.Get the Sensor 1 name for 1 and 2 Sensor Control Types.intGet the Sensor State used by the 1 Sensor ControlGet the Timed On Trigger Sensor name.Get the LightControl Turnout Name.intGet the LightControl Turnout Name.intGet the control type used by the ControlgetDescriptionText(String lightName) Get a Textual Description eg.intGet the Fast Clock Off Hours and Minutes Combined Convenience method of separate getFastClockOnHour() and getFastClockOnMin()intGet the Fast Clock Off Hour.intGet the Fast Clock Off Minute.intGet the Fast Clock On Hours and Minutes Combined Convenience method of separate getFastClockOnHour() and getFastClockOnMin()intGet the Fast Clock On Hour.intGet the Fast Clock On Minute.intGet the Timed On Control DurationGet the Timed On Trigger Sensor name.inthashCode()booleanCheck to see if we have the FastClock Follower has unique times for a single Light Control.voidsetControlSensor2Name(String sensorName) Set Sensor 2 used by the 2 Sensor Control Does NOT update any changelistenersvoidsetControlSensorName(String sensorName) Set Sensor 1 used by the 1 Sensor and 2 Sensor Control Does NOT update any changelisteners If Sensor not present and name not empty, is provided by the SensorManager when #activateLightControl() is calledvoidsetControlSensorSense(int sense) Set the Sensor State used by the Control Does NOT update any changelistenersvoidsetControlTimedOnSensorName(String sensorName) Set Sensor used by the Timed On Control Does NOT update any changelistenersvoidsetControlTurnout(String turnoutName) Set the Turnout used by the Control Does NOT update any changelistenersvoidsetControlTurnoutState(int state) Set the Turnout State used by the Control Does NOT update any changelistenersvoidsetControlType(int type) Set the control type used by the Control Does NOT update any changelistenersvoidsetFastClockControlSchedule(int onHour, int onMin, int offHour, int offMin) Set a Fast Clock LightControl Schedule.voidSet Light to control Does NOT update any changelistenersvoidsetTimedOnDuration(int duration) Set Duration used by the Timed On Control Does NOT update any changeListenersprotected voidInternal routine for handling sensor changes for the 2 Sensor Control Type
-
Field Details
-
_controlSensorSense
-
_timeOnDuration
-
-
Constructor Details
-
DefaultLightControl
public DefaultLightControl()Main constructor methods -
DefaultLightControl
-
DefaultLightControl
Create a New LightControl from existing, for use when editing a LightControl- Parameters:
lc- the LightControl to be copied
-
-
Method Details
-
equals
Test if a LightControl is equal to this one -
hashCode
-
getControlType
Get the control type used by the Control- Specified by:
getControlTypein interfaceLightControl- Returns:
- the Control Type, eg. FAST_CLOCK_CONTROL
-
setControlType
Set the control type used by the Control Does NOT update any changelisteners- Specified by:
setControlTypein interfaceLightControl- Parameters:
type- the Control Type, eg. FAST_CLOCK_CONTROL
-
setControlSensorName
Set Sensor 1 used by the 1 Sensor and 2 Sensor Control Does NOT update any changelisteners If Sensor not present and name not empty, is provided by the SensorManager when #activateLightControl() is called- Specified by:
setControlSensorNamein interfaceLightControl- Parameters:
sensorName- the Sensor name
-
getControlSensorSense
Get the Sensor State used by the 1 Sensor Control- Specified by:
getControlSensorSensein interfaceLightControl- Returns:
- Sensor.ACTIVE or Sensor.INACTIVE
-
getControlSensorName
Get the Sensor 1 name for 1 and 2 Sensor Control Types.- Specified by:
getControlSensorNamein interfaceLightControl- Returns:
- If a Sensor is registered, returns the Sensor.getName() else the Sensor Name as set by #setControlSensorName
-
setControlSensorSense
Set the Sensor State used by the Control Does NOT update any changelisteners- Specified by:
setControlSensorSensein interfaceLightControl- Parameters:
sense- The state to react to, eg. Sensor.ACTIVE or Sensor.INACTIVE
-
getFastClockOnHour
Get the Fast Clock On Hour.- Specified by:
getFastClockOnHourin interfaceLightControl- Returns:
- On Hour value
-
getFastClockOnMin
Get the Fast Clock On Minute.- Specified by:
getFastClockOnMinin interfaceLightControl- Returns:
- On Minute value
-
getFastClockOnCombined
Get the Fast Clock On Hours and Minutes Combined Convenience method of separate getFastClockOnHour() and getFastClockOnMin()- Specified by:
getFastClockOnCombinedin interfaceLightControl- Returns:
- Total combined Minute value
-
getFastClockOffHour
Get the Fast Clock Off Hour.- Specified by:
getFastClockOffHourin interfaceLightControl- Returns:
- Off Hour value
-
getFastClockOffMin
Get the Fast Clock Off Minute.- Specified by:
getFastClockOffMinin interfaceLightControl- Returns:
- Off Minute value
-
getFastClockOffCombined
Get the Fast Clock Off Hours and Minutes Combined Convenience method of separate getFastClockOnHour() and getFastClockOnMin()- Specified by:
getFastClockOffCombinedin interfaceLightControl- Returns:
- Total combined Minute value
-
setFastClockControlSchedule
Set a Fast Clock LightControl Schedule.- Specified by:
setFastClockControlSchedulein interfaceLightControl- Parameters:
onHour- Hour the Light should switch OnonMin- Minute the Light should switch OnoffHour- Hour the Light should switch OffoffMin- Minute the Light should switch Off *
-
getControlTurnoutName
Get the LightControl Turnout Name.- Specified by:
getControlTurnoutNamein interfaceLightControl- Returns:
- The Turnout name
-
setControlTurnout
Set the Turnout used by the Control Does NOT update any changelistenersA Turnout of this name is provided by the TurnoutManager on LightControl Initialisation
- Specified by:
setControlTurnoutin interfaceLightControl- Parameters:
turnoutName- The Turnout name
-
getControlTurnoutState
Get the LightControl Turnout Name.- Specified by:
getControlTurnoutStatein interfaceLightControl- Returns:
- The Turnout name
-
setControlTurnoutState
Set the Turnout State used by the Control Does NOT update any changelisteners- Specified by:
setControlTurnoutStatein interfaceLightControl- Parameters:
state- Turnout state to act on, eg. Turnout.CLOSED or Turnout.THROWN
-
getTimedSensorName
Get the Timed On Trigger Sensor name.- Specified by:
getTimedSensorNamein interfaceLightControl- Returns:
- The Sensor Name as set by #setControlTimedOnSensorName
-
getControlTimedOnSensorName
Get the Timed On Trigger Sensor name.- Specified by:
getControlTimedOnSensorNamein interfaceLightControl- Returns:
- If a Sensor is registered, returns the Sensor.getName() else the Sensor Name as set by #setControlTimedOnSensorName
-
setControlTimedOnSensorName
Set Sensor used by the Timed On Control Does NOT update any changelisteners- Specified by:
setControlTimedOnSensorNamein interfaceLightControl- Parameters:
sensorName- the Sensor name to be used for the On Trigger
-
getTimedOnDuration
Get the Timed On Control Duration- Specified by:
getTimedOnDurationin interfaceLightControl- Returns:
- duration in ms
-
setTimedOnDuration
Set Duration used by the Timed On Control Does NOT update any changeListeners- Specified by:
setTimedOnDurationin interfaceLightControl- Parameters:
duration- in ms following the Sensor On Trigger
-
getControlSensor2Name
Get the Second Sensor name. as used in the 2 Sensor Control Group.- Specified by:
getControlSensor2Namein interfaceLightControl- Returns:
- If a 2nd Sensor is registered, returns the Sensor.getName() else the 2nd Sensor Name as set by #setControlSensor2Name
-
setControlSensor2Name
Set Sensor 2 used by the 2 Sensor Control Does NOT update any changelisteners- Specified by:
setControlSensor2Namein interfaceLightControl- Parameters:
sensorName- the Sensor 2 name
-
setParentLight
Set Light to control Does NOT update any changelisteners- Specified by:
setParentLightin interfaceLightControl- Parameters:
l- the Light object to control
-
getDescriptionText
Get a Textual Description eg. Light Control TestLight ON when TestSensor is Active eg. Light Control ON at 14:00, OFF at 15:00.- Specified by:
getDescriptionTextin interfaceLightControl- Parameters:
lightName- the Light Name, can be empty.- Returns:
- An I18N full-text description of thiscontrol
-
activateLightControl
Activates a Light Control by control type. This method tests the control type, and set up a control mechanism, appropriate for the control type. Adds PropertyChangeListeners to Sensors / Turnout / Fast Clock as necessary- Specified by:
activateLightControlin interfaceLightControl
-
twoSensorChanged
Internal routine for handling sensor changes for the 2 Sensor Control Type -
onOffTimesFaulty
Check to see if we have the FastClock Follower has unique times for a single Light Control.Hour / Minute combination must be unique for each Light to avoid flicker.
- Specified by:
onOffTimesFaultyin interfaceLightControl- Returns:
- true if the clock on time equals the off time, otherwise false.
-
areFollowerTimesFaulty
Check to see if we have the FastClock Follower has unique times for a single Light.Hour / Minute combination must be unique for each Light to avoid flicker.
- Specified by:
areFollowerTimesFaultyin interfaceLightControl- Parameters:
compareList- the ArrayList of other Light Controls to compare against- Returns:
- true if there are multiple exact same times
-
deactivateLightControl
Deactivates a LightControl by control type. This method tests the control type, and deactivates the control mechanism, appropriate for the control type.- Specified by:
deactivateLightControlin interfaceLightControl
-