All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC] Add Generic Device Battery API
@ 2012-08-30 11:26 chen.ganir
  2012-08-30 11:26 ` [PATCH RFC] battery: Add generic device battery interface chen.ganir
  0 siblings, 1 reply; 5+ messages in thread
From: chen.ganir @ 2012-08-30 11:26 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: chen.ganir

From: Chen Ganir <chen.ganir@ti.com>

This API proposal allows exposing peer device battery information to the D-Bus
clients. Profiles supporting peer device battery information (such as AVRCP, 
LE Battery client) may use the internal API (next patch set) to register or
unregister batteries to be listed under the device object path. These batteries
have multiple read-only prpoerties that can be read by the D-Bus clients. In
addition, the new org.bluez.Battery interface allows sending PropertyChanged for
battery properties (such as Battery level).

Battery properties currently include the battery level, namespace and 
description (currently used by the LE battery client). More properties can be
added or removed as we see fit in the future.

Comments on this patch will be appreciated.

Chen Ganir (1):
  battery: Add generic device battery interface

 doc/battery-api.txt |   34 ++++++++++++++++++++++++++++++++++
 doc/device-api.txt  |    5 +++++
 2 files changed, 39 insertions(+)
 create mode 100644 doc/battery-api.txt

-- 
1.7.9.5


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

* [PATCH RFC] battery: Add generic device battery interface
  2012-08-30 11:26 [PATCH RFC] Add Generic Device Battery API chen.ganir
@ 2012-08-30 11:26 ` chen.ganir
  2012-09-06 19:34   ` Claudio Takahasi
  0 siblings, 1 reply; 5+ messages in thread
From: chen.ganir @ 2012-08-30 11:26 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: chen.ganir

From: Chen Ganir <chen.ganir@ti.com>

Add the D-Bus API documentation for the new generic device battery
interface. This API provides generic access to peer devcice
batteries.
---
 doc/battery-api.txt |   34 ++++++++++++++++++++++++++++++++++
 doc/device-api.txt  |    5 +++++
 2 files changed, 39 insertions(+)
 create mode 100644 doc/battery-api.txt

diff --git a/doc/battery-api.txt b/doc/battery-api.txt
new file mode 100644
index 0000000..da82024
--- /dev/null
+++ b/doc/battery-api.txt
@@ -0,0 +1,34 @@
+BlueZ D-Bus Battery API description
+****************************************
+
+	Texas Instruments, Inc. <chen.ganir@ti.com>
+
+Device Battery hierarchy
+=====================================
+
+Service		org.bluez
+Interface	org.bluez.Battery
+Object path	[variable prefix]/{hci0,..}/dev_XX_XX_XX_XX_XX_XX/BATTYYYY
+YYYY is numeric value between 0 and 9999.
+
+Methods	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.
+
+Properties	uint16 Level [readonly]
+
+			Battery level (0-100).
+
+		uint16 Description [readonly]
+
+			Battery description.
+
+		uint16 Namespace [readonly]
+
+			Battery Namespace.
diff --git a/doc/device-api.txt b/doc/device-api.txt
index 1f0dc96..c98d539 100644
--- a/doc/device-api.txt
+++ b/doc/device-api.txt
@@ -179,3 +179,8 @@ Properties	string Address [readonly]
 			Note that this property can exhibit false-positives
 			in the case of Bluetooth 2.1 (or newer) devices that
 			have disabled Extended Inquiry Response support.
+
+		array{object} Batteries [readonly]
+
+			List of device battery object paths that represents the available
+			batteries on the remote device.
-- 
1.7.9.5


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

* Re: [PATCH RFC] battery: Add generic device battery interface
  2012-08-30 11:26 ` [PATCH RFC] battery: Add generic device battery interface chen.ganir
@ 2012-09-06 19:34   ` Claudio Takahasi
  2012-09-09  5:59     ` Chen Ganir
  0 siblings, 1 reply; 5+ messages in thread
From: Claudio Takahasi @ 2012-09-06 19:34 UTC (permalink / raw)
  To: chen.ganir; +Cc: linux-bluetooth

Hi Chen Ganir:

