-
Notifications
You must be signed in to change notification settings - Fork 6.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bluetooth:Host:Scan: "bt_le_per_adv_list_add" function doesn't work #38520
Comments
Hi @saleh-unikie the feature is missing from the controller, but is implemented by: #38338 |
Hi In connection with this problem, I think it is needed to define the maximum number of supported simultaneous synchs by modifying this config: CONFIG_BT_PER_ADV_SYNC_MAX But the above config, causes to use a lot of memory space and in a normal application, it is not possible to set it to a number more than 5 or 6. It is not reasonable and I think somewhere it is not implemented efficient (maybe here at ul_df_types.h or here at ull_df.c) Is it needed to set this config to a number bigger than 1? if yes, is this usage of memory normal? |
I think @ppryga Might be best at answering that |
I am not sure, but it seems "CONFIG_BT_PER_ADV_SYNC_MAX" is similar to this new defined config "BT_CTLR_SYNC_PERIODIC_ADV_LIST_SIZE", or at least it is possible to define the second one based on the first one. |
|
Fix Periodic Advertising Sync Establishment to accept synchronization establishment to device listed in the Periodic Advertisers List when filter policy was used. Fixes zephyrproject-rtos#38520. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
Fix Periodic Advertising Sync Establishment to accept synchronization establishment to device listed in the Periodic Advertisers List when filter policy was used. Fixes #38520. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
Describe the bug
I am trying to develop an application that supports multiple "periodic extended advertisement" based on this sample:
https://docs.zephyrproject.org/latest/samples/bluetooth/direction_finding_connectionless_rx/README.html
By default it only supports one synchronized device at a time, to support multiple device, I tried to use "bt_le_per_adv_list_add" function to add peer device LE address to the periodic advertising list. Also "BT_LE_PER_ADV_SYNC_OPT_USE_PER_ADV_LIST" is added to the options. the final source code of "create_sync" function is:
In the above code,
failed (err -5)
is printed.bt_le_per_adv_list_add
callsbt_hci_cmd_send_sync
function which fails byopcode 0x2047 status 0x01
, where status 0x01 meansBT_HCI_ERR_UNKNOWN_CMD
as defined at hci_err.hIndeed, executing the above code, calls
cmd_handle
from hci_driver.c which consequently callshci_cmd_handle
function. The corresponding opcode is "0x2047", so it callscontroller_cmd_handle
from hci.c which returns-EINVAL
because this opcode is not implemented.To Reproduce
Steps to reproduce the behavior:
Expected behavior
bt_le_per_adv_list_add
function adds devices to the periodic advertising list as it is described in the bluetooth.h header file.Impact
It is not possible to receive advertisement information from more than one AoA tag at the same time.
Logs and console output
I have added printk function to some of the above methods to see the errors, result is:
modified files:
hci.c:
hci_core.c
Environment (please complete the following information):
Additional context
By searching
BT_HCI_OP_LE_ADD_DEV_TO_PER_ADV_LIST
in the project files, you can see it is defined athci.h
and only is used byscan.c
but is not implemented ate any other source file.The text was updated successfully, but these errors were encountered: