linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Heart Rate Profile API
  2012-02-17 10:37 RFC Heart Rate API Santiago Carot-Nemesio
@ 2012-02-17 10:37 ` Santiago Carot-Nemesio
  2012-02-17 12:00   ` Anderson Lizardo
  0 siblings, 1 reply; 16+ messages in thread
From: Santiago Carot-Nemesio @ 2012-02-17 10:37 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Santiago Carot-Nemesio

---
 doc/heartrate-api.txt |   58 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 58 insertions(+), 0 deletions(-)
 create mode 100644 doc/heartrate-api.txt

diff --git a/doc/heartrate-api.txt b/doc/heartrate-api.txt
new file mode 100644
index 0000000..692e8b8
--- /dev/null
+++ b/doc/heartrate-api.txt
@@ -0,0 +1,58 @@
+BlueZ D-Bus Heart Rate API description
+****************************************
+
+	Santiago Carot-Nemesio <sancane@gmail.com>
+
+Heart Rate Profile hierarchy
+============================
+
+Service		org.bluez
+Interface	org.bluez.HeartRate
+Object path	[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+Methods		RegisterWatcher(object agent)
+
+			Registers a heart reat watcher to monitor scanned
+			measurements.
+
+			Possible Errors: org.bluez.Error.InvalidArguments
+
+		UnregisterWatcher(object agent)
+
+			Unregisters a watcher.
+
+			Possible Errors: org.bluez.Error.InvalidArguments
+					org.bluez.Error.NotFound
+
+Heart Rate Watcher hierarchy
+============================
+Service		unique name
+Interface	org.bluez.HeartRateWatcher
+Object path	freely definable
+
+Methods		void MeasurementReceived(dict measure)
+
+			This callback gets called whenever a measure is scanned
+			from the heart rate device. The units for the Value is
+			expressed in beats per minute (bpm). The energy field is
+			optional and it represents the accumulated energy
+			expended in kilo Joules since last time it was reset.
+			Furthermore, the device will be automatically reset when
+			it is needed.
+			The Contact field, when it's present, indicates that the
+			device support contact sensor, besides it will be true
+			if skin contact is detected. The interval field is also
+			optional, it's an array containing RR-Interval values
+			wich represents the time between two R-Wave detections,
+			where the RR-Interval Value 0 is older than the Value 1
+			and so on.
+
+			Dict is defined as below:
+			{
+				"Value" : uint16,
+				"Energy" : uint16,
+				"Contact" : boolean,
+				"Location" : ("Other", "Chest", "Wrist","Finger",
+					"Hand", "Ear Lobe", "Foot"),
+				"Interval" : array{uint16}
+			}
\ No newline at end of file
-- 
1.7.9.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] Heart Rate Profile API
  2012-02-17 10:37 ` [PATCH] Heart Rate Profile API Santiago Carot-Nemesio
@ 2012-02-17 12:00   ` Anderson Lizardo
  2012-02-20  9:54     ` Santiago Carot
  0 siblings, 1 reply; 16+ messages in thread
From: Anderson Lizardo @ 2012-02-17 12:00 UTC (permalink / raw)
  To: Santiago Carot-Nemesio; +Cc: linux-bluetooth

Hi Santiago,

I think this API covers the HR spec well enough. There is the "Reset
Energy Expended" operation which is not being exposed here (I suppose
it could be a method).

A few textual comments below.

On Fri, Feb 17, 2012 at 6:37 AM, Santiago Carot-Nemesio
<sancane@gmail.com> wrote:
> +Heart Rate Profile hierarchy
> +============================
> +
> +Service                org.bluez
> +Interface      org.bluez.HeartRate
> +Object path    [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
> +
> +Methods                RegisterWatcher(object agent)
> +
> +                       Registers a heart reat watcher to monitor scanned
> +                       measurements.

typo: reat -> rate

I would rather not use "scanned" word here as it is not used on the
spec. What about:

"Registers a watcher to monitor heart rate measurements."

> +
> +                       Possible Errors: org.bluez.Error.InvalidArguments
> +
> +               UnregisterWatcher(object agent)
> +
> +                       Unregisters a watcher.
> +
> +                       Possible Errors: org.bluez.Error.InvalidArguments
> +                                       org.bluez.Error.NotFound
> +
> +Heart Rate Watcher hierarchy
> +============================
> +Service                unique name
> +Interface      org.bluez.HeartRateWatcher
> +Object path    freely definable
> +
> +Methods                void MeasurementReceived(dict measure)
> +
> +                       This callback gets called whenever a measure is scanned
> +                       from the heart rate device. The units for the Value is

Suggestion: "This callback is called whenever a heart rate measurement
is received"

typo: units -> unit

> +                       expressed in beats per minute (bpm). The energy field is
> +                       optional and it represents the accumulated energy
> +                       expended in kilo Joules since last time it was reset.
> +                       Furthermore, the device will be automatically reset when
> +                       it is needed.

>From the spec I see this "automatic reset" could happen if this value
becomes 0xFFFF. But the user may want to reset this manually using a
UI button (e.g. when switching exercises).

> +                       The Contact field, when it's present, indicates that the

suggestion: "when it's present"  -> "if present"

> +                       device support contact sensor, besides it will be true

typo: support -> supports

> +                       if skin contact is detected. The interval field is also
> +                       optional, it's an array containing RR-Interval values
> +                       wich represents the time between two R-Wave detections,
> +                       where the RR-Interval Value 0 is older than the Value 1
> +                       and so on.

typo: wich -> which

Suggestion for the beginning of this sentence: "The interval field,
which is also optional, is an array containing RR-Interval values..."

> +
> +                       Dict is defined as below:
> +                       {
> +                               "Value" : uint16,
> +                               "Energy" : uint16,
> +                               "Contact" : boolean,
> +                               "Location" : ("Other", "Chest", "Wrist","Finger",
> +                                       "Hand", "Ear Lobe", "Foot"),
> +                               "Interval" : array{uint16}
> +                       }
> \ No newline at end of file

Be sure to add a new line here, so it does not generate unnecessary
diff when someone edits this file later.

Best Regards,
-- 
Anderson Lizardo
Instituto Nokia de Tecnologia - INdT
Manaus - Brazil

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Heart Rate Profile API
  2012-02-17 12:00   ` Anderson Lizardo
