I am porting a peripheral project from nRF51822 on SDK 11 to nRF52832 on SDK 15. Currently I'm using15.0, with S132 6.0.0. I used the template project for an initial pattern for working with SDK 15.
One thing it needs to do is (if I have the term right): "Peripheral Advertiser", i.e.
- When unconnected it advertises normally, as a connectable peripheral.
- While connected it advertises as unconnectable (so other centrals can still SEE it), but otherwise identically.
- When the connection is ended, it reverts to the connectable advertisement.
I am having difficulty finding any simple explanation for how to do this.
- Nearly everything I found was for earlier SDKs - but advertising changed massively between 14 and 15.
- Under 15 it seems to have switched to advertising structures managed by the soft device in the latter's storage,
- addressed by a handle/index rather than a pointer
- not to be modified on-the-fly, but replaced by a new one (and the old one unavailable for reuse until the soft device has finished some post processing on it)
- The automatic turn-on of advertising on connection drop (on_disconnected()) sets the type to BLE_ADV_MODE_DIRECTED_HIGH_DUTY, rather than, say,
- The closest I did find on SDK 15 was https://devzone.nordicsemi.com/f/nordic-q-a/32824/dynamically-updating-advertising-data-in-sdk-15/126346#126346,
- That seems to be an in-process debug of a rotating-triple-buffer scheme that is also supporting on-the-fly modification of the contents of the advertisement in other ways.
- It also seems to involve replacing components/ble/ble_advertising/* with a roll-your-own substitute.
Can someone give me (or give me a pointer to) a simple (or as simple as practical under SDK 15) scheme for just doing the basic keep-advertising-while-connected, switch-between-connectable-and-unconnectable function.
============
(I WILL be needing on-the-fly adjustment of the manufacturing field in another month or so, so info on that would also be nice. But I need the above right away.)
Thanks.