Quality of Service module¶
The Quality of Service (QoS) module provides the QoS information through the Bluetooth® GATT service.
The module can be used only by nRF Desktop peripheral with the SoftDevice Link Layer (CONFIG_BT_LL_SOFTDEVICE
).
The module is made available in case the peripheral is meant to be paired with a third party dongle. In such case, the vendor can use the Quality of Service data provided by the nRF Desktop peripheral to improve the link quality.
Note
There is no need to enable the Quality of Service module if you want to pair the peripheral device with the nRF Desktop dongle. The dongle does not depend on the service provided by the Quality of Service module on peripheral devices.
For more information about the format of the Quality of Service data, see the Bluetooth LE Quality of Service module documentation.
Module events¶
Source Module |
Input Event |
This Module |
Output Event |
Sink Module |
---|---|---|---|---|
|
|
|||
|
||||
|
Note
See the Overview: Firmware architecture for more information about the event-based communication in the nRF Desktop application and about how to read this table.
Configuration¶
The module requires the basic Bluetooth® configuration, as described in Bluetooth in nRF Desktop.
The module is enabled with CONFIG_DESKTOP_QOS_ENABLE
option.
The module is available on the peripheral devices only and requires the Bluetooth LE Quality of Service module to be enabled.
Implementation details¶
The module uses BT_GATT_SERVICE_DEFINE
to define a custom GATT Service.
The UUID of the service is located in the module source file, qos.c
.
For more information about GATT, see Zephyr’s Generic Attribute Profile (GATT) documentation.
The module uses the Quality of Service data read from the SoftDevice Link Layer.
This data is delivered in the form of a ble_qos_event
event by the Bluetooth LE Quality of Service module.
This is the same data that is used by the nRF Desktop dongle to avoid congested RF channels.