diff options
author | Alex Blasche <alexander.blasche@qt.io> | 2016-12-21 17:09:52 +0100 |
---|---|---|
committer | Alex Blasche <alexander.blasche@qt.io> | 2017-01-23 07:41:24 +0000 |
commit | 072ca4833101f4130e4b4f1122f8e6b3e9ae64bd (patch) | |
tree | 93f07d2fe659765886ed4ed5dbe3cfff010eff92 /src/bluetooth/qlowenergyconnectionparameters.cpp | |
parent | 145a2e1d0360dc79a7c1fa98ba6a28e9691fd1a6 (diff) |
Android: Add access to BTLE connection parameters
Unfortunately, Android only provides access to a very generic connection
priority. The patch uses the minimalInterval() to determine the desired
priority. Everything below 30ms is high priority and everything above
100ms is low priority. Every other value is balanced priority.
QLowEnergyController::requestConnectionUpdate() was modified
to permit access when the controller is connected, discovered or
in the process of being discovered. The limiting factor is an
existing physical connection.
The documentation was updated to reflect Android's API limitations.
[ChangeLog][QtBluetooth][Android] Added access to BTLE connection
parameter settings.
Task-number: QTBUG-53476
Change-Id: I3e22c65bd9598296a9219463dd05f0d9fc73599d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src/bluetooth/qlowenergyconnectionparameters.cpp')
-rw-r--r-- | src/bluetooth/qlowenergyconnectionparameters.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/bluetooth/qlowenergyconnectionparameters.cpp b/src/bluetooth/qlowenergyconnectionparameters.cpp index af4502dd..95256402 100644 --- a/src/bluetooth/qlowenergyconnectionparameters.cpp +++ b/src/bluetooth/qlowenergyconnectionparameters.cpp @@ -68,6 +68,32 @@ public: with each other. In general, a lower connection interval and latency means faster communication, but also higher power consumption. How these criteria should be weighed against each other is highly dependent on the concrete use case. + + Android only indirectly permits the adjustment of this parameter set. + The platform separates the connection parameters into three categories (hight, low & balanced + priority). Each category implies a predefined set of values for \l minimumInterval(), + \l maximumInterval() and \l latency(). Additionally, the value ranges of each category can vary + from one Android device to the next. Qt uses the \l minimumInterval() to determine the target + category as follows: + + \table + \header + \li minimumInterval() + \li Android priority + \row + \li interval < 30 + \li CONNECTION_PRIORITY_HIGH + \row + \li 30 <= interval <= 100 + \li CONNECTION_PRIORITY_BALANCED + \row + \li interval > 100 + \li CONNECTION_PRIORITY_LOW_POWER + \endtable + + The \l supervisionTimeout() cannot be changed on Android and is therefore ignored. + + \inmodule QtBluetooth \ingroup shared @@ -163,6 +189,9 @@ int QLowEnergyConnectionParameters::latency() const Sets the link supervision timeout to \a timeout milliseconds. There are several constraints on this value: It must be in the range [100,32000] and it must be larger than (1 + \l latency()) * 2 * \l maximumInterval(). + + On Android, this timeout is not adjustable and therefore ignored. + \sa supervisionTimeout() */ void QLowEnergyConnectionParameters::setSupervisionTimeout(int timeout) |