jmri.jmrix.powerline
Class SerialX10Light

java.lang.Object
  extended by jmri.implementation.AbstractNamedBean
      extended by jmri.implementation.AbstractLight
          extended by jmri.implementation.AbstractVariableLight
              extended by jmri.jmrix.powerline.SerialLight
                  extended by jmri.jmrix.powerline.SerialX10Light
All Implemented Interfaces:
Serializable, Light, NamedBean
Direct Known Subclasses:
SpecificLight, SpecificLight, SpecificX10Light, SpecificX10Light

public class SerialX10Light
extends SerialLight

Implementation of the Light class for X10-based subclasses.

Uses X10 dimming commands to set intensity unless the value is 0.0 or 1.0, in which case it uses on/off commands only.

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.

Keeps track of the controller's "dim count", and if not certain forces it to zero to be sure.

Author:
Dave Duchamp Copyright (C) 2004, Bob Jacobsen Copyright (C) 2006, 2007, 2008, 2009, 2010, Ken Cameron Copyright (C) 2009, 2010 Converted to multiple connection, kcameron Copyright (C) 2011
See Also:
Serialized Form

Field Summary
protected  int lastOutputStep
          Current output step 0 to maxDimStep.
protected  int maxDimStep
          Largest X10 dim step number available.
 
Fields inherited from class jmri.jmrix.powerline.SerialLight
devicecode, housecode, idhighbyte, idlowbyte, idmiddlebyte
 
Fields inherited from class jmri.implementation.AbstractVariableLight
alarmSyncUpdate, internalClock, minuteChangeListener, mLastTransitionDate, mNextTransitionTs, mTransitionDuration, mTransitionTargetIntensity
 
Fields inherited from class jmri.implementation.AbstractLight
lightControlList, mActive, mCurrentIntensity, mEnabled, mMaxIntensity, mMinIntensity, mState
 
Fields inherited from class jmri.implementation.AbstractNamedBean
mSystemName, mUserName
 
Fields inherited from interface jmri.Light
FAST_CLOCK_CONTROL, INTERMEDIATE, NO_CONTROL, OFF, ON, SENSOR_CONTROL, TIMED_ON_CONTROL, TRANSITIONING, TRANSITIONINGHIGHER, TRANSITIONINGLOWER, TRANSITIONINGTOFULLOFF, TRANSITIONINGTOFULLON, TURNOUT_STATUS_CONTROL, TWO_SENSOR_CONTROL
 
Fields inherited from interface jmri.NamedBean
INCONSISTENT, UNKNOWN
 
Constructor Summary
SerialX10Light(String systemName, SerialTrafficController tc)
          Create a Light object, with only system name.
SerialX10Light(String systemName, SerialTrafficController tc, String userName)
          Create a Light object, with both system and user names.
 
Method Summary
protected  int getNumberOfSteps()
          Number of steps from dim to bright is maintained in specific SerialTrafficController implementation
protected  void initIntensity(double intensity)
          Optionally, force control to a known "dim count".
protected  void sendIntensity(double intensity)
          Send a Dim/Bright commands to the X10 hardware to reach a specific intensity.
protected  void sendOnOffCommand(int newState)
          Send a On/Off Command to the hardware
 
Methods inherited from class jmri.jmrix.powerline.SerialLight
initializeLight
 
Methods inherited from class jmri.implementation.AbstractVariableLight
getTransitionTime, isIntensityVariable, isTransitionAvailable, isTransitioning, newInternalMinute, notifyTargetIntensityChange, setState, setTargetIntensity, setTransitionTime, startTransition
 
Methods inherited from class jmri.implementation.AbstractLight
activateLight, addLightControl, clearLightControls, deactivateLight, doNewState, getCurrentIntensity, getEnabled, getLightControlList, getMaxIntensity, getMinIntensity, getState, getTargetIntensity, notifyStateChange, setEnabled, setMaxIntensity, setMinIntensity, updateIntensityHigh, updateIntensityIntermediate, updateIntensityLow
 
Methods inherited from class jmri.implementation.AbstractNamedBean
addPropertyChangeListener, addPropertyChangeListener, dispose, firePropertyChange, getComment, getDisplayName, getListenerRef, getListenerRefs, getNumPropertyChangeListeners, getProperty, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyKeys, getSystemName, getUserName, removePropertyChangeListener, setComment, setProperty, setUserName, updateListenerRef
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface jmri.NamedBean
addPropertyChangeListener, addPropertyChangeListener, dispose, getComment, getDisplayName, getListenerRef, getListenerRefs, getNumPropertyChangeListeners, getProperty, getPropertyChangeListeners, getPropertyKeys, getSystemName, getUserName, removePropertyChangeListener, setComment, setProperty, setUserName, updateListenerRef
 

Field Detail

lastOutputStep

protected int lastOutputStep
Current output step 0 to maxDimStep.

-1 means unknown


maxDimStep

protected int maxDimStep
Largest X10 dim step number available.

Loaded from SerialTrafficController.getNumberOfIntensitySteps();

Constructor Detail

SerialX10Light

public SerialX10Light(String systemName,
                      SerialTrafficController tc)
Create a Light object, with only system name.

'systemName' was previously validated in SerialLightManager


SerialX10Light

public SerialX10Light(String systemName,
                      SerialTrafficController tc,
                      String userName)
Create a Light object, with both system and user names.

'systemName' was previously validated in SerialLightManager

Method Detail

initIntensity

protected void initIntensity(double intensity)
Optionally, force control to a known "dim count".

Invoked the first time intensity is set.

Overrides:
initIntensity in class SerialLight
Parameters:
intensity - The next intensity value that will be set

sendIntensity

protected void sendIntensity(double intensity)
Send a Dim/Bright commands to the X10 hardware to reach a specific intensity. Acts immediately, and changes no general state.

This sends "Dim" commands.

Specified by:
sendIntensity in class AbstractVariableLight

getNumberOfSteps

protected int getNumberOfSteps()
Number of steps from dim to bright is maintained in specific SerialTrafficController implementation

Specified by:
getNumberOfSteps in class AbstractVariableLight

sendOnOffCommand

protected void sendOnOffCommand(int newState)
Send a On/Off Command to the hardware

Overrides:
sendOnOffCommand in class SerialLight


Copyright © 1997 - 2011 JMRI Community.
JMRI, DecoderPro, PanelPro, SoundPro, DispatcherPro and associated logos are our trademarks.

Additional information on copyright, trademarks and licenses is linked here.
Site hosted by: Get JMRI Model Railroad Interface at SourceForge.net. Fast, secure and Free Open Source software downloads