6 个版本 (3 个破坏性更新)
0.4.4 | 2024 年 6 月 15 日 |
---|---|
0.4.3 | 2024 年 3 月 12 日 |
0.4.0 | 2023 年 12 月 24 日 |
0.3.0 | 2023 年 11 月 29 日 |
0.1.0 | 2023 年 11 月 25 日 |
#1698 in 网络编程
每月 349 次下载
25KB
506 行
Bambulab API
🚧 进行中 🚧
此crate仍在开发中,尚未准备好用于生产。可能会随时发生破坏性更改。
bambulab 是一个异步Rust crate,它提供了一个基于通道的客户端,用于通过其MQTT代理与Bambu Lab设备交互。
功能
- 订阅打印机消息,如打印进度、温度、错误等。
- 向打印机发布命令
- 支持 P1P、P1S 和 X1C 打印机
用法
首先,将 bambulab
添加到您的依赖项中
cargo add bambulab
然后,使用 Client
结构体创建一个新的客户端并连接到打印机
use bambulab::{client::Client, command::Command};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let host = "printer-ip-or-hostname";
let access_code = "printer-access-code";
let serial = "printer-serial-number";
let (tx, mut rx) = tokio::sync::broadcast::channel::<Message>(25);
let mut client = Client::new(host, access_code, serial, tx);
let mut client_clone = client.clone();
tokio::try_join!(
tokio::spawn(async move {
client.run().await.unwrap();
}),
tokio::spawn(async move {
loop {
let message = rx.recv().await.unwrap();
println!("received: {message:?}");
if message == Message::Connected {
client_clone.publish(Command::PushAll).await.unwrap();
}
}
}),
)?;
Ok(())
}
请注意,您需要调用 subscribe() 以允许API监听消息。
更多示例请参阅 示例目录。
常见问题解答
我如何找到访问代码?
您可以在打印机的“WLAN”->“访问代码”设置下找到访问代码。
我如何找到序列号?
序列号可以在打印机的“SN”设置下找到。
贡献
有关更多信息,请参阅贡献指南。
许可证
此代码受以下之一许可:
任选其一。
免责声明
本项目与巴姆布拉布官方无关。这是一个第三方实现。
依赖关系
~19MB
~419K SLoC