Class SerialLight
- All Implemented Interfaces:
Comparable<NamedBean>,AnalogIO,PropertyChangeProvider,DigitalIO,Light,NamedBean,VariableLight
- Direct Known Subclasses:
SerialX10Light,SpecificDmxLight,SpecificInsteonLight,SpecificInsteonLight
For X10 devices, uses dimming commands to set intensity unless the value is 0.0 or 1.0, in which case it uses on/off commands only.
For Insteon devices, uses direct setting of intensity level unless the value is 0.0 or 1.0, in which case it uses on/off commands only.
For DMX devices, use direct setting of the intensity level. But an on/off will skip any stepping of the change.
For X10, since the dim/bright step of the hardware is unknown then the Light object is first created, the first time the intensity (not state) is set to other than 0.0 or 1.0, the output is run to it's maximum dim or bright step so that we know the count is right.
For X10, keeps track of the controller's "dim count", and if not certain forces it to zero to be sure.
-
Nested Class Summary
Nested classes/interfaces inherited from interface jmri.AnalogIO
AnalogIO.AbsoluteOrRelativeNested classes/interfaces inherited from interface jmri.NamedBean
NamedBean.BadNameException, NamedBean.BadSystemNameException, NamedBean.BadUserNameException, NamedBean.DisplayOptions, NamedBean.DuplicateSystemNameException -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intprotected intprotected intprotected intprotected int(package private) SerialTrafficControllerprotected intFields inherited from class jmri.implementation.AbstractVariableLight
alarmSyncUpdate, internalClock, minuteChangeListener, mLastTransitionDate, mNextTransitionTs, mTransitionDuration, mTransitionTargetIntensityFields inherited from class jmri.implementation.AbstractLight
lightControlList, mActive, mCurrentIntensity, mEnabled, mMaxIntensity, mMinIntensity, mStateFields inherited from class jmri.implementation.AbstractNamedBean
listenerRefs, mSystemName, registerFields inherited from interface jmri.Light
FAST_CLOCK_CONTROL, INTERMEDIATE, NO_CONTROL, PROPERTY_TARGET_INTENSITY, SENSOR_CONTROL, TIMED_ON_CONTROL, TRANSITIONING, TRANSITIONINGHIGHER, TRANSITIONINGLOWER, TRANSITIONINGTOFULLOFF, TRANSITIONINGTOFULLON, TURNOUT_STATUS_CONTROL, TWO_SENSOR_CONTROLFields 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.VariableLight
PROPERTY_CURRENT_INTENSITY, PROPERTY_MAX_INTENSITY, PROPERTY_MIN_INTENSITY -
Constructor Summary
ConstructorsConstructorDescriptionSerialLight(String systemName, SerialTrafficController tc) Create a Light object, with only system name.SerialLight(String systemName, SerialTrafficController tc, String userName) Create a Light object, with both system and user names. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidInvoked from constructors to set up details.protected voidinitIntensity(double intensity) Optionally, force control to a known "dim count".protected voidsendOnOffCommand(int newState) Send a On/Off Command to the hardwareMethods inherited from class jmri.implementation.AbstractVariableLight
describeState, getAbsoluteOrRelative, getCommandedAnalogValue, getCurrentIntensity, getMax, getMaxIntensity, getMin, getMinIntensity, getNumberOfSteps, getResolution, getState, getTargetIntensity, getTransitionTime, isTransitionAvailable, isTransitioning, newInternalMinute, notifyTargetIntensityChange, sendIntensity, setCommandedAnalogValue, setMaxIntensity, setMinIntensity, setObservedAnalogValue, setState, setState, setTargetIntensity, setTransitionTime, startTransitionMethods inherited from class jmri.implementation.AbstractLight
activateLight, addLightControl, clearLightControls, deactivateLight, doNewState, getBeanType, getEnabled, getLightControlList, getState, getUsageReport, notifyStateChange, setEnabledMethods inherited from class jmri.implementation.AbstractNamedBean
addPropertyChangeListener, addPropertyChangeListener, addPropertyChangeListener, addPropertyChangeListener, compareSystemNameSuffix, 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, updateListenerRef, vetoableChangeMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface jmri.AnalogIO
getKnownAnalogValueMethods inherited from interface jmri.Light
activateLight, addLightControl, clearLightControls, deactivateLight, getCommandedState, getEnabled, getKnownState, getLightControlList, getState, setCommandedState, setEnabledMethods inherited from interface jmri.NamedBean
addPropertyChangeListener, addPropertyChangeListener, compareSystemNameSuffix, compareTo, dispose, getBeanType, getComment, getDisplayName, getDisplayName, getListenerRef, getListenerRefs, getNumPropertyChangeListeners, getProperty, getPropertyChangeListenersByReference, getPropertyKeys, getRecommendedToolTip, getSystemName, getUsageReport, getUserName, removeProperty, setComment, setProperty, setUserName, toString, updateListenerRef, vetoableChangeMethods inherited from interface jmri.beans.PropertyChangeProvider
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListenerMethods inherited from interface jmri.VariableLight
isConsistentState, isConsistentValue, requestUpdateFromLayout
-
Field Details
-
tc
-
housecode
-
devicecode
-
idhighbyte
-
idmiddlebyte
-
idlowbyte
-
unitid
-
-
Constructor Details
-
SerialLight
Create a Light object, with only system name.'systemName' was previously validated in SerialLightManager
- Parameters:
systemName- system name for lighttc- traffic controller
-
SerialLight
Create a Light object, with both system and user names.'systemName' was previously validated in SerialLightManager
- Parameters:
systemName- system name for lighttc- traffic controlleruserName- user name for light
-
-
Method Details
-
initializeLight
Invoked from constructors to set up details. Note: most instance variables are in AbstractLight and AbstractVariableLight base classes. -
initIntensity
Optionally, force control to a known "dim count".Invoked the first time intensity is set.
Default implementation doesn't do anything.
- Parameters:
intensity- float for 0->1.0
-
sendOnOffCommand
Send a On/Off Command to the hardware- Specified by:
sendOnOffCommandin classAbstractVariableLight- Parameters:
newState- new state
-