doc: Bluetooth: Add CAP documentation
Add documentation for CAP by adding the reference to the API document. Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This commit is contained in:
parent
3ab925ecef
commit
4eb92f2d29
7 changed files with 176 additions and 6 deletions
139
doc/connectivity/bluetooth/api/shell/cap.rst
Normal file
139
doc/connectivity/bluetooth/api/shell/cap.rst
Normal file
|
@ -0,0 +1,139 @@
|
|||
Bluetooth: Common Audio Profile Shell
|
||||
#####################################
|
||||
|
||||
This document describes how to run the Common Audio Profile functionality.
|
||||
|
||||
CAP Acceptor
|
||||
************
|
||||
|
||||
The Acceptor will typically be a resource-constrained device, such as a headset, earbud or hearing
|
||||
aid. The Acceptor can initialize a Coordinated Set Identification Service instance, if it is in
|
||||
a pair with one or more other CAP Acceptors.
|
||||
|
||||
Using the CAP Acceptor
|
||||
======================
|
||||
|
||||
When the Bluetooth stack has been initialized (:code:`bt init`), the Acceptor can be registered by
|
||||
by calling :code:`cap_acceptor init`, which will register the CAS and CSIS services, as well as
|
||||
register callbacks.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
|
||||
cap_acceptor --help
|
||||
cap_acceptor - Bluetooth CAP acceptor shell commands
|
||||
Subcommands:
|
||||
init :Initialize the service and register callbacks [size <int>]
|
||||
[rank <int>] [not-lockable] [sirk <data>]
|
||||
lock :Lock the set
|
||||
release :Release the set [force]
|
||||
print_sirk :Print the currently used SIRK
|
||||
set_sirk_rsp :Set the response used in SIRK requests <accept, accept_enc,
|
||||
reject, oob>
|
||||
|
||||
Besides initializing the CAS and the CSIS, there are also commands to lock and release the CSIS
|
||||
instance, as well as printing and modifying access to the SIRK of the CSIS.
|
||||
|
||||
|
||||
CAP Initiator
|
||||
*************
|
||||
|
||||
The Initiator will typically be a resource-rich device, such as a phone or PC. The Initiator can
|
||||
discover CAP Acceptors's CAS and optional CSIS services. The CSIS service can be read to provide
|
||||
information about other CAP Acceptors in the same Coordinated Set. The Initiator can execute
|
||||
stream control procedures on sets of devices, either ad-hoc or Coordinated, and thus provides an
|
||||
easy way to setup multiple streams on multiple devices at once.
|
||||
|
||||
Using the CAP Initiator
|
||||
=======================
|
||||
|
||||
When the Bluetooth stack has been initialized (:code:`bt init`), the Initiator can discover CAS and
|
||||
the optionally included CSIS instance by calling (:code:`cap_initiator discover`).
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
cap_initiator --help
|
||||
cap_initiator - Bluetooth CAP initiator shell commands
|
||||
Subcommands:
|
||||
discover :Discover CAS
|
||||
unicast-start :Unicast Start [csip] [sinks <cnt> (default 1)] [sources <cnt>
|
||||
(default 1)] [conns (<cnt> | all) (default 1)]
|
||||
unicast-list :Unicast list streams
|
||||
unicast-update :Unicast Update <all | stream [stream [stream...]]>
|
||||
unicast-stop :Unicast stop all streams
|
||||
|
||||
Before being able to perform any stream operation, the device must also perform the
|
||||
:code:`bap discover` operation to discover the ASEs and PAC records. The :code:`bap init`
|
||||
command also needs to be called.
|
||||
|
||||
When connected
|
||||
--------------
|
||||
|
||||
Discovering CAS and CSIS on a device:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
uart:~$ cap_initiator discover
|
||||
discovery completed with CSIS
|
||||
|
||||
|
||||
Discovering ASEs and PAC records on a device:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
uart:~$ bap discover
|
||||
conn 0x81cc260: #0: codec 0x81d5b28 dir 0x01
|
||||
codec 0x06 cid 0x0000 vid 0x0000 count 5
|
||||
data #0: type 0x01 len 2
|
||||
00000000: f5 |. |
|
||||
data #1: type 0x02 len 1
|
||||
data #2: type 0x03 len 1
|
||||
data #3: type 0x04 len 4
|
||||
00000000: 1e 00 f0 |... |
|
||||
data #4: type 0x05 len 1
|
||||
meta #0: type 0x01 len 2
|
||||
00000000: 06 |. |
|
||||
dir 1 loc 1
|
||||
snk ctx 6 src ctx 6
|
||||
Conn: 0x81cc260, Sink #0: ep 0x81e4248
|
||||
Conn: 0x81cc260, Sink #1: ep 0x81e46a8
|
||||
conn 0x81cc260: #0: codec 0x81d5f00 dir 0x02
|
||||
codec 0x06 cid 0x0000 vid 0x0000 count 5
|
||||
data #0: type 0x01 len 2
|
||||
00000000: f5 |. |
|
||||
data #1: type 0x02 len 1
|
||||
data #2: type 0x03 len 1
|
||||
data #3: type 0x04 len 4
|
||||
00000000: 1e 00 f0 |... |
|
||||
data #4: type 0x05 len 1
|
||||
meta #0: type 0x01 len 2
|
||||
00000000: 06 |. |
|
||||
dir 2 loc 1
|
||||
snk ctx 6 src ctx 6
|
||||
Conn: 0x81cc260, Source #0: ep 0x81e5c88
|
||||
Conn: 0x81cc260, Source #1: ep 0x81e60e8
|
||||
Discover complete: err 0
|
||||
|
||||
Both of the above commands should be done for each device that you want to use in the set.
|
||||
To use multiple devices, simply connect to more and then use :code:`bt select` the device to execute
|
||||
the commands on.
|
||||
|
||||
Once all devices have been connected and the respective discovery commands have been called, the
|
||||
:code:`cap_initiator unicast-start` command can be used to put one or more streams into the
|
||||
streaming state.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
uart:~$ cap_initiator unicast-start sinks 1 sources 0 conns all
|
||||
Setting up 1 sinks and 0 sources on each (2) conn
|
||||
Starting 1 streams
|
||||
Unicast start completed
|
||||
|
||||
To stop all the streams that has been started, the :code:`cap_initiator unicast-stop` command can be
|
||||
used.
|
||||
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
uart:~$ cap_initiator unicast-stop
|
||||
Unicast stopped for group 0x81e41c0 completed
|
Loading…
Add table
Add a link
Reference in a new issue