feat(control-plane): add network outage voice feedback
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user