Re: [RFC] Health Thermometer Profile API

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

 



Hello,

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 ?

The idea is that applications can enable/disable intermediate
measurement notifications without have to unregister from the
thermometer service. If we use only a method for that purpose we are
forcing to applications to register and unregister themself from the
service even if they only want to disable this feature but remain
receiving final measures.

In any case comments about it are welcome.

>
>> +
>> +                       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,
> --
> Anderson Lizardo
> Instituto Nokia de Tecnologia - INdT
> Manaus - Brazil
>
--
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