Class SerialX10Light

  • All Implemented Interfaces:
    java.lang.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 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​(java.lang.String systemName,
                              SerialTrafficController tc)
        Create a Light object, with only system name.

        'systemName' was previously validated in SerialLightManager

        Parameters:
        systemName - system name
        tc - traffic controller
      • SerialX10Light

        public SerialX10Light​(java.lang.String systemName,
                              SerialTrafficController tc,
                              java.lang.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 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
        Parameters:
        intensity - new intensity