From a44c10275a9feb8dc514070d8b52a31221b22968 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Tue, 7 Jan 2025 17:49:57 +0800 Subject: [PATCH] =?UTF-8?q?[6.9.0]OTA=E5=8D=87=E7=BA=A7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ota/OTAUpgradeConfig.kt | 3 + .../ota/OTAUpgradeManager.kt | 75 +++++++++++++------ .../function/hmi/bone/tab/CarInfoTabView.kt | 1 + 3 files changed, 56 insertions(+), 23 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeConfig.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeConfig.kt index 107e745d4e..e4c69ba7b2 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeConfig.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeConfig.kt @@ -19,4 +19,7 @@ object OTAUpgradeConfig { //当前SSM版本是否支持OTA升级,默认不支持 @JvmField var supportOTA: Boolean = false + //是否是主动查询 + @JvmField + var isQuery: Boolean = false } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeManager.kt index 416b035588..44e5938001 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ota/OTAUpgradeManager.kt @@ -76,18 +76,6 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, if(request.otaToken.isNotEmpty()){ if(OTAUpgradeConfig.otaToken != request.otaToken){ OTAUpgradeConfig.otaToken = request.otaToken - //冷启动已完成(包括成功/失败),且驾驶状态为非自驾状态,且当前无订单进行强提示,否则为弱提示 - if(OTAUpgradeConfig.coldStartCompleted && !OTAUpgradeConfig.autopilotStatus - && !OTAUpgradeConfig.inOrder){ - //触发强提示升级 - CallerHmiManager.showOTAUpgradeDialog(true) - }else{ - //触发弱提示升级 - //冷启动未完成(进行中),或驾驶状态为自驾状态,或当前有订单,直接默认选择稍后升级, - // 并toast提示“收到车辆部署任务,请在车辆空闲时发起升级” - CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.DELAY) - ToastUtils.showLong("收到车辆部署任务,请在车辆空闲时发起升级") - } } } //解析JSON @@ -124,14 +112,29 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, Log.i(TAG, "cur_size=$curSize") Log.i(TAG, "total_size=$totalSize") + if(index == 0){ + //是否需要触发提示升级只判断第一个任务 + if(productStatus == 0){ + //冷启动已完成(包括成功/失败),且驾驶状态为非自驾状态,且当前无订单进行强提示,否则为弱提示 + if(OTAUpgradeConfig.coldStartCompleted && !OTAUpgradeConfig.autopilotStatus + && !OTAUpgradeConfig.inOrder){ + //触发强提示升级 + CallerHmiManager.showOTAUpgradeDialog(true) + }else{ + //触发弱提示升级 + //冷启动未完成(进行中),或驾驶状态为自驾状态,或当前有订单,直接默认选择稍后升级, + // 并toast提示“收到车辆部署任务,请在车辆空闲时发起升级” + CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.DELAY) + ToastUtils.showLong("收到车辆部署任务,请在车辆空闲时发起升级") + } + return + } + } + //// 状态 0:默认(未开始), 1:下载中, 2:下载完成, 3:升级完成, 4:升级失败 if(productStatus == 0 || productStatus == 1 || productStatus == 2){ upgradeComplete = false - CallerOTAManager.invokeOtaDownloadStatus(true) - }else{ - CallerOTAManager.invokeOtaDownloadStatus(false) } - val otaUpgradeInfo = OtaUpgradeInfo(token, productStatus,failReason,upgradeReason, taskId,taskItemId,otaType,productName,needRestart,isDelay,curSize,totalSize) otaUpgradeList.add(otaUpgradeInfo) @@ -139,6 +142,9 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, CallerHmiManager.showOTADownloadStatusDialog(otaUpgradeList) if(upgradeComplete){ OTAUpgradeConfig.otaToken = "" + CallerOTAManager.invokeOtaDownloadStatus(false) + }else{ + CallerOTAManager.invokeOtaDownloadStatus(true) } } @@ -160,8 +166,6 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, if(status.otaInfo.otaToken.isNotEmpty()){ if(OTAUpgradeConfig.otaToken != status.otaInfo.otaToken){ OTAUpgradeConfig.otaToken = status.otaInfo.otaToken - //触发升级提示 - CallerHmiManager.showOTAUpgradeDialog(true) } } @@ -199,12 +203,30 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, Log.i(TAG, "is_delay=$isDelay") Log.i(TAG, "cur_size=$curSize") Log.i(TAG, "total_size=$totalSize") - //// 状态 0:默认(未开始), 1:下载中, 2:下载完成, 3:升级完成, 4:升级失败 + + if(index == 0){ + //是否需要触发提示升级只判断第一个任务 + if(productStatus == 0){ + //冷启动已完成(包括成功/失败),且驾驶状态为非自驾状态,且当前无订单进行强提示,否则为弱提示 + if(OTAUpgradeConfig.coldStartCompleted && !OTAUpgradeConfig.autopilotStatus + && !OTAUpgradeConfig.inOrder){ + //触发强提示升级 + CallerHmiManager.showOTAUpgradeDialog(true) + }else{ + //触发弱提示升级 + //冷启动未完成(进行中),或驾驶状态为自驾状态,或当前有订单,直接默认选择稍后升级, + // 并toast提示“收到车辆部署任务,请在车辆空闲时发起升级” + CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.DELAY) + ToastUtils.showLong("收到车辆部署任务,请在车辆空闲时发起升级") + } + return + } + } + + + // 状态 0:默认(未开始), 1:下载中, 2:下载完成, 3:升级完成, 4:升级失败 if(productStatus == 0 || productStatus == 1 || productStatus == 2){ upgradeComplete = false - CallerOTAManager.invokeOtaDownloadStatus(true) - }else{ - CallerOTAManager.invokeOtaDownloadStatus(false) } if(productStatus == 4){ upgradeResult = false @@ -215,12 +237,19 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, } if(upgradeComplete){ OTAUpgradeConfig.otaToken = "" - CallerHmiManager.showOTAResultDialog(upgradeResult) + if(OTAUpgradeConfig.isQuery){ + ToastUtils.showLong("暂无待升级任务!") + OTAUpgradeConfig.isQuery = false + }else{ + CallerHmiManager.showOTAResultDialog(upgradeResult) + } + CallerOTAManager.invokeOtaDownloadStatus(false) }else{ //通知关闭提示升级窗口(存在域控也在进行5min倒计时,与app存在时间差,域控会更早完成倒计时触发升级, // 此时通知app开始升级,app收到后即使未完成倒计时,也关闭提示弹窗,开始展示下载进展) CallerHmiManager.showOTAUpgradeDialog(false) CallerHmiManager.showOTADownloadStatusDialog(otaUpgradeList) + CallerOTAManager.invokeOtaDownloadStatus(true) } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt index 5081ad941c..e423dfd4eb 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt @@ -139,6 +139,7 @@ class CarInfoTabView @JvmOverloads constructor( ) if(OTAUpgradeConfig.supportOTA){ //查询OTA状态 + OTAUpgradeConfig.isQuery = true CallerAutoPilotControlManager.sendSsmFuncOtaStatusQuery(OTAUpgradeConfig.otaToken) }else{ ToastUtils.showLong("当前域控版本不支持OTA升级")