Some customers want to use ADV as periodic data with fixed timing, maybe to transmit audio or some other type of data whose quality of service needs a fixed/known delay.
We known this:
T_advEvent = **advInterval** + **advDelay**
- advInterval: multiple of 0.625 ms in the range of 20 ms to 10,485.759375 s.
- advDelay: a pseudo-random value with a range of 0 ms to 10 ms generated by the Link Layer for each advertising event
Now we have an API which can force advDelay to be zero.
BLE_DeviceParam_Set_AdvDelay(uint8_t fixedDelayEnable)
For example:
BLE_DeviceParam_Set_AdvDelay(0);
Now addDelay is a random number (between 0 ms to 10 ms)
BLE_DeviceParam_Set_AdvDelay(1);
Now addDelay is zero (0ms)
HOW TO USE:
**
This API needs to be called after Bluetooth Low Energy initialization (BLE_InitNoTL(0) or BLE_Init(0)); the application is now able to force advDelay to be zero instead of a random value, allowing for an advertisement event to happen at a fixed interval.**
NOTE:
"The advDelay parameter can be set to zero instead of a random value, allowing for an advertisement event to happen at a fixed interval. This is for applications that are not Bluetooth Low Energy compliant."