修复了每次重连WiFi和WS成功播放提示音问题
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
|
||||
#include "control_plane_internal.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "cJSON.h"
|
||||
@@ -31,6 +32,25 @@ static bool is_supported_model_direction(const char *value)
|
||||
return false;
|
||||
}
|
||||
|
||||
static const char *find_command_prefix(const char *text)
|
||||
{
|
||||
const char *cursor = text;
|
||||
|
||||
if (cursor == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
while (*cursor != '\0' && isspace((unsigned char)*cursor)) {
|
||||
cursor++;
|
||||
}
|
||||
|
||||
if (cursor[0] == '/' && cursor[1] == '*') {
|
||||
return cursor;
|
||||
}
|
||||
|
||||
return strstr(cursor, "/*{");
|
||||
}
|
||||
|
||||
bool control_plane_extract_model_command(const char *text,
|
||||
control_plane_model_command_type_t *out_command_type,
|
||||
char *out_value,
|
||||
@@ -44,11 +64,12 @@ bool control_plane_extract_model_command(const char *text,
|
||||
*out_command_type = CONTROL_PLANE_MODEL_COMMAND_UNKNOWN;
|
||||
out_value[0] = '\0';
|
||||
|
||||
if (text[0] != '/' || text[1] != '*') {
|
||||
const char *command_start = find_command_prefix(text);
|
||||
if (command_start == NULL || command_start[0] != '/' || command_start[1] != '*') {
|
||||
return false;
|
||||
}
|
||||
|
||||
const char *json_start = text + 2;
|
||||
const char *json_start = command_start + 2;
|
||||
const char *json_end = strstr(json_start, "*/");
|
||||
if (json_end == NULL) {
|
||||
return false;
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#define CONTROL_PLANE_STA_RETRY_BASE_DELAY_MS 300
|
||||
|
||||
static const char *TAG = "control_plane_rt";
|
||||
static bool s_wifi_success_prompt_played;
|
||||
|
||||
static int elapsed_ms_since(TickType_t start_tick)
|
||||
{
|
||||
@@ -80,6 +81,11 @@ static int control_plane_normalize_connect_timeout_ms(int timeout_ms, int min_ti
|
||||
|
||||
static void control_plane_play_wifi_success_prompt(void)
|
||||
{
|
||||
if (s_wifi_success_prompt_played) {
|
||||
return;
|
||||
}
|
||||
s_wifi_success_prompt_played = true;
|
||||
|
||||
bool played = false;
|
||||
esp_err_t audio_err = domain_runtime_multimodal_audio_init();
|
||||
if (audio_err != ESP_OK && audio_err != ESP_ERR_INVALID_STATE) {
|
||||
|
||||
Reference in New Issue
Block a user