description: >
    Implement to provide sensor readings.  Objects implementing
    Sensor.Value must be instantiated in the correct
    hierarchy within the sensors namespace.  The following sensor
    hierarchies are recognized:
      temperature
      fan_tach
      voltage
      altitude

    Any service implementing Sensor.Value on one or more objects must
    implement org.freedesktop.DBus.ObjectManager on the sensors namespace root.

    All Sensor.Value properties are read-only.

properties:
    - name: Value
      type: int64
      description: >
          The sensor reading.
    - name: Unit
      type: enum[self.Unit]
      description: >
          The unit of the reading.
          For objects in the temperature namespace, Unit must be "DegreesC".
          For objects in the fan_tach namespace, Unit must be "RPMS".
          For objects in the voltage namespace, Unit must be "Volts".
          For objects in the altitude namespace, Unit must be "Meters".
    - name: Scale
      type: int64
      description: >
          The reading scaling factor N, where the actual reading is Value * 10^N.

enumerations:
    - name: Unit
      description: >
        A sensor reading unit.
      values:
        - name: DegreesC
          description: >
            Temperature as degrees Celsius.
        - name: RPMS
          description: >
            Frequency of rotation as revolutions per minute.
        - name: Volts
          description: >
            Electomotive force as volts.
        - name: Meters
          description: >
            Length as meters.


# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
