Hi All,
I have an application successfully running on nrf52832 with sd132 which I am migrating to nrf52810 sd112. Unfortunately since the softdevice structure has changed I am facing issues.
The device is able to advertise fine. However when I try to connect, it simply hangs / goes on forever
my code is
err_code = nrf_sdh_enable_request(); APP_ERROR_CHECK(err_code); //CONFIGURE THE BLE STACK USING THE DEFAULT SETTINGS. //FETCH THE START ADDRESS OF THE APPLICATION RAM. uint32_t ram_start = 0; err_code = nrf_sdh_ble_default_cfg_set(APP_BLE_CONN_CFG_TAG, &ram_start); APP_ERROR_CHECK(err_code); //ENABLE BLE STACK err_code = nrf_sdh_ble_enable(&ram_start); APP_ERROR_CHECK(err_code); //REGISTER A HANDLER FOR BLE EVENTS NRF_SDH_BLE_OBSERVER(s_ble_observer, APP_BLE_OBSERVER_PRIO, s_internal_ble_evt_handler, NULL); //REGISTER DISPATCH FOR SYSTEM EVENTS NRF_SDH_SOC_OBSERVER(s_ble_soc_observer, APP_SOC_OBSERVER_PRIO, s_internal_ble_sys_evt_dispatch, NULL); UTIL_DebugPrint("BLE - BLE Stack Init...\n");
static void s_internal_ble_evt_handler(ble_evt_t const* p_ble_evt, void* p_context) { //HANDLER FOR APPLICATION BLE EVENTS UTIL_DebugPrint("AAAAAAAA\n"); switch(p_ble_evt->header.evt_id) { case BLE_GAP_EVT_CONNECTED: UTIL_DebugPrint("BLE - BLE_GAP_EVT_CONNECTED\n"); float time = (p_ble_evt->evt.gap_evt.params.connected.conn_params.max_conn_interval) * 1.25; uint16_t time_int = (uint16_t)time; uint16_t time_dec = (uint16_t)((time - time_int)*100); UTIL_DebugPrint("BLE - BLE Interval = %u.%u ms\n",time_int, time_dec); s_conn_handle = p_ble_evt->evt.gap_evt.conn_handle; EXTERNAL_CUSTOM_BLE_SERVICE_SetBleHandle(s_conn_handle); break; case BLE_GAP_EVT_DISCONNECTED: UTIL_DebugPrint("BLE - BLE_GAP_EVT_DISCONNECTED\n"); s_conn_handle = BLE_CONN_HANDLE_INVALID; break; case BLE_GAP_EVT_TIMEOUT: UTIL_DebugPrint("BLE - BLE_GAP_EVT_TIMEOUT\n"); break; case BLE_GATTS_EVT_WRITE: UTIL_DebugPrint("BLE - BLE_GATTS_EVT_WRITE\n"); s_internal_ble_handle_gatts_evt_write(p_ble_evt); break; default: break; } }
I was expecting when the central tries to connect, I should see some debug prints on the log terminal. However nothing gets printed and the 1 second timer that I have running that prints to the log window also stops.
It's almost like the observer function is never being called
Any help is appreciated.