41 lines
3.8 KiB
Markdown
41 lines
3.8 KiB
Markdown
# 小程序设备管理 / BLE v2 交付记录
|
||||
|
|
|
|||
|
|
日期:2026-09-13。
|
|||
|
|
|
|||
|
|
## 已交付
|
|||
|
|
|
|||
|
|
- 小程序:`C:\Users\19926\WeChatProjects\peibanzhushou`,公开配置版本 `0.3.0`,AppID `wxfead7715305e1115`。
|
|||
|
|
- 线上后端:`https://121.41.46.238`,`0.86.0-rc.mini2`;源码存档和发布清单保存在 `/opt/data-terminal-cloud/releases/0.86.0-rc.mini2`。
|
|||
|
|
- 设备:COM6,`KP01-B43A451634A8`,`ECHOEAR-S3`,仅烧录 app 分区 `0x10000`,保留工厂身份、NVS 和资源分区。
|
|||
|
|
- 固件:`firmware/echoear-platform-agent/build/VolcRTCDemo.bin`,3146016 字节,SHA256 `68f1dd9f8314079695e47c8940b05f95fb849339bcaf14955a496437143d9199`,烧录校验成功。
|
|||
|
|
- 升级前固件备份:`.tmp-mini-v2-release/before-v2-app.bin`,3211264 字节;前 3175712 字节 SHA256 为已验证的旧版本 `261d68285c062acde5927690667a85dedd5d19c6b88ff696f235f8cb0de3d6ea`。
|
|||
|
|
|
|||
|
|
## 实现内容
|
|||
|
|
|
|||
|
|
1. 蓝牙改为两字节长度头 + 明文 JSON,20 字节分片。新小程序 bundle 不再包含 Security2、密码握手或 cipher/hash 实现;旧加密实现只保留为独立历史参考测试。
|
|||
|
|
2. 点击设备和发送前都查询真实云端绑定状态,校验当前账号管理权限。未绑定申请 bind_token;已绑定传 `""`,设备只读检查现有绑定并保存 Wi-Fi。
|
|||
|
|
3. 设备卡片增加信息查看、重新配网、解绑影响检查和二次确认,复用后端原有 `binding-change` 接口。无历史数据删除或自动解绑。
|
|||
|
|
4. 双击触摸屏可从非语音运行状态进入配网;原触摸屏底部长按入口仍保留。BLE 窗口过期后双击可重新开启。首次升级自动进入 v2 配网,完成后记住协议版本。
|
|||
|
|
5. 按 Product Design 的现有产品改版约束保留绿色视觉,加入 ImageGen 家庭插图、Lucide 图标、导航/设备/账号/记录样式和真实空状态。
|
|||
|
|
6. API 文档:`docs/device-mini-ble-v2.md`;小程序目录同步副本 `docs/device-api.md`。机器可读接口补充于 `openapi/mini.yaml`。
|
|||
|
|
|
|||
|
|
## 验证
|
|||
|
|
|
|||
|
|
- `go test ./...` 通过。
|
|||
|
|
- 隔离 PostgreSQL / Redis 集成测试:onboarding、httpapi、saas 全部通过;测试数据库不使用线上生产数据库。
|
|||
|
|
- 小程序 `npm test`:29 项通过(包含独立旧加密历史测试,不进入新 bundle)。新增测试覆盖空令牌、权限查询失败不发送密码、解绑确认/取消/阻塞和真实资产完整性。
|
|||
|
|
- 小程序 `npm run check`、`npm run check:native` 通过:8 个原生页面、WXML/WXSS、事件处理函数及路由检查。
|
|||
|
|
- 生产 C 函数测试:明文 endpoint 的绑定/仅配网、重复提交、内容冲突、失败重试、超时和非法 JSON;ASAN/UBSAN 通过。
|
|||
|
|
- 原有 22 项 Wi-Fi 生命周期/故障注入测试及 SDK 敏感日志检查继续通过。
|
|||
|
|
- ESP-IDF 5.5.1 编译成功,app 分区剩余约 40%。
|
|||
|
|
- 线上候选服务首次启动对象存储连接超时,未切换线上;重试候选检查成功后切换,API / worker / callbacks 健康。未改变运行密钥或 schema 63。
|
|||
|
|
- 线上无凭据的新小程序接口返回 401;使用本设备工厂 HMAC 调用新只读接口返回 `bound:false`。
|
|||
|
|
- 真实 BLE 实测搜索到 `EchoEar-1634A8`,GATT `get_info` 返回设备编号/型号/version=2,`get_status` 返回 idle,分片读取通过。
|
|||
|
|
|
|||
|
|
## 尚需用户操作的验收
|
|||
|
|
|
|||
|
|
- 微信开发者工具服务端口关闭,CLI 自动截图未执行成功;没有用模拟截图冒充原生页面验收。
|
|||
|
|
- 需要用户重新编译小程序、输入 Wi-Fi 并轻点设备屏幕,完成手机端首次绑定 → 重新配网 → 解绑的实机体验验收。此次没有替用户发送真实 Wi-Fi、创建新绑定或解除新的绑定。
|
|||
|
|
- 原有 IP 地址/未备案域名的微信真机调试与正式发布限制仍存在,未通过更改安全设置绕过。
|
|||
|
|
- 旧网页 Security2 配网组件不能操作新 v2 固件;以此次新小程序配网为准。
|