Re: [RFC] Health Thermometer Profile API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Anderson,

2011/6/28 Anderson Lizardo <anderson.lizardo@xxxxxxxxxxxxx>:
> Hi Santiago,
>
> On Tue, Jun 28, 2011 at 8:25 AM, Santiago Carot-Nemesio
> <sancane@xxxxxxxxx> wrote:
>> ---
>>  doc/thermometer.txt |  125 +++++++++++++++++++++++++++++++++++++++++++++++++++
>>  1 files changed, 125 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..9afd2b2
>> --- /dev/null
>> +++ b/doc/thermometer.txt
>> @@ -0,0 +1,125 @@
>> +BlueZ D-Bus Thermomether API description
>
> Typo: Thermomether -> Thermometer
>
>> +****************************************
>> +
>> +       Santiago Carot-Nemesio <sancane@xxxxxxxxx>
>> +
>> +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 agent
>
> Typo: 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@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>
>
> Regards,


Thanks for your notes.
I'll submit a patch fixing this issues during the day if nobody has
more comments about this API.

Best regards.
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux