mini_program_gizwits_sdk 3.7.0 → 3.7.1-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,38 @@
1
+ # 蓝牙配网 BSSID
2
+
3
+ BLE 模式(`mode: 3`)会按设备广播状态的 bit 3 (`support5GConfig`) 选择协议。
4
+
5
+ - 未声明支持新版协议的设备:保持原来的 `0x0001` 报文,不调用 Wi-Fi 查询。
6
+ - 支持新版协议:优先使用调用方提供的有效 `bssid`;否则调用原生 `wx.startWifi`,成功后 `wx.getConnectedWifi({ partialInfo: false })`。
7
+ - 只有返回 SSID 与目标 SSID 完全一致时才使用当前 BSSID。查询不触发主动授权,不调用 `stopWifi`,不会关闭页面共享的 Wi-Fi 模块。
8
+ - 缺少 API、权限拒绝、查询失败、SSID 不同、BSSID 无效或占位地址、1.5 秒内无回调,均降级为原来的报文,继续配网。
9
+ - 有有效 BSSID 且设备支持时,使用与 App SDK 一致的 `0x0100` 报文:Unix 秒时间戳(大端)、SSID、去除冒号的 12 字符 BSSID、密码及原有扩展信息。字符串使用 UTF-8 字节长度。
10
+ - 新报文匹配 `0x0101` 且状态为 0 的 ACK;旧报文仍匹配 `0x0002`。使用 BLE 层拼接后的完整帧,避免超过单包大小的 ACK 被误判。
11
+ - `WIFI_CONFIG_PROTOCOL` 日志仅记录是否使用 BSSID 和获取/降级原因,不新增 BSSID 或密码日志。
12
+
13
+ SDK 内部自动获取,不需要调用方增加 BSSID 参数。本次仅修改 SDK 源码及构建产物,不自动修改其他小程序项目的依赖版本,也不发布 npm。
14
+
15
+ ## 验证
16
+
17
+ `npm run test:bssid` 覆盖协议字节、广播能力解析、回调式 Wi-Fi API、超时与迟到回调、降级及真实 BLE 配网流程的协议选择和 ACK 清理。
18
+
19
+ 真机验收需分别测试支持新版协议的设备和旧设备:同 SSID、不同 SSID、关闭 Wi-Fi、拒绝定位权限,以及 Android / iOS / HarmonyOS;获取不到 BSSID 时应仍能按原方式配网。
20
+
21
+ ## 真机查看日志
22
+
23
+ 测试工程已经通过 `src/utils/sdk.ts` 引用这个本地 SDK。重新编译并真机调试后,执行一次 BLE 配网,在控制台筛选 `[BLE_CONFIG]`。
24
+ 如果应用调整过 SDK 日志级别,在初始化后执行 `sdk.setLogLevel('info')`(也可以用 `'debug'`)。
25
+
26
+ - `bssid_lookup`:开始查询;超时上限为 1500 ms。
27
+ - `bssid_result`:`reason`、`hasBssid`、`ssidMatched`、耗时;失败时包含 `api`、`errCode`、`errno`(如有)。
28
+ - `protocol_selected`:设备的 `support5GConfig`、是否实际使用 BSSID、选择原因、命令和报文长度。
29
+ - `send_start` / `write_result` / `write_retry`:实际请求命令、首次写入返回及重发次数。
30
+ - `ack_received`:收到的命令、状态(新版 ACK)、期望命令、`accepted` 是否通过 ACK 校验。
31
+ - `ack_timeout`:等待 ACK 超时和写入次数。
32
+ - `send_end`:是否收到有效 ACK、耗时,以及 SDK 主动请求断开连接。
33
+
34
+ 典型成功路径:`bssid_result` 的 `reason=current_wifi`、`hasBssid=true` → `protocol_selected` 的 `command=0x0100`、`usesBssid=true` → `ack_received` 的 `command=0x0101`、`state=0`、`accepted=true`。
35
+
36
+ 降级路径:`hasBssid=false` 或设备不支持新版协议 → `command=0x0001`、`usesBssid=false` → 期望 ACK 为 `0x0002`。降级本身不是配网失败。
37
+
38
+ 新日志不打印 SSID、完整 BSSID、密码或完整配网报文。`accepted=true` 只表示配置 ACK 校验通过,不代表设备已经联网成功。
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "mini_program_gizwits_sdk",
3
- "version": "3.7.0",
3
+ "version": "3.7.1-beta",
4
4
  "description": "mini_program_gizwits_sdk",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {
7
+ "test:bssid": "mocha -r ts-node/register tests/bssid/*.spec.ts --timeout 5000",
7
8
  "test": "node_modules/mocha/bin/_mocha -r ts-node/register tests/**/*.spec.ts -file ./tests/setup-wx.js -timeout 60s",
8
9
  "testBle": "node_modules/mocha/bin/_mocha -r ts-node/register tests/utils/randomCode.spec.ts -file ./tests/setup-wx.js -timeout 60s",
9
10
  "build": "rm -rf ./dist && webpack",