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

Interface inconsistency when discovering multiple services

registered_handler_get() in ble_db_discovery.c searches a table for the appropriate handler to call for a given UUID.

However, ble_db_discovery_evt_register() assigns the same handler for all UUIDs:

uint32_t ble_db_discovery_evt_register(ble_uuid_t const * p_uuid)
{
    VERIFY_PARAM_NOT_NULL(p_uuid);
    VERIFY_MODULE_INITIALIZED();

    return registered_handler_set(p_uuid, m_evt_handler);
}

Is the intent for ble_db_discovery to call each service handler directly (and only with events that pertain to that service)?

Or is the intent for ble_db_discovery to call a single handler which dispatches to all service handlers (in this case, the service handlers may get events for other services).