[6.9.0]OTA升级和数据闭环需求开发
This commit is contained in:
@@ -82,6 +82,7 @@ import com.zhjt.service.chain.ChainLog
|
||||
import io.netty.channel.Channel
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import mogo.yycp.paralleldriving.protocol.ParallelDrivingRequest
|
||||
import system_master.SsmInfo
|
||||
import java.util.*
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
@@ -1480,4 +1481,36 @@ class MoGoAutopilotControlProvider :
|
||||
return AdasManager.getInstance().sendSimulationWireFailure(isTrigger)>-1
|
||||
}
|
||||
|
||||
/**
|
||||
* SSM发送OTA升级提示请求响应
|
||||
* @param token 域控发送OTA升级请求中的Token {@link SsmInfo.OtaDownloadRequest#getOtaToken()}
|
||||
* @param ifUpgrade {@link SsmInfo.IfUpgrade#IMMEDIATELY}:立即
|
||||
* {@link SsmInfo.IfUpgrade#DELAY}:推迟
|
||||
*/
|
||||
override fun sendSsmFuncOtaDownloadResponse(
|
||||
token: String,
|
||||
ifUpgrade: SsmInfo.IfUpgrade
|
||||
): Boolean {
|
||||
return AdasManager.getInstance().sendSsmFuncOtaDownloadResponse(token, ifUpgrade)>-1
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询OTA状态
|
||||
* @param token 域控发送OTA升级请求中的Token {@link SsmInfo.OtaDownloadRequest#getOtaToken()}
|
||||
* 如果没有可以传null或""
|
||||
*/
|
||||
override fun sendSsmFuncOtaStatusQuery(token: String): Boolean {
|
||||
return AdasManager.getInstance().sendSsmFuncOtaStatusQuery(token)>-1
|
||||
}
|
||||
|
||||
/**
|
||||
* 人工接管时获取前方和后方摄像头数据
|
||||
* 一次请求域控回调次两次摄像头数据 根据{@link MessagePad.CaptureImgOnTakeOver#getUuid()}进行区分是否是哪次请求
|
||||
* 例如下发uuid = 1 域控正常会回调两次响应接口 两次的uuid都是1,通过isFront区分是前方还是后方摄像头
|
||||
* 域控响应接口{@link OnAdasListener#onCaptureImgOnTakeOver(MessagePad.Header, boolean, MessagePad.CaptureImgOnTakeOver)}
|
||||
*/
|
||||
override fun sendCaptureImgReqOnTakeOver(uuid: Int): Boolean {
|
||||
return AdasManager.getInstance().sendCaptureImgReqOnTakeOver(uuid)>-1
|
||||
}
|
||||
|
||||
}
|
||||
@@ -83,6 +83,8 @@ import com.mogo.eagle.core.function.call.autopilot.CallerSweeperFutianCloudTaskL
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerTakeoverListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerV2XListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerV2nNioEventListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerCaptureImgManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerOTAManager
|
||||
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
|
||||
import com.mogo.eagle.core.function.call.obu.CallerObuMapMathListenerManager
|
||||
import com.mogo.eagle.core.function.call.obu.CallerObuWarningRsiListenerManager
|
||||
@@ -439,7 +441,9 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
timestamp: Long,
|
||||
request: SsmInfo.OtaDownloadRequest?
|
||||
) {
|
||||
|
||||
if(request != null){
|
||||
CallerOTAManager.invokeOtaDownloadRequest(request)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -456,7 +460,9 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
timestamp: Long,
|
||||
progress: SsmInfo.OtaLoadingProgess?
|
||||
) {
|
||||
|
||||
if(progress != null){
|
||||
CallerOTAManager.invokeOtaLoadingProgress(progress)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -477,7 +483,9 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
isQuery: Boolean,
|
||||
status: SsmInfo.OtaStatus?
|
||||
) {
|
||||
|
||||
if(status != null){
|
||||
CallerOTAManager.invokeOtaStatus(status)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1350,7 +1358,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
isFront: Boolean,
|
||||
data: MessagePad.CaptureImgOnTakeOver
|
||||
) {
|
||||
|
||||
CallerCaptureImgManager.invokeCaptureImgOnTakeOver(isFront, data)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -73,6 +73,7 @@ import com.zhjt.mogo_core_function_devatools.mofang.MoGoMoFangProviderImpl
|
||||
import com.zhjt.mogo_core_function_devatools.monitor.MonitorManager
|
||||
import com.zhjt.mogo_core_function_devatools.monitor.db.MonitorDb
|
||||
import com.zhjt.mogo_core_function_devatools.monitor.db.MonitorDb.Companion.getDb
|
||||
import com.zhjt.mogo_core_function_devatools.ota.OTAUpgradeManager
|
||||
import com.zhjt.mogo_core_function_devatools.perf.MoGoCpuUsageProviderImpl
|
||||
import com.zhjt.mogo_core_function_devatools.report.IPCReportManager.Companion.iPCReportManager
|
||||
import com.zhjt.mogo_core_function_devatools.scene.SceneManager.Companion.sceneManager
|
||||
@@ -204,6 +205,7 @@ class DevaToolsProvider : IDevaToolsProvider, IAppStateListener {
|
||||
// apmEnvProvider.init(if(DebugConfig.isDebug()) "0" else "1", "${ DebugConfig.getNetMode() }", mDockerVersion ?: "")
|
||||
BadCaseManager.init(mContext!!)
|
||||
ColdStartManager.init(mContext!!)
|
||||
OTAUpgradeManager.init(mContext!!)
|
||||
if (DebugConfig.isDebug()) {
|
||||
SdtManager.init(mContext!!, true, DetectResultImpl())
|
||||
}
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
package com.zhjt.mogo_core_function_devatools.ota
|
||||
|
||||
/**
|
||||
* OTA升级管理类
|
||||
*/
|
||||
class OTAManager {
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.zhjt.mogo_core_function_devatools.ota
|
||||
|
||||
/**
|
||||
* OTA升级配置
|
||||
*/
|
||||
object OTAUpgradeConfig {
|
||||
|
||||
@JvmField
|
||||
var otaToken: String = ""
|
||||
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.zhjt.mogo_core_function_devatools.ota
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.api.datacenter.IDataCenterBizListener
|
||||
import com.mogo.eagle.core.function.api.devatools.IOTAListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizListener
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerOTAManager
|
||||
import system_master.SsmInfo
|
||||
|
||||
/**
|
||||
* OTA升级管理类
|
||||
*/
|
||||
object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener, IOTAListener {
|
||||
|
||||
const val TAG = "OTAUpgradeManager"
|
||||
|
||||
fun init(context: Context){
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
CallerDataCenterBizListener.addListener(TAG,this)
|
||||
CallerOTAManager.addListener(TAG,this)
|
||||
//查询OTA状态
|
||||
CallerAutoPilotControlManager.sendSsmFuncOtaStatusQuery(OTAUpgradeConfig.otaToken)
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动驾驶状态信息
|
||||
* @param state 状态信息
|
||||
* 0-不可自动驾驶,adas与工控机没有链接,或工控机异常
|
||||
* 1-可自动驾驶,目前处于人工干预状态
|
||||
* 2-自动驾驶中
|
||||
* 7-平行驾驶中
|
||||
*/
|
||||
override fun onAutopilotStatusResponse(state: Int) {
|
||||
super.onAutopilotStatusResponse(state)
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否有订单
|
||||
* @param inOrder true有订单 false没有订单
|
||||
*/
|
||||
override fun invokeOrderStatus(inOrder: Boolean) {
|
||||
super.invokeOrderStatus(inOrder)
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* SSM发送OTA升级提示请求
|
||||
* @param request SSM发送OTA升级提示内容
|
||||
*/
|
||||
override fun onOtaDownloadRequest(request: SsmInfo.OtaDownloadRequest) {
|
||||
super.onOtaDownloadRequest(request)
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* SSM上报OTA下载进度, 开始升级后定频上报
|
||||
* @param progress 下载进度
|
||||
*/
|
||||
override fun onOtaLoadingProgress(progress: SsmInfo.OtaLoadingProgess) {
|
||||
super.onOtaLoadingProgress(progress)
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* SSM上报OTA状态和查询OTA状态
|
||||
* 冷启动状态变更上报以及查询状态
|
||||
* 如果是查询到的结果,{@link SsmInfo.OtaStatus#getOtaInfo()}
|
||||
* 中的{@link SsmInfo.OtaDownloadRequest#getOtaToken()}==""表示不存在升级任务
|
||||
* @param status 冷启动状态变更上报以及查询状态
|
||||
*/
|
||||
override fun onOtaStatus(status: SsmInfo.OtaStatus) {
|
||||
super.onOtaStatus(status)
|
||||
OTAUpgradeConfig.otaToken = status.otaInfo.otaToken
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -58,6 +58,7 @@ import com.mogo.eagle.core.function.hmi.ui.setting.StatusView
|
||||
import com.mogo.eagle.core.function.hmi.ui.setting.ToolsView.Companion.toolsView
|
||||
import com.mogo.eagle.core.function.hmi.ui.tools.AdUpgradeDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.tools.ModifyBindingCarDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.tools.OTAUpgradeDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.tools.ToBindingCarDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.tools.UpgradeAppDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog
|
||||
@@ -659,4 +660,15 @@ class MoGoHmiProvider : IMoGoHmiProvider {
|
||||
CallerHmiViewControlListenerManager.invokeColdStartProcessView()
|
||||
}
|
||||
|
||||
/**
|
||||
* 展示OTA升级弹窗
|
||||
*/
|
||||
override fun showOTAUpgradeDialog() {
|
||||
ThreadUtils.runOnUiThread{
|
||||
if (context != null){
|
||||
OTAUpgradeDialog.show(context)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.mogo.eagle.core.function.hmi.ui.tools
|
||||
|
||||
import android.content.Context
|
||||
import android.widget.TextView
|
||||
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.zhjt.mogo_core_function_devatools.ota.OTAUpgradeConfig
|
||||
import system_master.SsmInfo
|
||||
|
||||
/**
|
||||
* OTA升级对话框
|
||||
*/
|
||||
class OTAUpgradeDialog(context: Context) :
|
||||
BaseFloatDialog(context,TAG), LifecycleObserver {
|
||||
|
||||
companion object {
|
||||
private const val TAG = "OTAUpgradeDialog"
|
||||
private var otaUpgradeDialog: OTAUpgradeDialog? = null
|
||||
|
||||
fun show(context: Context?) {
|
||||
context?.let {
|
||||
if (otaUpgradeDialog == null) {
|
||||
otaUpgradeDialog = OTAUpgradeDialog(it)
|
||||
}
|
||||
otaUpgradeDialog?.let { dialog ->
|
||||
if (dialog.isShowing) {
|
||||
return
|
||||
}
|
||||
dialog.show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private var clickListener: ClickListener? = null
|
||||
private lateinit var tvUpgradeNow: TextView //立即升级
|
||||
private lateinit var tvUpgradeLater: TextView //稍后升级
|
||||
|
||||
init{
|
||||
setContentView(R.layout.dialog_ota_upgrade)
|
||||
setCanceledOnTouchOutside(false)
|
||||
initView()
|
||||
}
|
||||
|
||||
private fun initView(){
|
||||
tvUpgradeNow = findViewById(R.id.tv_upgrade_now)
|
||||
tvUpgradeLater = findViewById(R.id.tv_upgrade_later)
|
||||
//立即升级
|
||||
tvUpgradeNow.setOnClickListener {
|
||||
CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.IMMEDIATELY)
|
||||
}
|
||||
//稍后升级
|
||||
tvUpgradeLater.setOnClickListener {
|
||||
CallerAutoPilotControlManager.sendSsmFuncOtaDownloadResponse(OTAUpgradeConfig.otaToken,SsmInfo.IfUpgrade.DELAY)
|
||||
}
|
||||
}
|
||||
|
||||
override fun dismiss() {
|
||||
super.dismiss()
|
||||
otaUpgradeDialog = null
|
||||
}
|
||||
|
||||
fun setClickListener(clickListener: ClickListener) {
|
||||
this.clickListener = clickListener
|
||||
}
|
||||
|
||||
interface ClickListener{
|
||||
//立即升级
|
||||
fun upgradeNow()
|
||||
//稍后升级
|
||||
fun upgradeLater()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.mogo.eagle.core.widget.RoundConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="@dimen/dp_900"
|
||||
android:layout_height="@dimen/dp_620"
|
||||
android:background="@drawable/bg_bone_dialog"
|
||||
app:roundLayoutRadius="@dimen/dp_50"
|
||||
>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_upgrade_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:text="@string/application_upgrade"
|
||||
android:textSize="56dp"
|
||||
android:textColor="#FFFFFFFF"
|
||||
android:layout_marginTop="50dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_upgrade_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_upgrade_title"
|
||||
android:text="@string/application_upgrade_confirm"
|
||||
android:textColor="#FFFFFFFF"
|
||||
android:textSize="43dp"
|
||||
android:gravity="start"
|
||||
android:layout_marginStart="50dp"
|
||||
android:layout_marginEnd="50dp"
|
||||
android:layout_marginTop="50dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_upgrade_tip"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_upgrade_content"
|
||||
app:layout_constraintBottom_toTopOf="@id/view_horizontal_line"
|
||||
android:text="@string/application_upgrade_tips"
|
||||
android:textColor="#FFFF4B1F"
|
||||
android:textSize="36dp"
|
||||
android:layout_marginStart="50dp"
|
||||
android:layout_marginEnd="50dp"
|
||||
android:layout_marginTop="30dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_upgrade_now"
|
||||
android:layout_width="@dimen/dp_356"
|
||||
android:layout_height="@dimen/dp_120"
|
||||
android:gravity="center"
|
||||
android:text="@string/ota_upgrade_now"
|
||||
android:background="@drawable/bg_dialog_btn"
|
||||
android:textColor="@color/color_2EACFF"
|
||||
android:textSize="@dimen/dp_40"
|
||||
android:layout_marginStart="@dimen/dp_65"
|
||||
android:layout_marginBottom="@dimen/dp_62"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_upgrade_later"
|
||||
android:layout_width="@dimen/dp_356"
|
||||
android:layout_height="@dimen/dp_120"
|
||||
android:gravity="center"
|
||||
android:text="@string/ota_upgrade_later"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_40"
|
||||
android:background="@drawable/bg_dialog_btn"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:layout_marginEnd="@dimen/dp_65"
|
||||
android:layout_marginBottom="@dimen/dp_62"
|
||||
app:layout_constraintRight_toRightOf="parent"/>
|
||||
|
||||
</com.mogo.eagle.core.widget.RoundConstraintLayout>
|
||||
@@ -248,4 +248,8 @@
|
||||
|
||||
<string name="cold_start_process">冷启动进度条</string>
|
||||
|
||||
<!--OTA升级-->
|
||||
<string name="ota_upgrade_now">立即升级</string>
|
||||
<string name="ota_upgrade_later">稍后升级</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume.Suspend
|
||||
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskResp
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import mogo.yycp.paralleldriving.protocol.ParallelDrivingRequest
|
||||
import system_master.SsmInfo
|
||||
|
||||
/**
|
||||
* @author xiaoyuzhou
|
||||
@@ -706,4 +707,28 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
|
||||
*/
|
||||
fun sendSimulationWireFailure(isTrigger: Boolean): Boolean
|
||||
|
||||
/**
|
||||
* SSM发送OTA升级提示请求响应
|
||||
*
|
||||
* @param token 域控发送OTA升级请求中的Token {@link SsmInfo.OtaDownloadRequest#getOtaToken()}
|
||||
* @param ifUpgrade {@link SsmInfo.IfUpgrade#IMMEDIATELY}:立即
|
||||
* {@link SsmInfo.IfUpgrade#DELAY}:推迟
|
||||
*/
|
||||
fun sendSsmFuncOtaDownloadResponse(token: String,ifUpgrade: SsmInfo.IfUpgrade): Boolean
|
||||
|
||||
/**
|
||||
* 查询OTA状态
|
||||
*
|
||||
* @param token 域控发送OTA升级请求中的Token {@link SsmInfo.OtaDownloadRequest#getOtaToken()}
|
||||
* 如果没有可以传null或""
|
||||
*/
|
||||
fun sendSsmFuncOtaStatusQuery(token: String): Boolean
|
||||
|
||||
/**
|
||||
* 人工接管时获取前方和后方摄像头数据
|
||||
* 一次请求域控回调次两次摄像头数据 根据{@link MessagePad.CaptureImgOnTakeOver#getUuid()}进行区分是否是哪次请求
|
||||
* 例如下发uuid = 1 域控正常会回调两次响应接口 两次的uuid都是1,通过isFront区分是前方还是后方摄像头
|
||||
* 域控响应接口{@link OnAdasListener#onCaptureImgOnTakeOver(MessagePad.Header, boolean, MessagePad.CaptureImgOnTakeOver)}
|
||||
*/
|
||||
fun sendCaptureImgReqOnTakeOver(uuid: Int): Boolean
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.mogo.eagle.core.function.api.devatools
|
||||
|
||||
import mogo.telematics.pad.MessagePad
|
||||
|
||||
/**
|
||||
* 接管时前方和后方摄像头数据请求响应回调
|
||||
*/
|
||||
interface ICaptureImgListener {
|
||||
|
||||
/**
|
||||
* 接管时前方和后方摄像头数据请求的响应
|
||||
* @param isFront true:前方摄像头 false:后方摄像头
|
||||
* @param data 数据
|
||||
*/
|
||||
fun onCaptureImgOnTakeOver(isFront: Boolean, data: MessagePad.CaptureImgOnTakeOver){}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.mogo.eagle.core.function.api.devatools
|
||||
|
||||
import system_master.SsmInfo
|
||||
|
||||
/**
|
||||
* OTA升级接口
|
||||
*/
|
||||
interface IOTAListener {
|
||||
|
||||
/**
|
||||
* SSM发送OTA升级提示请求
|
||||
* @param request SSM发送OTA升级提示内容
|
||||
*/
|
||||
fun onOtaDownloadRequest(request: SsmInfo.OtaDownloadRequest){}
|
||||
|
||||
/**
|
||||
* SSM上报OTA下载进度, 开始升级后定频上报
|
||||
* @param progress 下载进度
|
||||
*/
|
||||
fun onOtaLoadingProgress(progress: SsmInfo.OtaLoadingProgess){}
|
||||
|
||||
/**
|
||||
* SSM上报OTA状态和查询OTA状态
|
||||
* 冷启动状态变更上报以及查询状态
|
||||
* 如果是查询到的结果,{@link SsmInfo.OtaStatus#getOtaInfo()}
|
||||
* 中的{@link SsmInfo.OtaDownloadRequest#getOtaToken()}==""表示不存在升级任务
|
||||
* @param status 冷启动状态变更上报以及查询状态
|
||||
*/
|
||||
fun onOtaStatus(status: SsmInfo.OtaStatus){}
|
||||
|
||||
}
|
||||
@@ -322,4 +322,9 @@ interface IMoGoHmiProvider :IProvider{
|
||||
* 展示冷启动进度条
|
||||
*/
|
||||
fun showColdStartProcessView()
|
||||
|
||||
/**
|
||||
* 展示OTA升级弹窗
|
||||
*/
|
||||
fun showOTAUpgradeDialog()
|
||||
}
|
||||
@@ -38,6 +38,7 @@ import com.zhjt.service.chain.ChainLog
|
||||
import com.zhjt.service_biz.BizConfig
|
||||
import kotlinx.coroutines.launch
|
||||
import mogo.yycp.paralleldriving.protocol.ParallelDrivingRequest
|
||||
import system_master.SsmInfo
|
||||
import java.lang.StringBuilder
|
||||
import kotlin.random.Random
|
||||
|
||||
@@ -1063,4 +1064,33 @@ object CallerAutoPilotControlManager {
|
||||
return providerApi?.sendSimulationWireFailure(isTrigger)?:false
|
||||
}
|
||||
|
||||
/**
|
||||
* SSM发送OTA升级提示请求响应
|
||||
* @param token 域控发送OTA升级请求中的Token {@link SsmInfo.OtaDownloadRequest#getOtaToken()}
|
||||
* @param ifUpgrade {@link SsmInfo.IfUpgrade#IMMEDIATELY}:立即
|
||||
* {@link SsmInfo.IfUpgrade#DELAY}:推迟
|
||||
*/
|
||||
fun sendSsmFuncOtaDownloadResponse(token: String,ifUpgrade: SsmInfo.IfUpgrade): Boolean{
|
||||
return providerApi?.sendSsmFuncOtaDownloadResponse(token,ifUpgrade)?:false
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询OTA状态
|
||||
* @param token 域控发送OTA升级请求中的Token {@link SsmInfo.OtaDownloadRequest#getOtaToken()}
|
||||
* 如果没有可以传null或""
|
||||
*/
|
||||
fun sendSsmFuncOtaStatusQuery(token: String): Boolean{
|
||||
return providerApi?.sendSsmFuncOtaStatusQuery(token)?:false
|
||||
}
|
||||
|
||||
/**
|
||||
* 人工接管时获取前方和后方摄像头数据
|
||||
* 一次请求域控回调次两次摄像头数据 根据{@link MessagePad.CaptureImgOnTakeOver#getUuid()}进行区分是否是哪次请求
|
||||
* 例如下发uuid = 1 域控正常会回调两次响应接口 两次的uuid都是1,通过isFront区分是前方还是后方摄像头
|
||||
* 域控响应接口{@link OnAdasListener#onCaptureImgOnTakeOver(MessagePad.Header, boolean, MessagePad.CaptureImgOnTakeOver)}
|
||||
*/
|
||||
fun sendCaptureImgReqOnTakeOver(uuid: Int): Boolean{
|
||||
return providerApi?.sendCaptureImgReqOnTakeOver(uuid)?:false
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.mogo.eagle.core.function.call.devatools
|
||||
|
||||
import com.mogo.eagle.core.function.api.devatools.ICaptureImgListener
|
||||
import com.mogo.eagle.core.function.call.base.CallerBase
|
||||
import mogo.telematics.pad.MessagePad
|
||||
|
||||
/**
|
||||
* 接管时前方和后方摄像头数据请求响应回调管理
|
||||
*/
|
||||
object CallerCaptureImgManager: CallerBase<ICaptureImgListener>() {
|
||||
|
||||
/**
|
||||
* 接管时前方和后方摄像头数据请求的响应
|
||||
*/
|
||||
fun invokeCaptureImgOnTakeOver(isFront: Boolean, data: MessagePad.CaptureImgOnTakeOver){
|
||||
M_LISTENERS.forEach{
|
||||
val listener = it.value
|
||||
listener.onCaptureImgOnTakeOver(isFront, data)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.mogo.eagle.core.function.call.devatools
|
||||
|
||||
import com.mogo.eagle.core.function.api.devatools.IOTAListener
|
||||
import com.mogo.eagle.core.function.call.base.CallerBase
|
||||
import system_master.SsmInfo
|
||||
|
||||
/**
|
||||
* OTA升级接口回调管理
|
||||
*/
|
||||
object CallerOTAManager: CallerBase<IOTAListener>() {
|
||||
|
||||
/**
|
||||
* SSM发送OTA升级提示请求
|
||||
* @param request SSM发送OTA升级提示内容
|
||||
*/
|
||||
fun invokeOtaDownloadRequest(request: SsmInfo.OtaDownloadRequest){
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onOtaDownloadRequest(request)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* SSM上报OTA下载进度, 开始升级后定频上报
|
||||
* @param progress 下载进度
|
||||
*/
|
||||
fun invokeOtaLoadingProgress(progress: SsmInfo.OtaLoadingProgess){
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onOtaLoadingProgress(progress)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* SSM上报OTA状态和查询OTA状态
|
||||
* 冷启动状态变更上报以及查询状态
|
||||
* 如果是查询到的结果,{@link SsmInfo.OtaStatus#getOtaInfo()}
|
||||
* 中的{@link SsmInfo.OtaDownloadRequest#getOtaToken()}==""表示不存在升级任务
|
||||
* @param status 冷启动状态变更上报以及查询状态
|
||||
*/
|
||||
fun invokeOtaStatus(status: SsmInfo.OtaStatus){
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onOtaStatus(status)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -469,4 +469,11 @@ object CallerHmiManager {
|
||||
hmiProviderApi?.showColdStartProcessView()
|
||||
}
|
||||
|
||||
/**
|
||||
* 展示OTA升级弹窗
|
||||
*/
|
||||
fun showOTAUpgradeDialog(){
|
||||
hmiProviderApi?.showOTAUpgradeDialog()
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user