Hello,
I'm currently working on NCS2.6.0 and ANT sdk v1.3.0,
I would like to know is it possible to do BLE scanning(without connection) and ANT+ heart rate searching at the same time?
Now I'm able to scan BLE manufacturer data and ANT+ heart rate pages saparately, but I need to combine it on my nRF52832 custom board with NCS platfrom.
Could you provide some suggestions? Thank you.
Here's something in my main.c code for more information:
int ant_stack_setup(void)
{
int err = ant_init();
if (err)
{
LOG_ERR("ant_init failed: %d", err);
return err;
}
LOG_INF("ANT Version %s", ANT_VERSION_STRING);
err = ant_cb_register(&ant_evt_handler);
if (err)
{
LOG_ERR("ant_cb_register failed: %d", err);
return err;
}
err = ant_plus_key_set(CONFIG_HRM_RX_NETWORK_NUM);
if (err)
{
LOG_ERR("ant_plus_key_set failed: %d", err);
}
return err;
}
static int start_scan(void) {
uint8_t channel_number = 0;
ant_channel_config_t channel_config = {
.channel_number = channel_number,
.channel_type = CHANNEL_TYPE_SLAVE_RX_ONLY,
.ext_assign = EXT_PARAM_ALWAYS_SEARCH,
.rf_freq = 57,
.transmission_type = 0,
.device_type = 120,
.device_number = 0,
.channel_period = 8070,
.network_number = CONFIG_HRM_RX_NETWORK_NUM
};
int err = ant_channel_init(&channel_config);
if (err) {
LOG_ERR("ant_channel_init failed: %d", err);
return err;
}
err = ant_channel_open(channel_number);
if (err) {
LOG_ERR("ant_channel_open failed: %d", err);
return err;
}
LOG_INF("ANT+ scanning started on channel %d", channel_number);
return 0;
}
int main(void)
{
uint32_t baudrate, dtr = 0U;
int ret;
int err;
err = ant_stack_setup();
if (err)
{
goto ERROR_EXIT;
}
err = start_scan();
if (err) {
goto ERROR_EXIT;
}
ret = bt_enable(NULL);
if (ret)
{
printk("Bluetooth init failed (err %d)\n", ret);
return;
}
if (IS_ENABLED(CONFIG_SETTINGS))
{
settings_load();
}
printk("Bluetooth initialized\n");
struct bt_le_scan_param scan_param = {
.type = BT_LE_SCAN_TYPE_ACTIVE,
.options = BT_LE_SCAN_OPT_CODED,
.interval = BT_GAP_SCAN_FAST_INTERVAL,
.window = BT_GAP_SCAN_FAST_WINDOW,
};
ret = bt_le_scan_start(&scan_param, scan_cb);
if (ret)
{
printk("Starting scanning failed (err %d)\n", ret);
return;
}
printk("Scanning successfully started\n");
return 0;
ERROR_EXIT:
ant_state_indicator_fatal_error();
k_oops();
return 0;
}