2个版本
0.2.1 | 2021年9月25日 |
---|---|
0.2.0 | 2021年9月24日 |
#1153 在 硬件支持
在 2 个crate中使用 (通过 crazyflie-link)
16KB
233 行
Crazyradio webusb rust驱动程序
使用WebUSB API在Rust中使用Crazyradio的驱动程序。
此驱动程序旨在用于针对Wasm的Web浏览器。它实现了原生Crazyradio crate的异步API。
版本管理
此仓库遵循crazyradio crate的版本。例如,此crate的0.2.x版本实现了与crazyradio
crate的0.2.x版本相同的异步API。
这允许对此crate和crazyradio
crate进行“鸭子类型”,例如在crazyflie-link
crate中就是这样做的。
#[cfg(feature = "native")]
pub(crate) use crazyradio;
#[cfg(feature = "webusb")]
pub(crate) use crazyradio_webusb as crazyradio;
编译要求
Webusb仍然是一个不稳定的API,因此web-sys
crate需要特定的不稳定构建标志才能编译。这可以通过向项目添加一个.cargo/config.toml
文件来完成,内容如下:
[build]
rustflags = ["--cfg=web_sys_unstable_apis"]
限制
此库在调用Crazyradio::open_nth_async()
函数时只能打开一个无线电。这只是一个UI限制,而不是一个硬限制,如果对此问题感兴趣并想帮助解决它,请参阅问题#1。
运行测试
可以使用wasm_bindgen_test
在Web浏览器中运行一些测试。
wasm-pack test --chrome
要运行,测试URL https://127.0.0.1:8000
上至少应该连接并配对一个Crazyradio。实现这一点最简单的方法是从一个开发Crazyflie Web客户端打开Crazyradio端口。
依赖项
~12–24MB
~360K SLoC