mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2024-12-25 11:53:26 +08:00
127 lines
3.5 KiB
Plaintext
127 lines
3.5 KiB
Plaintext
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)
|