[6.1.0]请求平行驾驶异常状态提示
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user