This refactors how the BAP broadcast source handles the
extended and periodic advertising.
First it removes the start and stop of the extended
advertising, and instead expects the application
(or upper layers) to do this.
Second it exposes API functions to get the
necessary advertising data from BAP (service data and
the BASE), which the upper layers will then also
be responsible for setting and updating.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Update the config file to support 2 Broadcast Streams in
hci_rpmsg samples for running iso_broadcast and iso_receive
samples on nRF5340 DK.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Add project configuration overlay file to build the current
full feature set Bluetooth Low Energy Controller.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
The direction is used to identify the list to append the registered
capabilities. There is no need to keep it in the bt_audio_capabilities,
it can be provided as a function parameter instead.
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
Use Identiy address in direction_finding_connectionless_tx sample.
Without this option the advertiser is advertising using an NRPA since
it is a non-connectable advertiser.
The function bt_le_ext_adv_oob_get_local cannot be used to get the NRPA
address of the non-connectable advertiser when privacy is disabled.
Check the return address of bt_le_ext_adv_oob_get_local.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
This removes the callbacks from capabilities. The callbacks are used for
unicast server role only, while the capabilities are used for the
broadcast sink role as well. Thus the callbacks can be removed as there
is another bt_audio_unicast_server_cb API that is specific for unicast
server role.
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
This PR adds support using the USB CDC UART in the hci_uart sample,
including sample configuration for the nRF 52840 dongle.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
When the stopped callback is called, then the CIS is disconnected.
This should stop the sending of data from the server.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Fix the iso_broadcast and iso_receive sample to wait on
semaphore for all channel establishment and all channel
terminate callbacks to be invoked.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Increase the ISO Tx Buffers to avoid throttling of ISO data
transmission when using 2 Broadcast ISO streams.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
The controlling expression of an if statement
and the controlling expression of an iteration-statement shall have
essentially Boolean type.
Signed-off-by: Pirun Lee <pirun.lee@nordicsemi.no>
Peripheral: Fix wrong objects index
Central: Fix client not working after re-connect.
Check object properties before read/write.
Signed-off-by: Pirun Lee <pirun.lee@nordicsemi.no>
The peripheral_hids sample currently implements the HID descriptor and
characteristics, but no notify report. Add some code for implementing a
simple one button click report for boards that have sw0 defined, so that
the sample actually does something beside connecting and enumerating the
device.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
The default report_map for peripheral_hids mouse sample descriptor is
missing a report id field. This seems to be confusing Android hosts into
somehow parsing reports incorrectly.
Adding a report id seems to fix the problem and still works correctly on
bluez hosts.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
The CDB module is a mandatory part of provisioning features in BTM, and
can not be regarded as experimental anymore.
Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
Increase the Controller supported Advertising Data Length
Maximum so that Advertising Data set by Broadcast Audio
Source sample is accepted by the controller.
Also, tune down the supported ISO Tx PDU size to suffice the
Broadcast Audio Source usecase.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Updated the iso_receive sample to configure and synchronize
upto 2 BISes in the created BIG sync.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
As of today <zephyr/zephyr.h> is 100% equivalent to <zephyr/kernel.h>.
This patch proposes to then include <zephyr/kernel.h> instead of
<zephyr/zephyr.h> since it is more clear that you are including the
Kernel APIs and (probably) nothing else. <zephyr/zephyr.h> sounds like a
catch-all header that may be confusing. Most applications need to
include a bunch of other things to compile, e.g. driver headers or
subsystem headers like BT, logging, etc.
The idea of a catch-all header in Zephyr is probably not feasible
anyway. Reason is that Zephyr is not a library, like it could be for
example `libpython`. Zephyr provides many utilities nowadays: a kernel,
drivers, subsystems, etc and things will likely grow. A catch-all header
would be massive, difficult to keep up-to-date. It is also likely that
an application will only build a small subset. Note that subsystem-level
headers may use a catch-all approach to make things easier, though.
NOTE: This patch is **NOT** removing the header, just removing its usage
in-tree. I'd advocate for its deprecation (add a #warning on it), but I
understand many people will have concerns.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
This PR adds a `*_cli_*` infix to the Config Client API to match
the changes in Health Client. The old API is marked as deprecated.
Signed-off-by: Michal Narajowski <michal.narajowski@codecoup.pl>
Refactor the observer sample so that it can be reused as
bsim test to verify Extended advertisement chaining.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Refactor the broadcaster multiple sample so that it can be
reused as bsim test to verify Extended advertisement
chaining.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Added implementation to Observer sample so that when
Extended Advertising feature is enabled, it can receive
Extended Advertising Reports, and hence receive long AD
data from peer Extended Advertising Broadcaster Multiple
sample.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
The old project, liblc3codec, is not used anymore. Rename the Zephyr
module name, folders, and Kconfig options based on the new name, liblc3.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Many device pointers are initialized at compile and never changed. This
means that the device pointer can be constified (immutable).
Automated using:
```
perl -i -pe 's/const struct device \*(?!const)(.*)= DEVICE/const struct
device *const $1= DEVICE/g' **/*.c
```
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Change implementation of cte_recv_cb to print information about IQ
samples type. The changed code is ready for use of 8 bits and 16 bits
signed integer IQ samples. User has sample level option to enable
printing IQ samples.
Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
The function will be used to update the RSI value. The returned value
can be later used in advertisement data for set identification. This
removes the need of specific bt_csis_advertise function so that the user
can call the API to generate new RSI once needed (e.g. on RPA change).
This allows the user to manage the advertisement data to fit it's needs.
< HCI Command: LE Set Extended Advertising Enable (0x08|0x0039) plen 6
Extended advertising: Disabled (0x00)
Number of sets: 1 (0x01)
Entry 0
Handle: 0x00
Duration: 0 ms (0x00)
Max ext adv events: 0
> HCI Event: Command Complete (0x0e) plen 4
LE Set Extended Advertising Enable (0x08|0x0039) ncmd 1
Status: Success (0x00)
< HCI Command: LE Set Extended Advertising Data (0x08|0x0037) plen 33
Handle: 0x00
Operation: Complete extended advertising data (0x03)
Fragment preference: Minimize fragmentation (0x01)
Data length: 0x1d
Flags: 0x06
LE General Discoverable Mode
BR/EDR Not Supported
Unknown EIR field 0x2e: 16e61d64dc45
Name (complete): audio test shell
> HCI Event: Command Complete (0x0e) plen 4
LE Set Extended Advertising Data (0x08|0x0037) ncmd 1
Status: Success (0x00)
< HCI Command: LE Set Advertising Set Random Address (0x08|0x0035) plen 7
Advertising handle: 0x00
Advertising random address: 4E:21:29:F8:94:93 (Resolvable)
> HCI Event: Command Complete (0x0e) plen 4
LE Set Advertising Set Random Address (0x08|0x0035) ncmd 1
Status: Success (0x00)
< HCI Command: LE Set Extended Advertising Enable (0x08|0x0039) plen 6
Extended advertising: Enabled (0x01)
Number of sets: 1 (0x01)
Entry 0
Handle: 0x00
Duration: 0 ms (0x00)
Max ext adv events: 0
> HCI Event: Command Complete (0x0e) plen 4
LE Set Extended Advertising Enable (0x08|0x0039) ncmd 1
Status: Success (0x00)
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
It is frequent to find variable definitions like this:
```c
static const struct device *dev = DEVICE_DT_GET(...)
```
That is, module level variables that are statically initialized with a
device reference. Such value is, in most cases, never changed meaning
the variable can also be declared as const (immutable). This patch
constifies all such cases.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Default size of BT_RX_STACK_SIZE 1024 is not enough for this sample.
Increase it to prevent stack overflow.
Signed-off-by: Pirun Lee <pirun.lee@nordicsemi.no>
Small update to have the central_multilink sample work correctly
with extended advertising (when enabled)
Signed-off-by: Troels Nilsson <trnn@demant.com>
Provide common helper functions to create extended extended Zephyr
Fatal Error functionality in HCI common code.
Use the implementation in hci_rpmsg sample.
The sample didn't provide an information about Controllers assert
or system fatal error to an application code while run with nRF5340
SoC. The goal for hci_rpmsg sample change is to enhance user experience
for conformance testing of the Bluetooth Controller while executed with
nRF5340.
Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
The unicast audio server sample did not set a location value,
and would report an invalid value of 0 when read.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This adds sample application that can be used as reference
implementation and for HAP qualification purposes.
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
In order to keep a flashed sample from provisioning forever, the sample
requires the user to press a button to provision a detected device.
The feature is only enabled if the board has a push button connected
via GPIO.
Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
The driver has be DT_INST based for a while so the Kconfig
symbols CONFIG_UART_RV32M1_LPUART_<n> aren't used. So lets
remove them.
Signed-off-by: Kumar Gala <galak@kernel.org>
The unicast client will now read the PACS location value
during the discovery procedure, as well as subscribing to
it.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
In the broadcast sink `scan_recv` which is called when we
scan for broadcast source, we now also provide the entire
AD struct to the application.
The reason for this is that the advertising data may
contain other information that is useful for the application
like the broadcaster device name or any other
vendor/application specific data.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Update the sample to reset data and restart scanning for new
unicast audio servers if the connected one disconnected.
This does not handle if a disconnect happens in the middle of
setting up the audio streams.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>