This implements the Adafruit Bluefruit LE Connect controller protocol which is e.g. used by the Adafruit Bluefruit LE UART Friend.
Note that this work is not affiliated with Adafruit.
This crate is no_std
and you can choose whether you want to use
heapless::Vec
by selecting the feature use_heapless
or
alloc::vec::Vec
by selecting the feature use_alloc
.
If you select neither or both you'll get a compile error.
defmt
: you can enable thedefmt
feature to get adefmt::Format
implementation for all structs & enums and adefmt::debug!
call for each command being parsed.rgb
: if enabled,From<ColorEvent> for RGB8
is implemented to support the RGB crate.serde
: if enabled, all events implement the serde#[derive(Serialize, Deserialize)]
.- All events can be selected as individual features. By default, they are all selected,
but you can opt to only select the event(s) you are interested in which will result in a small binary size.
If other events are received, a
ProtocolParseError::DisabledControllerDataPackageType
will be returned.
A simple example for the STM32F4 microcontrollers is available.
For the changelog please see the dedicated CHANGELOG.md.
This crate is guaranteed to compile on stable Rust 1.62 and up. It might compile with older versions but that may change in any new patch release.