验证表情删除上报
authorluozheng <1732036298@qq.com>
Tue, 30 Sep 2025 10:57:06 +0000 (18:57 +0800)
committerluozheng <1732036298@qq.com>
Tue, 30 Sep 2025 10:57:06 +0000 (18:57 +0800)
code/sdk/zhihui/leiniao/imsl_ln/ln_api.c
code/sdk/zhihui/leiniao/imsl_ln/ln_api.h
code/sdk/zhihui/leiniao/imsl_ln/ln_api_emoji.c

index 95e90df..cb7eb50 100644 (file)
@@ -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);
index 2f78045..4511c05 100644 (file)
@@ -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);
index 96c91e6..90bb7a0 100644 (file)
@@ -8,6 +8,7 @@
 #include <unistd.h>
 #include <errno.h>
 #include <dirent.h>
+#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) {