| BlueZ D-Bus Thermometer API description |
| **************************************** |
| |
| Santiago Carot-Nemesio <sancane@gmail.com> |
| |
| Health Thermometer Profile hierarchy |
| ===================================== |
| |
| Service org.bluez |
| Interface org.bluez.Thermometer |
| Object path [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX |
| |
| |
| Methods void SetProperty(string name, variant value) |
| |
| Changes the value of the specified property. Only |
| read-write properties can be changed. On success |
| this will emit a PropertyChanged signal. |
| |
| Possible Errors: org.bluez.Error.InvalidArguments |
| |
| dict GetProperties() |
| |
| Returns all properties for the interface. See the |
| Properties section for the available properties. |
| |
| RegisterWatcher(object agent) |
| |
| Registers a watcher to monitor scanned measurements. |
| This agent will be notified about final temperature |
| measurements. |
| |
| Possible Errors: org.bluez.Error.InvalidArguments |
| |
| UnregisterWatcher(object agent) |
| |
| Unregisters a watcher. |
| |
| Final and intermediate temperatures won't be notified to |
| this agent any more. |
| |
| Possible Errors: org.bluez.Error.InvalidArguments |
| org.bluez.Error.NotFound |
| |
| EnableIntermediateMeasurement(object agent) |
| |
| Enables intermediate measurement notifications for this |
| agent if the thermometer supports it. |
| |
| Possible Errors: org.bluez.Error.InvalidArguments |
| org.bluez.Error.NotSupported |
| |
| DisableIntermediateMeasurement(object agent) |
| |
| Disables intermediate measurement notifications for this |
| agent. It will disable notifications in the thermometer |
| when the last agent removes the watcher for intermediate |
| measurements. |
| |
| Possible Errors: org.bluez.Error.InvalidArguments |
| org.bluez.Error.NotFound |
| |
| Signals PropertyChanged(string name, variant value) |
| |
| This signal indicates a changed value of the given |
| property. |
| |
| Properties boolean Intermediate [readonly] |
| |
| True if the thermometer supports intermediate measurement |
| notifications. |
| |
| uint16 Interval (optional) [readwrite] |
| |
| The Measurement Interval defines the time (in seconds) |
| between measurements. This interval is not related to |
| the intermediate measurements and must be defined into |
| a valid range. Setting it to zero means that no periodic |
| measurements will be taken. |
| |
| uint16 Maximum (optional) [readonly] |
| |
| Defines the maximum value allowed for the interval |
| between periodic measurements. |
| |
| uint16 Minimum (optional) [readonly] |
| |
| Defines the minimum value allowed for the interval |
| between periodic measurements. |
| |
| |
| Health Thermometer Watcher hierarchy |
| ==================================== |
| Service unique name |
| Interface org.bluez.ThermometerWatcher |
| Object path freely definable |
| |
| Methods void MeasurementReceived(dict measure) |
| |
| This callback gets called when a measure has been |
| scanned in the thermometer. The Time entry in the dict |
| will be only present if the device supports storing of |
| data. The time value is expressed in seconds since epoch. |
| The value represented is (mantissa) x (10**exponent) |
| See foot note for special values when treating with |
| health devices. |
| |
| Dict is defined as below: |
| { |
| "Exponent" : int8, |
| "Mantissa" : int32, |
| "Unit" : ("Celsius" or "Fahrenheit"), |
| "Time" : uint64, |
| "Type" : ("Armpit", "Body", "Ear", "Finger", |
| "Intestines", "Mouth", "Rectum", "Toe", |
| "Tympanum"), |
| "Measurement" : ("Final" or "Intermediate"), |
| } |
| |
| For special cases, the exponent shall always be zero and |
| the mantissa should be one of following values: |
| |
| NRes = -(2**23) |
| NaN = +(2**23-1) |
| INFINITY = (2**23-2) |
| -INFINITY = -(2**23-2) |