11 个版本
0.3.7 | 2023年3月6日 |
---|---|
0.3.6 | 2022年11月24日 |
0.2.0 | 2022年10月30日 |
0.1.1 | 2022年10月22日 |
#44 在 #esp32
每月下载量 39
105KB
2.5K SLoC
Bluedroid Rust 封装器
这是 ESP32 Bluedroid 蓝牙堆栈的 Rust 封装器。它允许您使用声明性 API 构建一个 GATT 服务器,并支持多线程。
使用方法
声明一个特性
let manufacturer_name_characteristic = Characteristic::new(BleUuid::Uuid16(0x2A29))
.name("Manufacturer Name String")
.permissions(AttributePermissions::new().read().write())
.properties(CharacteristicProperties::new().read().write().notify())
.max_value_length(20)
.on_write(|data, param| {
info!("Received write request: {:?} {:?}", data, param);
})
.show_name()
.set_value("Hello, world!".as_bytes().to_vec())
.build();
声明一个服务
let device_information_service = Service::new(BleUuid::Uuid16(0x180A))
.name("Device Information")
.primary()
.characteristic(&manufacturer_name_characteristic)
.build();
声明一个配置文件并启动服务器
let profile = Profile::new(0x0001)
.name("Device Information")
.service(&device_information_service)
.build();
GLOBAL_GATT_SERVER
.lock()
.unwrap()
.profile(profile)
.device_name("ESP32-GATT-Server")
.appearance(Appearance::WristWornPulseOximeter)
.advertise_service(&device_information_service)
.start();
功能
- GATT 服务器
- 广告
- 自定义名称
- 自定义外观
- 多个应用程序
- 服务
- 声明
- 广告
- 特性
- 声明
- 广播
- 读取
- 静态(由堆栈提供)
- 动态(由应用程序提供,带有回调)
- 长
- 写入
- 带响应
- 不带响应
- 长
- 通知
- 指示
- 描述符
- 声明
- 读取
- 写入
- 加密
- 广告
- GATT 客户端
目前没有计划实现 GATT 客户端 API。欢迎贡献。
- BR/EDR
目前没有计划实现蓝牙经典 API。欢迎贡献。
依赖项
~5–14MB
~181K SLoC