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

Public Functions

QLowEnergyConnectionParameters()
QLowEnergyConnectionParameters(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)
QLowEnergyConnectionParameters &operator=(const QLowEnergyConnectionParameters &other)
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 < 30CONNECTION_PRIORITY_HIGH
30 <= interval <= 100CONNECTION_PRIORITY_BALANCED
interval > 100CONNECTION_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()

Constructs a new object of this class. All values are initialized to valid defaults.

QLowEnergyConnectionParameters::QLowEnergyConnectionParameters(const QLowEnergyConnectionParameters &other)

Constructs a new object of this class that is a copy of other.

[noexcept] 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().

[noexcept] void QLowEnergyConnectionParameters::swap(QLowEnergyConnectionParameters &other)

Swaps this object with other.

QLowEnergyConnectionParameters &QLowEnergyConnectionParameters::operator=(const QLowEnergyConnectionParameters &other)

Makes this object a copy of other and returns the new value of this object.

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.