I am developing a pair of central and peripheral applications that will be part of a hardware suite that will undergo emissions testing and certification. We are using the nRF52840 for the central device processor and v1.9.1 of the nRF Connect SDK. One of the tests requires that we constrain data streaming to one channel so that we guarantee notifications and indications happen on one chosen channel and that no channel hopping occurs.
In the SDK I have found the function bt_le_set_chan_map() which on the face of it appears to do exactly this by setting my desired channel's bit to 1 and setting all others to 0.
Since I have been unable to find documentation regarding this function, I have a few questions about it:
- Does this function in fact do what I am describing? If not, is there another function or mechanism you recommend?
- Assuming it behaves like I think, after I have called this function to set the channel map will the channel map ever be changed by the BLE kernel at any point thereafter such that I have to call the function again to set it back to the map I want?
- A followup question, how can I query the current channel map programmatically in the central code so that I can verify it?