Class SerialLight

  • All Implemented Interfaces:
    java.lang.Comparable<NamedBean>, AnalogIO, PropertyChangeProvider, DigitalIO, Light, NamedBean, VariableLight
    Direct Known Subclasses:
    SerialX10Light, SpecificDmxLight, SpecificInsteonLight, SpecificInsteonLight

    public abstract class SerialLight
    extends AbstractVariableLight
    Implementation of the Light Object for Powerline devices.

    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.

    • Constructor Detail

      • SerialLight

        public SerialLight​(java.lang.String systemName,
                           SerialTrafficController tc)
        Create a Light object, with only system name.

        'systemName' was previously validated in SerialLightManager

        Parameters:
        systemName - system name for light
        tc - traffic controller
      • SerialLight

        public SerialLight​(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 for light
        tc - traffic controller
        userName - user name for light
    • Method Detail

      • initializeLight

        protected void initializeLight()
        Invoked from constructors to set up details. Note: most instance variables are in AbstractLight and AbstractVariableLight base classes.
      • initIntensity

        protected void initIntensity​(double intensity)
        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