uint32_t ser_sd_transport_open(ser_sd_transport_evt_handler_t ble_evt_handler, ser_sd_transport_evt_handler_t ant_evt_handler, ser_sd_transport_rsp_wait_handler_t os_rsp_wait_handler, ser_sd_transport_rsp_set_handler_t os_rsp_set_handler, ser_sd_transport_rx_notification_handler_t rx_not_handler) { m_os_rsp_wait_handler = os_rsp_wait_handler; m_os_rsp_set_handler = os_rsp_set_handler; m_rx_notify_handler = rx_not_handler; m_ot_rsp_wait_handler = NULL; #ifdef ANT_STACK_SUPPORT_REQD m_ant_evt_handler = ant_evt_handler; if (m_ant_evt_handler == NULL) { return NRF_ERROR_INVALID_PARAM; } #else UNUSED_PARAMETER(ant_evt_handler); #endif // ANT_STACK_SUPPORT_REQD #ifdef BLE_STACK_SUPPORT_REQD m_ble_evt_handler = ble_evt_handler; if (m_ble_evt_handler == NULL) { return NRF_ERROR_INVALID_PARAM; } #else UNUSED_PARAMETER(ble_evt_handler); #endif // BLE_STACK_SUPPORT_REQD return ser_hal_transport_open(ser_sd_transport_hal_handler); }
uint32_t ser_sd_transport_open(ser_sd_transport_evt_handler_t evt_handler, ser_sd_transport_rsp_wait_handler_t os_rsp_wait_handler, ser_sd_transport_rsp_set_handler_t os_rsp_set_handler, ser_sd_transport_rx_notification_handler_t rx_notify_handler) { m_os_rsp_wait_handler = os_rsp_wait_handler; m_os_rsp_set_handler = os_rsp_set_handler; m_rx_notify_handler = rx_notify_handler; m_ot_rsp_wait_handler = NULL; m_evt_handler = evt_handler; if (evt_handler == NULL) { return NRF_ERROR_INVALID_PARAM; } return ser_hal_transport_open(ser_sd_transport_hal_handler); }
/**@brief Main function of the connectivity application. */ int main(void) { uint32_t err_code = NRF_SUCCESS; #if ( defined(SER_PHY_HCI_DEBUG_ENABLE) || defined(SER_PHY_DEBUG_APP_ENABLE)) debug_init(NULL); #endif /* Initialize scheduler queue. */ APP_SCHED_INIT(SER_CONN_SCHED_MAX_EVENT_DATA_SIZE, SER_CONN_SCHED_QUEUE_SIZE); /* Initialize SoftDevice. * SoftDevice Event IRQ is not scheduled but immediately copies BLE events to the application * scheduler queue */ SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, false); /* Subscribe for BLE events. */ err_code = softdevice_ble_evt_handler_set(ser_conn_ble_event_handle); APP_ERROR_CHECK(err_code); /* Open serialization HAL Transport layer and subscribe for HAL Transport events. */ err_code = ser_hal_transport_open(ser_conn_hal_transport_event_handle); APP_ERROR_CHECK(err_code); /* Enter main loop. */ for (;;) { /* Process SoftDevice events. */ app_sched_execute(); /* Process received packets. * We can NOT add received packets as events to the application scheduler queue because * received packets have to be processed before SoftDevice events but the scheduler queue * does not have priorities. */ err_code = ser_conn_rx_process(); APP_ERROR_CHECK(err_code); /* Sleep waiting for an application event. */ err_code = sd_app_evt_wait(); APP_ERROR_CHECK(err_code); } }