On Thu, Aug 30, 2012 at 8:26 AM,  <chen.ganir@ti.com> wrote:
> From: Chen Ganir <chen.ganir@ti.com>
>
> Add the D-Bus API documentation for the new generic device battery
> interface. This API provides generic access to peer devcice
> batteries.
> ---
>  doc/battery-api.txt |   34 ++++++++++++++++++++++++++++++++++
>  doc/device-api.txt  |    5 +++++
>  2 files changed, 39 insertions(+)
>  create mode 100644 doc/battery-api.txt
>
> diff --git a/doc/battery-api.txt b/doc/battery-api.txt
> new file mode 100644
> index 0000000..da82024
> --- /dev/null
> +++ b/doc/battery-api.txt
> @@ -0,0 +1,34 @@
> +BlueZ D-Bus Battery API description
> +****************************************
> +
> +       Texas Instruments, Inc. <chen.ganir@ti.com>
> +
> +Device Battery hierarchy
> +=====================================
> +
> +Service                org.bluez
> +Interface      org.bluez.Battery
> +Object path    [variable prefix]/{hci0,..}/dev_XX_XX_XX_XX_XX_XX/BATTYYYY
> +YYYY is numeric value between 0 and 9999.
> +
> +Methods        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.
> +
> +Properties     uint16 Level [readonly]
> +
> +                       Battery level (0-100).
> +
> +               uint16 Description [readonly]
> +
> +                       Battery description.
> +
> +               uint16 Namespace [readonly]
> +
> +                       Battery Namespace.

IMO "Description" and "Namespace" should be string:
http://developer.bluetooth.org/gatt/Pages/GattNamespaceDescriptors.aspx

For BLE Presentation Format is mandatory(Namespace and Description).
For AVRCP, probably it doesn't make sense. I recommend to include
additional description for these fields.

> diff --git a/doc/device-api.txt b/doc/device-api.txt
> index 1f0dc96..c98d539 100644
> --- a/doc/device-api.txt
> +++ b/doc/device-api.txt
> @@ -179,3 +179,8 @@ Properties  string Address [readonly]
>                         Note that this property can exhibit false-positives
>                         in the case of Bluetooth 2.1 (or newer) devices that
>                         have disabled Extended Inquiry Response support.
> +
> +               array{object} Batteries [readonly]
> +
> +                       List of device battery object paths that represents the available
> +                       batteries on the remote device.
> --
> 1.7.9.5
>
> --
> 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.html

Are you planning to implement the Battery Service on BlueZ? (using UPower)
It seems to be straightforward.

Regards,
Claudio

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

* Re: [PATCH RFC] battery: Add generic device battery interface
  2012-09-06 19:34   ` Claudio Takahasi
@ 2012-09-09  5:59     ` Chen Ganir
  2012-09-10 13:24       ` Claudio Takahasi
  0 siblings, 1 reply; 5+ messages in thread
From: Chen Ganir @ 2012-09-09  5:59 UTC (permalink / raw)
  To: Claudio Takahasi; +Cc: linux-bluetooth

Claudio,

On 09/06/2012 10:34 PM, Claudio Takahasi wrote:
> Hi Chen Ganir:
>
> On Thu, Aug 30, 2012 at 8:26 AM,  <chen.ganir@ti.com> wrote:
>> From: Chen Ganir <chen.ganir@ti.com>
>>
>> Add the D-Bus API documentation for the new generic device battery
>> interface. This API provides generic access to peer devcice
>> batteries.
>> ---
>>   doc/battery-api.txt |   34 ++++++++++++++++++++++++++++++++++
>>   doc/device-api.txt  |    5 +++++
>>   2 files changed, 39 insertions(+)
>>   create mode 100644 doc/battery-api.txt
>>
>> diff --git a/doc/battery-api.txt b/doc/battery-api.txt
>> new file mode 100644
>> index 0000000..da82024
>> --- /dev/null
>> +++ b/doc/battery-api.txt
>> @@ -0,0 +1,34 @@
>> +BlueZ D-Bus Battery API description
>> +****************************************
>> +
>> +       Texas Instruments, Inc. <chen.ganir@ti.com>
>> +
>> +Device Battery hierarchy
>> +=====================================
>> +
>> +Service                org.bluez
>> +Interface      org.bluez.Battery
>> +Object path    [variable prefix]/{hci0,..}/dev_XX_XX_XX_XX_XX_XX/BATTYYYY
>> +YYYY is numeric value between 0 and 9999.
>> +
>> +Methods        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.
>> +
>> +Properties     uint16 Level [readonly]
>> +
>> +                       Battery level (0-100).
>> +
>> +               uint16 Description [readonly]
>> +
>> +                       Battery description.
>> +
>> +               uint16 Namespace [readonly]
>> +
>> +                       Battery Namespace.
>
> IMO "Description" and "Namespace" should be string:
> http://developer.bluetooth.org/gatt/Pages/GattNamespaceDescriptors.aspx
>
> For BLE Presentation Format is mandatory(Namespace and Description).
> For AVRCP, probably it doesn't make sense. I recommend to include
> additional description for these fields.
>
After discussing this issue with Johan, we decided to remove the 
Namespace and Description properties from the generic battery. Do you 
think we should have those properties or can we exclude them ? Do you 
see any use case for those properties?

>> diff --git a/doc/device-api.txt b/doc/device-api.txt
>> index 1f0dc96..c98d539 100644
>> --- a/doc/device-api.txt
>> +++ b/doc/device-api.txt
>> @@ -179,3 +179,8 @@ Properties  string Address [readonly]
>>                          Note that this property can exhibit false-positives
>>                          in the case of Bluetooth 2.1 (or newer) devices that
>>                          have disabled Extended Inquiry Response support.
>> +
>> +               array{object} Batteries [readonly]
>> +
>> +                       List of device battery object paths that represents the available
>> +                       batteries on the remote device.
>> --
>> 1.7.9.5
>>
>> --
>> 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.html
>
> Are you planning to implement the Battery Service on BlueZ? (using UPower)
> It seems to be straightforward.
>
The plan is to add a generic Battery implemented into the BlueZ stack, 
but no UPower integration is planned at the moment - maybe later.


> Regards,
> Claudio
>


BR,
Chen Ganir


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

* Re: [PATCH RFC] battery: Add generic device battery interface
  2012-09-09  5:59     ` Chen Ganir
