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

S110: application with passkey and dfu

Hello,

I am working on NUS service S110 8.0 softdevice and SDK 9.0 and added DFU feature for the application.

First, I connected to the device using MCP from PC. It connected and communication was proper. Then, I disconnect it and for the second time I am trying tot connect with MCP from android phone. When I select connect, the bond and discovering of the services is happening and code is stopping with an error in the following code snippet:

static void app_context_load(dm_handle_t const * p_handle)
{
uint32_t                 err_code;
static uint32_t          context_data;
dm_application_context_t context;

context.len    = sizeof(context_data);
context.p_data = (uint8_t *)&context_data;

err_code = dm_application_context_get(p_handle, &context);
if (err_code == NRF_SUCCESS)
{
    // Send Service Changed Indication if ATT table has changed.
    if ((context_data & (DFU_APP_ATT_TABLE_CHANGED << DFU_APP_ATT_TABLE_POS)) != 0)
    {
        err_code = sd_ble_gatts_service_changed(m_conn_handle, APP_SERVICE_HANDLE_START, BLE_HANDLE_MAX);
        if ((err_code != NRF_SUCCESS) &&
            (err_code != BLE_ERROR_INVALID_CONN_HANDLE) &&
            (err_code != NRF_ERROR_INVALID_STATE) &&
            (err_code != BLE_ERROR_NO_TX_BUFFERS) &&
            (err_code != NRF_ERROR_BUSY) &&
            (err_code != BLE_ERROR_GATTS_SYS_ATTR_MISSING))
        {
            APP_ERROR_HANDLER(err_code);
        }
    }

    err_code = dm_application_context_delete(p_handle);
    APP_ERROR_CHECK(err_code);
}
else if (err_code == DM_NO_APP_CONTEXT)
{
    // No context available. Ignore.
}
else
{
    APP_ERROR_HANDLER(err_code);
}
}

Getting the error code 0x8010 which is API_NOT_IMPLEMENTED error. Does anyone know, what is the cause for this error code? and how to fix this?

Regards,
Sowmya

Related