From ccf4855203ac93ac5d1cf5f2c72713131b6b3b26 Mon Sep 17 00:00:00 2001 From: renwj Date: Wed, 20 Nov 2024 19:27:27 +0800 Subject: [PATCH] =?UTF-8?q?[6.8.0][FSM=E5=BC=82=E5=B8=B8=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E4=BC=98=E5=8C=96]=20=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/functions/test/SafetyStopCarTest.kt | 4 ++ .../DevaToolsProvider.kt | 23 ++++++++ .../status/StatusManager.kt | 4 +- .../status/entity/Status.kt | 50 ++++++++++++++---- .../status/flow/fsm/SafetyStopCarImpl.kt | 32 +++++++++++ .../status/model/StatusModel.kt | 1 + .../status/ui/AutoPilotLaunchBeforeView.kt | 4 +- .../status/ui/StatusView.kt | 11 ++-- .../bone/status/StartAutoPilotStatusView.kt | 4 +- .../core/function/hmi/ui/MoGoHmiProvider.kt | 47 ++++++++++++++++ .../fg_fsm_exception_status.png | Bin 0 -> 159563 bytes .../api/hmi/warning/IMoGoHmiProvider.kt | 5 ++ .../function/call/hmi/CallerHmiManager.kt | 7 +++ 13 files changed, 169 insertions(+), 23 deletions(-) create mode 100644 app/src/androidTest/java/com/mogo/functions/test/SafetyStopCarTest.kt create mode 100644 core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/fsm/SafetyStopCarImpl.kt create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/fg_fsm_exception_status.png diff --git a/app/src/androidTest/java/com/mogo/functions/test/SafetyStopCarTest.kt b/app/src/androidTest/java/com/mogo/functions/test/SafetyStopCarTest.kt new file mode 100644 index 0000000000..cc7b7c34ff --- /dev/null +++ b/app/src/androidTest/java/com/mogo/functions/test/SafetyStopCarTest.kt @@ -0,0 +1,4 @@ +package com.mogo.functions.test + +class SafetyStopCarTest { +} \ 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/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index cdf553419d..c6262754d8 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -11,6 +11,7 @@ import com.alibaba.android.arouter.facade.annotation.Route import com.alibaba.android.arouter.launcher.ARouter import com.mogo.commons.AbsMogoApplication import com.mogo.commons.debug.DebugConfig +import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.data.EnvConfig import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig.isShowRouteStrategy @@ -59,6 +60,7 @@ import com.zhjt.mogo_core_function_devatools.block.MoGoBlockProviderImpl import com.zhjt.mogo_core_function_devatools.coldstart.ColdStartManager import com.zhjt.mogo_core_function_devatools.driver.video.DriveSeatVideoProviderImpl import com.mogo.eagle.core.function.api.driver.video.IDriveSeatVideoProvider +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager import com.zhjt.mogo_core_function_devatools.exam.ExamControlManager import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigCenter.Companion.bizConfigCenter @@ -76,6 +78,7 @@ import com.zhjt.mogo_core_function_devatools.report.IPCReportManager.Companion.i import com.zhjt.mogo_core_function_devatools.scene.SceneManager.Companion.sceneManager import com.zhjt.mogo_core_function_devatools.status.StatusManager import com.zhjt.mogo_core_function_devatools.status.entity.RouteDownloadStatus +import com.zhjt.mogo_core_function_devatools.status.entity.SafetyStopCarStatus import com.zhjt.mogo_core_function_devatools.status.entity.Status import com.zhjt.mogo_core_function_devatools.status.ui.AutoPilotLaunchBeforeView import com.zhjt.mogo_core_function_devatools.strict.StrictModeProviderImpl @@ -87,6 +90,7 @@ import com.zhjt.mogo_core_function_devatools.weaknetwork.DetectResultImpl import com.zhjt.mogo_core_function_devatools.weaknetwork.WeakNetworkStrategy import com.zhjt.mogo_core_function_devatools.workorder.WorkOrderManager import com.zhjt.service.chain.ChainLog +import fsm.Fsm2024 import kotlinx.coroutines.delay import kotlinx.coroutines.launch import java.lang.ref.WeakReference @@ -142,6 +146,25 @@ class DevaToolsProvider : IDevaToolsProvider, IAppStateListener { listener.invoke(s.state.ordinal) } } + } else if (s is SafetyStopCarStatus) { + val state = s.data?.functionState + if (state != null) { + if (state == Fsm2024.State.SAFETY_STOP) { + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + AppStateManager.currentActivity()?.also { + AIAssist.getInstance(it).speakTTSVoice("识别故障即将停车,请注意观察,小心接管") + } + CallerHmiManager.toggleSafetyStopCarWarning(true) + } + } + if (state == Fsm2024.State.SAFETY_STOPPED) { + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + AppStateManager.currentActivity()?.also { + AIAssist.getInstance(it).speakTTSVoice("请接管恢复停车状态") + } + } + } + } } } val status = getExceptionStatusBeforeLaunchAutopilot(-2) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt index 9575316ac7..35b94870e5 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt @@ -29,6 +29,7 @@ import com.zhjt.mogo_core_function_devatools.status.flow.autopilot.SpeedImpl import com.zhjt.mogo_core_function_devatools.status.flow.autopilot.SteerImpl import com.zhjt.mogo_core_function_devatools.status.flow.can.CanImpl import com.zhjt.mogo_core_function_devatools.status.flow.fsm.FSMImpl +import com.zhjt.mogo_core_function_devatools.status.flow.fsm.SafetyStopCarImpl import com.zhjt.mogo_core_function_devatools.status.flow.gps.GpsImpl import com.zhjt.mogo_core_function_devatools.status.flow.ipc.IpcImpl import com.zhjt.mogo_core_function_devatools.status.flow.rtk.RTKImpl @@ -99,6 +100,7 @@ object StatusManager { is FSMStatus -> FSMImpl(ctx) is RouteDownloadStatus -> RouteDownloadImpl(ctx) is OtherErrorStatus -> OtherErrorImpl(ctx) + is SafetyStopCarStatus -> SafetyStopCarImpl(ctx) } }.also { flows += it } for (f in flows) { @@ -192,7 +194,7 @@ object StatusManager { } var xor = 0 model.status.value?.second?.filter { - it is IAutopilotPreLaunchStatus + it is IAutopilotBeforeLaunchStatus }?.takeIf { it.isNotEmpty() }?.also { l -> diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/entity/Status.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/entity/Status.kt index a64e0b0495..2c935728c6 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/entity/Status.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/entity/Status.kt @@ -18,6 +18,14 @@ import com.zhjt.mogo_core_function_devatools.status.entity.TracingStatus.Tracing import com.zhjt.mogo_core_function_devatools.status.entity.TracingStatus.Tracing.TRACK_LOAD_FAIL import com.zhjt.mogo_core_function_devatools.status.entity.TracingStatus.Tracing.TRACK_NOT_EXIST import com.zhjt.mogo_core_function_devatools.status.entity.TracingStatus.Tracing.UNKNOWN +import fsm.Fsm2024 + +interface IAutopilotLaunchStatus + +interface IAutopilotBeforeLaunchStatus: IAutopilotLaunchStatus + +interface IAutopilotAfterLaunchStatus: IAutopilotLaunchStatus + sealed class Status(var rawData: Any? = null) { @@ -143,7 +151,7 @@ enum class FSMStateCode { /** * FSM模块状态 */ -class FSMStatus(var state: FSMStateCode, var descList: List = emptyList()): Status(), IAutopilotPreLaunchStatus { +class FSMStatus(var state: FSMStateCode, var descList: List = emptyList()): Status(), IAutopilotBeforeLaunchStatus { override fun equals(other: Any?): Boolean { if (javaClass != other?.javaClass) return false @@ -342,12 +350,11 @@ fun String.toState(msg: String?): Tracing? { } } -interface IAutopilotPreLaunchStatus /** * 速度 */ -data class SpeedStatus(val speed: Int): Status(), IAutopilotPreLaunchStatus { +data class SpeedStatus(val speed: Int): Status(), IAutopilotBeforeLaunchStatus { override fun isException(): Boolean { return false @@ -368,7 +375,7 @@ data class SpeedStatus(val speed: Int): Status(), IAutopilotPreLaunchStatus { /** * 方向盘转角 */ -data class SteerStatus(val angle: Float, var isError: Boolean = false): Status(), IAutopilotPreLaunchStatus { +data class SteerStatus(val angle: Float, var isError: Boolean = false): Status(), IAutopilotBeforeLaunchStatus { override fun isException(): Boolean { @@ -394,7 +401,7 @@ data class SteerStatus(val angle: Float, var isError: Boolean = false): Status() /** * 油门 */ -data class AcceleratorStatus(val angle: Int, var isError: Boolean = false): Status(), IAutopilotPreLaunchStatus { +data class AcceleratorStatus(val angle: Int, var isError: Boolean = false): Status(), IAutopilotBeforeLaunchStatus { override fun isException(): Boolean { return isError && CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING @@ -423,7 +430,7 @@ data class AcceleratorStatus(val angle: Int, var isError: Boolean = false): Stat /** * 刹车 */ -data class BrakeStatus(val angle: Int, var isError: Boolean = false): Status(), IAutopilotPreLaunchStatus { +data class BrakeStatus(val angle: Int, var isError: Boolean = false): Status(), IAutopilotBeforeLaunchStatus { override fun isException(): Boolean { return isError && CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING @@ -456,7 +463,7 @@ data class BrakeStatus(val angle: Int, var isError: Boolean = false): Status(), /** * 双闪 */ -data class DoubleFlashStatus(val type: Int, var isError: Boolean = false): Status(), IAutopilotPreLaunchStatus { +data class DoubleFlashStatus(val type: Int, var isError: Boolean = false): Status(), IAutopilotBeforeLaunchStatus { override fun isException(): Boolean { return isError && CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING @@ -487,7 +494,7 @@ data class DoubleFlashStatus(val type: Int, var isError: Boolean = false): Statu /** * 由于其它原因导致的启自驾异常 */ -data class OtherErrorStatus(val type: UnableType?, val reason: UnableLaunchReason?): Status(), IAutopilotPreLaunchStatus { +data class OtherErrorStatus(val type: UnableType?, val reason: UnableLaunchReason?): Status(), IAutopilotBeforeLaunchStatus { override fun isException(): Boolean { return type != null || reason != null @@ -501,7 +508,7 @@ data class OtherErrorStatus(val type: UnableType?, val reason: UnableLaunchReaso /** * 挡位 */ -data class GearStatus(val value: Int, var isError: Boolean = false): Status(), IAutopilotPreLaunchStatus { +data class GearStatus(val value: Int, var isError: Boolean = false): Status(), IAutopilotBeforeLaunchStatus { override fun isException(): Boolean { return isError && CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING @@ -543,7 +550,7 @@ enum class RouteState { /** * 轨迹下载状态 */ -data class RouteDownloadStatus(val lineId: Long = Long.MIN_VALUE, val state: RouteState = RouteNone): Status(), IAutopilotPreLaunchStatus { +data class RouteDownloadStatus(val lineId: Long = Long.MIN_VALUE, val state: RouteState = RouteNone): Status(), IAutopilotBeforeLaunchStatus { override fun isException(): Boolean { return (state == RouteStart || state == RouteFailed) && CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING @@ -573,4 +580,27 @@ data class RouteDownloadStatus(val lineId: Long = Long.MIN_VALUE, val state: Rou } +/*** + * FSM功能异常,触发安全停车 + */ +data class SafetyStopCarStatus(val data: Fsm2024.FSMStateMsg? = null): Status(), IAutopilotAfterLaunchStatus { + + override fun isException(): Boolean { + return data?.functionState == Fsm2024.State.SAFETY_STOP + } + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + other as SafetyStopCarStatus + return this.data?.functionState == other.data?.functionState + + } + + override fun hashCode(): Int { + return this.data?.functionState?.hashCode() ?: 0 + } +} + + diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/fsm/SafetyStopCarImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/fsm/SafetyStopCarImpl.kt new file mode 100644 index 0000000000..9c14dcf911 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/fsm/SafetyStopCarImpl.kt @@ -0,0 +1,32 @@ +package com.zhjt.mogo_core_function_devatools.status.flow.fsm + +import android.content.Context +import com.mogo.eagle.core.function.api.autopilot.IMoGoFsm2024Listener +import com.mogo.eagle.core.function.call.autopilot.CallerFsm2024ListenerManager +import com.zhjt.mogo_core_function_devatools.status.entity.SafetyStopCarStatus +import com.zhjt.mogo_core_function_devatools.status.flow.IFlow +import fsm.Fsm2024 +import fsm.Fsm2024.FSMStateMsg + +internal class SafetyStopCarImpl(ctx: Context): IFlow(ctx), IMoGoFsm2024Listener { + + companion object { + private const val TAG = "SafetyStopCarImpl" + } + + override fun onCreate() { + CallerFsm2024ListenerManager.addListener(TAG, this) + } + + + override fun onFSM2024State(fsmState: FSMStateMsg) { + if (fsmState.functionState == Fsm2024.State.SAFETY_STOP || fsmState.functionState == Fsm2024.State.SAFETY_STOPPED) { + send(SafetyStopCarStatus(fsmState)) + } + } + + override fun onDestroy() { + super.onDestroy() + CallerFsm2024ListenerManager.removeListener(TAG) + } +} \ 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/status/model/StatusModel.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/model/StatusModel.kt index b7ceb9a117..4bc25acfb2 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/model/StatusModel.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/model/StatusModel.kt @@ -29,6 +29,7 @@ internal class StatusModel : ViewModel() { it += OtherErrorStatus(null, null) it += RouteDownloadStatus() it += SpeedStatus(0) + it += SafetyStopCarStatus() }) } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/AutoPilotLaunchBeforeView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/AutoPilotLaunchBeforeView.kt index 4bdb9850f9..270d189f4c 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/AutoPilotLaunchBeforeView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/AutoPilotLaunchBeforeView.kt @@ -22,7 +22,7 @@ import com.zhjt.mogo_core_function_devatools.status.entity.AcceleratorStatus import com.zhjt.mogo_core_function_devatools.status.entity.BrakeStatus import com.zhjt.mogo_core_function_devatools.status.entity.DoubleFlashStatus import com.zhjt.mogo_core_function_devatools.status.entity.GearStatus -import com.zhjt.mogo_core_function_devatools.status.entity.IAutopilotPreLaunchStatus +import com.zhjt.mogo_core_function_devatools.status.entity.IAutopilotBeforeLaunchStatus import com.zhjt.mogo_core_function_devatools.status.entity.SpeedStatus import com.zhjt.mogo_core_function_devatools.status.entity.Status import com.zhjt.mogo_core_function_devatools.status.entity.SteerStatus @@ -66,7 +66,7 @@ class AutoPilotLaunchBeforeView: LinearLayout, IStatusListener { @SuppressLint("SetTextI18n") override fun onStatusChanged(changed: List, all: List) { - changed.filter { it is IAutopilotPreLaunchStatus }.forEach { status -> + changed.filter { it is IAutopilotBeforeLaunchStatus }.forEach { status -> val isError = status.isException() && CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING Logger.d(TAG, "--- onChanged ---:$isError") when(status) { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt index 7d27a8bda0..5594c5f677 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt @@ -9,8 +9,7 @@ import androidx.recyclerview.widget.* import com.mogo.eagle.core.utilcode.kotlin.* import com.mogo.eagle.core.utilcode.rv.divider.* import com.zhjt.mogo_core_function_devatools.R -import com.zhjt.mogo_core_function_devatools.status.entity.FSMStatus -import com.zhjt.mogo_core_function_devatools.status.entity.IAutopilotPreLaunchStatus +import com.zhjt.mogo_core_function_devatools.status.entity.IAutopilotLaunchStatus import com.zhjt.mogo_core_function_devatools.status.entity.Status import com.zhjt.mogo_core_function_devatools.status.model.StatusModel import com.zhjt.mogo_core_function_devatools.status.ui.adapter.StatusAdapter @@ -36,12 +35,12 @@ internal class StatusView(private val model: StatusModel, ctx: Context): Constra override fun onAttachedToWindow() { super.onAttachedToWindow() - val adapter = model.status.value?.let { data -> StatusAdapter(context, data.second.filter { it !is IAutopilotPreLaunchStatus }) }?.also { adapter -> rv.adapter = adapter } + val adapter = model.status.value?.let { data -> StatusAdapter(context, data.second.filter { (it !is IAutopilotLaunchStatus) }) }?.also { adapter -> rv.adapter = adapter } adapter?.let { _ -> observer?.also { model.status.removeObserver(it) } model.status.observeForever(Observer>> { data -> val old = adapter.data - val update = data.second.filter { it !is IAutopilotPreLaunchStatus } + val update = data.second.filter { it !is IAutopilotLaunchStatus } val result = DiffUtil.calculateDiff(StatusDiffCallback(old, update)) adapter.data = update result.dispatchUpdatesTo(adapter) @@ -65,10 +64,6 @@ internal class StatusView(private val model: StatusModel, ctx: Context): Constra .build() ) } - -// onDetach { -// observer?.also { model.status.removeObserver(it) } -// } } override fun onVisibilityChanged(changedView: View, visibility: Int) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/StartAutoPilotStatusView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/StartAutoPilotStatusView.kt index ecb7e589d9..8710c64a88 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/StartAutoPilotStatusView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/StartAutoPilotStatusView.kt @@ -21,7 +21,7 @@ import com.zhjt.mogo_core_function_devatools.status.entity.DoubleFlashStatus import com.zhjt.mogo_core_function_devatools.status.entity.FSMStateCode import com.zhjt.mogo_core_function_devatools.status.entity.FSMStatus import com.zhjt.mogo_core_function_devatools.status.entity.GearStatus -import com.zhjt.mogo_core_function_devatools.status.entity.IAutopilotPreLaunchStatus +import com.zhjt.mogo_core_function_devatools.status.entity.IAutopilotBeforeLaunchStatus import com.zhjt.mogo_core_function_devatools.status.entity.Status import com.zhjt.mogo_core_function_devatools.status.entity.SteerStatus import kotlinx.android.synthetic.main.view_start_autopilot_status.view.fSMStatusLayout @@ -250,7 +250,7 @@ class StartAutoPilotStatusView @JvmOverloads constructor( * @param all: 所有状态数据 */ override fun onStatusChanged(changed: List, all: List) { - changed.filter { it is IAutopilotPreLaunchStatus }.forEach { status -> + changed.filter { it is IAutopilotBeforeLaunchStatus }.forEach { status -> Logger.d(TAG, "onStatusChanged --> ${status::class.simpleName}") when (status) { is FSMStatus -> { 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 1750383276..822c87ecd4 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 @@ -7,6 +7,12 @@ import android.view.Gravity import android.view.View import android.view.ViewGroup import android.view.ViewStub +import android.view.WindowManager +import android.view.animation.AccelerateDecelerateInterpolator +import android.widget.FrameLayout +import androidx.core.content.ContextCompat +import androidx.core.view.ViewCompat +import androidx.core.view.doOnAttach import androidx.lifecycle.ProcessLifecycleOwner import androidx.lifecycle.lifecycleScope import androidx.transition.Slide @@ -61,6 +67,7 @@ import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView import com.mogo.eagle.core.function.hmi.xiaozhi.XiaoZhiStateManager import com.mogo.eagle.core.utilcode.floating.MoGoPopWindow import com.mogo.eagle.core.utilcode.kotlin.safeCancel +import com.mogo.eagle.core.utilcode.kotlin.scope import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI @@ -107,6 +114,11 @@ class MoGoHmiProvider : IMoGoHmiProvider { */ private val popOfVisualAngleAdjust by lazy { AtomicReference>() } + /** + * fsm异常触发异常停车弹窗 + */ + private val popOfSafetyStopCar by lazy { AtomicReference>() } + override fun init(context: Context?) { this.context = context } @@ -599,4 +611,39 @@ class MoGoHmiProvider : IMoGoHmiProvider { } } + override fun toggleSafeStopCarWarning(show: Boolean) { + val activity = AppStateManager.currentActivity() ?: return + val old = popOfSafetyStopCar.get()?.get() + if (show) { + if (old != null && old.isShowing()) { + return + } + val content = FrameLayout(activity) + ViewCompat.setBackground(content, ContextCompat.getDrawable(activity, R.drawable.fg_fsm_exception_status)) + content.scope.launch { + while (true) { + content.animate().setInterpolator(AccelerateDecelerateInterpolator()).alpha(0f).setDuration(500).start() + delay(500) + content.animate().setInterpolator(AccelerateDecelerateInterpolator()).alpha(1.0f).setDuration(500).start() + delay(500) + } + } + MoGoPopWindow.Builder() + .attachToActivity(activity) + .width(WindowManager.LayoutParams.MATCH_PARENT) + .height(WindowManager.LayoutParams.MATCH_PARENT) + .contentView(content) + .onDismissed { + popOfSafetyStopCar.set(null) + } + .build() + .also { + popOfSafetyStopCar.set(WeakReference(it)) + it.show() + } + } else { + old?.takeIf { it.isShowing() }?.also { it.hide() } + } + } + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/fg_fsm_exception_status.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/fg_fsm_exception_status.png new file mode 100644 index 0000000000000000000000000000000000000000..8bd86dc16c8bde5c8d7d0c032f56cd69491cd84e GIT binary patch literal 159563 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

  • #jnts-&W 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 literal 0 HcmV?d00001 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 a06852b5cd..d321b82c0f 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 @@ -312,4 +312,9 @@ interface IMoGoHmiProvider :IProvider{ * 展示冷启动弹窗 */ fun showColdStartWindow() + + /** + * 是否触发展示安全停车弹窗 + */ + fun toggleSafeStopCarWarning(show: Boolean) } \ No newline at end of file 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 09cfc17552..4c7f9518f4 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 @@ -455,4 +455,11 @@ object CallerHmiManager { hmiProviderApi?.showColdStartWindow() } + /** + * 是否触发展示安全停车弹窗 + */ + fun toggleSafetyStopCarWarning(show: Boolean) { + hmiProviderApi?.toggleSafeStopCarWarning(show) + } + } \ No newline at end of file