zephyr/samples/bluetooth
Luiz Augusto von Dentz bafbe76dc3 Bluetooth: HoG: Require authentication for connections
HID over GATT Profile Specification states:

  'The HID Device shall use LE Security Mode 1 and either Security Level
   2 or 3.'

Change-Id: I2cfc1d9df76b4e8a8b2be7e87d18a7a5f3a19ea8
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2016-09-07 08:17:26 +03:00
..
beacon Bluetooth: samples: Unify config for QEMU and Arduino101 targets 2016-06-15 12:17:06 +00:00
btusb Bluetooth/samples: Fix missing argument in printf for btusb 2016-09-07 08:17:26 +03:00
central Bluetooth: Pass net_buf_simple to scan callback 2016-07-20 16:19:01 +00:00
central_hr Bluetooth: Pass net_buf_simple to scan callback 2016-07-20 16:19:01 +00:00
eddystone Bluetooth: eddystone: Add timeout to deactivate configuration mode 2016-09-07 08:17:26 +03:00
gatt Bluetooth: Add service sample for HoG 2016-09-07 08:17:26 +03:00
ipsp samples: testcases.ini change tags separated with commas 2016-07-08 18:20:08 +00:00
peripheral build: move from srctree to ZEPHYR_BASE for app include paths 2016-06-30 14:36:39 +00:00
peripheral_csc build: move from srctree to ZEPHYR_BASE for app include paths 2016-06-30 14:36:39 +00:00
peripheral_dis build: move from srctree to ZEPHYR_BASE for app include paths 2016-06-30 14:36:39 +00:00
peripheral_esp build: move from srctree to ZEPHYR_BASE for app include paths 2016-06-30 14:36:39 +00:00
peripheral_hids Bluetooth: HoG: Require authentication for connections 2016-09-07 08:17:26 +03:00
peripheral_hr build: move from srctree to ZEPHYR_BASE for app include paths 2016-06-30 14:36:39 +00:00
peripheral_sc_only build: move from srctree to ZEPHYR_BASE for app include paths 2016-06-30 14:36:39 +00:00
README Bluetooth: Add sample implementing HIDS 2016-09-07 08:17:26 +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 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

= Summary of available applications =

beacon:
        A simple application demonstrating the BLE Broadcaster role
        functionality by advertising an Eddystone URL (the Zephyr
        website).

central:
        Application demonstrating very basic BLE Central role
        functionality by scanning for other BLE devices and establishing
        a connection to the first one with a strong enough signal.

central_hr:
        Similar to 'central', except that this application specifically
        looks for heart-rate monitors and reports the heart-rate
        readings once connected.

eddystone:
        Application demostrating Eddystone Configuration Service:
        https://github.com/google/eddystone/tree/master/configuration-service

gatt:
        Not an application, but a set of reusable modules for common
        GATT profiles & services.

ipsp:
        Application demonstrating the IPSP (Internet Protocol Support
        Profile) Node role. IPSP is the Bluetooth profile that
        underneath utilizes 6LoWPAN, i.e. gives you IPv6 connectivity
        over BLE.

peripheral:
        Application demonstrating the BLE Peripheral role. It has
        several well-known and vendor-specific GATT services that it
        exposes.

peripheral_csc:
        Similar to 'peripheral', except that this application
        specifically exposes the CSC (Cycling Speed and Cadence)
        GATT Service.

peripheral_dis:
        Similar to 'peripheral', except that this application
        specifically exposes the DIS (Device Information) GATT Service.

peripheral_esp:
        Similar to 'peripheral', except that this application
        specifically exposes the ESP (Environmental Sensing Profile)
        GATT Service.

peripheral_hr:
        Similar to 'peripheral', except that this application
        specifically exposes the HR (Heart Rate) GATT Service. Once a
        device connects it will generate dummy heart-rate values.

peripheral_hids:
        Similar to 'peripheral', except that this application
        specifically exposes the HID GATT Service. The report map used
	is for a generic mouse.