From: cheng Date: Sun, 21 Sep 2025 18:06:56 +0000 (+0800) Subject: 雷鸟版本第一版本提交 X-Git-Tag: leiniao_debug_1.0.0_20250922_020716~2 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=d0d2273edf014224a89bbdd2d31cb0fa43f2be52;p=mirrors%2FFD230.git 雷鸟版本第一版本提交 --- diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/set_ota/src/OTAPresenter.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/set_ota/src/OTAPresenter.cpp index a4e170306..a77f53fc4 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/set_ota/src/OTAPresenter.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/set_ota/src/OTAPresenter.cpp @@ -16,7 +16,7 @@ namespace OHOS { -//REGIST_SLICE(VIEW_SET_OTA, OTAView, OTAPresenter); +REGIST_SLICE(VIEW_SET_OTA, OTAView, OTAPresenter); void OTAPresenter::OnStart() { diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/set_ota/src/OTAView.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/set_ota/src/OTAView.cpp index 1161894fa..3c4684e90 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/set_ota/src/OTAView.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/set_ota/src/OTAView.cpp @@ -13,10 +13,10 @@ namespace OHOS { void OTAView::OnStart() { - InitMessageCtrl(); - InitProgressCtrl(); - InitUpdateCtrl(); - AddCtrlToView(); + // InitMessageCtrl(); + // InitProgressCtrl(); + // InitUpdateCtrl(); + // AddCtrlToView(); } void OTAView::InitMessageCtrl() { diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/settings/src/SettingPresenter.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/settings/src/SettingPresenter.cpp index 60ac59c4c..fbf508ee9 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/settings/src/SettingPresenter.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/settings/src/SettingPresenter.cpp @@ -10,5 +10,5 @@ #include "NativeRegisterManager.h" namespace OHOS { -//REGIST_MENU(VIEW_SETTING, SettingView, SettingPresenter, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "设置"); +REGIST_MENU(VIEW_SETTING, SettingView, SettingPresenter, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "设置"); } diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp index 446fb53b0..b4f10ff43 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp @@ -30,7 +30,8 @@ #include "custom_runtime.h" #include "ln_api.h" #include "kv_store.h" - +#include "AppViewIDs.h" +#include "NativeRegisterManager.h" #define JUHEPINGTAI 1 #if JUHEPINGTAI #include "websocket_server_manager.h" @@ -272,15 +273,17 @@ // 更新状态检查 if(status == 1)//OTA升级 { - ThunderBirdMainView::GetInstance()->ChangeView(current_view, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_NOW); + // ThunderBirdMainView::GetInstance()->ChangeView(current_view, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_NOW); + NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING); } else if(status == 2)//OTA升级失败 { - ThunderBirdMainView::GetInstance()->ChangeView(current_view, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_FAILED); + // ThunderBirdMainView::GetInstance()->ChangeView(current_view, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_FAILED); + NativeAbility::GetInstance().ChangeSlice(VIEW_THUNDER_BIRD); } else if(status == 3)//OTA升级成功 { - ThunderBirdMainView::GetInstance()->ChangeView(current_view, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_SUCCESS); + // ThunderBirdMainView::GetInstance()->ChangeView(current_view, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_SUCCESS); } WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "进入OTA界面"); } @@ -1426,7 +1429,7 @@ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "init_all_callback\n"); // ws_register_chat_filter_callback(ws_register_chat_filter_cb); // ws_register_ai_question_callback(ws_register_ai_question_cb); - ws_register_ai_answer_callback(ws_register_ai_answer_cb); + // ws_register_ai_answer_callback(ws_register_ai_answer_cb); } } diff --git a/code/sdk/zhihui/ai/media/ai_media_service_ext.cpp b/code/sdk/zhihui/ai/media/ai_media_service_ext.cpp index b8611d8ba..2d2a31bf0 100644 --- a/code/sdk/zhihui/ai/media/ai_media_service_ext.cpp +++ b/code/sdk/zhihui/ai/media/ai_media_service_ext.cpp @@ -871,7 +871,7 @@ int32_t AI_WriteAudioData(const uint8_t* data, uint32_t size) if (ret != 0) { // MEDIA_ERR_LOG("Failed to write audio data to output stream, ret=%d", ret); // return -1; - usleep(10000); + usleep(1000*500); goto AI_WRITE; } diff --git a/code/sdk/zhihui/ai_old/tts_websocket_server.cpp b/code/sdk/zhihui/ai_old/tts_websocket_server.cpp index 2d16b39dc..c67e89716 100644 --- a/code/sdk/zhihui/ai_old/tts_websocket_server.cpp +++ b/code/sdk/zhihui/ai_old/tts_websocket_server.cpp @@ -969,7 +969,7 @@ bool uapi_start_tts_type_start(WebSocketClient *client) } // 添加payload字段 - if (cJSON_AddStringToObject(payload, "voice", "xiaoyun") == NULL) { + if (cJSON_AddStringToObject(payload, "voice", "sitong") == NULL) { printf("Failed to add voice field\n"); goto cleanup; } diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c index a42e26247..7418d58f5 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.c @@ -399,10 +399,12 @@ static void ln_handle_ota_task_response(const char *json_buf, int json_len) /* 强制升级:直接触发下载 */ printf("[OTA] force upgrade: trigger download(强制升级:直接触发下载)\n"); push_ota_status(OTA_UI_STATUS_START); + do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_OTA_DOWNLOAD, NULL, 0); } else if (ut == 0) { printf("[OTA] optional upgrade: waiting for user confirmation(可选升级:等待用户确认)\n"); + do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_OTA_DOWNLOAD, NULL, 0); push_ota_status(OTA_UI_STATUS_START); } else @@ -482,6 +484,7 @@ static int ln_ota_is_md5_ok(const char *file_path, const char *expected_md5) } /* OTA下载消息处理(对接时序图中的后续流程)*/ +static int reset_cnt = 0; static void handle_ota_download_msg(const OtaDownloadMsg *msg) { if (!msg) return; @@ -511,6 +514,10 @@ static void handle_ota_download_msg(const OtaDownloadMsg *msg) break; case OTA_DOWNLOAD_STATUS_FAILED: printf("[OTA_DOWNLOAD] 下载失败: %s\n", msg->error_msg); + reset_cnt++; + if(reset_cnt < 3){ + do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_OTA_DOWNLOAD, NULL, 0); + } break; default: printf("[OTA_DOWNLOAD] 未知状态: %d\n", msg->status); diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h index 879a7168a..b70c22f38 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api.h @@ -48,6 +48,7 @@ typedef struct #define LN_DEVICE_GET_CHARACTER_URL LN_BASE_URL LN_DEVICE_GET_CHARACTER_PATH #define LN_DEVICE_GET_USER_ID_URL LN_BASE_URL LN_DEVICE_GET_USER_ID_PATH #define LN_OTA_GET_TASK_URL LN_BASE_URL LN_OTA_GET_TASK_PATH +// #define LN_OTA_GET_TASK_URL "http://110.42.224.129:8089/leiniaoota.jsp" #define LN_EMOJI_REPORT_URL LN_BASE_URL LN_EMOJI_REPORT_PATH #define LN_EMOJI_REPORT_ALL_URL LN_BASE_URL LN_EMOJI_REPORT_ALL_PATH #define LN_SIGN_SECRET "vDdXVXgPUEUM6_piUjz5AEhMvYTSFzQdPaN-ogKnSus=" diff --git a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_ota.c b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_ota.c index 9afb1cda1..c30b74a6c 100644 --- a/code/sdk/zhihui/leiniao/imsl_ln/ln_api_ota.c +++ b/code/sdk/zhihui/leiniao/imsl_ln/ln_api_ota.c @@ -270,6 +270,8 @@ static int ln_download_file_to_path(const char *full_url, const char *save_path, printf("[OTA] download failed! response code: %d, ret=0x%x\n", client.responseCode, ret); } + printf("[OTA] received=%zu, expected=%d\n", + total_written, total_size); // 资源清理(与http_download保持一致) fclose(fd); @@ -312,11 +314,23 @@ uint32_t ln_ota_download_flow_http(const char *device_id, if (g_ln_last_saved_path) strcpy(g_ln_last_saved_path, save_path); - printf("[OTA] download only: version=%s, url=%s -> %s\n", g_ln_last_target_version, g_ln_last_package_url, save_path); + /* 规范化URL,修正可能的重复协议前缀 */ + const char *raw_url = g_ln_last_package_url; + const char *fixed_url = raw_url; + if (raw_url) { + /* 修正常见错误:"http://http://" 或 "https://https://" */ + if (strncasecmp(raw_url, "http://http://", 12) == 0) { + fixed_url = raw_url + 7; /* 跳过前一个 http:// */ + } else if (strncasecmp(raw_url, "https://https://", 14) == 0) { + fixed_url = raw_url + 8; /* 跳过前一个 https:// */ + } + } + + printf("[OTA] download only: version=%s, url=%s -> %s\n", g_ln_last_target_version, fixed_url, save_path); int dres; if (g_ln_last_package_size > 0) { - dres = ln_download_file_to_path(g_ln_last_package_url, save_path, g_ln_last_package_size); + dres = ln_download_file_to_path(fixed_url, save_path, g_ln_last_package_size); } if (dres != 0) {