From 33e09fa55e03f417a0b76afbf33b77316154ab77 Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Tue, 30 Sep 2025 18:57:06 +0800 Subject: [PATCH] =?utf8?q?=E9=AA=8C=E8=AF=81=E8=A1=A8=E6=83=85=E5=88=A0?= =?utf8?q?=E9=99=A4=E4=B8=8A=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- code/sdk/zhihui/leiniao/imsl_ln/ln_api.c | 16 ++++------- code/sdk/zhihui/leiniao/imsl_ln/ln_api.h | 3 +-- .../sdk/zhihui/leiniao/imsl_ln/ln_api_emoji.c | 27 ++++++++++++++++--- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c index 95e90df36..cb7eb5062 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c @@ -596,7 +596,9 @@ void ln_ws_process_message(const ws_data_msg_t *data_msg, ws_command_t type) printf("[WS] SleepModeEnd:哄睡模式结束\n"); if (json_str) { - ln_parse_sleep_mode_end(json_str, (int)strlen(json_str)); + // ln_parse_sleep_mode_end(json_str, (int)strlen(json_str)); + ln_ws_send_voice_chat_interrupt("哄睡模式结束"); + AI_ForceInterrupt(); } break; } @@ -1233,20 +1235,12 @@ static void ln_http_server_send_task(void const *arg) } else if (mail.cmd == LN_HTTP_SERVICE_CMD_DOWNLOAD_EMOJI) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LN_HTTP_SERVICE_CMD_DOWNLOAD_EMOJI:下载表情\n"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LN_HTTP_SERVICE_CMD_DOWNLOAD_EMOJI:下载表情任务请求\n"); ln_start_emoji_download(); } - else if (mail.cmd == LN_HTTP_SERVICE_CMD_DELETE_EMOJI) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LN_HTTP_SERVICE_CMD_DELETE_EMOJI:删除表情\n"); - if (mail.data) - { - // ln_delete_emoji_http(mail.data, mail.len); - } - } else if (mail.cmd == LN_HTTP_SERVICE_CMD_EMOJI_REPORT) { - printf("LN_HTTP_SERVICE_CMD_EMOJI_REPORT:上报角色表情组下载状态\n"); + printf("LN_HTTP_SERVICE_CMD_EMOJI_REPORT:上报角色表情组下载/删除状态\n"); if (mail.data) { ln_emoji_report_status(mail.data); diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h index 2f780454c..4511c05dd 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h @@ -116,7 +116,6 @@ typedef struct // 表情下载相关命令 #define LN_HTTP_SERVICE_CMD_DOWNLOAD_EMOJI 0x1011 /* 下载表情 */ -#define LN_HTTP_SERVICE_CMD_DELETE_EMOJI 0x1012 /* 删除表情 */ /* 下载文件相关结构体 */ typedef struct @@ -306,7 +305,7 @@ uint32_t ln_ota_download_flow_http(const char *device_id, const char *device_token, const char *source_version); /* Emoji 表情上报接口 */ -/* 上报角色表情组下载状态 */ +/* 上报角色表情组下载/删除状态 */ void ln_emoji_report_status(char* status); /* 上报所有角色表情组状态 */ void ln_emoji_report_all(void); diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_emoji.c b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_emoji.c index 96c91e66c..90bb7a003 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_emoji.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_emoji.c @@ -8,6 +8,7 @@ #include #include #include +#include "custom_utils.h" /* 宏定义 */ #define MAX_PATH_LEN 512 // 最大路径长度 @@ -524,7 +525,8 @@ void ln_parse_delete_emoji(const char *json_buf, int json_len) del_eyesShape, del_eyesColor); - if (ln_rmdir_recursive(del_dir) == 0) + int ret = uapi_delete_folder(del_dir); + if (ret == 0) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DELETE_EMOJI] cached files in %s deleted", del_dir); } @@ -533,13 +535,30 @@ void ln_parse_delete_emoji(const char *json_buf, int json_len) WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DELETE_EMOJI] failed to delete cached files in %s", del_dir); } + // [WEARABLE E/] [DELETE_EMOJI] parsed successfully: + // [WEARABLE E/] characterId: 36d5525a0873 + // [WEARABLE E/] eyesColor: purple + // [WEARABLE E/] eyesShape: upturned-eyes + + //上报表情组删除状态 + // 下载完成后上报状态 + /* 构建上报邮件(包含状态与描述) */ + ln_emoji_report_mail_t mail = {0}; + ln_safe_strcpy(mail.characterId, sizeof(mail.characterId), del_characterId); + ln_safe_strcpy(mail.eyesColor, sizeof(mail.eyesColor), del_eyesColor); + ln_safe_strcpy(mail.eyesShape, sizeof(mail.eyesShape), del_eyesShape); + ln_safe_strcpy(mail.status, sizeof(mail.status), ret == 0 ? "delete_success" : "delete_fail"); + ln_safe_strcpy(mail.description, sizeof(mail.description), "删除成功"); + do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_EMOJI_REPORT, (char *)&mail, (uint32_t)sizeof(mail)); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DELETE_EMOJI] report status %s, ret: %s", mail.status, ret == 0 ? "删除成功" : "删除失败"); + // 清理资源 cJSON_Delete(root); free(text); } /* 7.1 上报角色表情组下载状态(支持 description) */ -uint32_t ln_emoji_report_status_http(const char *device_id, +static uint32_t ln_emoji_report_status_http(const char *device_id, const char *device_token, const char *character_id, const char *eyes_color, @@ -673,7 +692,7 @@ uint32_t ln_emoji_report_status_http(const char *device_id, return ERRCODE_SUCC; } /* 7.2 上报设备所有表情组状态 */ -uint32_t ln_emoji_report_all_http(const char *device_id, +static uint32_t ln_emoji_report_all_http(const char *device_id, const char *device_token, const LnEmojiGroup *groups, int group_count) @@ -788,7 +807,7 @@ uint32_t ln_emoji_report_all_http(const char *device_id, return ERRCODE_SUCC; } -/* 上报角色表情组下载状态 */ +/* 上报角色表情组下载/删除状态 */ void ln_emoji_report_status(char* data) { if (!data) { -- 2.17.1