句柄
name()。
方法
类型
方法参考
scan(timeout: f64) -> Result<Vec<BleDevice>>
扫描正在广播的设备 timeout 秒,该值必须介于 0.1 和 300 之间。有名称的设备排在前面。
scan_named(timeout: f64, name_contains: &str) -> Result<Vec<BleDevice>>
同样的扫描,但按不区分大小写的名称子串过滤。
info(address: &str) -> Result<BleDeviceInfo>
短暂连接并枚举该设备的 GATT 服务。
connect(address: &str) -> Result<BleDeviceInfo> 和 disconnect(address: &str) -> Result<()>
按地址连接某个设备,或者确保与它断开连接。
示例
断言被测设备带着正确的服务在广播
说明
- 每台 Box 只有一个适配器。 Box 会把它上面所有的 BLE 和 BluFi 工作串行化,因此并发调用会排队而不是失败。一次 BluFi 配网和一次 BLE 扫描不能重叠。
capabilities.ble_command为true只表示 Box 提供这条路由,而不表示它能完成这项工作。宿主机上没有运行 BlueZ 的 Box 会用Error::Box和 HTTP 502 作答,并携带BlueZ is not running on the box host(较旧的 Box 镜像会发送The name org.bluez was not provided by any .service files)。即使 USB 总线上确实有蓝牙控制器也会这样。请检查错误,而不是只看能力标志。lager update会在宿主机上安装 BlueZ。info、connect和disconnect在 Box 侧的连接超时是 10 秒;客户端在此之上再加 30 秒。rssi是恰好收到的那条广播的一次快照。请把它当作排序提示,而不是测量值。