@ 2012-02-20  9:54     ` Santiago Carot
  0 siblings, 0 replies; 16+ messages in thread
From: Santiago Carot @ 2012-02-20  9:54 UTC (permalink / raw)
  To: Anderson Lizardo; +Cc: linux-bluetooth

Hi Anderson,

2012/2/17 Anderson Lizardo <anderson.lizardo@openbossa.org>:
> Hi Santiago,
>
> I think this API covers the HR spec well enough. There is the "Reset
> Energy Expended" operation which is not being exposed here (I suppose
> it could be a method).
>

I'm sorry for being late to answer you.  I agree with your
recommendations. I'll send a new patch fixing it.

Regards.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Heart Rate Profile v.2
@ 2012-02-20  9:54 Santiago Carot-Nemesio
  2012-02-20  9:54 ` [PATCH] Heart Rate Profile API Santiago Carot-Nemesio
  0 siblings, 1 reply; 16+ messages in thread
From: Santiago Carot-Nemesio @ 2012-02-20  9:54 UTC (permalink / raw)
  To: linux-bluetooth

This patch add fixes sugested to the previous RFC.

[PATCH] Heart Rate Profile API

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH] Heart Rate Profile API
  2012-02-20  9:54 Heart Rate Profile v.2 Santiago Carot-Nemesio
@ 2012-02-20  9:54 ` Santiago Carot-Nemesio
  2012-02-23 16:06   ` Anderson Lizardo
  0 siblings, 1 reply; 16+ messages in thread
From: Santiago Carot-Nemesio @ 2012-02-20  9:54 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Santiago Carot-Nemesio

---
 doc/heartrate-api.txt |   70 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 70 insertions(+), 0 deletions(-)
 create mode 100644 doc/heartrate-api.txt

