void ant_io_rx_setup(void) { uint32_t err_code; ant_channel_config_t channel_config = { .channel_number = ANT_CHANNEL_NUMBER, .channel_type = CHANNEL_TYPE_SLAVE, .ext_assign = EXT_ASSIGN, .rf_freq = RF_FREQUENCY, .transmission_type = CHAN_ID_TRANS_TYPE, .device_type = CHAN_ID_DEV_TYPE, .device_number = CHAN_ID_DEV_NUM, .channel_period = CHANNEL_PERIOD, .network_number = ANT_CHANNEL_DEFAULT_NETWORK, }; ant_search_config_t search_config = DEFAULT_ANT_SEARCH_CONFIG(ANT_CHANNEL_NUMBER); search_config.low_priority_timeout = ANT_LOW_PRIORITY_TIMEOUT_DISABLE; // Configure channel parameters err_code = ant_channel_init(&channel_config); APP_ERROR_CHECK(err_code); // Configure search err_code = ant_search_init(&search_config); APP_ERROR_CHECK(err_code); // Open channel. err_code = sd_ant_channel_open(ANT_CHANNEL_NUMBER); APP_ERROR_CHECK(err_code); }
void ant_search_sharing_setup(void) { uint32_t err_code; ant_channel_config_t channel_config = { .channel_type = CHANNEL_TYPE_SLAVE, .ext_assign = EXT_TYPE, .device_number = 0, .network_number = ANT_CHANNEL_DEFAULT_NETWORK, }; ant_search_config_t search_config = { .low_priority_timeout = CHAN_SEARCH_TIMEOUT, .high_priority_timeout = ANT_HIGH_PRIORITY_SEARCH_DISABLE, .search_sharing_cycles = CHAN_SEARCH_CYCLES, .search_priority = ANT_SEARCH_PRIORITY_DEFAULT, .waveform = ANT_WAVEFORM_FAST, // Use fast waveform to limit impact on acquisition time from searching on multiple frequencies }; m_rx_first_ch0 = false; m_rx_first_ch1 = false; // Configure channel parameters for channel 0 channel_config.channel_number = ANT_CHANNEL_NUMBER_0; channel_config.device_type = CHAN_ID_DEV_TYPE_CH0; channel_config.transmission_type = CHAN_ID_TRANS_TYPE_CH0; channel_config.channel_period = CHAN_PERIOD_CH0; channel_config.rf_freq = RF_FREQ_CH0; err_code = ant_channel_init(&channel_config); APP_ERROR_CHECK(err_code); // Configure search parameters for channel 0 search_config.channel_number = ANT_CHANNEL_NUMBER_0; err_code = ant_search_init(&search_config); APP_ERROR_CHECK(err_code); // Configure channel parameters for channel 1 channel_config.channel_number = ANT_CHANNEL_NUMBER_1; channel_config.device_type = CHAN_ID_DEV_TYPE_CH1; channel_config.transmission_type = CHAN_ID_TRANS_TYPE_CH1; channel_config.channel_period = CHAN_PERIOD_CH1; channel_config.rf_freq = RF_FREQ_CH1; err_code = ant_channel_init(&channel_config); APP_ERROR_CHECK(err_code); // Configure search parameters for channel 1 search_config.channel_number = ANT_CHANNEL_NUMBER_1; err_code = ant_search_init(&search_config); APP_ERROR_CHECK(err_code); // Open both channels err_code = sd_ant_channel_open(ANT_CHANNEL_NUMBER_0); APP_ERROR_CHECK(err_code); err_code = sd_ant_channel_open(ANT_CHANNEL_NUMBER_1); APP_ERROR_CHECK(err_code); } void ant_search_sharing_event_handler(ant_evt_t * p_ant_evt) { switch (p_ant_evt->event) { case EVENT_RX: switch(p_ant_evt->channel) { case ANT_CHANNEL_NUMBER_0: if(!m_rx_first_ch0) { m_rx_first_ch0 = true; LEDS_ON(BSP_LED_0_MASK); } break; case ANT_CHANNEL_NUMBER_1: if(!m_rx_first_ch1) { m_rx_first_ch1 = true; LEDS_ON(BSP_LED_1_MASK); } break; } break; default: break; } }