Class SerialX10Light

All Implemented Interfaces:
Comparable<NamedBean>, AnalogIO, PropertyChangeProvider, DigitalIO, Light, NamedBean, VariableLight
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.

  • Field Details

    • 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();

    • tc

  • Constructor Details

    • SerialX10Light

      Create a Light object, with only system name.

      'systemName' was previously validated in SerialLightManager

      Parameters:
      systemName - system name
      tc - traffic controller
    • 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

      Parameters:
      systemName - system name
      tc - traffic controller
      userName - user name
  • Method Details

    • 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
      Parameters:
      intensity - new intensity
    • getNumberOfSteps

      protected int getNumberOfSteps()
      Number of steps from dim to bright is maintained in specific SerialTrafficController implementation
      Specified by:
      getNumberOfSteps in class AbstractVariableLight
      Returns:
      number of steps
    • sendOnOffCommand

      protected void sendOnOffCommand(int newState)
      Send a On/Off Command to the hardware
      Overrides:
      sendOnOffCommand in class SerialLight
      Parameters:
      newState - new state