diff --git a/doc/heartrate-api.txt b/doc/heartrate-api.txt
new file mode 100644
index 0000000..f90e90b
--- /dev/null
+++ b/doc/heartrate-api.txt
@@ -0,0 +1,70 @@
+BlueZ D-Bus Heart Rate API description
+****************************************
+
+	Santiago Carot-Nemesio <sancane@gmail.com>
+
+Heart Rate Profile hierarchy
+============================
+
+Service		org.bluez
+Interface	org.bluez.HeartRate
+Object path	[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+Methods		dict GetProperties()
+
+			Returns all properties for the interface. See the
+			Properties section for the available properties.
+
+		RegisterWatcher(object agent)
+
+			Registers a watcher to monitor heart rate measurements.
+
+			Possible Errors: org.bluez.Error.InvalidArguments
+
+		UnregisterWatcher(object agent)
+
+			Unregisters a watcher.
+
+			Possible Errors: org.bluez.Error.InvalidArguments
+					org.bluez.Error.NotFound
+
+		Reset()
+			Restart the accumulation of energy expended from zero.
+
+			Possible Errors: org.bluez.Error.NotSupported
+
+Properties	boolean Reset [readonly]
+
+			True if energy expended is supportted.
+
+Heart Rate Watcher hierarchy
+============================
+Service		unique name
+Interface	org.bluez.HeartRateWatcher
+Object path	freely definable
+
+Methods		void MeasurementReceived(dict measure)
+
+			This callback is called whenever a heart rate measurement
+			is received from the heart rate device. The unit for the
+			Value is expressed in beats per minute (bpm). The energy
+			field is optional and represents the accumulated energy
+			expended in kilo Joules since last time it was resetted.
+			Furthermore, the device will be automatically resetted
+			when it is needed.
+			The Contact field, if present, indicates that the device
+			supports contact sensor, besides it will be true if skin
+			contact is detected. The optional interval field is an
+			array containing RR-Interval values which represent the
+			time between two R-Wave detections, where the RR-Interval
+			Value 0 is older than the Value 1 and so on.
+
+			Dict is defined as below:
+			{
+				"Value" : uint16,
+				"Energy" : uint16,
+				"Contact" : boolean,
+				"Location" : ("Other", "Chest", "Wrist","Finger",
+					"Hand", "Ear Lobe", "Foot"),
+				"Interval" : array{uint16}
+			}
\ No newline at end of file
-- 
1.7.9.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] Heart Rate Profile API
  2012-02-20  9:54 ` [PATCH] Heart Rate Profile API Santiago Carot-Nemesio
@ 2012-02-23 16:06   ` Anderson Lizardo
  2012-02-24  8:00     ` Santiago Carot
  0 siblings, 1 reply; 16+ messages in thread
From: Anderson Lizardo @ 2012-02-23 16:06 UTC (permalink / raw)
  To: Santiago Carot-Nemesio; +Cc: linux-bluetooth

Hi Santiago,

Just minor typos below. After they are fixed, I think it is okay to go upstream.

On Mon, Feb 20, 2012 at 5:54 AM, Santiago Carot-Nemesio
<sancane@gmail.com> wrote:
> +Methods                void MeasurementReceived(dict measure)
> +
> +                       This callback is called whenever a heart rate measurement
> +                       is received from the heart rate device. The unit for the
> +                       Value is expressed in beats per minute (bpm). The energy
> +                       field is optional and represents the accumulated energy
> +                       expended in kilo Joules since last time it was resetted.
> +                       Furthermore, the device will be automatically resetted

resetted -> reset (two occurrences)

> +                       when it is needed.
> +                       The Contact field, if present, indicates that the device
> +                       supports contact sensor, besides it will be true if skin
> +                       contact is detected. The optional interval field is an
> +                       array containing RR-Interval values which represent the
> +                       time between two R-Wave detections, where the RR-Interval
> +                       Value 0 is older than the Value 1 and so on.
> +
> +                       Dict is defined as below:
> +                       {
> +                               "Value" : uint16,
> +                               "Energy" : uint16,
> +                               "Contact" : boolean,
> +                               "Location" : ("Other", "Chest", "Wrist","Finger",
> +                                       "Hand", "Ear Lobe", "Foot"),
> +                               "Interval" : array{uint16}
> +                       }
> \ No newline at end of file

Remember to add the missing newline on the last line of the file (Vim
adds this automatically, so it avoids "collateral" changes if we
simple add the newline at the end of text files).


Best Regards,
-- 
Anderson Lizardo
Instituto Nokia de Tecnologia - INdT
Manaus - Brazil

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Heart Rate Profile API
  2012-02-23 16:06   ` Anderson Lizardo
