Crate bluenrg[][src]

Bluetooth HCI for STMicro's BlueNRG-MS Bluetooth controllers.

Note: This crate does not provide support for the BlueNRG-1 or BlueNRG-2 SoCs.

Design

The BlueNRG-MS is an external Bluetooth Radio Controller that communicates with the application processor over SPI and two dedicated pins:

  1. A SPI chip select pin, and
  2. A data ready signal.

This crate defines a public struct, BlueNRG that owns the chip select and data ready pins, and a receive buffer for the data that comes from the controller. It also defines a private struct, ActiveBlueNRG that borrows a handle to the SPI bus. ActiveBlueNRG implements bluetooth_hci::Controller, which provides access to the full Bluetooth HCI.

BlueNRG-MS implements parts of version 4.1 of the Bluetooth specification.

The fundamental way to use the BlueNRG is its with_spi function, which invokes its closure on at ActiveBlueNRG, so sending HCI commands and reading HCI events can only be done from within that closure.

Vendor-Specific Commands

BlueNRG-MS provides several vendor-specific commands that control the behavior of the controller.

Vendor-Specific Events

BlueNRG-MS provides several vendor-specific events that provide data related to the controller. Many of these events are forwarded from the link layer, and these are documented with a reference to the appropriate section of the Bluetooth specification.

Example

TODO

Modules

event

Vendor-specific events for BlueNRG controllers.

gap

GAP commands and types needed for those commands.

gatt

GATT commands and types needed for those commands.

hal

Vendor-specific HCI commands and types needed for those commands.

l2cap

L2Cap-specific commands and types needed for those commands.

Structs

ActiveBlueNRG

Handle for actively communicating with the controller over the SPI bus.

BlueNRG

Handle for interfacing with the BlueNRG-MS.

BlueNRGTypes

Specify vendor-specific extensions for the BlueNRG.

InvalidHardwareError

Error type for TryFrom to HardwareError. Includes the invalid byte.

Version

Vendor-specific interpretation of the local version information from the controller.

Enums

AdvertisingFilterPolicy

Possible filter policies used for undirected advertising.

AdvertisingType

The advertising type is used in the AdvertisingParameters to determine the packet type that is used for advertising when advertising is enabled.

HardwareError

Hardware event codes returned by the HardwareError HCI event.

OwnAddressType

Indicates the type of address being used in the advertising packets.

Traits

LocalVersionInfoExt

Extension trait to convert hci::event::command::LocalVersionInfo into the BlueNRG-specific Version struct.