79 lines
3.1 KiB
ReStructuredText
79 lines
3.1 KiB
ReStructuredText
|
Bluetooth: Broadcast Audio Profile Broadcast Assistant
|
||
|
######################################################
|
||
|
|
||
|
This document describes how to run the BAP Broadcast Assistant functionality.
|
||
|
Note that in the examples below, some lines of debug have been
|
||
|
removed to make this shorter and provide a better overview.
|
||
|
|
||
|
The Broadcast Assistant is responsible for offloading scan for a resource
|
||
|
restricted device, such that scanning does not drain the battery. The Broadcast
|
||
|
Assistant shall support scanning for periodic advertisements and may optionally
|
||
|
support the periodic advertisements synchronization transfer (PAST) protocol.
|
||
|
|
||
|
The Broadcast Assistant will typically be phones or laptops.
|
||
|
The Broadcast Assistant scans for periodic advertisements and transfer
|
||
|
information to the server.
|
||
|
|
||
|
It is necessary to have :code:`BT_DEBUG_BAP_BROADCAST_ASSISTANT` enabled for
|
||
|
using the Broadcast Assistant interactively.
|
||
|
|
||
|
When the Bluetooth stack has been initialized (:code:`bt init`),
|
||
|
and a device has been connected, the Broadcast Assistant can discover BASS on
|
||
|
the connected device calling :code:`bap_broadcast_assistant discover`, which
|
||
|
will start a discovery for the BASS UUIDs and store the handles, and
|
||
|
subscribe to all notifications.
|
||
|
|
||
|
.. code-block:: console
|
||
|
|
||
|
bap_broadcast_assistant - Bluetooth BAP Broadcast Assistant shell commands
|
||
|
Subcommands:
|
||
|
discover :Discover BASS on the server
|
||
|
scan_start :Start scanning for broadcasters
|
||
|
scan_stop :Stop scanning for BISs
|
||
|
add_src :Add a source <address: XX:XX:XX:XX:XX:XX> <type:
|
||
|
public/random> <adv_sid> <sync_pa> <broadcast_id>
|
||
|
[<pa_interval>] [<sync_bis>] [<metadata>]
|
||
|
mod_src :Set sync <src_id> <sync_pa> [<pa_interval>] [<sync_bis>]
|
||
|
[<metadata>]
|
||
|
broadcast_code :Send a space separated broadcast code of up to 16 bytes
|
||
|
<src_id> [broadcast code]
|
||
|
rem_src :Remove a source <src_id>
|
||
|
read_state :Remove a source <index>
|
||
|
|
||
|
Example usage
|
||
|
*************
|
||
|
|
||
|
Setup
|
||
|
=====
|
||
|
|
||
|
.. code-block:: console
|
||
|
|
||
|
uart:~$ bt init
|
||
|
uart:~$ bt connect xx:xx:xx:xx:xx:xx public
|
||
|
|
||
|
When connected
|
||
|
==============
|
||
|
|
||
|
Start scanning for periodic advertisements for a server:
|
||
|
|
||
|
.. note::
|
||
|
The Broadcast Assistant will not actually start scanning for periodic
|
||
|
advertisements, as that feature is still, at the time of writing, not
|
||
|
implemented.
|
||
|
|
||
|
.. code-block:: console
|
||
|
|
||
|
uart:~$ bap_broadcast_assistant discover
|
||
|
<dbg> bt_bap_broadcast_assistant.char_discover_func: Found 1 BASS receive states
|
||
|
<dbg> bt_bap_broadcast_assistant.read_recv_state_cb: src_id 0, PA 0, BIS 0, encrypt 0, addr 00:00:00:00:00:00 (public), sid 0, metadata_len 0
|
||
|
uart:~$ bap_broadcast_assistant scan_start
|
||
|
<dbg> bt_bap_broadcast_assistant.write_func: err: 0x00, handle 0x001e
|
||
|
|
||
|
Adding a source to the receive state:
|
||
|
|
||
|
.. code-block:: console
|
||
|
|
||
|
uart:~$ bap_broadcast_assistant add_src 11:22:33:44:55:66 public 5 1 1
|
||
|
BASS recv state: src_id 0, addr 11:22:33:44:55:66 (public), sid 5, sync_state 1, encrypt_state 000000000000000000000000000000000
|
||
|
[0]: BIS sync 0, metadata_len 0
|