@ 2012-02-24  8:00     ` Santiago Carot
  0 siblings, 0 replies; 16+ messages in thread
From: Santiago Carot @ 2012-02-24  8:00 UTC (permalink / raw)
  To: Anderson Lizardo; +Cc: linux-bluetooth

Hi Anderson

2012/2/23 Anderson Lizardo <anderson.lizardo@openbossa.org>:
> Hi Santiago,
>
> Just minor typos below. After they are fixed, I think it is okay to go upstream.
>
> On Mon, Feb 20, 2012 at 5:54 AM, Santiago Carot-Nemesio
> <sancane@gmail.com> wrote:
>> +Methods                void MeasurementReceived(dict measure)
>> +
>> +                       This callback is called whenever a heart rate measurement
>> +                       is received from the heart rate device. The unit for the
>> +                       Value is expressed in beats per minute (bpm). The energy
>> +                       field is optional and represents the accumulated energy
>> +                       expended in kilo Joules since last time it was resetted.
>> +                       Furthermore, the device will be automatically resetted
>
> resetted -> reset (two occurrences)
>
>> +                       when it is needed.
>> +                       The Contact field, if present, indicates that the device
>> +                       supports contact sensor, besides it will be true if skin
>> +                       contact is detected. The optional interval field is an
>> +                       array containing RR-Interval values which represent the
>> +                       time between two R-Wave detections, where the RR-Interval
>> +                       Value 0 is older than the Value 1 and so on.
>> +
>> +                       Dict is defined as below:
>> +                       {
>> +                               "Value" : uint16,
>> +                               "Energy" : uint16,
>> +                               "Contact" : boolean,
>> +                               "Location" : ("Other", "Chest", "Wrist","Finger",
>> +                                       "Hand", "Ear Lobe", "Foot"),
>> +                               "Interval" : array{uint16}
>> +                       }
>> \ No newline at end of file
>
> Remember to add the missing newline on the last line of the file (Vim
> adds this automatically, so it avoids "collateral" changes if we
> simple add the newline at the end of text files).
>

It was an oversight. I'll send another patch fixing these issues.
thanks.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH] Heart Rate Profile API
@ 2012-02-24  8:08 Santiago Carot-Nemesio
  2012-03-02  8:55 ` Santiago Carot
  2012-03-02 23:57 ` Johan Hedberg
  0 siblings, 2 replies; 16+ messages in thread
From: Santiago Carot-Nemesio @ 2012-02-24  8:08 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Santiago Carot-Nemesio

---
 doc/heartrate-api.txt |   72 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 0 deletions(-)
 create mode 100644 doc/heartrate-api.txt

diff --git a/doc/heartrate-api.txt b/doc/heartrate-api.txt
new file mode 100644
index 0000000..d2c34ac
--- /dev/null
+++ b/doc/heartrate-api.txt
@@ -0,0 +1,72 @@
+BlueZ D-Bus Heart Rate API description
+****************************************
+
+	Santiago Carot-Nemesio <sancane@gmail.com>
+
+Heart Rate Profile hierarchy
+============================
+
+Service		org.bluez
+Interface	org.bluez.HeartRate
+Object path	[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+Methods		dict GetProperties()
+
+			Returns all properties for the interface. See the
+			Properties section for the available properties.
+
+		RegisterWatcher(object agent)
+
+			Registers a watcher to monitor heart rate measurements.
+
+			Possible Errors: org.bluez.Error.InvalidArguments
+
+		UnregisterWatcher(object agent)
+
+			Unregisters a watcher.
+
+			Possible Errors: org.bluez.Error.InvalidArguments
+					org.bluez.Error.NotFound
+
+		Reset()
+
+			Restart the accumulation of energy expended from zero.
+
+			Possible Errors: org.bluez.Error.NotSupported
+
+Properties	boolean Reset [readonly]
+
+			True if energy expended is supportted.
+
+Heart Rate Watcher hierarchy
+============================
+Service		unique name
+Interface	org.bluez.HeartRateWatcher
+Object path	freely definable
+
+Methods		void MeasurementReceived(dict measure)
+
+			This callback is called whenever a heart rate measurement
+			is received from the heart rate device. The unit for the
+			Value is expressed in beats per minute (bpm). The energy
+			field is optional and represents the accumulated energy
+			expended in kilo Joules since last time it was reset.
+			Furthermore, the device will be automatically reset when
+			it is needed.
+			The Contact field, if present, indicates that the device
+			supports contact sensor, besides it will be true if skin
+			contact is detected. The optional interval field is an
+			array containing RR-Interval values which represent the
+			time between two R-Wave detections, where the RR-Interval
+			Value 0 is older than the Value 1 and so on.
+
+			Dict is defined as below:
+			{
+				"Value" : uint16,
+				"Energy" : uint16,
+				"Contact" : boolean,
+				"Location" : ("Other", "Chest", "Wrist","Finger",
+					"Hand", "Ear Lobe", "Foot"),
+				"Interval" : array{uint16}
+			}
+
-- 
1.7.9.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] Heart Rate Profile API
  2012-02-24  8:08 Santiago Carot-Nemesio
@ 2012-03-02  8:55 ` Santiago Carot
  2012-03-02 23:57 ` Johan Hedberg
  1 sibling, 0 replies; 16+ messages in thread
From: Santiago Carot @ 2012-03-02  8:55 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Santiago Carot-Nemesio

2012/2/24 Santiago Carot-Nemesio <sancane@gmail.com>:
> ---
>  doc/heartrate-api.txt |   72 +++++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 72 insertions(+), 0 deletions(-)
>  create mode 100644 doc/heartrate-api.txt
>
> diff --git a/doc/heartrate-api.txt b/doc/heartrate-api.txt
> new file mode 100644
> index 0000000..d2c34ac
> --- /dev/null
> +++ b/doc/heartrate-api.txt
> @@ -0,0 +1,72 @@
> +BlueZ D-Bus Heart Rate API description
> +****************************************
> +
> +       Santiago Carot-Nemesio <sancane@gmail.com>
> +
> +Heart Rate Profile hierarchy
> +============================
> +
> +Service                org.bluez
> +Interface      org.bluez.HeartRate
> +Object path    [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
> +
> +Methods                dict GetProperties()
> +
> +                       Returns all properties for the interface. See the
> +                       Properties section for the available properties.
> +
> +               RegisterWatcher(object agent)
> +
> +                       Registers a watcher to monitor heart rate measurements.
> +
> +                       Possible Errors: org.bluez.Error.InvalidArguments
> +
> +               UnregisterWatcher(object agent)
> +
> +                       Unregisters a watcher.
> +
> +                       Possible Errors: org.bluez.Error.InvalidArguments
> +                                       org.bluez.Error.NotFound
> +
> +               Reset()
> +
> +                       Restart the accumulation of energy expended from zero.
> +
> +                       Possible Errors: org.bluez.Error.NotSupported
> +
> +Properties     boolean Reset [readonly]
> +
> +                       True if energy expended is supportted.
> +
> +Heart Rate Watcher hierarchy
> +============================
> +Service                unique name
> +Interface      org.bluez.HeartRateWatcher
> +Object path    freely definable
> +
> +Methods                void MeasurementReceived(dict measure)
> +
> +                       This callback is called whenever a heart rate measurement
> +                       is received from the heart rate device. The unit for the
> +                       Value is expressed in beats per minute (bpm). The energy
> +                       field is optional and represents the accumulated energy
> +                       expended in kilo Joules since last time it was reset.
> +                       Furthermore, the device will be automatically reset when
> +                       it is needed.
> +                       The Contact field, if present, indicates that the device
> +                       supports contact sensor, besides it will be true if skin
> +                       contact is detected. The optional interval field is an
> +                       array containing RR-Interval values which represent the
> +                       time between two R-Wave detections, where the RR-Interval
> +                       Value 0 is older than the Value 1 and so on.
> +
> +                       Dict is defined as below:
> +                       {
> +                               "Value" : uint16,
> +                               "Energy" : uint16,
> +                               "Contact" : boolean,
> +                               "Location" : ("Other", "Chest", "Wrist","Finger",
> +                                       "Hand", "Ear Lobe", "Foot"),
> +                               "Interval" : array{uint16}
> +                       }
> +
> --
> 1.7.9.1
>
ping

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Heart Rate Profile API
  2012-02-24  8:08 Santiago Carot-Nemesio
  2012-03-02  8:55 ` Santiago Carot
