[PATCH] Initial draft of Application registration API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Add new methods to allow automatic connection when a known remote device
which supports the wanted services is found.

Overview: RegisterApplication method allows a given application to
controls the connection establishment procedure for bonded devices.
StartDiscovery() implements an interleaved discovery, switching between
inquiry and LE active scanning. For single mode devices found, an
application can call CreateDevice or CreatePairedDevice, these methods
will trigger the Discover All Primary Services and SSP(if applied).
Characteristics will be fetched on demand to avoid unnecessary data
transfers.

The Generic attribute API exposes methods to applications to read and
write characteristics. Implement profile specific API will be avoided.
For example, Proximity Monitor may need a BlueZ plugin to monitor the
path loss however additional method specific to this profile doesn't
need to be exposed. The Generic API can expose all the characteristic
necessary to a Proximity client application.

Characteristic Watchers allow the applications to monitor(passively)
characteristics changes for a given primary service. It doesn't control
or trigger any connection establishment.

Register application will act as an advertising monitor, allowing
external applications to control passive scanning and automatic
connections(for bonded devices).

Open: Define the necessary parameters for RegisterApplication, support
for GAP Broadcaster/Observer, define if RegisterApplication needs to
support BR/EDR connections, maybe merge Watchers and Application
interfaces.
---
 doc/attribute-api.txt |   44 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 43 insertions(+), 1 deletions(-)

diff --git a/doc/attribute-api.txt b/doc/attribute-api.txt
index 23808e6..ab62313 100644
--- a/doc/attribute-api.txt
+++ b/doc/attribute-api.txt
@@ -23,7 +23,6 @@ fully transparent and a differentiation becomes unimportant in the future.
 A service consists of some generic service information and a set of
 characteristics. All characteristic are presented as object path as well.
 
-
 Local Service hierarchy
 =======================
 
@@ -37,6 +36,35 @@ Methods
 Properties
 
 
+Adapter Application Attribute hierarchy
+=======================================
+
+Service		org.bluez
+Interface	org.bluez.Attrib
+Object path	[variable prefix]/{hci0,hci1,...}
+
+Methods		void RegisterApplication(array{string} uuids, dict settings)
+
+			Method to allow applications to control automatic
+			connections to known devices.
+
+			"settings" dictionary defines the wanted application
+			connection parameters. Defined values:
+			- Latency: low, medium and high
+			- BandWidth: TBD
+			- AutoConnect: boolean
+
+			Latency parameter controls the scan and connect
+			interval. AutoConnect parameter controls automatic
+			connections if a bonded device emits a connectable
+			advertising report.
+
+		void UnregisterApplication(array{string} uuids)
+
+			Unregister a previously registered application.
+			Remotes are automatically disconnected if no more
+			applications are interested in the given services.
+
 Device Service hierarchy
 ========================
 
@@ -154,3 +182,17 @@ Object path	freely definable
 Methods		void ValueChanged(object characteristic, array{byte})
 
 			New raw value of the Characteristic Value attribute.
+
+Adapter Application Agent hierarchy
+====================================
+
+Service		unique name
+Interface	org.bluez.Application
+Object path	freely definable
+
+Methods		void Connected(object device, array{object} services)
+
+			Indication that a given remote device was found
+			and the connection has been established. service
+			object represents an instance of a primary service
+			that the application is interested in.
-- 
1.7.3.3

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux