fix(control_plane): bound provisioning recovery and prevent reboot loops

This commit is contained in:
chenjintao
2026-10-23 15:37:59 +08:00
parent aede687dc9
commit 415c75b0e6
12 changed files with 947 additions and 57 deletions
@@ -160,6 +160,7 @@ ERROR <reason>
| `set_device_id <value>` | 临时设置设备 ID |
| `set_serial_number <value>` | 临时设置序列号 |
| `save_config` | 提交并保存两个身份字段 |
| `retry_provisioning` | 配网故障修正后请求重新尝试;不重置内存恢复次数 |
| `get_auth_material` | 生成或加载设备密钥,返回公开材料 |
| `auth_sign_challenge <id> <challenge>` | 使用设备私钥签署工厂提供的 Challenge |
| `auth_prepare_rotate <version>` | 生成新密钥并准备轮换授权签名 |
@@ -178,6 +179,10 @@ get_device_info
### 3.2 `set` 和 `save_config` 的区别
身份缺失时设备保持运行并等待写入,不再作为低内存故障重启。`save_config` 成功后
通知 Wi-Fi 协调器重新检查身份并恢复配网;串口处理函数不直接执行 BLE 初始化。
错误分类、有限退避及恢复次数见 [配网失败处理与内存恢复](../配网失败处理与内存恢复.zh-CN.md)。
`set_device_id` 和 `set_serial_number` 只将值暂存在 RAM:
```c