回退ln_api_device_info.c文件修改 2535/1 2535/head 2536/target/1 2537/target/1
authorluozheng <1732036298@qq.com>
Wed, 15 Oct 2025 12:47:01 +0000 (20:47 +0800)
committerluozheng <1732036298@qq.com>
Wed, 15 Oct 2025 12:47:01 +0000 (20:47 +0800)
code/sdk/zhihui/leiniao/imsl_ln/ln_api_device_info.c

index fec0005..aec082f 100644 (file)
@@ -258,180 +258,6 @@ void ln_parse_character_config(const char *json_buf, int json_len)
     ln_clear_character_config();
 }
 
-
-/* 解析设备角色配置 JSON 并保存到全局结构体 */
-void ln_parse_character_config_local(const char *json_buf, int json_len)
-{
-    if (!json_buf || json_len <= 0)
-    {
-        printf("[DEVICE_CHARACTER] invalid json input\n");
-        return;
-    }
-
-    char *text = (char *)malloc((size_t)json_len + 1);
-    if (!text)
-        return;
-    memcpy(text, json_buf, (size_t)json_len);
-    text[json_len] = '\0';
-
-    cJSON *root = cJSON_Parse(text);
-    if (!root)
-    {
-        printf("[DEVICE_CHARACTER] json parse failed\n");
-        free(text);
-        return;
-    }
-
-    cJSON *errorCode = cJSON_GetObjectItem(root, "errorCode");
-    cJSON *message = cJSON_GetObjectItem(root, "message");
-    if (errorCode && !cJSON_IsNull(errorCode))
-    {
-        printf("[DEVICE_CHARACTER] server error: %s\n", cJSON_IsString(errorCode) ? errorCode->valuestring : "unknown");
-        printf("[DEVICE_CHARACTER] server message: %s\n", cJSON_IsString(message) ? message->valuestring : "unknown");
-        // 推送协议错误通知到UI
-        push_api_error_notification(cJSON_IsString(message) ? message->valuestring : "unknown");
-        cJSON_Delete(root);
-        free(text);
-        return;
-    }
-
-    cJSON *data = cJSON_GetObjectItem(root, "data");
-    if (!data || !cJSON_IsObject(data))
-    {
-        printf("[DEVICE_CHARACTER] no data object\n");
-        cJSON_Delete(root);
-        free(text);
-        return;
-    }
-
-    /* 基础字段 */
-    cJSON *cid = cJSON_GetObjectItem(data, "characterId");
-    cJSON *cname = cJSON_GetObjectItem(data, "characterName");
-    ln_assign_dup(&g_ln_character_config.character_id,
-                  (cid && cJSON_IsString(cid)) ? cid->valuestring : "");
-
-    ln_assign_dup(&g_ln_character_config.character_name,
-                  (cname && cJSON_IsString(cname)) ? cname->valuestring : "");
-
-    // "data": {
-    // "characterId": "char_001",
-    // "characterName": "小艾",
-    // "characterAvatar": {
-    //   "eyesShape": "upturned-eyes",
-    //   "hairColor": "blue",
-    //   "eyesColor": "green",
-    //   "hairStyle": "side-parted-comma",
-    //   "deviceScreen": "https://example.com/new_avatar.bin",
-    //   "screenImageAsEmoji": true
-    // }
-
-    /* 头像配置 */
-    cJSON *avatar = cJSON_GetObjectItem(data, "characterAvatar");
-    if (avatar && cJSON_IsObject(avatar))
-    {
-        cJSON *hairColor = cJSON_GetObjectItem(avatar, "hairColor");
-        cJSON *eyesColor = cJSON_GetObjectItem(avatar, "eyesColor");
-        cJSON *hairStyle = cJSON_GetObjectItem(avatar, "hairStyle");
-        cJSON *eyesShape = cJSON_GetObjectItem(avatar, "eyesShape");
-        cJSON *deviceScreen = cJSON_GetObjectItem(avatar, "deviceScreen");
-        cJSON *deviceScreenAsEmoji = cJSON_GetObjectItem(avatar, "screenImageAsEmoji");
-
-        ln_assign_dup(&g_ln_character_config.avatar_hair_color,
-                      (hairColor && cJSON_IsString(hairColor)) ? hairColor->valuestring : "");
-
-        ln_assign_dup(&g_ln_character_config.avatar_eyes_color,
-                      (eyesColor && cJSON_IsString(eyesColor)) ? eyesColor->valuestring : "");
-
-        ln_assign_dup(&g_ln_character_config.avatar_hair_style,
-                      (hairStyle && cJSON_IsString(hairStyle)) ? hairStyle->valuestring : "");
-
-        ln_assign_dup(&g_ln_character_config.avatar_eyes_shape,
-                      (eyesShape && cJSON_IsString(eyesShape)) ? eyesShape->valuestring : "");
-
-        ln_assign_dup(&g_ln_character_config.avatar_screen_image,
-                      (deviceScreen && cJSON_IsString(deviceScreen)) ? deviceScreen->valuestring : "");
-
-        g_ln_character_config.avatar_screen_image_as_emoji =
-            (deviceScreenAsEmoji && cJSON_IsBool(deviceScreenAsEmoji)) ? (cJSON_IsTrue(deviceScreenAsEmoji) ? 1 : 0) : 0;
-    }
-    else
-    {
-        /* 缺省时清空结构体字段 */
-        ln_assign_dup(&g_ln_character_config.avatar_hair_color, "");
-        ln_assign_dup(&g_ln_character_config.avatar_eyes_color, "");
-        ln_assign_dup(&g_ln_character_config.avatar_hair_style, "");
-        ln_assign_dup(&g_ln_character_config.avatar_eyes_shape, "");
-        ln_assign_dup(&g_ln_character_config.avatar_screen_image, "");
-        g_ln_character_config.avatar_screen_image_as_emoji = 0;
-    }
-
-    // 将json体落库
-    ln_save_character_config(text);
-
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DEVICE_CHARACTER] push character config change notification");
-
-    /* 打印解析结果 */
-    printf("[DEVICE_CHARACTER] parsed:\n");
-    printf("  character_id: %s\n", g_ln_character_config.character_id ? g_ln_character_config.character_id : "");
-    printf("  character_name: %s\n", g_ln_character_config.character_name ? g_ln_character_config.character_name : "");
-    printf("  avatar_hair_color: %s\n", g_ln_character_config.avatar_hair_color ? g_ln_character_config.avatar_hair_color : "");
-    printf("  avatar_eyes_color: %s\n", g_ln_character_config.avatar_eyes_color ? g_ln_character_config.avatar_eyes_color : "");
-    printf("  avatar_hair_style: %s\n", g_ln_character_config.avatar_hair_style ? g_ln_character_config.avatar_hair_style : "");
-    printf("  avatar_eyes_shape: %s\n", g_ln_character_config.avatar_eyes_shape ? g_ln_character_config.avatar_eyes_shape : "");
-    printf("  avatar_screen_image: %s\n", g_ln_character_config.avatar_screen_image ? g_ln_character_config.avatar_screen_image : "");
-    printf("  avatar_screen_image_as_emoji: %d\n", g_ln_character_config.avatar_screen_image_as_emoji);
-
-    // 判断本地屏保文件是否存在,如果存在,则不下载
-    if (access(LN_DEVICE_SCREEN_IMAGE_FILE, F_OK) == 0)
-    {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DEVICE_CHARACTER] 本地屏保文件存在,不下载");
-        return;
-    }
-    else 
-    {
-        // 如果屏保图片不为空,则保存到本地
-        if (g_ln_character_config.avatar_screen_image && strlen(g_ln_character_config.avatar_screen_image) > 0 && g_ln_character_config.avatar_screen_image_as_emoji == 1)
-        {
-            
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DEVICE_CHARACTER] 屏保图片不为空,下载屏保图片");
-            // 下载屏保图片,eg:"https://example.com/new_avatar.bin"
-            ln_download_file_req_t req;
-            memset(&req, 0, sizeof(req));
-            /* 分配与拷贝,发送方分配,接收方负责释放 */
-            if (g_ln_character_config.avatar_screen_image)
-            {
-                size_t ulen = strlen(g_ln_character_config.avatar_screen_image);
-                req.url = (char *)malloc(ulen + 1);
-                if (req.url)
-                {
-                    memcpy(req.url, g_ln_character_config.avatar_screen_image, ulen + 1);
-                }
-            }
-            const char *save = LN_DEVICE_SCREEN_IMAGE_FILE;
-            size_t slen = strlen(save);
-            req.save_path = (char *)malloc(slen + 1);
-            if (req.save_path)
-            {
-                memcpy(req.save_path, save, slen + 1);
-            }
-            push_download_file_notification(DOWNLOAD_FILE_TYPE_SCREEN_IMAGE);
-            do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_DOWNLOAD_SCREEN_IMAGE, (char *)&req, sizeof(req));
-        }
-    }
-
-    /* 推送角色配置更改通知 */
-    push_character_config_change_notification(g_ln_character_config.character_id,
-                                              g_ln_character_config.character_name,
-                                              g_ln_character_config.avatar_eyes_shape,
-                                              g_ln_character_config.avatar_hair_color,
-                                              g_ln_character_config.avatar_eyes_color,
-                                              g_ln_character_config.avatar_hair_style,
-                                              g_ln_character_config.avatar_screen_image_as_emoji);
-
-    cJSON_Delete(root);
-    free(text);
-    ln_clear_character_config();
-}
 // 获取设备角色信息
 uint32_t ln_device_get_character_http(const char *device_id,
                                       const char *device_token)
@@ -491,7 +317,7 @@ uint32_t ln_device_get_character_http(const char *device_id,
     if (clientData.responseBuf && clientData.responseBufLen > 0)
     {
         int real_len = clientData.responseContentLen > 0 ? clientData.responseContentLen : clientData.responseBufLen;
-        ln_parse_character_config_local(clientData.responseBuf, real_len);
+        ln_parse_character_config(clientData.responseBuf, real_len);
     }
 
 end: