5 个版本 (3 个重大更新)
0.4.0 | 2023年11月28日 |
---|---|
0.3.0 | 2023年5月2日 |
0.2.0 | 2023年1月21日 |
0.1.1 | 2023年1月1日 |
0.1.0 | 2023年1月1日 |
#534 在 硬件支持
46KB
873 行
ember_mug | 使用蓝牙低功耗(BLE)控制并检索 Ember 陶瓷杯数据的 Rust crate
提供通过 btleplug crate 与 Ember Mug 设备交互的 Rust 接口。用于创建可以控制和监控 Ember Mug 设备的应用程序;检索当前温度或电池水平,设置目标温度或杯颜色,以及访问设备元数据。
示例
use ember_mug::{mug::Temperature, EmberMug};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mug = EmberMug::find_and_connect().await?;
let name = mug.get_name().await?;
println!("Connected to an Ember Mug with the name '{}'", name);
let battery = mug.get_battery().await?;
println!("Battery level: {}%", battery.battery);
let current_temp = mug.get_current_temperature().await?;
let target_temp = mug.get_target_temperature().await?;
let unit = mug.get_temperature_unit().await?;
println!("Current temperature: {}{}", current_temp, unit);
println!("Target temperature: {}{}", target_temp, unit);
mug.set_target_temperature(&Temperature::from_degree(60.0))
.await?;
let target_temp = mug.get_target_temperature().await?;
println!("Changed target temperature to {}{}", target_temp, unit);
Ok(())
}
结果为
Connected to an Ember Mug with the name 'EMBER'
Battery level: 100%
Current temperature: 20.5°C
Target temperature: 54°C
Changed target temperature to 60°C
赞
感谢 orlopau/ember-mug 和 sopelj/python-ember-mug 提供关于各种 BLE 特性的提示
许可证
根据您的选择,在 Apache 许可证,版本 2.0 或 MIT 许可证 下授权。除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交以包含在此包中的任何贡献,应按上述方式双重许可,不得附加任何额外条款或条件。
依赖项
~6–35MB
~518K SLoC