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
+19 -2
View File
@@ -698,10 +698,27 @@ typedef enum {
DOMAIN_WIFI_PROVISIONING_STATUS_FAIL_CONNECT,
} domain_wifi_provisioning_status_t;
/** 启动固定 TalkingQ 小程序 BLE 配网协议。 / Start the TalkingQ BLE provisioning protocol. */
/* 配网启动结果由 domain 定义;控制层据此选择等待、退避或内存恢复,不能猜测错误码来源。 */
typedef enum {
DOMAIN_WIFI_PROVISIONING_START_READY = 0,
DOMAIN_WIFI_PROVISIONING_START_IDENTITY_REQUIRED,
DOMAIN_WIFI_PROVISIONING_START_INVALID_CONFIG,
DOMAIN_WIFI_PROVISIONING_START_NO_MEMORY,
DOMAIN_WIFI_PROVISIONING_START_TRANSIENT,
DOMAIN_WIFI_PROVISIONING_START_FAILED,
} domain_wifi_provisioning_start_status_t;
/** 只检查身份前置条件,无 BLE 初始化或资源停止副作用,可重复调用。 */
domain_wifi_provisioning_start_status_t domain_runtime_mini_program_provisioning_preflight(void);
/**
* 启动固定小程序 BLE 配网协议;out_status 必填,失败时返回明确原因。
* 同步完成启动,不在返回失败后后台重试;停止和释放仍使用下方有界 stop 接口。
*/
esp_err_t domain_runtime_mini_program_provisioning_start(
domain_wifi_provisioning_event_callback_t callback,
void *user_data);
void *user_data,
domain_wifi_provisioning_start_status_t *out_status);
esp_err_t domain_runtime_mini_program_provisioning_notify(
domain_wifi_provisioning_status_t status);
esp_err_t domain_runtime_mini_program_provisioning_stop(int timeout_ms);