#web-usb #crazyflie #nrf24 #wasm

crazyradio-webusb

Crazyradio USB 端口驱动程序,支持WebUSB

2个版本

0.2.1 2021年9月25日
0.2.0 2021年9月24日

#1153硬件支持


2 个crate中使用 (通过 crazyflie-link)

MIT/Apache

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