description: >
    Implement to provide warning class sensor thresholds.  Objects implementing
    Sensor.Threshold.Warning must be instantiated in the correct hierarchy
    within the sensors namespace.  The following sensor hierarchies are
    recognized:
      airflow
      altitude
      current
      energy
      fan_tach
      humidity
      power
      pressure
      temperature
      utilization
      voltage

    Additionally, any object implementing Sensor.Threshold.Warning must also
    implement Sensor.Value.

properties:
    - name: WarningHigh
      type: double
      default: NaN
      description: >
          The upper bound of the warning threshold.  A value of 'NaN' is used to
          indicate there is no threshold of this type.
    - name: WarningLow
      type: double
      default: NaN
      description: >
          The lower bound of the warning threshold.  A value of 'NaN' is used to
          indicate there is no threshold of this type.
    - name: WarningAlarmHigh
      type: boolean
      description: >
          True if the sensor value has exceeded the defined bound. False if the
          sensor value has not exceeded the defined bound.

          WarningAlarmHigh may be set to False to clear an alarm condition. The
          behavior of setting WarningAlarmHigh to True is undefined.
    - name: WarningAlarmLow
      type: boolean
      description: >
          True if the sensor value has exceeded the defined bound. False if the
          sensor value has not exceeded the defined bound.

          WarningAlarmLow may be set to False to clear an alarm condition. The
          behavior of setting WarningAlarmLow to True is undefined.
signals:
    - name: WarningHighAlarmAsserted
      description: >
          The high threshold alarm asserted.
      properties:
          - name: SensorValue
            type: double
            description: >
                The sensor value that triggered the alarm change.
    - name: WarningHighAlarmDeasserted
      description: >
          The high threshold alarm deasserted.
      properties:
          - name: SensorValue
            type: double
            description: >
                The sensor value that triggered the alarm change.
    - name: WarningLowAlarmAsserted
      description: >
          The low threshold alarm asserted.
      properties:
          - name: SensorValue
            type: double
            description: >
                The sensor value that triggered the alarm change.
    - name: WarningLowAlarmDeasserted
      description: >
          The low threshold alarm deasserted.
      properties:
          - name: SensorValue
            type: double
            description: >
                The sensor value that triggered the alarm change.