@ 2012-03-02 23:57 ` Johan Hedberg
  2012-03-03  0:05   ` Anderson Lizardo
  1 sibling, 1 reply; 16+ messages in thread
From: Johan Hedberg @ 2012-03-02 23:57 UTC (permalink / raw)
  To: Santiago Carot-Nemesio; +Cc: linux-bluetooth

Hi Santiago,

On Fri, Feb 24, 2012, Santiago Carot-Nemesio wrote:
> +		Reset()
> +
> +			Restart the accumulation of energy expended from zero.
> +
> +			Possible Errors: org.bluez.Error.NotSupported
> +
> +Properties	boolean Reset [readonly]
> +
> +			True if energy expended is supportted.

The API looks good to me, but I think ResetSupported would make more
sense for this property name. Also, I'd have expected someone from INdT
to either give an ack or nack for this.

Johan

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Heart Rate Profile API
  2012-03-02 23:57 ` Johan Hedberg
@ 2012-03-03  0:05   ` Anderson Lizardo
  2012-03-03 10:30     ` Santiago Carot
  0 siblings, 1 reply; 16+ messages in thread
From: Anderson Lizardo @ 2012-03-03  0:05 UTC (permalink / raw)
  To: Santiago Carot-Nemesio, linux-bluetooth

Hi Johan,

On Fri, Mar 2, 2012 at 7:57 PM, Johan Hedberg <johan.hedberg@gmail.com> wrote:
> Hi Santiago,
>
> On Fri, Feb 24, 2012, Santiago Carot-Nemesio wrote:
>> +             Reset()
>> +
>> +                     Restart the accumulation of energy expended from zero.
>> +
>> +                     Possible Errors: org.bluez.Error.NotSupported
>> +
>> +Properties   boolean Reset [readonly]
>> +
>> +                     True if energy expended is supportted.
>
> The API looks good to me, but I think ResetSupported would make more
> sense for this property name. Also, I'd have expected someone from INdT
> to either give an ack or nack for this.

I previously said "Just minor typos below. After they are fixed, I
think it is okay to go upstream."

The typos were fixed on this last version.

Regarding "Reset" -> "ResetSupported", I agree with your suggestion.

Santiago, also take the opportunity to fix another typo (on the
snippet above): supportted -> supported

Best Regards,
-- 
Anderson Lizardo
Instituto Nokia de Tecnologia - INdT
Manaus - Brazil

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Heart Rate Profile API
  2012-03-03  0:05   ` Anderson Lizardo
