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. <[email protected]>
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