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

device_manager_evt_handler not getting called for pairing

I am trying to pair nordic with an iPhone app. (using lightBlue) but not device_manager_evt_handler is not getting called

Here is the code, Is there anything else that i am missing. i tried Current Time Service Client Sample program provided by Keil and that works fine.

static void device_manager_init(bool erase_bonds)
{
uint32_t               err_code;
dm_init_param_t        init_param = {.clear_persistent_data = erase_bonds};
dm_application_param_t register_param;

// Initialize persistent storage module.
err_code = pstorage_init();
APP_ERROR_CHECK(err_code);

err_code = dm_init(&init_param);
APP_ERROR_CHECK(err_code);

memset(&register_param.sec_param, 0, sizeof(ble_gap_sec_params_t));

register_param.sec_param.bond         = SEC_PARAM_BOND;
register_param.sec_param.mitm         = SEC_PARAM_MITM;
register_param.sec_param.io_caps      = SEC_PARAM_IO_CAPABILITIES;
register_param.sec_param.oob          = SEC_PARAM_OOB;
register_param.sec_param.min_key_size = SEC_PARAM_MIN_KEY_SIZE;
register_param.sec_param.max_key_size = SEC_PARAM_MAX_KEY_SIZE;
register_param.evt_handler            = device_manager_evt_handler; 
register_param.service_type           = DM_PROTOCOL_CNTXT_GATT_CLI_ID;

err_code = dm_register(&m_app_handle, &register_param);
//err_code = dm_register(&register_param);
APP_ERROR_CHECK(err_code);

printf("device_manager_init\n");

}

and event handler

static uint32_t device_manager_evt_handler(dm_handle_t const * p_handle,
                                       dm_event_t const  * p_event,
                                       ret_code_t        event_result)
{

 printf("\n\rdevice_manager_evt_handler: \n\r");
uint32_t err_code;

APP_ERROR_CHECK(event_result);

switch (p_event->event_id)
{
    case DM_EVT_CONNECTION:
        m_peer_handle = (*p_handle);
        err_code      = app_timer_start(m_sec_req_timer_id, SECURITY_REQUEST_DELAY, NULL);
        APP_ERROR_CHECK(err_code);
        break;

    case DM_EVT_LINK_SECURED:
       // err_code = ble_db_discovery_start(&m_ble_db_discovery,
         //                                 p_event->event_param.p_gap_param->conn_handle);
        APP_ERROR_CHECK(err_code);
        break;

    default:
        // No implementation needed.
        break;

}
return NRF_SUCCESS;

}

Thanks

Related