8个版本
0.3.4 | 2024年7月25日 |
---|---|
0.3.3 | 2023年10月26日 |
0.2.1 | 2023年9月5日 |
0.2.0 | 2023年7月18日 |
0.1.0 | 2023年7月17日 |
#645 在 操作系统
每月 125 次下载
26KB
608 行
BLEC
一个简单的基于btleplug库的跨平台 BLE 客户端库
此库主要封装了btleplug的方法,使其在只需要一个活动连接时更容易使用。它还处理了不同平台上的设置。大部分设置都来自flutter_btleplug。
我的用例和创建此库的原因是为在Flutter中用Rust编写的Android应用中的简单通信。
基本用法
// initialize library
blec::init();
// scan for available devices
// either use channel to receive devices when discovered
let (tx,rx) = mpsc::channel(1);
blec::discover(tx,1000);
// or use discover_blocking() or discover_async() to receive Vec with devices after timeout
let devices = blec::discover_blocking(1000);
// get address of wanted device and call connect
// you also have to pass the wanted service and characteristics UUIDs
// a callback called on disconnect is optional
let adr = devices[0].address;
blec::connect(adr,<service UUID>, <charac UUIDs>, None / Some(disconnect callback));
// after this you can send/receive data to/from the characteristics
// send
blec::send_data(<charac UUID>, <data>);
// read
let data = blec::recv_data(<charac UUD>);
// listen for notification
// the callback gets called with the notification data when a notification is received
blec::subscribe(<charac UUID>, <callblack>);
// at the end you can disconnect
blec::disconnect()
Android设置
为了在Android上使用此库,您需要jni-utils-rs的Java部分和droidplug。有关Android设置的更多信息,请参阅基于该库的btleplug库。
示例
请参阅esp_wifi_setup_app,该示例展示了如何在Flutter应用中使用此库在esp32上设置Wi-Fi凭证。
该示例的应用部分可以用作使用blec的Flutter应用的基础。
依赖项
~6–36MB
~524K SLoC