Adds support for advertising and connections with coded/2M PHY's. Adds new classes `NimBLEExtAdvertising` and `NimBLEExtAdvertisement`. When extended advertising is enabled the original advertising classes become unavailable and the new classes must be used. Changed some return values for advertising methods for consistency with the new classes methods.
1.7 KiB
Bluetooth 5.x features
About extended advertising
Extended advertising allows for much more capability and flexibility.
-
Allows for 251 bytes of advertisement data and up to 1650 bytes when chained (configuration dependant) vs 31.
-
New PHY's (physical layers) that allow for faster data rate (2M PHY) or long range/slower data rates (CODED PHY) as well as the original 1M PHY.
-
New periodic advertising, allowing the scanning device to sync with the advertisements of a beacon. This allows for the scanning device to sleep or perform other tasks before the next expected advertisement is sent, preserving cpu cycles and power (To be implemented).
Enabling extended advertising
Extended advertising is supported when enabled with the config option CONFIG_BT_NIMBLE_EXT_ADV
set to a value of 1. This is done in menuconfig under Component config > Bluetooth > NimBLE options > Enable extended advertising
.
When enabled the following will occur:
-
NimBLEScan::start
method will scan on both the 1M PHY and the coded PHY standards automatically. -
NimBLEClient::connect
will use the primary PHY the device is listening on, unless specified (see below). -
NimBLEClient::setConnectPhy
becomes available to specify the PHY's to connect with (default is all). -
NimBLEAdvertising
is no longer available for use and is replaced byNimBLEExtAdvertising
.NimBLEDevice::getAdvertising
will now return an instance ofNimBLEExtAdvertising
. -
NimBLEAdvertisementData
is no longer available for use and is replaced byNimBLEExtAdvertisement
. This new class is where everything about the advertisement is configured, including the advertisement intervals and advertisement ended callback.