From b7e18cfd791b9aaedbdb1fb11de64bc0b93e8c5c Mon Sep 17 00:00:00 2001 From: xue <2144439972@qq.com> Date: Wed, 29 Apr 2026 14:38:34 +0800 Subject: [PATCH] =?utf8?q?4G=E6=A8=A1=E7=BB=84=E5=8D=87=E7=BA=A7=E4=BC=98?= =?utf8?q?=E5=8C=96=EF=BC=88=E8=A1=A5=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeapp/nativeui/ota/src/OtaModel.cpp | 26 +++++++++++++++++-- .../nativeui/ota/src/OtaSuccessView.cpp | 11 ++++++-- .../4g/cat1Service/Service/cat1_server.c | 5 ++-- .../4g/cat1Service/Service/cat1_tcpServer.c | 7 ++--- 4 files changed, 40 insertions(+), 9 deletions(-) diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/ota/src/OtaModel.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/ota/src/OtaModel.cpp index 604a23f64..dec09246a 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/ota/src/OtaModel.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/ota/src/OtaModel.cpp @@ -289,8 +289,30 @@ namespace OHOS //判断升级结果函数 void OtaModel::CheckOtaResult(int status) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OtaModel::CheckOtaResult"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OtaModel::CheckOtaResult status=%d otaUi=%d", status, GetOtaStatus()); uapi_setScreenDuration(30000); // 重新设置30秒自动息屏 + /* 4G/Cat1 模组升级:与文件下载成功/失败同一套成功页(无重启提示),可按键返回 */ + if (GetOtaStatus() == OTA_UI_STATUS_CAT1_START) { + if (status == 3) { + if (OtaView::GetInstance()) { + OtaView::GetInstance()->ChangeView(OtaView::OTA_VIEW_UPDATING, OtaView::OTA_VIEW_UPDATE_SUCCESS); + } + if (OtaSuccessView::GetInstance()) { + OtaSuccessView::GetInstance()->UpdateDownloadSuccess("模组升级失败"); + } + } else if (status == 4) { + if (OtaView::GetInstance()) { + OtaView::GetInstance()->ChangeView(OtaView::OTA_VIEW_UPDATING, OtaView::OTA_VIEW_UPDATE_SUCCESS); + } + if (OtaSuccessView::GetInstance()) { + OtaSuccessView::GetInstance()->UpdateDownloadSuccess("模组升级成功"); + } + } + SetOtaStatus(OTA_UI_STATUS_NOT_START); + ThunderBirdModel::GetInstance()->ResetOtaStatus(); + return; + } + if(status == 3) { OtaView::GetInstance()->ChangeView(OtaView::OTA_VIEW_UPDATING, OtaView::OTA_VIEW_UPDATE_FAILED); @@ -490,7 +512,7 @@ namespace OHOS // OTA升级下载完成,跳转到OTA升级成功界面 if(OtaDownloadView::GetInstance()) { - uapi_setScreenDuration(30000); // 重新设置30秒自动息屏 + //uapi_setScreenDuration(30000); // 重新设置30秒自动息屏 OtaView::GetInstance()->ChangeView(OtaView::OTA_VIEW_DOWNLOAD, OtaView::OTA_VIEW_UPDATE_SUCCESS); OtaSuccessView::GetInstance()->UpdateDownloadSuccess("下载成功"); // 清空下载文件类型 diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/ota/src/OtaSuccessView.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/ota/src/OtaSuccessView.cpp index 0e57fecdc..fe8ebaf10 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/ota/src/OtaSuccessView.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/ota/src/OtaSuccessView.cpp @@ -124,13 +124,20 @@ namespace OHOS { //已完成下载 ThunderBirdModel::GetInstance()->ClearDownloadFile(); - if(content == "下载失败") + if(content == "下载失败" || content == "模组升级失败") { RemindIcon1->SetSrc("/user/res/warning.bin"); RemindLabel->SetPosition(136, 275, 88, 25); RemindLabel->SetText("按 退出"); TextLabel->SetText(content.c_str()); - LittleTextLabel->SetText("请在小程序重新下载\n继续下载失败的文件"); + if(content == "模组升级失败") + { + LittleTextLabel->SetText("请重新升级模组"); + } + else + { + LittleTextLabel->SetText("请在小程序重新下载\n继续下载失败的文件"); + } LittleTextLabel->SetX(98); TextLabel->Invalidate(); LittleTextLabel->Invalidate(); diff --git a/code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c b/code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c index c11b297d0..9e34a717d 100644 --- a/code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c +++ b/code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c @@ -1325,8 +1325,9 @@ int cat1_handle_networ_msg(char *msg) cat1_model_oat_suc_flag = 0;//升级成功后,将标志位设为0 printf("模组升级成功\n"); push_ota_status(OTA_UI_STATUS_SUCCESS); - LOS_Msleep(1000); - shutdown_reboot_prejobs(2);//重启 + // LOS_Msleep(1000); + /* 不在 4G 模组 OTA 成功后立即重启,便于继续走后续手表 OTA(原 shutdown_reboot_prejobs(2)) */ + printf("[OTA] Cat1 modem OTA success: skip immediate reboot, continue host OTA flow\r\n"); } #endif return 1; diff --git a/code/sdk/zhihui/4g/cat1Service/Service/cat1_tcpServer.c b/code/sdk/zhihui/4g/cat1Service/Service/cat1_tcpServer.c index 65ab5448a..43793af2a 100644 --- a/code/sdk/zhihui/4g/cat1Service/Service/cat1_tcpServer.c +++ b/code/sdk/zhihui/4g/cat1Service/Service/cat1_tcpServer.c @@ -1382,7 +1382,8 @@ static void modem_ota_timer_CallBack(int data_tmp) #ifdef BOARD_LEINIAO push_ota_status(OTA_UI_STATUS_SUCCESS); - shutdown_reboot_prejobs(REBOOT_TYPE); + /* 不在 4G 模组 OTA 成功后立即重启,便于继续后续手表 OTA(原 shutdown_reboot_prejobs(REBOOT_TYPE)) */ + printf("[OTA] Cat1 OTA py_ver changed: skip immediate reboot\r\n"); #else CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1); #endif @@ -1418,8 +1419,8 @@ static void modem_ota_timer_CallBack(int data_tmp) } if(mode_ota_count > 60) { - //重启设备 - uapi_reboot_device(); + /* 超时不再强制重启,避免打断后续手表 OTA(原 uapi_reboot_device) */ + printf("[OTA] Cat1 OTA timer: mode_ota_count>60 timeout, skip reboot\r\n"); } #endif } -- 2.17.1