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

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

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

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

          CriticalAlarmLow may be set to False to clear an alarm condition.
          The behavior of setting CriticalAlarmLow to True is undefined.
signals:
    - name: CriticalHighAlarmAsserted
      description: >
          The high threshold alarm asserted.
      properties:
         - name: SensorValue
           type: double
           description: >
               The sensor value that triggered the alarm change.
    - name: CriticalHighAlarmDeasserted
      description: >
          The high threshold alarm deasserted.
      properties:
         - name: SensorValue
           type: double
           description: >
               The sensor value that triggered the alarm change.
    - name: CriticalLowAlarmAsserted
      description: >
          The low threshold alarm asserted.
      properties:
         - name: SensorValue
           type: double
           description: >
               The sensor value that triggered the alarm change.
    - name: CriticalLowAlarmDeasserted
      description: >
          The low threshold alarm deasserted.
      properties:
         - name: SensorValue
           type: double
           description: >
               The sensor value that triggered the alarm change.
