From a44c10275a9feb8dc514070d8b52a31221b22968 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Tue, 7 Jan 2025 17:49:57 +0800 Subject: [PATCH 1/8] =?UTF-8?q?[6.9.0]OTA=E5=8D=87=E7=BA=A7=E4=BF=AE?= =?UTF-8?q?=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升级") From 855a9a4f056ad20aeaa66c9bfd56e65fe63279cd Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Tue, 7 Jan 2025 18:21:42 +0800 Subject: [PATCH 2/8] =?UTF-8?q?[6.9.0]=E8=B0=83=E6=95=B4=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E4=B8=AD=E9=A1=B9=E7=9B=AE=E5=90=8D=E7=A7=B0=E7=9A=84=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ota/OTAUpgradeManager.kt | 12 +++++++++--- .../src/main/res/layout/item_ota_download_status.xml | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) 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 44e5938001..32bc8bd878 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 @@ -92,7 +92,7 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, val taskId = productInfo.optInt("task_id") val taskItemId = productInfo.optInt("task_item_id") val otaType = productInfo.optInt("ota_type") - val productName = productInfo.optString("product_name") + var productName = productInfo.optString("product_name") val needRestart = productInfo.optBoolean("need_restart") val isDelay = productInfo.optBoolean("is_delay") val curSize = productInfo.optDouble("cur_size") @@ -131,10 +131,13 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, } } - //// 状态 0:默认(未开始), 1:下载中, 2:下载完成, 3:升级完成, 4:升级失败 + // 状态 0:默认(未开始), 1:下载中, 2:下载完成, 3:升级完成, 4:升级失败 if(productStatus == 0 || productStatus == 1 || productStatus == 2){ upgradeComplete = false } + if(productName.contains(":")){ + productName = productName.trim().substringAfterLast(":") + } val otaUpgradeInfo = OtaUpgradeInfo(token, productStatus,failReason,upgradeReason, taskId,taskItemId,otaType,productName,needRestart,isDelay,curSize,totalSize) otaUpgradeList.add(otaUpgradeInfo) @@ -184,7 +187,7 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, val taskId = productInfo.optInt("task_id") val taskItemId = productInfo.optInt("task_item_id") val otaType = productInfo.optInt("ota_type") - val productName = productInfo.optString("product_name") + var productName = productInfo.optString("product_name") val needRestart = productInfo.optBoolean("need_restart") val isDelay = productInfo.optBoolean("is_delay") val curSize = productInfo.optDouble("cur_size") @@ -231,6 +234,9 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, if(productStatus == 4){ upgradeResult = false } + if(productName.contains(":")){ + productName = productName.trim().substringAfterLast(":") + } val otaUpgradeInfo = OtaUpgradeInfo(token, productStatus,failReason,upgradeReason, taskId,taskItemId,otaType,productName,needRestart,isDelay,curSize,totalSize) otaUpgradeList.add(otaUpgradeInfo) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_ota_download_status.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_ota_download_status.xml index d733c8ecb6..cea7004e5e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_ota_download_status.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_ota_download_status.xml @@ -21,7 +21,7 @@ Date: Tue, 7 Jan 2025 18:57:24 +0800 Subject: [PATCH 3/8] =?UTF-8?q?[6.9.0]OTA=E5=8D=87=E7=BA=A7=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E6=AF=8F=E6=AC=A1=E5=8F=AA=E6=8F=90=E7=A4=BA=E4=B8=80?= =?UTF-8?q?=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ota/OTAUpgradeConfig.kt | 3 ++ .../ota/OTAUpgradeManager.kt | 50 +++++++++++-------- 2 files changed, 31 insertions(+), 22 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 e4c69ba7b2..3b6e7a3471 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 @@ -22,4 +22,7 @@ object OTAUpgradeConfig { //是否是主动查询 @JvmField var isQuery: Boolean = false + //已经提示过升级的列表 + @JvmField + var promptedUpgrade:ArrayList = ArrayList() } \ 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 32bc8bd878..306f38e360 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 @@ -115,17 +115,20 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, 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("收到车辆部署任务,请在车辆空闲时发起升级") + if(!OTAUpgradeConfig.promptedUpgrade.contains(request.otaToken)){ + //冷启动已完成(包括成功/失败),且驾驶状态为非自驾状态,且当前无订单进行强提示,否则为弱提示 + if(OTAUpgradeConfig.coldStartCompleted && !OTAUpgradeConfig.autopilotStatus + && !OTAUpgradeConfig.inOrder){ + //触发强提示升级 + CallerHmiManager.showOTAUpgradeDialog(true) + }else{ + //触发弱提示升级 + //冷启动未完成(进行中),或驾驶状态为自驾状态,或当前有订单,直接默认选择稍后升级, + // 并toast提示“收到车辆部署任务,请在车辆空闲时发起升级” + CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.DELAY) + ToastUtils.showLong("收到车辆部署任务,请在车辆空闲时发起升级") + } + OTAUpgradeConfig.promptedUpgrade.add(request.otaToken) } return } @@ -210,17 +213,20 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, 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("收到车辆部署任务,请在车辆空闲时发起升级") + if(!OTAUpgradeConfig.promptedUpgrade.contains(status.otaInfo.otaToken)){ + //冷启动已完成(包括成功/失败),且驾驶状态为非自驾状态,且当前无订单进行强提示,否则为弱提示 + if(OTAUpgradeConfig.coldStartCompleted && !OTAUpgradeConfig.autopilotStatus + && !OTAUpgradeConfig.inOrder){ + //触发强提示升级 + CallerHmiManager.showOTAUpgradeDialog(true) + }else{ + //触发弱提示升级 + //冷启动未完成(进行中),或驾驶状态为自驾状态,或当前有订单,直接默认选择稍后升级, + // 并toast提示“收到车辆部署任务,请在车辆空闲时发起升级” + CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.DELAY) + ToastUtils.showLong("收到车辆部署任务,请在车辆空闲时发起升级") + } + OTAUpgradeConfig.promptedUpgrade.add(status.otaInfo.otaToken) } return } From cd2da7219f5d73c6bf8929ea5f48ce9bb879f6aa Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Tue, 7 Jan 2025 19:17:31 +0800 Subject: [PATCH 4/8] =?UTF-8?q?[6.9.0]OTA=E5=8D=87=E7=BA=A7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo_core_function_devatools/ota/OTAUpgradeConfig.kt | 5 ++++- .../mogo_core_function_devatools/ota/OTAUpgradeManager.kt | 5 ++++- .../mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt | 1 + 3 files changed, 9 insertions(+), 2 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 3b6e7a3471..e3b480519d 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 @@ -24,5 +24,8 @@ object OTAUpgradeConfig { var isQuery: Boolean = false //已经提示过升级的列表 @JvmField - var promptedUpgrade:ArrayList = ArrayList() + var promptedUpgrade: ArrayList = ArrayList() + //已经提示过升级成功的列表 + @JvmField + var upgradeFinish: ArrayList = ArrayList() } \ 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 306f38e360..b695971ab5 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 @@ -253,7 +253,10 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, ToastUtils.showLong("暂无待升级任务!") OTAUpgradeConfig.isQuery = false }else{ - CallerHmiManager.showOTAResultDialog(upgradeResult) + if(!OTAUpgradeConfig.upgradeFinish.contains(status.otaInfo.otaToken)){ + CallerHmiManager.showOTAResultDialog(upgradeResult) + OTAUpgradeConfig.upgradeFinish.add(status.otaInfo.otaToken) + } } CallerOTAManager.invokeOtaDownloadStatus(false) }else{ 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 e423dfd4eb..5bf3577a34 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 @@ -140,6 +140,7 @@ class CarInfoTabView @JvmOverloads constructor( if(OTAUpgradeConfig.supportOTA){ //查询OTA状态 OTAUpgradeConfig.isQuery = true + OTAUpgradeConfig.promptedUpgrade.remove(OTAUpgradeConfig.otaToken) CallerAutoPilotControlManager.sendSsmFuncOtaStatusQuery(OTAUpgradeConfig.otaToken) }else{ ToastUtils.showLong("当前域控版本不支持OTA升级") From 2083b006409d9d0bca813bdbd3b4a762b2d8ad9a Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Tue, 7 Jan 2025 19:34:23 +0800 Subject: [PATCH 5/8] =?UTF-8?q?[6.9.0]OTA=E5=8D=87=E7=BA=A7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ota/OTAUpgradeManager.kt | 59 +++++++++++++++++++ .../function/hmi/ui/widget/ColdStartView.kt | 2 - 2 files changed, 59 insertions(+), 2 deletions(-) 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 b695971ab5..89f6b07c4e 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 @@ -1,6 +1,7 @@ package com.zhjt.mogo_core_function_devatools.ota import android.content.Context +import android.text.TextUtils import android.util.Log import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.deva.ota.OtaUpgradeInfo @@ -17,6 +18,9 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils import org.json.JSONArray import org.json.JSONObject import system_master.SsmInfo +import java.util.Locale +import java.util.regex.Matcher +import java.util.regex.Pattern /** * OTA升级管理类 @@ -56,6 +60,17 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, } } + /** + * 定频SSM接口 + * 1hz hq m1 MAP350开始支持,其他车型MAP360开始支持 + * 定频SSM接入后 onStatusQueryResp 状态查询应答接口将弃用 + * @param statusInf 数据 + */ + override fun onSystemStatus(statusInf: SsmInfo.SsmStatusInf) { + //判断当前SSM版本是否支持OTA升级 + OTAUpgradeConfig.supportOTA = parseVersion(true, statusInf.masterVersion) >= 40800 + } + /** * 是否有订单 * @param inOrder true有订单 false没有订单 @@ -270,5 +285,49 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, } + private val pattern = Pattern.compile("\\d+\\.\\d+\\.\\d+") + + /** + * 解析版本 格式 xxx.xxx.xxx(x的数量不固定) + * 仅用于版本比较,不能用于展示 + * 例如: + * "12.03.04" 解析结果:120304 + * "2.11.0" 解析结果:21100 + * "3.0.0" 解析结果:30000 + * 目前已用于DockerVersion和MaserVersion的解析 + * + * @param isUseAll 是否使用全部截取数据 true:表示 12.34.56 截取之后 123456 false:表示12.34.56 截取之后 12 + * @param ver 版本字符串 例如:"MAP-taxi_RoboTaxi_df_2.8.0.3_20220928_test" 解析结果为:280 + * @return -1表示解析失败 + */ + private fun parseVersion(isUseAll: Boolean, ver: String): Int { + var version = -1 + if (!TextUtils.isEmpty(ver)) { + try { + val matcher: Matcher = pattern.matcher(ver) + if (matcher.find()) { + var group = matcher.group() + if (!TextUtils.isEmpty(group)) { + val format = "%02d" + if (isUseAll) { + val temp = group.split("\\.".toRegex()).dropLastWhile { it.isEmpty() } + .toTypedArray() + group = String.format(Locale.getDefault(), format, temp[0].toInt()) + group += String.format(Locale.getDefault(), format, temp[1].toInt()) + group += String.format(Locale.getDefault(), format, temp[2].toInt()) + } else { + group = group.split("\\.".toRegex()).dropLastWhile { it.isEmpty() } + .toTypedArray()[0] + } + version = group.toInt() + } + } + } catch (e: Exception) { + Log.e(TAG, "版本解析失败=$ver", e) + } + } + return version + } + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt index 54d8f0617c..ba47e9f56c 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt @@ -279,8 +279,6 @@ class ColdStartView @JvmOverloads constructor( ColdStartConfig.setColdStartSuccessTime(System.currentTimeMillis()) } } - //判断当前SSM版本是否支持OTA升级 - OTAUpgradeConfig.supportOTA = parseVersion(true, statusInf.masterVersion) >= 40800 } } From dc59e75b90d156ffd4588535a8b73b5dbeca7a14 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Tue, 7 Jan 2025 20:17:31 +0800 Subject: [PATCH 6/8] =?UTF-8?q?[6.9.0]OTA=E5=8D=87=E7=BA=A7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coldstart/ColdStartManager.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/coldstart/ColdStartManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/coldstart/ColdStartManager.kt index fb15b749cc..50529ff580 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/coldstart/ColdStartManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/coldstart/ColdStartManager.kt @@ -12,6 +12,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.TimeUtils import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String import com.zhjt.mogo.adas.data.AdasConstants +import com.zhjt.mogo_core_function_devatools.ota.OTAUpgradeConfig /** * 冷启动管理 @@ -82,7 +83,9 @@ object ColdStartManager: IMoGoAutopilotStatusListener, IDataCenterBizListener { override fun invokeLoginStatus(isLogin: Boolean) { super.invokeLoginStatus(isLogin) loginStatus = isLogin - Log.i("xuxinchao","loginStatus="+loginStatus) + if(loginStatus){ + OTAUpgradeConfig.coldStartCompleted = true + } } } \ No newline at end of file From a05f71526bfdeefb19bf8b1f07c10bf12c673a2d Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Wed, 8 Jan 2025 11:35:03 +0800 Subject: [PATCH 7/8] =?UTF-8?q?[6.9.0]OTA=E5=8D=87=E7=BA=A7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ota/OTAUpgradeManager.kt | 5 ++-- .../core/function/hmi/ui/MoGoHmiProvider.kt | 27 ++++++++++++------- .../function/hmi/ui/tools/OTAUpgradeDialog.kt | 9 +++++-- .../api/hmi/warning/IMoGoHmiProvider.kt | 2 +- .../function/call/hmi/CallerHmiManager.kt | 4 +-- 5 files changed, 30 insertions(+), 17 deletions(-) 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 89f6b07c4e..17597bd3f9 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 @@ -160,7 +160,7 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, taskId,taskItemId,otaType,productName,needRestart,isDelay,curSize,totalSize) otaUpgradeList.add(otaUpgradeInfo) } - CallerHmiManager.showOTADownloadStatusDialog(otaUpgradeList) + CallerHmiManager.showOTADownloadStatusDialog(true,otaUpgradeList) if(upgradeComplete){ OTAUpgradeConfig.otaToken = "" CallerOTAManager.invokeOtaDownloadStatus(false) @@ -269,6 +269,7 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, OTAUpgradeConfig.isQuery = false }else{ if(!OTAUpgradeConfig.upgradeFinish.contains(status.otaInfo.otaToken)){ + CallerHmiManager.showOTADownloadStatusDialog(true,otaUpgradeList) CallerHmiManager.showOTAResultDialog(upgradeResult) OTAUpgradeConfig.upgradeFinish.add(status.otaInfo.otaToken) } @@ -278,7 +279,7 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, //通知关闭提示升级窗口(存在域控也在进行5min倒计时,与app存在时间差,域控会更早完成倒计时触发升级, // 此时通知app开始升级,app收到后即使未完成倒计时,也关闭提示弹窗,开始展示下载进展) CallerHmiManager.showOTAUpgradeDialog(false) - CallerHmiManager.showOTADownloadStatusDialog(otaUpgradeList) + CallerHmiManager.showOTADownloadStatusDialog(true,otaUpgradeList) CallerOTAManager.invokeOtaDownloadStatus(true) } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt index 881f47c690..0b9d7fb0d0 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt @@ -691,19 +691,26 @@ class MoGoHmiProvider : IMoGoHmiProvider { /** * 展示OTA升级下载状态弹窗 */ - override fun showOTADownloadStatusDialog(list: List) { + override fun showOTADownloadStatusDialog(isShow: Boolean,list: List) { ThreadUtils.runOnUiThread{ - if(otaDownloadStatusDialog?.isShowing == true){ - otaDownloadStatusDialog?.notifyDownloadStatus(list) - return@runOnUiThread - } - context?.let { - if(otaDownloadStatusDialog == null){ - otaDownloadStatusDialog = OTADownloadStatusDialog(it) + if(isShow){ + if(otaDownloadStatusDialog?.isShowing == true){ + otaDownloadStatusDialog?.notifyDownloadStatus(list) + return@runOnUiThread + } + context?.let { + if(otaDownloadStatusDialog == null){ + otaDownloadStatusDialog = OTADownloadStatusDialog(it) + } + otaDownloadStatusDialog?.show() + otaDownloadStatusDialog?.notifyDownloadStatus(list) + } + }else{ + if(otaDownloadStatusDialog?.isShowing == true){ + otaDownloadStatusDialog?.dismiss() } - otaDownloadStatusDialog?.show() - otaDownloadStatusDialog?.notifyDownloadStatus(list) } + } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OTAUpgradeDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OTAUpgradeDialog.kt index 55aa433a6a..d14461553b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OTAUpgradeDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OTAUpgradeDialog.kt @@ -2,11 +2,14 @@ package com.mogo.eagle.core.function.hmi.ui.tools import android.content.Context import android.os.CountDownTimer +import android.util.Log +import androidx.annotation.UiThread import androidx.lifecycle.LifecycleObserver import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog import com.mogo.eagle.core.utilcode.util.ThreadUtils +import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.zhjt.mogo_core_function_devatools.ota.OTAUpgradeConfig import kotlinx.android.synthetic.main.dialog_ota_upgrade.tv_upgrade_later import kotlinx.android.synthetic.main.dialog_ota_upgrade.tv_upgrade_now @@ -50,9 +53,11 @@ class OTAUpgradeDialog(context: Context) : override fun onFinish() { //立即升级 CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.IMMEDIATELY) - ThreadUtils.runOnUiThread { + UiThreadHandler.postDelayed({ + CallerAutoPilotControlManager.sendSsmFuncOtaStatusQuery(OTAUpgradeConfig.otaToken) dismiss() - } + },2000 + ) } } diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt index b065b234eb..a157768e25 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt @@ -333,7 +333,7 @@ interface IMoGoHmiProvider :IProvider{ /** * 展示OTA升级下载状态弹窗 */ - fun showOTADownloadStatusDialog(list: List) + fun showOTADownloadStatusDialog(isShow: Boolean,list: List) /** * 展示OTA升级结果弹窗 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt index b51f2a22d6..d44d39057e 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt @@ -483,8 +483,8 @@ object CallerHmiManager { /** * 展示OTA升级下载状态弹窗 */ - fun showOTADownloadStatusDialog(list: List){ - hmiProviderApi?.showOTADownloadStatusDialog(list) + fun showOTADownloadStatusDialog(isShow: Boolean,list: List){ + hmiProviderApi?.showOTADownloadStatusDialog(isShow,list) } From f4ec917767400a989271945e870c54c89820d67c Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Wed, 8 Jan 2025 11:39:00 +0800 Subject: [PATCH 8/8] =?UTF-8?q?[6.9.0]OTA=E9=95=9C=E5=83=8F=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E8=BF=9B=E5=BA=A6=E4=B8=BA100%=E6=97=B6=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=83=A8=E7=BD=B2=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/tools/adapter/OTADownloadStatusAdapter.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/adapter/OTADownloadStatusAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/adapter/OTADownloadStatusAdapter.kt index 7aa65e31aa..033aa34971 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/adapter/OTADownloadStatusAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/adapter/OTADownloadStatusAdapter.kt @@ -33,6 +33,9 @@ class OTADownloadStatusAdapter(private val context: Context): RecyclerView.Adapt val otaUpgradeInfo = it[position] holder.tvProductName.text = otaUpgradeInfo.product_name holder.tvDownloadProgress.text = "${(otaUpgradeInfo.cur_size*100/otaUpgradeInfo.total_size).toInt()}%" + if(otaUpgradeInfo.cur_size == otaUpgradeInfo.total_size){ + holder.tvDownloadProgress.text = "部署中" + } holder.pbDownloadProgress.progress = (otaUpgradeInfo.cur_size*100/otaUpgradeInfo.total_size).toInt() // 0:默认(未开始), 1:下载中, 2:下载完成, 3:升级完成, 4:升级失败 // holder.tvDownloadStatus.text = when (otaUpgradeInfo.status) {