From: luozheng <1732036298@qq.com> Date: Wed, 15 Oct 2025 12:47:01 +0000 (+0800) Subject: 回退ln_api_device_info.c文件修改 X-Git-Tag: V1.0.9_20251128_194606_LN~231 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=ec802573efd3ebe7606c2346d073a786d572e863;p=mirrors%2FFD230.git 回退ln_api_device_info.c文件修改 --- 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 fec000590..aec082f9e 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 @@ -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: