This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Concurrent services discovery

I am using S132 4.0.2 and SDK 13, and I have theese questions:

  1. I have an application where BLE node establishes multiple concurrent connections (several as central and several as peripheral). They will start db discovery on each other regardless of GAP role in connections. So peripheral will discover central services and central will concurrently discover peripheral services. Will it work? I it even a good idea?

  2. As my BLE node can be connected to many other peers db discovery can be started concurrently on each connection. I have separate ble_db_discovery_t per connection. Will it work?

  3. How can I be notified that service disvovery process is finished (I have several services to discover)? There is lack of event 'db discovery process finished'. I can always count events and compare it to number of ble_db_discovery_evt_register calls but is there a better way?

What else should I know, the tutorial devzone.nordicsemi.com/.../ is good but a bit outdated.

Parents
  • I would personally avoid using full DB module because you would need to build GATT "stack" image of every server you are connected to (whatever GAP role is used, (G)ATT server/client should be "instance per connection" according to BT SIG spec - logically;) and normally you don't want to do that silly thing mobiles (or any "multi-app" rich-OS running thing today) do = general GATT Service Discovery procedure of enumerating all GATT handles regardless you are typically looking for particular Primary Service UUID etc. GATT Service Discovery procedure from Client side is surprisingly not so difficult thing, there are examples in SDK and on this forum... but if you build some generic device without clear understanding of APP/GATT layer at the compilation time then you probably need to stick with DB module (or invest in rewriting it to be smaller/faster if you care, thanks to knowing more about your specific use cases should help).

  • "full DB module" - what do you mean? Is it about ble_db_discovery.c module supplied with nRF5 SDK 13 ? I don't want do enumerate all services just want to find those I can handle.

Reply Children
No Data
Related