2015-02-24 20:45:21

by Jakub Pawlowski

[permalink] [raw]
Subject: [PATCH v6] doc/adapter-api.txt: StartFilteredDiscovery method.

This patch proposes new method, StartFilteredDiscovery to D-Bus Adapter
API for desktop bluetoothd. It will allow for rapid discovery of nearby
devices that advertise services.

It also adds FilteredDiscovery property, that is set to true when any
StartFilteredDiscovery session is active.

Signed-off-by: Jakub Pawlowski <[email protected]>
---
doc/adapter-api.txt | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)

diff --git a/doc/adapter-api.txt b/doc/adapter-api.txt
index 74d235a..aad88d3 100644
--- a/doc/adapter-api.txt
+++ b/doc/adapter-api.txt
@@ -22,6 +22,47 @@ Methods void StartDiscovery()
Possible errors: org.bluez.Error.NotReady
org.bluez.Error.Failed

+ void StartFilteredDiscovery(dict filter) [Experimental]
+
+ This method starts the device discovery session with
+ filtering by uuids, and rssi or pathloss value. Use
+ StopDiscovery to release the sessions acquired.
+
+ Parameters that can be set in filter dictionary include
+ the following:
+
+ array{string} UUIDs : filtered service UUIDs (required)
+ int16 RSSI : RSSI threshold value (optional)
+ uint16 pathloss : Pathloss threshold value (optional)
+ string transport: type of scan to run
+
+ When a device is found that advertise any UUID from
+ UUIDs, it will be reported if:
+ - pathloss and RSSI are both empty,
+ - only pathloss param is set, device advertise TX pwer,
+ and computed pathloss is less than pathloss param,
+ - only RSSI param is set, and received RSSI is higher
+ than RSSI param,
+
+ transport parameter determines the type of scan:
+ "auto" - interleaved scan
+ "bredr" - br/edr inquiry
+ "le" - le only scan, default value
+
+ This process will start creating Device objects as new
+ devices matching criteria are discovered. It will also
+ emit PropertiesChanged signal for already existing
+ Device objects, with updated RSSI value.
+
+ Even though each client can have only one discovery
+ session, this method might be called multiple times by
+ same client. Each consecutive call would only replace
+ filter in this client's session, and not create new
+ session.
+
+ Possible errors: org.bluez.Error.NotReady
+ org.bluez.Error.Failed
+
void StopDiscovery()

This method will cancel any previous StartDiscovery
--
2.2.0.rc0.207.ga3a616c