Re: [RFC] Health Thermometer Profile API
From: Anderson Lizardo <hidden>
Date: 2011-06-28 13:48:00
Hi Santiago, On Tue, Jun 28, 2011 at 8:25 AM, Santiago Carot-Nemesio [off-list ref] wrote:
quoted hunk ↗ jump to hunk
--- doc/thermometer.txt | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 125 insertions(+), 0 deletions(-) create mode 100644 doc/thermometer.txtdiff --git a/doc/thermometer.txt b/doc/thermometer.txt new file mode 100644 index 0000000..9afd2b2 --- /dev/null +++ b/doc/thermometer.txt@@ -0,0 +1,125 @@ +BlueZ D-Bus Thermomether API description
Typo: Thermomether -> Thermometer
+**************************************** + + Santiago Carot-Nemesio [off-list ref] + +Health Thermomether Profile hierarchy +=====================================
Typo: Thermomether -> Thermometer
+
+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.
+
+ RegisterThermometerWatcher(object agent)
+
+ Registers a watcher to monitor scanned measures.The agentTypo: measures -> measurements
+ will be notified about final. + + Possible Errors: org.bluez.Error.InvalidArguments + + UnregisterThermometerWatcher(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 + + EnableIntermediateMeasures(object agent) + + Enables intermediate measure notifications for this agent
Typo: measure -> measurement
+ if the thermometer supports it. + + Possible Errors: org.bluez.Error.InvalidArguments + org.bluez.Error.NotSupported + + DisableIntermediateMeasures(object agent)
What about a second argument to RegisterThermometerWatcher() that enables/disables intermediate measurements ?
+ + Disables intermediate measure notifications for this
Typo: measure -> measurement
+ agent. It will disable notifications in the thermometer + when the last agent removes the watcher for intermediate + measures.
Typo: measures -> 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 measure
Typo: measure -> measurement
+ notifications. + + uint16 Interval (optional) [readwrite] + + The Measurement Interval defines the time (in seconds) + between measurements. This interval is not related to + the intermediates measures and must be defined into
Typo: intermediates -> intermediate Typo: measures -> measurements
+ a valid range. Setting it to zero meaning that no
Typo: meaning -> means
+ periodic measurements will be taken. + + uint16 Minimum (optional) [readonly]
This is inverted with Maximum.
+ + Defines the maximum value allowed for the interval + between periodic measurements. + + uint16 Maximum (optional) [readonly] + + Defines the minimuum value allowed for the interval
Typo: minimuum -> minimum
+ between periodic measurements. + + +Health Thermometer Watcher hierarchy +==================================== +Service unique name +Interface org.bluez.ThermometerWatcher +Object path freely definable + +Methods void MeasureReceived(dict measure)
typo (measure vs. measurement)
+ + 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.
IIRC, the "Type" value is also optional.
+
+ 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)
--
1.7.5.2
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.htmlRegards, -- Anderson Lizardo Instituto Nokia de Tecnologia - INdT Manaus - Brazil