QLowEnergyConnectionParameters Class
The QLowEnergyConnectionParameters class is used when requesting or reporting an update of the parameters of a Bluetooth LE connection. More...
Header: | #include <QLowEnergyConnectionParameters> |
qmake: | QT += bluetooth |
Since: | Qt 5.7 |
Public Functions
QLowEnergyConnectionParameters(const QLowEnergyConnectionParameters &other) | |
QLowEnergyConnectionParameters() | |
QLowEnergyConnectionParameters & | operator=(const QLowEnergyConnectionParameters &other) |
~QLowEnergyConnectionParameters() | |
int | latency() const |
double | maximumInterval() const |
double | minimumInterval() const |
void | setIntervalRange(double minimum, double maximum) |
void | setLatency(int latency) |
void | setSupervisionTimeout(int timeout) |
int | supervisionTimeout() const |
void | swap(QLowEnergyConnectionParameters &other) |
Related Non-Members
bool | operator!=(const QLowEnergyConnectionParameters &p1, const QLowEnergyConnectionParameters &p2) |
bool | operator==(const QLowEnergyConnectionParameters &p1, const QLowEnergyConnectionParameters &p2) |
Detailed Description
The connection parameters influence how often a master and a slave device synchronize 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 minimumInterval(), maximumInterval() and latency(). Additionally, the value ranges of each category can vary from one Android device to the next. Qt uses the minimumInterval() to determine the target category as follows:
minimumInterval() | Android priority |
---|---|
interval < 30 | CONNECTION_PRIORITY_HIGH |
30 <= interval <= 100 | CONNECTION_PRIORITY_BALANCED |
interval > 100 | CONNECTION_PRIORITY_LOW_POWER |
The supervisionTimeout() cannot be changed on Android and is therefore ignored.
See also QLowEnergyController::requestConnectionUpdate and QLowEnergyController::connectionUpdated.
Member Function Documentation
QLowEnergyConnectionParameters::QLowEnergyConnectionParameters(const QLowEnergyConnectionParameters &other)
Constructs a new object of this class that is a copy of other.
QLowEnergyConnectionParameters::QLowEnergyConnectionParameters()
Constructs a new object of this class. All values are initialized to valid defaults.
QLowEnergyConnectionParameters &QLowEnergyConnectionParameters::operator=(const QLowEnergyConnectionParameters &other)
Makes this object a copy of other and returns the new value of this object.
QLowEnergyConnectionParameters::~QLowEnergyConnectionParameters()
Destroys this object.
int QLowEnergyConnectionParameters::latency() const
Returns the slave latency of the connection.
See also setLatency().
double QLowEnergyConnectionParameters::maximumInterval() const
Returns the maximum connection interval in milliseconds. The default is 4000.
Note: If this object was emitted via QLowEnergyController::connectionUpdated(), then this value is the same as minimumInterval() and refers to the actual connection interval.
See also setIntervalRange().
double QLowEnergyConnectionParameters::minimumInterval() const
Returns the minimum connection interval in milliseconds. The default is 7.5.
Note: If this object was emitted via QLowEnergyController::connectionUpdated(), then this value is the same as maximumInterval() and refers to the actual connection interval.
See also setIntervalRange().
void QLowEnergyConnectionParameters::setIntervalRange(double minimum, double maximum)
Sets the range in which the connection interval should be. The actual value will be decided by the controller. Both minimum and maximum are given in milliseconds. If maximum is smaller than minimum, it will be set to the value of minimum. The smallest possible connection interval is 7.5 milliseconds, the largest one is 4000 milliseconds.
See also minimumInterval() and maximumInterval().
void QLowEnergyConnectionParameters::setLatency(int latency)
Sets the slave latency of the connection (that is, the number of connection events that a slave device is allowed to ignore) to latency. The minimum value is 0, the maximum is 499.
See also latency().
void QLowEnergyConnectionParameters::setSupervisionTimeout(int timeout)
Sets the link supervision timeout to timeout milliseconds. There are several constraints on this value: It must be in the range [100,32000] and it must be larger than (1 + latency()) * 2 * maximumInterval().
On Android, this timeout is not adjustable and therefore ignored.
See also supervisionTimeout().
int QLowEnergyConnectionParameters::supervisionTimeout() const
Returns the link supervision timeout of the connection in milliseconds.
See also setSupervisionTimeout().
void QLowEnergyConnectionParameters::swap(QLowEnergyConnectionParameters &other)
Swaps this object with other.
Related Non-Members
bool operator!=(const QLowEnergyConnectionParameters &p1, const QLowEnergyConnectionParameters &p2)
Returns true
if p1 and p2 are not equal with respect to their public state, otherwise returns false
.
bool operator==(const QLowEnergyConnectionParameters &p1, const QLowEnergyConnectionParameters &p2)
Returns true
if p1 and p2 are equal with respect to their public state, otherwise returns false
.