@ 2012-03-03 10:30     ` Santiago Carot
  0 siblings, 0 replies; 16+ messages in thread
From: Santiago Carot @ 2012-03-03 10:30 UTC (permalink / raw)
  To: Anderson Lizardo; +Cc: linux-bluetooth

Hi,

2012/3/3 Anderson Lizardo <anderson.lizardo@openbossa.org>:
> Hi Johan,
>
> On Fri, Mar 2, 2012 at 7:57 PM, Johan Hedberg <johan.hedberg@gmail.com> wrote:
>> Hi Santiago,
>>
>> On Fri, Feb 24, 2012, Santiago Carot-Nemesio wrote:
>>> +             Reset()
>>> +
>>> +                     Restart the accumulation of energy expended from zero.
>>> +
>>> +                     Possible Errors: org.bluez.Error.NotSupported
>>> +
>>> +Properties   boolean Reset [readonly]
>>> +
>>> +                     True if energy expended is supportted.
>>
>> The API looks good to me, but I think ResetSupported would make more
>> sense for this property name. Also, I'd have expected someone from INdT
>> to either give an ack or nack for this.
>
> I previously said "Just minor typos below. After they are fixed, I
> think it is okay to go upstream."
>
> The typos were fixed on this last version.
>
> Regarding "Reset" -> "ResetSupported", I agree with your suggestion.
>
> Santiago, also take the opportunity to fix another typo (on the
> snippet above): supportted -> supported

Ok, I'm sending a new patch with the fixes suggested.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH] Heart Rate Profile API
@ 2012-03-03 10:35 Santiago Carot-Nemesio
  2012-03-03 11:48 ` Anderson Lizardo
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Santiago Carot-Nemesio @ 2012-03-03 10:35 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Santiago Carot-Nemesio

---
 doc/heartrate-api.txt |   72 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)
 create mode 100644 doc/heartrate-api.txt

