句柄
方法
类型
方法参考
scan(timeout: f64) -> Result<Vec<BleDevice>>
扫描附近正在广播、支持 BluFi 的设备。
connect(device_name: &str) -> Result<BlufiDeviceInfo>
按广播的 BLE 名称连接,而不是按地址。返回固件版本和 WiFi 状态。
provision(device_name: &str, ssid: &str, password: &str) -> Result<BlufiProvisionResult>
把目标配置到某个网络上。目标没能进入已连接状态时,以 Error::Box 失败。
wifi_scan(device_name: &str) -> Result<Vec<BlufiNetwork>>
让目标扫描它自己能看到的网络。这是目标的射频在报告,而不是 Box 的 —— 在测试天线布置时,这正是关键所在。
status(device_name: &str) -> Result<BlufiStatus> 和 version(device_name: &str) -> Result<Option<String>>
目标当前的 WiFi 状态,以及它的 BluFi 固件版本。
示例
给一台全新设备配网,并确认它已加入
说明
sta_conn == 0表示已连接。 在这里 0 是成功而不是失败,取值依次为 0 已连接、1 失败、2 连接中、3 已连接但没有 IP。处于 3 的目标已经关联上了,但没有拿到 DHCP 租约,这和密码错误是不同的问题。- 除
scan之外的每个动作都要先通过 BLE 连接并协商 BluFi 安全,因此预算都很宽。Box 侧的连接超时是 20 秒,客户端在此之上还会再加一份余量:- 多数动作加 40 秒。
provision加 60 秒,因为端到端的配网经常要花 30 秒以上。wifi_scan加 30 秒,因为目标要自己跑一次扫描。
- BluFi 与 BLE 共用 Box 上唯一的蓝牙适配器,Box 会把两者串行化。
- 设备按广播的名称寻址,这与使用地址的 BLE 不同。

