4G模组升级优化(补) 3389/2 3389/head 3390/target/1
authorxue <2144439972@qq.com>
Wed, 29 Apr 2026 06:38:34 +0000 (14:38 +0800)
committerxue <2144439972@qq.com>
Wed, 29 Apr 2026 06:38:34 +0000 (14:38 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/ota/src/OtaModel.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/ota/src/OtaSuccessView.cpp
code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c
code/sdk/zhihui/4g/cat1Service/Service/cat1_tcpServer.c

index 604a23f..dec0924 100644 (file)
@@ -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("下载成功");
                  // 清空下载文件类型
index 0e57fec..fe8ebaf 100644 (file)
@@ -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();
index c11b297..9e34a71 100644 (file)
@@ -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;
index 65ab544..43793af 100644 (file)
@@ -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
     }