diff --git a/doc/heartrate-api.txt b/doc/heartrate-api.txt
new file mode 100644
index 0000000..5dcaa52
--- /dev/null
+++ b/doc/heartrate-api.txt
@@ -0,0 +1,72 @@
+BlueZ D-Bus Heart Rate API description
+****************************************
+
+	Santiago Carot-Nemesio <sancane@gmail.com>
+
+Heart Rate Profile hierarchy
+============================
+
+Service		org.bluez
+Interface	org.bluez.HeartRate
+Object path	[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+Methods		dict GetProperties()
+
+			Returns all properties for the interface. See the
+			Properties section for the available properties.
+
+		RegisterWatcher(object agent)
+
+			Registers a watcher to monitor heart rate measurements.
+
+			Possible Errors: org.bluez.Error.InvalidArguments
+
+		UnregisterWatcher(object agent)
+
+			Unregisters a watcher.
+
+			Possible Errors: org.bluez.Error.InvalidArguments
+					org.bluez.Error.NotFound
+
+		Reset()
+
+			Restart the accumulation of energy expended from zero.
+
+			Possible Errors: org.bluez.Error.NotSupported
+
+Properties	boolean ResetSupported [readonly]
+
+			True if energy expended is supported.
+
+Heart Rate Watcher hierarchy
+============================
+Service		unique name
+Interface	org.bluez.HeartRateWatcher
+Object path	freely definable
+
+Methods		void MeasurementReceived(dict measure)
+
+			This callback is called whenever a heart rate measurement
+			is received from the heart rate device. The unit for the
+			Value is expressed in beats per minute (bpm). The energy
+			field is optional and represents the accumulated energy
+			expended in kilo Joules since last time it was reset.
+			Furthermore, the device will be automatically reset when
+			it is needed.
+			The Contact field, if present, indicates that the device
+			supports contact sensor, besides it will be true if skin
+			contact is detected. The optional interval field is an
+			array containing RR-Interval values which represent the
+			time between two R-Wave detections, where the RR-Interval
+			Value 0 is older than the Value 1 and so on.
+
+			Dict is defined as below:
+			{
+				"Value" : uint16,
+				"Energy" : uint16,
+				"Contact" : boolean,
+				"Location" : ("Other", "Chest", "Wrist","Finger",
+					"Hand", "Ear Lobe", "Foot"),
+				"Interval" : array{uint16}
+			}
+
-- 
1.7.9.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] Heart Rate Profile API
  2012-03-03 10:35 Santiago Carot-Nemesio
@ 2012-03-03 11:48 ` Anderson Lizardo
  2012-03-05  1:51 ` Johan Hedberg
  2012-03-05  4:57 ` Marcel Holtmann
  2 siblings, 0 replies; 16+ messages in thread
From: Anderson Lizardo @ 2012-03-03 11:48 UTC (permalink / raw)
  To: Santiago Carot-Nemesio; +Cc: linux-bluetooth

Hi Santiago.

On Sat, Mar 3, 2012 at 6:35 AM, Santiago Carot-Nemesio
<sancane@gmail.com> wrote:
> ---
>  doc/heartrate-api.txt |   72 +++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 72 insertions(+)
>  create mode 100644 doc/heartrate-api.txt

ack.

Regards,
-- 
Anderson Lizardo
Instituto Nokia de Tecnologia - INdT
Manaus - Brazil

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Heart Rate Profile API
  2012-03-03 10:35 Santiago Carot-Nemesio
  2012-03-03 11:48 ` Anderson Lizardo
@ 2012-03-05  1:51 ` Johan Hedberg
  2012-03-05  4:57 ` Marcel Holtmann
  2 siblings, 0 replies; 16+ messages in thread
From: Johan Hedberg @ 2012-03-05  1:51 UTC (permalink / raw)
  To: Santiago Carot-Nemesio; +Cc: linux-bluetooth

Hi Santiago,

A couple of issues still:

On Sat, Mar 03, 2012, Santiago Carot-Nemesio wrote:
> @@ -0,0 +1,72 @@
> +BlueZ D-Bus Heart Rate API description
> +****************************************
> +
> +	Santiago Carot-Nemesio <sancane@gmail.com>

Is the above supposed to be a copyright statement? If so, fix it. (the
documentation files need that anyway).

> +Heart Rate Watcher hierarchy
> +============================
> +Service		unique name

Add an empty line after the header.

> +Interface	org.bluez.HeartRateWatcher
> +Object path	freely definable
> +
> +Methods		void MeasurementReceived(dict measure)
> +
> +			This callback is called whenever a heart rate measurement
> +			is received from the heart rate device. The unit for the
> +			Value is expressed in beats per minute (bpm). The energy
> +			field is optional and represents the accumulated energy
> +			expended in kilo Joules since last time it was reset.
> +			Furthermore, the device will be automatically reset when
> +			it is needed.
> +			The Contact field, if present, indicates that the device
> +			supports contact sensor, besides it will be true if skin
> +			contact is detected. The optional interval field is an
> +			array containing RR-Interval values which represent the
> +			time between two R-Wave detections, where the RR-Interval
> +			Value 0 is older than the Value 1 and so on.
> +
> +			Dict is defined as below:
> +			{
> +				"Value" : uint16,
> +				"Energy" : uint16,
> +				"Contact" : boolean,
> +				"Location" : ("Other", "Chest", "Wrist","Finger",
> +					"Hand", "Ear Lobe", "Foot"),
> +				"Interval" : array{uint16}
> +			}

Please reformat the above to be less than 80 characters wide. Right now
some lines are either 80 or 81.

