6个版本
0.3.1 | 2024年4月13日 |
---|---|
0.3.0 | 2024年1月21日 |
0.2.2 | 2022年6月4日 |
0.2.1 | 2022年2月7日 |
0.1.0 | 2021年11月4日 |
#429 in 硬件支持
在blehr中使用
32KB
645 行
bleasy
Rust的高级BLE通信库。
此库的目标是提供一个易于使用的接口,用于与BLE设备通信,满足大多数用例。
使用方法
以下是如何查找具有电池级别特性的设备并从中读取值的一个示例。有关更多示例,请参阅示例目录。
use bleasy::common::characteristics::BATTERY_LEVEL;
use bleasy::{Error, ScanConfig, Scanner};
use futures::StreamExt;
#[tokio::main]
async fn main() -> Result<(), Error> {
pretty_env_logger::init();
// Filter devices that have battery level characteristic
let config = ScanConfig::default()
.filter_by_characteristics(|uuids| uuids.contains(&BATTERY_LEVEL))
.stop_after_first_match();
// Start scanning for devices
let mut scanner = Scanner::new();
scanner.start(config).await?;
// Take the first discovered device
let device = scanner.device_stream().next().await.unwrap();
// Read the battery level
let battery_level = device.characteristic(BATTERY_LEVEL).await?.unwrap();
println!("Battery level: {:?}", battery_level.read().await?);
Ok(())
}
背景
在撰写本文时,Rust只有一个跨平台BLE库,即btleplug。我已经在使用它进行各种个人项目了一段时间,但我发现我想要一个更高层次的库,使得与BLE设备的工作变得快速简单,类似于Python中的bleak。
由于这个库在其当前状态下使用了btleplug,这可以被视为它的某种便利包装。
依赖关系
~5–35MB
~505K SLoC