zephyr/samples/bluetooth
Szymon Janc 6d5ed390b1 Bluetooth: Simplify advertising API
Instead of requiring application to provide both advertising type
and address type used just require app to provide info if advertising
is connectable or not. Advertising type is set based on provided
SCAN_RSP and local privacy support.

When local privacy is enabled it is no longer possible to advertise
using identity address. If such feature is to be required later on
advertising options can be extended.

This gives BT stack full control over what type of address is used
for advertising and is a preparation for random address rotation
and OOB support.

Change-Id: I90e9a683ef3794f155707343c874f75585439325
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
2016-05-04 11:11:34 +00:00
..
beacon Bluetooth: Simplify advertising API 2016-05-04 11:11:34 +00:00
central tests: Fix Bluetooth tests and samples platform blacklisting 2016-02-15 15:06:53 +00:00
central_hr Bluetooth: Kconfig: Split debug selection into a choice 2016-04-20 17:46:09 +03:00
gatt Bluetooth: Simplify advertising API 2016-05-04 11:11:34 +00:00
ipsp Bluetooth: Kconfig: Split debug selection into a choice 2016-04-20 17:46:09 +03:00
peripheral Bluetooth: Simplify advertising API 2016-05-04 11:11:34 +00:00
peripheral_csc Bluetooth: Simplify advertising API 2016-05-04 11:11:34 +00:00
peripheral_dis Bluetooth: Simplify advertising API 2016-05-04 11:11:34 +00:00
peripheral_esp Bluetooth: Simplify advertising API 2016-05-04 11:11:34 +00:00
peripheral_hr Bluetooth: Simplify advertising API 2016-05-04 11:11:34 +00:00
peripheral_sc_only Bluetooth: Simplify advertising API 2016-05-04 11:11:34 +00:00
README Bluetooth: samples/README: Fix sanitycheck references 2016-03-31 07:57:23 +03:00

README

Bluetooth subsystem

= Building =

Build samples

$ make -C samples/bluetooth/<app>

= Bluetooth Sample application =

Host Bluetooth controller is connected to the second qemu serial line
through a UNIX socket (qemu option -serial unix:/tmp/bt-server-bredr).
This option is already added to qemu through QEMU_EXTRA_FLAGS in Makefile.

On the host side BlueZ allows to "connect" Bluetooth controller through
a so-called user channel. Use the btproxy tool for that:

$ sudo tools/btproxy -u
Listening on /tmp/bt-server-bredr

Note that before calling btproxy make sure that Bluetooth controller is down.

Now running qemu result connecting second serial line to 'bt-server-bredr'
UNIX socket. When Bluetooth (CONFIG_BLUETOOTH) and Bluetooth HCI UART driver
(CONFIG_BLUETOOTH_H4) are enabled, Bluetooth driver registers to the system.
From now on Bluetooth might be used by the application. To run application in
the qemu run:

$ make qemu

== Bluetooth IPSP application ==

To test IPSP please take a look at samples/net/README, in addition to running
echo-client it is necessary to enable 6LowPAN module in Linux with the
following commands:

$ modprobe bluetooth_6lowpan
$ echo 1 > /sys/kernel/debug/bluetooth/6lowpan_enable

Then to connect:

echo "connect <bdaddr> <type>" > /sys/kernel/debug/bluetooth/6lowpan_control

Once connected a dedicated interface will be created, usually bt0, which can
then be used as following:

$ echo-client -i bt0 <ip>

= Bluetooth sanity check =

There is smoke test application in nanokernel and microkernel test
directories which gets run in sanity check script:

$ scripts/sanity_chk/sanitycheck [-P <platform>]

To only run Bluetooth tests use the -t bluetooth switch:

$ scripts/sanity_chk/sanitycheck -t bluetooth