表情下载和屏保,提醒音频使用spi文件下载接口 2889/1 2889/head 2891/target/1
authorluozheng <1732036298@qq.com>
Mon, 8 Dec 2025 09:59:10 +0000 (17:59 +0800)
committerluozheng <1732036298@qq.com>
Mon, 8 Dec 2025 09:59:10 +0000 (17:59 +0800)
code/sdk/zhihui/4gTest/cat1_at_cmd.c
code/sdk/zhihui/leiniao/imsl_ln/leiniao_api_at.c
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_device_info.c
code/sdk/zhihui/leiniao/imsl_ln/ln_api_emoji.c
code/sdk/zhihui/leiniao/imsl_ln/ln_api_schedule.c

index 14dfa74..0ae2c22 100644 (file)
@@ -423,7 +423,7 @@ static uint32_t at_http_download_init(uint8_t *para, uint32_t paraLen, char *str
     
     cat1_print_info("=== AT^HTTPDLINIT: Initializing HTTP file download service (SPI) ===\n");
     
-    int ret = http_file_download_init();
+    int ret = http_file_download_init(NULL);
     if (ret == 0) {
         cat1_print_info("AT^HTTPDLINIT: HTTP file download service initialized successfully\n");
         cat1_print_info("  - SPI service initialized\n");
index 3fbd81a..9e2a472 100644 (file)
@@ -1515,8 +1515,8 @@ static uint32_t ln_switch_expression_at(uint8_t *para, uint32_t paraLen, char *s
 
     // 拼接完整路径:/user/userdata/leiniao/emoji + 用户输入的路径
     char full_path[512];
-    // const char *base_path = "/user/userdata/leiniao/emoji";
-    const char *base_path = "/user/res/video/Default";
+    const char *base_path = "/user/userdata/leiniao/emoji";
+    // const char *base_path = "/user/res/video/Default";
     
     // 检查总路径长度限制
     if (strlen(base_path) + strlen(video_path) + 1 > sizeof(full_path)) {
index aa79231..ac7c352 100644 (file)
@@ -687,13 +687,15 @@ int uapi_ln_download_file_resume_with_retry(const char *url, const char *save_pa
     //添加睡眠投票
     uapi_ln_add_vote();
 
-    int ret = uapi_ln_download_file_resume(url, save_path);
+    // int ret = uapi_ln_download_file_resume(url, save_path);
+    int ret = http_file_download_start(url, save_path, 300*100);
     if (ERRCODE_SUCC != ret)
     {
         for (int i = 1; i <= max_retries; i++)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DOWNLOAD_RESUME_WITH_RETRY] 重试 %d/%d", i, max_retries);
-            ret = uapi_ln_download_file_resume(url, save_path);
+            // ret = uapi_ln_download_file_resume(url, save_path);
+            ret = http_file_download_start(url, save_path, 300*100);
             if (ERRCODE_SUCC == ret)
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DOWNLOAD_RESUME_WITH_RETRY] 重试成功 %d", i);
index bece3ee..ccc53b5 100644 (file)
@@ -14,6 +14,7 @@ extern "C"
 #include "wearable_log.h"
 #include "ln_api_interface.h"
 #include "pm_definition.h"
+#include "http_file_download_client.h"
 
 // 产品名称:Amby Box
 // 产品型号:AB101
index 3da65cc..c06bbea 100644 (file)
@@ -127,6 +127,14 @@ void ln_download_screen_image(void)
         uapi_delete_files(LN_DEVICE_SCREEN_IMAGE_FILE);
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[DEVICE_CHARACTER] 屏保下载URL: %s, 保存路径: %s", url, save_path);
         uapi_ln_set_file_download_type(LN_FILE_DOWNLOAD_TYPE_SCREEN_IMAGE);
+
+        // 初始化HTTP文件下载服务
+        if (http_file_download_init(NULL) != 0)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DOWNLOAD_RESUME_WITH_RETRY] 初始化下载服务失败");
+            return;
+        }
+
         int ret = uapi_ln_download_file_resume_with_retry(url, save_path, 5);
         if (ret == 0)
         {
@@ -140,6 +148,10 @@ void ln_download_screen_image(void)
         }
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DEVICE_CHARACTER] 屏保下载结束,ret=%d", ret);
         uapi_ln_set_file_download_type(LN_FILE_DOWNLOAD_TYPE_NONE);
+
+        // 反初始化HTTP文件下载服务
+        http_file_download_deinit();
+        
         /* 一次性使用后释放 */
         free(g_ln_pending_screen_image_url);
         g_ln_pending_screen_image_url = NULL;
index d06679e..686efb9 100644 (file)
@@ -667,9 +667,20 @@ void ln_start_emoji_download(void)
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DOWNLOAD] no emojis to download");
         return;
     }
+
+    // 初始化HTTP文件下载服务
+    if (http_file_download_init(NULL) != 0)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DOWNLOAD_RESUME_WITH_RETRY] 初始化下载服务失败");
+        return;
+    }
+
     // 下载表情
     ln_emoji_download(&g_emoji_package);
     uapi_ln_set_file_download_type(LN_FILE_DOWNLOAD_TYPE_NONE);
+
+    // 反初始化HTTP文件下载服务
+    http_file_download_deinit();
 }
 
 /* 解析下载表情命令JSON */
@@ -1107,7 +1118,7 @@ static uint32_t ln_emoji_report_status_http(const char *device_id,
     clientData.postContentType = (char *)"application/json";
 
     // 打印请求请求响应
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[EMOJI_REPORT_STATUS] request body: %s", body);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[EMOJI_REPORT_STATUS] request body: %s", body);
     // 使用说明:
     // - 该接口用于设备向服务器同步表情下载/删除状态
     // - 设备执行表情下载或删除操作成功后,必须调用此接口
index 0ac09b2..1d37c99 100644 (file)
@@ -214,6 +214,18 @@ void ln_parse_schedule_reminder(const char *json_buf, int json_len)
         // 目前是立即提醒的所以直接下载并播放
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[JSON_PARSE] download audio:执行下载并播放\n");
         uapi_delete_files(LN_REMINDER_AUDIO_FILE);
+
+        #ifdef SUPPORT_CAT1_SERVICE
+        cat_sync_timer_control(0);
+        #endif
+
+        // 初始化HTTP文件下载服务
+        if (http_file_download_init(NULL) != 0)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DOWNLOAD_RESUME_WITH_RETRY] 初始化下载服务失败");
+            return;
+        }
+
         int ret = uapi_ln_download_file_resume_with_retry(g_schedule_reminder.reminderAudioUrl, LN_REMINDER_AUDIO_FILE, 3);
         if (ret == ERRCODE_SUCC)
         {
@@ -258,6 +270,13 @@ void ln_parse_schedule_reminder(const char *json_buf, int json_len)
             }
             /* -------------------------------------------------------------------------- */
         }
+        
+        // 反初始化HTTP文件下载服务
+        http_file_download_deinit();
+
+        #ifdef SUPPORT_CAT1_SERVICE
+        cat_sync_timer_control(1);
+        #endif
     }
     else
     {