feat(control-plane): add network outage voice feedback

This commit is contained in:
chenjintao
2026-08-25 09:30:55 +08:00
parent ae27d5bbaa
commit ceb0780425
6 changed files with 857 additions and 0 deletions
@@ -690,6 +690,19 @@ esp_err_t control_plane_request_cloud_chouqian(void)
return ESP_ERR_INVALID_STATE;
}
portENTER_CRITICAL(&s_multimodal_runtime_lock);
bool request_pending = s_cloud_chouqian_pending;
portEXIT_CRITICAL(&s_multimodal_runtime_lock);
if (request_pending) {
return ESP_ERR_INVALID_STATE;
}
esp_err_t network_err = control_plane_network_feedback_require_ready(
CONTROL_PLANE_NETWORK_ACTION_CLOUD_CHOUQIAN);
if (network_err != ESP_OK) {
return network_err;
}
uint32_t requested_ms = control_plane_now_ms();
portENTER_CRITICAL(&s_multimodal_runtime_lock);
@@ -895,11 +908,13 @@ static void control_plane_multimodal_event_bridge(control_plane_multimodal_event
switch (event) {
case CONTROL_PLANE_MULTIMODAL_EVENT_TRANSPORT_CONNECTED: {
control_plane_network_feedback_mark_service_ready();
control_plane_schedule_server_success_prompt();
break;
}
case CONTROL_PLANE_MULTIMODAL_EVENT_TRANSPORT_DISCONNECTED:
control_plane_network_feedback_mark_server_down();
control_plane_clear_downstream_stall_recovery();
control_plane_clear_cloud_chouqian_pending("transport disconnected");
control_plane_multimodal_stop_uplink();
@@ -908,6 +923,7 @@ static void control_plane_multimodal_event_bridge(control_plane_multimodal_event
break;
case CONTROL_PLANE_MULTIMODAL_EVENT_TRANSPORT_ERROR:
control_plane_network_feedback_mark_server_down();
control_plane_clear_downstream_stall_recovery();
control_plane_clear_cloud_chouqian_pending("transport error");
control_plane_multimodal_stop_uplink();