Device Information Service and Battery Service bluez plugins

From: Ganir, Chen <hidden>
Date: 2012-03-20 15:57:24

Hi.

In the next few days I'll be sending patches for Device Information Service, and Battery Service implemented as bluez plugins.

Device Information Service
--------------------------
The Device Information Service will provide the first required functionality - read the remote device PNPID over GATT. This data will be saved in the brd_device current DID data (vendor, version, product and the newly added vendor_src). The data will be read from the peer GATT Server once, and will be saved for the device.

Battery Service
-----------------
The Battery service allows a host to gather battery status from the peer devices over GATT. The Battery Service will add a new API :

BlueZ D-Bus Battery API description
****************************************

	Texas Instruments, Inc. [off-list ref]

Battery Service hierarchy
=====================================

Service		org.bluez
Interface	org.bluez.Battery
Object path	[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/BATTYYYY


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.

Signals		PropertyChanged(string name, variant value)

			This signal indicates a changed value of the given
			property.

Properties	byte Namespace [readonly]

			Namespace value from the battery format characteristic
			descriptor.Combined with Description provides a unique
			battery identifyer if multiple batteries are supported.

		uint16 Description [readonly]

			Description value from the battery format characteristic
			descriptor. Combined with Namespace provides a unique
			battery identifyer if multiple batteries are supported.

		byte Level [readonly]

			Battery level (0-100).

The batteries will be published as a collection of object ID's for a device, and will look like this when executing GetProperties on a device :
dict entry(
         string "Batteries"
         variant             array [
               object path "/org/bluez/15515/hci0/dev_3C_2D_B7_85_EC_C2/BATT0000"
               object path "/org/bluez/15515/hci0/dev_3C_2D_B7_85_EC_C2/BATT0001"
            ]
      )

A new interface, called org.bluez.Battery will be registered for each new battery object path, and the GetProperties function will look like this:
method return sender=:1.625 -> dest=:1.632 reply_serial=2
   array [
      dict entry(
         string "Namespace"
         variant             byte 0
      )
      dict entry(
         string "Description"
         variant             uint16 0
      )
      dict entry(
         string "Level"
         variant             byte 91
      )
   ]

Patches will be sent as soon as the previous patches are applied.

BR,

Chen Ganir
Texas Instruments
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help