Hello.
I try to add scanning filter to central_multilink example from Zephyr examples. Filter is set to short_name, I added filter settings just before start scanner.
static void start_scan(void)
{
struct bt_le_scan_param scan_param = {
.type = BT_HCI_LE_SCAN_PASSIVE,
.options = BT_LE_SCAN_OPT_NONE,
.interval = SCAN_INTERVAL,
.window = SCAN_WINDOW,
};
int err;
struct bt_scan_short_name myname;
myname.name="DEVX";
myname.min_len=7;
err = bt_scan_filter_add(BT_SCAN_FILTER_TYPE_SHORT_NAME, &myname);
if (err)
{
printk("\nScanning filters cannot be set (err %d)\n", err);
}
err = bt_scan_filter_enable(BT_SCAN_SHORT_NAME_FILTER, false);
if (err)
{
printk("\nFilters cannot be turned on (err %d)\n", err);
}
err = bt_le_scan_start(&scan_param, device_found);
if (err)
{
printk("Scanning failed to start (err %d)\n", err);
return;
}
printk("Scanning successfully started\n");
}
Unfortunatelly it doesn't work. If I set in prj.conf:
CONFIG_BT_SCAN_SHORT_NAME_CNT=1
application return: Scanning filters cannot be set (err -12)
I try to set:
CONFIG_BT_SCAN_SHORT_NAME_CNT=2
but scanner connect to every device.
I increased heap and stack but it doeasn't help.
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096
CONFIG_HEAP_MEM_POOL_SIZE=4096
My questions:
1. Can I use NCS lib in example from Zephyr? (which I did)
2. What memory is te problem in err -12 ?
Best regards
PW