fix: recover interrupted conversations on boot
This commit is contained in:
@@ -354,6 +354,11 @@ static void application_boot(void)
|
|||||||
volc_hal_display_set_content(global_display, VOLC_DISPLAY_OBJ_STATUS, VOLC_DISPLAY_TEXT, message);
|
volc_hal_display_set_content(global_display, VOLC_DISPLAY_OBJ_STATUS, VOLC_DISPLAY_TEXT, message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
ret = platform_recover_pending_conversation();
|
||||||
|
if (ret != ESP_OK) {
|
||||||
|
ESP_LOGW(TAG, "Cannot close the conversation interrupted by the previous restart: %s",
|
||||||
|
esp_err_to_name(ret));
|
||||||
|
}
|
||||||
hal_level_init();
|
hal_level_init();
|
||||||
ESP_LOGI(TAG, "Startup stack headroom after audio: %u bytes", (unsigned)uxTaskGetStackHighWaterMark(NULL));
|
ESP_LOGI(TAG, "Startup stack headroom after audio: %u bytes", (unsigned)uxTaskGetStackHighWaterMark(NULL));
|
||||||
xTaskCreate(&Task, "aios_task", 8192, NULL, 5, NULL);
|
xTaskCreate(&Task, "aios_task", 8192, NULL, 5, NULL);
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
#define PLATFORM_API_ORIGIN "https://121.41.46.238"
|
#define PLATFORM_API_ORIGIN "https://121.41.46.238"
|
||||||
#define PLATFORM_RESPONSE_MAX (32 * 1024)
|
#define PLATFORM_RESPONSE_MAX (32 * 1024)
|
||||||
#define PLATFORM_FIRMWARE_VERSION "1.1.0-echoear-s2s-memory.1"
|
#define PLATFORM_FIRMWARE_VERSION "1.1.0-echoear-s2s-memory.2"
|
||||||
#define PLATFORM_HARDWARE_AGENT_SDK_VERSION "2.0.0"
|
#define PLATFORM_HARDWARE_AGENT_SDK_VERSION "2.0.0"
|
||||||
|
|
||||||
static const char *TAG = "platform_client";
|
static const char *TAG = "platform_client";
|
||||||
@@ -113,6 +113,11 @@ static esp_err_t recover_pending_session(void)
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
esp_err_t platform_recover_pending_conversation(void)
|
||||||
|
{
|
||||||
|
return recover_pending_session();
|
||||||
|
}
|
||||||
|
|
||||||
static void copy_json_string(cJSON *object, const char *name, char *target, size_t target_size)
|
static void copy_json_string(cJSON *object, const char *name, char *target, size_t target_size)
|
||||||
{
|
{
|
||||||
cJSON *item = cJSON_GetObjectItemCaseSensitive(object, name);
|
cJSON *item = cJSON_GetObjectItemCaseSensitive(object, name);
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ esp_err_t platform_client_init(void);
|
|||||||
const char *platform_hardware_id(void);
|
const char *platform_hardware_id(void);
|
||||||
const platform_volc_credential_t *platform_volc_credential(void);
|
const platform_volc_credential_t *platform_volc_credential(void);
|
||||||
esp_err_t platform_provision_volc_credential(void);
|
esp_err_t platform_provision_volc_credential(void);
|
||||||
|
esp_err_t platform_recover_pending_conversation(void);
|
||||||
esp_err_t platform_create_agent_session(platform_agent_session_t *session);
|
esp_err_t platform_create_agent_session(platform_agent_session_t *session);
|
||||||
esp_err_t platform_report_session_started(const platform_agent_session_t *session,
|
esp_err_t platform_report_session_started(const platform_agent_session_t *session,
|
||||||
const char *provider_connection_ref);
|
const char *provider_connection_ref);
|
||||||
|
|||||||
Reference in New Issue
Block a user