uint32_t ut_start(uint32_t rf_channel, uint8_t rf_address[5]) { uint32_t err_code; if (m_timeslot_session_open) { return NRF_ERROR_INVALID_STATE; } m_uesb_config.rf_channel = rf_channel; memcpy(m_uesb_config.rx_address_p0, rf_address, 5); m_blocked_cancelled_count = 0; err_code = sd_radio_session_open(radio_callback); if (err_code != NRF_SUCCESS) { return err_code; } err_code = sd_radio_request(&m_timeslot_req_earliest); if (err_code != NRF_SUCCESS) { return err_code; } m_timeslot_session_open = true; return NRF_SUCCESS; }
void timeslot_handler_init(nrf_clock_lfclksrc_t lfclksrc) { if (g_framework_initialized) { /* may happen with serial interface, can safely skip redundant inits */ return; } uint32_t error; switch (lfclksrc) { case NRF_CLOCK_LFCLKSRC_XTAL_100_PPM: g_lfclk_ppm = 100; break; case NRF_CLOCK_LFCLKSRC_XTAL_150_PPM: g_lfclk_ppm = 150; break; case NRF_CLOCK_LFCLKSRC_XTAL_20_PPM: g_lfclk_ppm = 20; break; case NRF_CLOCK_LFCLKSRC_XTAL_250_PPM: g_lfclk_ppm = 250; break; case NRF_CLOCK_LFCLKSRC_XTAL_30_PPM: g_lfclk_ppm = 30; break; case NRF_CLOCK_LFCLKSRC_XTAL_500_PPM: g_lfclk_ppm = 500; break; case NRF_CLOCK_LFCLKSRC_XTAL_50_PPM: g_lfclk_ppm = 50; break; case NRF_CLOCK_LFCLKSRC_XTAL_75_PPM: g_lfclk_ppm = 75; break; default: g_lfclk_ppm = 250; } g_is_in_callback = false; g_framework_initialized = true; error = sd_nvic_EnableIRQ(SD_EVT_IRQn); APP_ERROR_CHECK(error); error = sd_radio_session_open(&radio_signal_callback); APP_ERROR_CHECK(error); timer_init(); g_start_time_ref = NRF_RTC0->COUNTER; g_timeslot_length = TIMESLOT_SLOT_LENGTH; timeslot_order_earliest(g_timeslot_length, true); }
void app_beacon_scanner_start(void) { NRF_GPIO->DIRSET = (1UL << 18) | (1UL << 19); m_beacon_scanner.keep_running = true; m_beacon_scanner.is_running = true; sd_radio_session_open(m_timeslot_callback); sd_radio_request(m_reqeust_earliest(NRF_RADIO_PRIORITY_NORMAL)); }
btle_status_codes_t btle_scan_init (IRQn_Type irq) { uint32_t err_code = NRF_SUCCESS; btle_status_codes_t status = BTLE_STATUS_CODE_SUCCESS; nrf_report_disp_init (irq); err_code = sd_radio_session_open (radio_cb); if (err_code != NRF_SUCCESS) { status = BTLE_STATUS_CODE_COMMAND_DISALLOWED; } return status; }
void timeslot_handler_init(void) { uint32_t error; g_is_in_callback = false; g_framework_initialized = true; error = sd_nvic_EnableIRQ(SD_EVT_IRQn); APP_ERROR_CHECK(error); error = sd_radio_session_open(&radio_signal_callback); APP_ERROR_CHECK(error); g_start_time_ref = NRF_RTC0->COUNTER; g_timeslot_length = TIMESLOT_SLOT_LENGTH; timeslot_order_earliest(g_timeslot_length, true); }
void app_beacon_start(void) { m_beacon.keep_running = true; m_beacon.is_running = true; uint32_t err_code = sd_radio_session_open(m_timeslot_callback); if ((err_code != NRF_SUCCESS) && (m_beacon.error_handler != NULL)) { m_beacon.error_handler(err_code); } err_code = m_request_earliest(NRF_RADIO_PRIORITY_NORMAL); if ((err_code != NRF_SUCCESS) && (m_beacon.error_handler != NULL)) { m_beacon.error_handler(err_code); } }
void timeslot_start(void) { sd_radio_session_open(timeslot_callback); sd_radio_request(×lot_request); }