From ff7bdd356d8f85455fd7d2e2653ffb99b07fb0be Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Tue, 17 Feb 2015 10:54:16 +0200 Subject: [PATCH] doc/gatt-api: Introduce GattProfile1 concept Until now the GATT D-Bus API doesn't provide any way to register client role profiles so that bluetoothd would be able to add matching devices to its auto-connect list (managed by the kernel from 3.17 onward). To keep the GATT D-Bus interface as capable as the internal plugin API this patch adds a new concept of a GattProfile1 D-Bus object. By registering such an object and providing a set of mandatory service UUIDs bluetoothd will start performing matching against remote devices and add them to the auto-connect list. --- doc/gatt-api.txt | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/doc/gatt-api.txt b/doc/gatt-api.txt index de7f2d9ae..67938d0c8 100644 --- a/doc/gatt-api.txt +++ b/doc/gatt-api.txt @@ -205,6 +205,26 @@ Properties string UUID [read-only] which a PropertiesChanged signal will be emitted. +Profile hierarcy +================ + +Local profile (GATT client) instance. By registering this type of object +an application effectively indicates support for a specific GATT profile +and requests automatic connections to be established to devices +supporting it. + +Service +Interface org.bluez.GattProfile1 [Experimental] +Object path + +Methods void Release() + + This method gets called when the service daemon + unregisters the profile. The profile can use it to + do cleanup tasks. There is no need to unregister the + profile, because when this method gets called it has + already been unregistered. + GATT Manager hierarchy ====================== @@ -244,3 +264,27 @@ Methods void RegisterService(object service, dict options) Possible errors: org.bluez.Error.InvalidArguments org.bluez.Error.DoesNotExist + + void RegisterProfile(object profile, array{string} UUIDs, + dict options) + + Registers a GATT (client role) profile exported + under interface GattProfile1. The array of UUIDs + specifies the mandatory set of remote service + UUIDs that should all be available for the + remote device to match this profile. Matching + devices will be added to the auto-connection + list and connected whenever available. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.AlreadyExists + + void UnregisterProfile(object profile) + + This unregisters the profile that has been + previously registered. The object path parameter + must match the same value that has been used + on registration. + + Possible errors: org.bluez.Error.InvalidArguments + org.bluez.Error.DoesNotExist -- 2.47.3