@ 2012-09-10 13:24       ` Claudio Takahasi
  0 siblings, 0 replies; 5+ messages in thread
From: Claudio Takahasi @ 2012-09-10 13:24 UTC (permalink / raw)
  To: Chen Ganir; +Cc: linux-bluetooth

Hi Chen Ganir:

On Sun, Sep 9, 2012 at 2:59 AM, Chen Ganir <chen.ganir@ti.com> wrote:
> Claudio,
>
>
> On 09/06/2012 10:34 PM, Claudio Takahasi wrote:
>>
>> Hi Chen Ganir:
>>
>> On Thu, Aug 30, 2012 at 8:26 AM,  <chen.ganir@ti.com> wrote:
>>>
>>> From: Chen Ganir <chen.ganir@ti.com>
>>>
>>> Add the D-Bus API documentation for the new generic device battery
>>> interface. This API provides generic access to peer devcice
>>> batteries.
>>> ---
>>>   doc/battery-api.txt |   34 ++++++++++++++++++++++++++++++++++
>>>   doc/device-api.txt  |    5 +++++
>>>   2 files changed, 39 insertions(+)
>>>   create mode 100644 doc/battery-api.txt
>>>
>>> diff --git a/doc/battery-api.txt b/doc/battery-api.txt
>>> new file mode 100644
>>> index 0000000..da82024
>>> --- /dev/null
>>> +++ b/doc/battery-api.txt
>>> @@ -0,0 +1,34 @@
>>> +BlueZ D-Bus Battery API description
>>> +****************************************
>>> +
>>> +       Texas Instruments, Inc. <chen.ganir@ti.com>
>>> +
>>> +Device Battery hierarchy
>>> +=====================================
>>> +
>>> +Service                org.bluez
>>> +Interface      org.bluez.Battery
>>> +Object path    [variable
>>> prefix]/{hci0,..}/dev_XX_XX_XX_XX_XX_XX/BATTYYYY
>>> +YYYY is numeric value between 0 and 9999.
>>> +
>>> +Methods        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.
>>> +
>>> +Properties     uint16 Level [readonly]
>>> +
>>> +                       Battery level (0-100).
>>> +
>>> +               uint16 Description [readonly]
>>> +
>>> +                       Battery description.
>>> +
>>> +               uint16 Namespace [readonly]
>>> +
>>> +                       Battery Namespace.
>>
>>
>> IMO "Description" and "Namespace" should be string:
>> http://developer.bluetooth.org/gatt/Pages/GattNamespaceDescriptors.aspx
>>
>> For BLE Presentation Format is mandatory(Namespace and Description).
>> For AVRCP, probably it doesn't make sense. I recommend to include
>> additional description for these fields.
>>
> After discussing this issue with Johan, we decided to remove the Namespace
> and Description properties from the generic battery. Do you think we should
> have those properties or can we exclude them ? Do you see any use case for
> those properties?
>

IMO, we can remove them. It is easier to extend the API later than
remove properties from the API.
Those properties could be useful for PTS testing or qualification, but
we can use gatttool to discover and read descriptors.

Regards,
Claudio

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

end of thread, other threads:[~2012-09-10 13:24 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-30 11:26 [PATCH RFC] Add Generic Device Battery API chen.ganir
2012-08-30 11:26 ` [PATCH RFC] battery: Add generic device battery interface chen.ganir
2012-09-06 19:34   ` Claudio Takahasi
2012-09-09  5:59     ` Chen Ganir
2012-09-10 13:24       ` Claudio Takahasi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.