4个版本
0.1.4 | 2020年2月22日 |
---|---|
0.1.2 | 2020年1月13日 |
0.1.1 | 2020年1月12日 |
0.1.0 | 2019年8月19日 |
#1212 in 硬件支持
1MB
12K SLoC
蓝牙网状Rust
!! WIP 和 API 在 1.0 版本前不稳定 !!
跨平台,全蓝牙网状栈,在Rust中实现。遵循SIG的蓝牙网状规范核心v1.0。设计用于与几乎任何BLE无线发射器一起工作(使用https://github.com/AndrewGi/btle/进行平台相关的蓝牙驱动程序)。虽然库提供了堆栈,但还提供了所有用于自定义和创建您自己的堆栈的原始数据和对象。
本库考虑了#![no_std]
。然而,由于蓝牙网状栈的复杂性,std
对于使用异步tokio进行消息处理和处理的full_stack
是必需的。#![no_std]
目前已被禁用,直到https://github.com/rust-lang/rust/pull/69033达到nightly/stable。
处理消息期间唯一的堆分配是在访问层分配消息的内存。大多数网状PDU小于31字节(以适应单个BLE广告),因此网络和底层传输层将数据静态存储在堆栈上。上层PDU及以上允许在堆栈之外进行分配(上层传输PDU最多可达380字节!)但可以为PDU提供一个通用的自定义分配器/存储。
示例
请参见Mesh CLI以获取应用程序示例。
堆栈的工作方式
依赖项
~2–3.5MB
~64K SLoC