forked from nrfconnect/sdk-zephyr
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bluetooth: samples: Add ISO connected benchmark sample
Add a sample that measures packet loss in a connected ISO setup. Signed-off-by: Emil Gydesen <[email protected]>
- Loading branch information
Showing
5 changed files
with
1,206 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# | ||
# Copyright (c) 2021 Nordic Semiconductor | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
|
||
cmake_minimum_required(VERSION 3.13.1) | ||
|
||
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) | ||
project(NONE) | ||
|
||
FILE(GLOB app_sources src/*.c) | ||
|
||
target_sources(app PRIVATE | ||
${app_sources} | ||
) | ||
|
||
zephyr_library_include_directories(${ZEPHYR_BASE}/samples/bluetooth) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
.. _iso_connected_benchmark: | ||
|
||
Bluetooth: Throughput | ||
##################### | ||
|
||
The ISO Connected Channels Benchmark sample measures and reports packet loss | ||
and sync loss in connected ISO channels. | ||
|
||
|
||
Overview | ||
******** | ||
|
||
The sample transmits data between the *central* and the *peripheral* | ||
and measures the quality of the ISO channels. | ||
|
||
The application can be used as both a central and a peripheral, and the mode | ||
can easily be changed. | ||
|
||
Requirements | ||
************ | ||
|
||
* A board with Bluetooth Low Energy 5.2 and Connected Isochronous Channel | ||
support | ||
* A remote board running the same sample as the reversed role | ||
|
||
Building and running | ||
******************** | ||
|
||
This sample can be found under | ||
:zephyr_file:`samples/bluetooth/iso_connected_benchmark` in the Zephyr tree. | ||
|
||
See :ref:`bluetooth samples section <bluetooth-samples>` for details. | ||
|
||
|
||
Testing | ||
======= | ||
|
||
After programming the sample to both boards, test it by performing the following | ||
steps: | ||
|
||
1. Connect to both boards with a terminal emulator (for example, PuTTY or | ||
minicom). | ||
#. Reset both boards. | ||
#. In one of the terminal emulators, type "c" to start the application on the | ||
connected board in the central role. | ||
#. In the other terminal emulator, type "p" to start the application in the | ||
peripheral role. | ||
#. Optionally modify the central ISO settings using the console. | ||
#. Observe that the central and the peripheral connects. | ||
#. Observe the receive statistics on the devices (the connected ISO channels may | ||
by uni- or bidirectional). | ||
|
||
Sample output | ||
============== | ||
The peripheral will output overall data (since boot), | ||
current connection (since the CIG was connected) and latest 1000 received | ||
packets:: | ||
|
||
*** Booting Zephyr OS build zephyr-v2.5.0-4098-gdcaaee6db2f5 *** | ||
[00:00:00.392,333] <inf> iso_connected: Starting Bluetooth Throughput example | ||
[00:00:00.405,395] <inf> iso_connected: Bluetooth initialized | ||
Choose device role - type c (central role) or p (peripheral role), or q to quit: p | ||
Peripheral role | ||
[00:00:10.281,555] <inf> iso_connected: Registering ISO server | ||
[00:00:10.281,555] <inf> iso_connected: Starting advertising | ||
[00:00:10.282,684] <inf> iso_connected: Waiting for ACL connection | ||
[00:00:16.711,517] <inf> iso_connected: Connected: FA:4C:4B:DB:D3:89 (public) | ||
[00:00:16.711,669] <inf> iso_connected: Waiting for ISO connection | ||
[00:00:16.802,856] <inf> iso_connected: Incoming ISO request | ||
[00:00:16.802,856] <inf> iso_connected: Returning instance 0 | ||
[00:00:17.016,845] <inf> iso_connected: ISO Channel 0x20002934 connected | ||
[00:00:17.769,439] <inf> iso_connected: Sending value 100 | ||
[00:00:17.774,902] <inf> iso_connected: Overall : Received 100/100 (100.00%) - Total packets lost 0 | ||
[00:00:17.774,932] <inf> iso_connected: Current Conn: Received 100/100 (100.00%) - Total packets lost 0 | ||
[00:00:17.774,963] <inf> iso_connected: Latest 1000 : Received 100/100 (100.00%) - Total packets lost 0 | ||
[00:00:17.774,963] <inf> iso_connected: | ||
[00:00:18.529,510] <inf> iso_connected: Sending value 200 | ||
[00:00:18.532,409] <inf> iso_connected: Overall : Received 200/200 (100.00%) - Total packets lost 0 | ||
[00:00:18.532,470] <inf> iso_connected: Current Conn: Received 200/200 (100.00%) - Total packets lost 0 | ||
[00:00:18.532,501] <inf> iso_connected: Latest 1000 : Received 200/200 (100.00%) - Total packets lost 0 | ||
|
||
|
||
The central will ask if any changes to the current settings are wanted. | ||
If y/Y is chosen, then it will create a prompt to changes the settings, | ||
otherwise continue with the current settings. The central will then start | ||
scanning for and connecting to a peer device running the sample as peripheral | ||
role. Once connected, the central will output overall data (since boot), | ||
current connection (since the CIG was connected) and latest 1000 received | ||
packets:: | ||
|
||
*** Booting Zephyr OS build zephyr-v2.5.0-4098-gdcaaee6db2f5 *** | ||
[00:00:00.459,869] <inf> iso_connected: Starting Bluetooth Throughput example | ||
[00:00:00.472,961] <inf> iso_connected: Bluetooth initialized | ||
Choose device role - type c (central role) or p (peripheral role), or q to quit: c | ||
Central role | ||
Change ISO settings (y/N)? | ||
[00:00:03.277,893] <inf> iso_connected: Scan started | ||
[00:00:03.277,893] <inf> iso_connected: Waiting for advertiser | ||
[00:00:03.899,963] <inf> iso_connected: Found peripheral with address F4:5A:12:BF:4F:2C (public) (RSSI -24) | ||
[00:00:03.900,024] <inf> iso_connected: Stopping scan | ||
[00:00:03.908,020] <inf> iso_connected: Scan stopped | ||
[00:00:03.908,020] <inf> iso_connected: Connecting | ||
[00:00:04.007,232] <inf> iso_connected: Connected: F4:5A:12:BF:4F:2C (public) | ||
[00:00:04.007,354] <inf> iso_connected: Binding ISO | ||
[00:00:04.007,812] <inf> iso_connected: Connecting ISO channels | ||
[00:00:04.312,744] <inf> iso_connected: ISO Channel 0x20002934 connected | ||
[00:00:05.065,368] <inf> iso_connected: Sending value 100 | ||
[00:00:05.072,052] <inf> iso_connected: Overall : Received 100/100 (100.00%) - Total packets lost 0 | ||
[00:00:05.072,113] <inf> iso_connected: Current Conn: Received 100/100 (100.00%) - Total packets lost 0 | ||
[00:00:05.072,143] <inf> iso_connected: Latest 1000 : Received 100/100 (100.00%) - Total packets lost 0 | ||
[00:00:05.072,143] <inf> iso_connected: | ||
[00:00:05.825,439] <inf> iso_connected: Sending value 200 | ||
[00:00:05.829,589] <inf> iso_connected: Overall : Received 200/200 (100.00%) - Total packets lost 0 | ||
[00:00:05.829,620] <inf> iso_connected: Current Conn: Received 200/200 (100.00%) - Total packets lost 0 | ||
[00:00:05.829,650] <inf> iso_connected: Latest 1000 : Received 200/200 (100.00%) - Total packets lost 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
CONFIG_CONSOLE_SUBSYS=y | ||
CONFIG_CONSOLE_GETCHAR=y | ||
|
||
CONFIG_BT_DEVICE_NAME="ISO Connected Throughput" | ||
CONFIG_BT=y | ||
CONFIG_BT_PERIPHERAL=y | ||
CONFIG_BT_CENTRAL=y | ||
CONFIG_BT_ISO_UNICAST=y | ||
CONFIG_BT_ISO_MAX_CHAN=2 | ||
CONFIG_BT_ISO_TX_BUF_COUNT=4 | ||
|
||
CONFIG_MAIN_STACK_SIZE=2048 | ||
|
||
CONFIG_LOG=y | ||
CONFIG_CBPRINTF_FP_SUPPORT=y | ||
CONFIG_LOG2_MODE_DEFERRED=y | ||
CONFIG_LOG_BUFFER_SIZE=2048 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
sample: | ||
name: BLE ISO Connected | ||
description: Bluetooth Low Energy ISO Connected Benchmark sample | ||
tests: | ||
samples.bluetooth.iso_connected_benchmark: | ||
build_only: true | ||
platform_allow: nrf52840dk_nrf52840 nrf5340dk_nrf5340_cpuapp | ||
tags: bluetooth |
Oops, something went wrong.