Thread (6 messages) flat view 6 messages, 4 authors, 2011-06-20

Re: [RFC] Health Thermometer Profile API

From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Date: 2011-06-20 09:54:11

Hi,

On Mon, Jun 20, 2011 at 12:07 PM, Santiago Carot-Nemesio
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
---
 doc/thermometer.txt |  101 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 101 insertions(+), 0 deletions(-)
 create mode 100644 doc/thermometer.txt
diff --git a/doc/thermometer.txt b/doc/thermometer.txt
new file mode 100644
index 0000000..9d74403
--- /dev/null
+++ b/doc/thermometer.txt
@@ -0,0 +1,101 @@
+BlueZ D-Bus Thermomether API description
+****************************************
+
+       Santiago Carot-Nemesio <sancane@gmail.com>
+
+Health Thermomether 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.
+
+               dict GetProperties()
+
+                       Returns all properties for the interface. See the
+                       Properties section for the available properties.
+
+Signals                PropertyChanged(string name, variant value)
+
+                       This signal indicates a changed value of the given
+                       property.
+
+               MeasureReceived(dict measure)
+
+                       This signal is emmited when a measure has been scanned
+                       by the thermometer. The Time entry in the dict will be
+                       only present if the device supports storing of data.
+                       The Type entry is optional and it will be provided if
+                       the measure type is non-static. For static measures the
+                       property Type will be provided. The Value entry
+                       corresponds to IEEE-11073 32-bit FLOAT.
+
+                       Dict is defined as below:
+                       {
+                               "Value" : uint32,
+                               "Unit" : ("Celsius" or "Fahrenheit")
+                               "Time" : {
+                                               "Year" : uint16,
+                                               "Month" : uint8,
+                                               "Day" : uint8,
+                                               "Hours" : uint8,
+                                               "Minutes" : uint8,
+                                               "Seconds" : uint8
+                                       }
I would try not got past the Dict, so the Time we could just use a timestamp.
+                               "Type" : uint8,
Hmm, what values can Type assume? Also be aware that D-Bus don't have
enum type so it is a bit inconvenient in some bindings, so perhaps we
should try to avoid them and always convert to human readable string.
+                               "Measurement" : ("Final", "Intermediate")
+                       }
+
+Properties     boolean Enable [readwrite]
+
+                       Switch notification of a measure on or off.
+
+               boolean Intermediate (optional) [readwrite]
+
+                       Switch notification of intermediates measures on or off.
+
+               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
+                       a valid range. Setting it to zero meaning that no
+                       periodic measurements will be taken.
+
+               dict Range (optional) [readonly]
+
+                       Defines the valid range for the interval between
+                       periodic measurements.
+
+                       Dict is defined as below:
+                       {
+                               "Minimum" : uint16,
+                               "Maximum" : uint16,
+                       }
I guess we can just use them directly as properties.
+
+               uint8 Type (optional) [readonly]
+
+                       Describes the type of the temperature measurement in
+                       relation to the thermometer location. If this property
+                       is present, the measure type won't be provided with the
+                       measure received signal. The value corresponds to the
+                       descriptions used in ISO/IEEE 11073-10408-2008.
+                       Possible values:
+                       0 -> Reserved for future use
+                       1 -> Armpit
+                       2 -> Body (general)
+                       3 -> Ear (usually lobe)
+                       4 -> Finger
+                       5 -> Gastro-intestinal Tract
+                       6 -> Mouth
+                       7 -> Rectum
+                       8 -> Toe
+                       9 -> Tympanum (ear drum)
+                       10-255 -> Reserved for future use
Not sure why you need MeasureReceived and PropertyChanged here, I
would use one or another but not both to avoid possible
inconsistencies.


-- 
Luiz Augusto von Dentz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help