Hi everbody,
I'm using the BLE Database Discovery module to discover services and characteristics of a BLE peripheral. This works fine, except for one strange quirk:
When I perform the discovery multiple times, the same characteristics are reported multiple times. To be precise, when I get a ble_db_discovery_evt_t with type == BLE_DB_DISCOVERY_COMPLETE for my service's UUID, the ble_db_discovery_evt_t.discovered_db.char_count keeps increasing for every discovery. The peripheral's service has 7 characteristics, so the first discovery will report char_count = 7, the next discovery will report char_count = 14, then 21, etc. When i dump the characteristics array to serial and check the UUIDs and handles, I can see that there are duplicates, the same characteristics appear multiple times.
Is this behavior to be expected (I assume not)? Am I missing some kind of reset of the module, i.e. should I call ble_db_discovery_close() after service discovery completes, and reinitialize it, including registering event handlers for service UUIDs? That would strike me as a bit cumbersome. It does solve the problem though.
This is happening with an nRF51 dongle, nRF SDK 12.3.0 and the S130 SoftDevice version 2.0.1.
Kind Regards
Alex Suzuki