From 43e0c6d84e7da712a5a2aac37a3a49f1a572cbf3 Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Mon, 8 Dec 2025 17:59:10 +0800 Subject: [PATCH] =?utf8?q?=E8=A1=A8=E6=83=85=E4=B8=8B=E8=BD=BD=E5=92=8C?= =?utf8?q?=E5=B1=8F=E4=BF=9D=EF=BC=8C=E6=8F=90=E9=86=92=E9=9F=B3=E9=A2=91?= =?utf8?q?=E4=BD=BF=E7=94=A8spi=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD?= =?utf8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- code/sdk/zhihui/4gTest/cat1_at_cmd.c | 2 +- .../zhihui/leiniao/imsl_ln/leiniao_api_at.c | 4 ++-- code/sdk/zhihui/leiniao/imsl_ln/ln_api.c | 6 ++++-- code/sdk/zhihui/leiniao/imsl_ln/ln_api.h | 1 + .../leiniao/imsl_ln/ln_api_device_info.c | 12 ++++++++++++ .../sdk/zhihui/leiniao/imsl_ln/ln_api_emoji.c | 13 ++++++++++++- .../zhihui/leiniao/imsl_ln/ln_api_schedule.c | 19 +++++++++++++++++++ 7 files changed, 51 insertions(+), 6 deletions(-) diff --git a/code/sdk/zhihui/4gTest/cat1_at_cmd.c b/code/sdk/zhihui/4gTest/cat1_at_cmd.c index 14dfa74ba..0ae2c2256 100644 --- a/code/sdk/zhihui/4gTest/cat1_at_cmd.c +++ b/code/sdk/zhihui/4gTest/cat1_at_cmd.c @@ -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"); diff --git a/code/sdk/zhihui/leiniao/imsl_ln/leiniao_api_at.c b/code/sdk/zhihui/leiniao/imsl_ln/leiniao_api_at.c index 3fbd81a47..9e2a47291 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/leiniao_api_at.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/leiniao_api_at.c @@ -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)) { diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c index aa7923190..ac7c35265 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c @@ -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); diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h index bece3ee37..ccc53b57a 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h @@ -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 diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_device_info.c b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_device_info.c index 3da65cc53..c06bbead6 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_device_info.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_device_info.c @@ -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; 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 d06679edb..686efb91f 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_emoji.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_emoji.c @@ -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); // 使用说明: // - 该接口用于设备向服务器同步表情下载/删除状态 // - 设备执行表情下载或删除操作成功后,必须调用此接口 diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_schedule.c b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_schedule.c index 0ac09b2e5..1d37c999a 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_schedule.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_schedule.c @@ -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 { -- 2.17.1