Better user experience: ADV_IND/ADV_DIRECT_IND

⚠️
Hi there.. thanks for coming to the forums. Exciting news! we’re now in the process of moving to our new forum platform that will offer better functionality and is contained within the main Dialog website. All posts and accounts have been migrated. We’re now accepting traffic on the new forum only - please POST any new threads at//www.xmece.com/support. We’ll be fixing bugs / optimising the searching and tagging over the coming days.
6 posts / 0 new
Last post
marss
Offline
Last seen:8 months 1 week ago
Joined:2015-05-08 10:18
Better user experience: ADV_IND/ADV_DIRECT_IND

For a few devices I tested, like the samples from Dialog SDK behave or also the Microsoft Designer Mouse it seems that devices either use ADV_IND or ADV_DIRECT_IND (for one single address). This is in my opinion a bad user experience (there are many forum posts of users which have no idea how to "enable" the mouse) as it has the following consequences:

- 设备通常需要某种用户操作在ADV_IND或ADV_DIRECT_IND之间切换(Windows需要第一个用于配对和第二个用于重新连接的版本)
- If a device cannot be paired with two centrals (as there is only one InitA sent per ADV_DIRECT_IND) and needs repairing when I switch the central (e.g. I like to use BLE keyboard at home and at work)

Is there a well known sequence to avoid both of these problems with the SDK for the DA14580?

Like mix all this and send ADV_IND and also several ADV_DIRECT_IND (e.g. from the last 3 centrals I connected to)?

Device:
MT_dialog
Offline
Last seen:2 months 2 weeks ago
Staff
Joined:2015-06-08 11:34
Hi marss,

Hi marss,

I am not sure i follow, but regarding the mouse, the device's advertising mode depends on the bonding data of the device, if there are bonding data, and there is a device that has paired with the device then it will advertise in directed mode (when woken up) in order to re-establish connection with the peer device that it was connected. If there is no bonding info or after the directed avdertise there is no response from a device then the device will advertise in undirected mode in order to establish a new connection and pair with another device.

Regarding the mixing the advertising events, there is no way to advertise both in undirected and directed mode, what you can do is switching between those two advertising procedures, advertise in one mode for a specific period of time and then switch to the other and then switch back again as long as you would like to device to advertise.

Thanks MT_dialog

marss
Offline
Last seen:8 months 1 week ago
Joined:2015-05-08 10:18
Let's imagine you want to

Let's imagine you want to build a mouse with only the regular mouse button, no additional on/off button or even worse (like the Microsoft Desinger Mouse) a button with a long or short press:

- This means the mouse needs to advertise in directed mode after it was bonded
- But also needs to advertise undirected, because there may be another computer where we like to bond to

Yes I understand that I cannot do both at the exact same time, but let's say send every every 100 ms send either:

undirected adv
directed adv for central 1 (first computer I bonded to)
directed adv for central 2 (second computer I bonded to)
directed adv for central 3 (third computer I bonded to)

但是我认为没有简单的方法让SDK that and I have to do everything by myself, although this is from a usability perspective much easier

MT_dialog
Offline
Last seen:2 months 2 weeks ago
Staff
Joined:2015-06-08 11:34
Hi marss,

Hi marss,

No, there is no provision for this kind of functionallity, you will have to customize the code in order to get what you want.

Thanks MT_dialog

marss
Offline
Last seen:8 months 1 week ago
Joined:2015-05-08 10:18
感谢您的回答, but

感谢您的回答

仅用于澄清

If I take the 5.0.4 SDK (e.g. the security example) the peripheral starts in undirected advertising mode, after a bonding/pairing with e.g. Windows 10, the peripheral stops with it the advertising. After the connection get lost the SDK always seems to go back into undirected advertising mode (I observed this with a sniffer and according to the SDK I see this behavior also). Quick connect (through directed advertising) is not supported by SDK at the moment

MT_dialog
Offline
Last seen:2 months 2 weeks ago
Staff
Joined:2015-06-08 11:34
Hi marss,

Hi marss,

None of the demos implements the directed advertising procedure, all the examples after disconnection they perform undirected advertising and not directed, even if they are bonded. If you would like to perform directed advertising to the previously bonded device you will have to invoke app_easy_gap_directed_advertise_start() in order for the device to do so. Only the mouse and keyboard reference designs implement this kind of functionallity since they are specific functionallity devices and not demos.

Thanks MT_dialog