Johan

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] Heart Rate Profile API
  2012-03-03 10:35 Santiago Carot-Nemesio
  2012-03-03 11:48 ` Anderson Lizardo
  2012-03-05  1:51 ` Johan Hedberg
@ 2012-03-05  4:57 ` Marcel Holtmann
  2 siblings, 0 replies; 16+ messages in thread
From: Marcel Holtmann @ 2012-03-05  4:57 UTC (permalink / raw)
  To: Santiago Carot-Nemesio; +Cc: linux-bluetooth

Hi Santiago,

>  doc/heartrate-api.txt |   72 +++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 72 insertions(+)
>  create mode 100644 doc/heartrate-api.txt
> 
> diff --git a/doc/heartrate-api.txt b/doc/heartrate-api.txt
> new file mode 100644
> index 0000000..5dcaa52
> --- /dev/null
> +++ b/doc/heartrate-api.txt
> @@ -0,0 +1,72 @@
> +BlueZ D-Bus Heart Rate API description
> +****************************************
> +
> +	Santiago Carot-Nemesio <sancane@gmail.com>
> +
> +Heart Rate Profile hierarchy
> +============================
> +
> +Service		org.bluez
> +Interface	org.bluez.HeartRate
> +Object path	[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
> +
> +Methods		dict GetProperties()
> +
> +			Returns all properties for the interface. See the
> +			Properties section for the available properties.
> +
> +		RegisterWatcher(object agent)
> +
> +			Registers a watcher to monitor heart rate measurements.
> +
> +			Possible Errors: org.bluez.Error.InvalidArguments
> +
> +		UnregisterWatcher(object agent)
> +
> +			Unregisters a watcher.
> +
> +			Possible Errors: org.bluez.Error.InvalidArguments
> +					org.bluez.Error.NotFound
> +
> +		Reset()
> +
> +			Restart the accumulation of energy expended from zero.
> +
> +			Possible Errors: org.bluez.Error.NotSupported
> +
> +Properties	boolean ResetSupported [readonly]
> +
> +			True if energy expended is supported.
> +
> +Heart Rate Watcher hierarchy
> +============================
> +Service		unique name
> +Interface	org.bluez.HeartRateWatcher
> +Object path	freely definable
> +
> +Methods		void MeasurementReceived(dict measure)
> +
> +			This callback is called whenever a heart rate measurement
> +			is received from the heart rate device. The unit for the
> +			Value is expressed in beats per minute (bpm). The energy
> +			field is optional and represents the accumulated energy
> +			expended in kilo Joules since last time it was reset.
> +			Furthermore, the device will be automatically reset when
> +			it is needed.
> +			The Contact field, if present, indicates that the device
> +			supports contact sensor, besides it will be true if skin
> +			contact is detected. The optional interval field is an
> +			array containing RR-Interval values which represent the
> +			time between two R-Wave detections, where the RR-Interval
> +			Value 0 is older than the Value 1 and so on.
> +
> +			Dict is defined as below:
> +			{
> +				"Value" : uint16,
> +				"Energy" : uint16,
> +				"Contact" : boolean,
> +				"Location" : ("Other", "Chest", "Wrist","Finger",
> +					"Hand", "Ear Lobe", "Foot"),

values are lower-case and either one word or connected via -. Also I
think it is earlobe and not ear lobe. Oxford dictionary please ;)

Regards

Marcel



^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2012-03-05  4:57 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-20  9:54 Heart Rate Profile v.2 Santiago Carot-Nemesio
2012-02-20  9:54 ` [PATCH] Heart Rate Profile API Santiago Carot-Nemesio
2012-02-23 16:06   ` Anderson Lizardo
2012-02-24  8:00     ` Santiago Carot
  -- strict thread matches above, loose matches on Subject: below --
2012-03-03 10:35 Santiago Carot-Nemesio
2012-03-03 11:48 ` Anderson Lizardo
2012-03-05  1:51 ` Johan Hedberg
2012-03-05  4:57 ` Marcel Holtmann
2012-02-24  8:08 Santiago Carot-Nemesio
2012-03-02  8:55 ` Santiago Carot
2012-03-02 23:57 ` Johan Hedberg
2012-03-03  0:05   ` Anderson Lizardo
2012-03-03 10:30     ` Santiago Carot
2012-02-17 10:37 RFC Heart Rate API Santiago Carot-Nemesio
2012-02-17 10:37 ` [PATCH] Heart Rate Profile API Santiago Carot-Nemesio
2012-02-17 12:00   ` Anderson Lizardo
2012-02-20  9:54     ` Santiago Carot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).