#ble #cross-platform #client #simple #api-bindings #btleplug

blec

基于btleplug的简单跨平台ble客户端库

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操作系统

Download history 26/week @ 2024-04-15 1/week @ 2024-06-24 39/week @ 2024-07-01 115/week @ 2024-07-22 10/week @ 2024-07-29

每月 125 次下载

MIT/Apache

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