[6.9.0]OTA升级修改

This commit is contained in:
xuxinchao
2025-01-07 17:49:57 +08:00
parent 56372aba68
commit a44c10275a
3 changed files with 56 additions and 23 deletions

View File

@@ -19,4 +19,7 @@ object OTAUpgradeConfig {
//当前SSM版本是否支持OTA升级默认不支持
@JvmField
var supportOTA: Boolean = false
//是否是主动查询
@JvmField
var isQuery: Boolean = false
}

View File

@@ -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)
}
}