From 59523ee9a3cade1572eb1f9176a0d4a30072fe1f Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Wed, 13 Sep 2023 11:05:38 +0800 Subject: [PATCH] =?UTF-8?q?[6.1.0]=E8=AF=B7=E6=B1=82=E5=B9=B3=E8=A1=8C?= =?UTF-8?q?=E9=A9=BE=E9=A9=B6=E5=BC=82=E5=B8=B8=E7=8A=B6=E6=80=81=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/vehicle/TakeOverView.kt | 71 ++++++++++++++++++- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt index 68927571ed..7f2e4d5e76 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt @@ -2,7 +2,6 @@ package com.mogo.eagle.core.function.hmi.ui.vehicle import android.content.Context import android.util.AttributeSet -import android.util.Log import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout @@ -12,20 +11,24 @@ import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.msgbox.V2XMsg import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener +import com.mogo.eagle.core.function.api.autopilot.IMoGoParallelDrivingStatusListener import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.function.call.autopilot.CallerParallelDrivingListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager.saveMsgBox import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.zhjt.mogo.adas.data.bean.MogoReport +import mogo.yycp.paralleldriving.protocol.ParallelTaskProcessNoticeOuterClass import mogo_msg.MogoReportMsg class TakeOverView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoAutopilotStatusListener { +) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoAutopilotStatusListener, + IMoGoParallelDrivingStatusListener { companion object { const val TAG = "TakeOverView" @@ -41,6 +44,7 @@ class TakeOverView @JvmOverloads constructor( override fun onAttachedToWindow() { super.onAttachedToWindow() CallerAutoPilotStatusListenerManager.addListener(TAG, this) + CallerParallelDrivingListenerManager.addListener(TAG,this) } override fun onAutopilotStatusResponse(state: Int) { @@ -147,5 +151,68 @@ class TakeOverView @JvmOverloads constructor( override fun onDetachedFromWindow() { super.onDetachedFromWindow() CallerAutoPilotStatusListenerManager.removeListener(TAG) + CallerParallelDrivingListenerManager.removeListener(TAG) } + + /** + * 平行驾驶状态回调,云端说有状态变化就回调 + */ + override fun onParallelDrivingResp(parallelTaskProcessNotice: ParallelTaskProcessNoticeOuterClass.ParallelTaskProcessNotice?) { + parallelTaskProcessNotice?.let { + if (takeOver) { + return@let + } + when(it.code){ + //进入同步状态 + "START_SYNC"->{ + + } + //同步结束 + "EXIT_SYNC"->{ + + } + //无法接管 + "UNABLE_TAKEOVER"->{ + showParallelDrivingWarning("UNABLE_TAKEOVER","远程无法介入,注意随时接管","远程无法介入,注意随时接管") + } + //同步异常结束 + "EXCEPTION_EXIT_SYNC"->{ + showParallelDrivingWarning("EXCEPTION_EXIT_SYNC","远程介入失败,注意随时接管","远程介入失败,注意随时接管") + } + //任务已被拒绝 + "TASK_REJECTED"->{ + + } + //异常请人工驾驶 + "PARALLEL_EXCEPTION_MANUAL_DRIVING"->{ + showParallelDrivingWarning("PARALLEL_EXCEPTION_MANUAL_DRIVING","即将靠边停车,注意随时接管","即将靠边停车,注意随时接管") + } + //平行驾驶异常结束 + "EXCEPTION_EXIT_PARALLEL_DRIVING"->{ + showParallelDrivingWarning("EXCEPTION_EXIT_PARALLEL_DRIVING","可能应急停车,注意随时接管","可能应急停车,注意随时接管") + } + } + } + } + + private fun showParallelDrivingWarning(poiType: String,content: String,tts: String){ + CallerHmiManager.warningV2X(poiType, content, tts, + object : IMoGoWarningStatusListener { + override fun onShow() { + takeOver = true + ThreadUtils.runOnUiThread{ + visibility = View.VISIBLE + } + } + + override fun onDismiss() { + takeOver = false + ThreadUtils.runOnUiThread{ + visibility = View.GONE + } + } + } + ,isFromObu = false) + } + } \ No newline at end of file