c32ba844e0
Start advertising aggressively when powered on then slow down linearly over 75 seconds. This will conserve battery by not advertising rapidly the whole time we are seeking a connection. The slowest rate is approximately once every 4.5 seconds to balance responsiveness and battery life. We use a fixed advertising duration of 5 seconds and start with a 62.5 ms advertising interval. Every 5 seconds (the advertising duration) we step up to a larger advertising interval (slower advertising). We continue to increase the advertising interval linearly for 75 seconds from the start of advertising. At 75 seconds we have an advertising interval of 4.44 seconds which we keep until connected. A reboot will restart the sequence. When we receive a disconnect event we restart the sequence with fast advertising and then slow down as described above. Note that we are not using the BLE high duty cycle setting to change the advertising rate. The rate is managed by repeatedly setting the minimum and maximum intervals. The linear rate of decrease and the slowest interval size were determined experimentally by the author. The 5.3 Core spec suggests that you not advertise slower than once every 1.2 seconds to preserve responsiveness but we ignored that suggestion. |
||
---|---|---|
.. | ||
components | ||
displayapp | ||
drivers | ||
FreeRTOS | ||
heartratetask | ||
libs | ||
logging | ||
systemtask | ||
BootloaderVersion.cpp | ||
BootloaderVersion.h | ||
CMakeLists.txt | ||
FreeRTOSConfig.h | ||
main.cpp | ||
main.h | ||
recoveryLoader.cpp | ||
sdk_config.h | ||
Version.h.in |