Files

29 lines
2.9 KiB
Markdown
Raw Permalink Normal View History

# 平台代注册火山:本地验证记录
日期:2026-09-14。状态:代码已修改,未部署线上、未烧录硬件。
## 实现
- 后端在 ble-bind 请求内调用 DynamicRegister,激活 worker 仅作恢复兜底;复用已有 HTTPRegistrar 和凭据存储,不新增数据库表。
- 注册执行前持久化 SERVER_REGISTER 记录;超时或崩溃后转待核对,不自动重复注册。
- ble-bind 成功直接返回 status、instance_id、product_key、device_name、device_secret、RTCAppID;不再返回 voice_status / voice。先提交绑定事务,再等待取参(上限 35 秒)。失败明确报错,保留已完成绑定,原令牌可重试。
- 固件 1.5.2-sync-bind.1 在绑定响应处检查并保存 5 个字段,请求超时 45 秒,保存失败不报告蓝牙成功。启动仍调用 voice-runtime 获取配置编号,SDK 初始化后发送 activation-acks;不调用 volc_device_register。
- 旧设备已注册且凭据只保存在本机时,通过 voice-credentials 迁回。未经注册设备不能导入;不同凭据不能覆盖已有值。
- 旧 DEVICE 注册流程仅留在兼容测试和历史结果补报中;生产配置默认使用服务器执行。
## 已验证
- onboarding 与 hardwareprovision 全包数据库集成测试通过,使用本次新建的隔离测试数据库、模拟火山注册器,不连接真实火山。
- 新增六组服务器测试:绑定后取参/配置与初始化确认、注册不确定结果、并发 worker 与解绑/重绑、旧设备凭据迁移、拒绝未注册导入及设备侧执行、进程崩溃执行锁恢复。
- 同步绑定新增四组数据库测试:HTTP 注册错误不假成功且不重复注册、并发 worker 等待超时后原令牌恢复与 5 字段响应、等待期间解绑不下发凭据、暂停后恢复原绑定。日志:`.tmp-bind-sync-tests/integration-onboarding.log` 和 `integration-hardwareprovision.log`。
- onboarding、hardwareprovision、callmemory、httpapi、contractgovernance 单元测试通过,API 和 worker 编译通过。
- 真实 C 适配代码宿主机测试通过,覆盖服务器凭据读取、preparing、缺失 RTCAppID 拒绝、旧凭据迁移;测试断言设备不调用供应商注册。原聊天有效期与结束补报测试仍通过。
- 同步绑定 C 测试增加:缺少 RTCAppID 不保存、字段齐全保存 NVS、NVS 提交失败向调用方返回错误。
- ESP-IDF 固件编译通过;没有改本次设备的蓝牙名称,也没有烧录实物。
## 尚未验证
没有调用真实火山注册接口,不消耗联调设备 License;没有修改线上现有设备绑定和凭据。部署前仍需在受控联调设备上验证真实供应商响应、保存、SDK 初始化、进房和音频通话。
先发布后端 API/worker,再更新固件。MQTT 与 OTA 仍为文档中的待实现接口,不在此次注册迁移代码范围。