c583a9f43b
Restructure the Bluetooth options more logically. - Both host and controller are now behind the same high level CONFIG_BLUETOOTH. - Selecting controller support disables other HCI driver selection, so the controller isn't in the same list as HCI drivers any more. - Under the top-level there's a "Custom stack" option, which when enabled opens up the option of choosing CONFIG_NBLE. There are various other cleanups and simplifications in this patch as well, since splitting these up would have been fairly tricky while making sure all test cases still build. Change-Id: I5bb715cb9d20201cb8b72fbd149c8a09a4b2d7d2 Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> |
||
---|---|---|
.. | ||
beacon | ||
central | ||
central_hr | ||
eddystone | ||
gatt | ||
handsfree | ||
hci_uart | ||
hci_usb | ||
ipsp | ||
peripheral | ||
peripheral_csc | ||
peripheral_dis | ||
peripheral_esp | ||
peripheral_hids | ||
peripheral_hr | ||
peripheral_sc_only | ||
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 tests directory 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. hci_uart: Expose Zephyr Bluetooth Controller support over UART to another device/CPU using the H:4 HCI transport protocol (requires HW flow control from the UART). hci_usb: Make a USB Bluetooth dongle out of Zephyr. Requires USB device support from the board it runs on (e.g. Arduino 101 has this). 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.