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 57e40f6d78..851dcfb3bc 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 @@ -173,8 +173,8 @@ object StatusManager { }, 500L) } private fun randomNoFSMChange(ctx: Context) { - val fsmStatus = FSMStatus(FSMStateCode.ExistNormal, "正常") - val noFsmStatus = FSMStatus(FSMStateCode.NotExist, "") + val fsmStatus = FSMStatus(FSMStateCode.ExistNormal, listOf("正常")) + val noFsmStatus = FSMStatus(FSMStateCode.NotExist, listOf("")) ctx.lifeCycleScope.launch(dispatcher) { model.update(if (hasFSM) fsmStatus else noFsmStatus) @@ -182,8 +182,8 @@ object StatusManager { } private fun randomFSMStatus(ctx: Context) { - val fsmNormalStatus = FSMStatus(FSMStateCode.ExistNormal, "正常") - val fsmErrorStatus = FSMStatus(FSMStateCode.ExistError, "异常") + val fsmNormalStatus = FSMStatus(FSMStateCode.ExistNormal, listOf("正常")) + val fsmErrorStatus = FSMStatus(FSMStateCode.ExistError, listOf("异常")) val fSMList = ArrayList()?.also { it += fsmNormalStatus 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 dd0644996c..db44dd75e7 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 @@ -141,28 +141,31 @@ enum class FSMStateCode { /** * FSM模块状态 */ -class FSMStatus(var state: FSMStateCode, var desc: String = ""): Status(), IAutopilotPreLaunchStatus { +class FSMStatus(var state: FSMStateCode, var descList: List = emptyList()): Status(), IAutopilotPreLaunchStatus { override fun equals(other: Any?): Boolean { if (javaClass != other?.javaClass) return false other as FSMStatus - if (desc != other.desc) { + if (state != other.state) { return false } - if (state != other.state) { + if (descList.size != other.descList.size) { + return false + } + if (descList != other.descList) { return false } return true } override fun hashCode(): Int { - var result = desc.hashCode() + var result = descList.hashCode() result = 31 * result + state.hashCode() return result } override fun toString(): String { - return "FSMStatus(state=$state, desc='$desc', raw_data=$rawData)" + return "FSMStatus(state=$state, descList='$descList', raw_data=$rawData)" } override fun isException(): Boolean = state == FSMStateCode.ExistError diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/fsm/FSMImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/fsm/FSMImpl.kt index 5e7d1c0dd5..e151818859 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/fsm/FSMImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/fsm/FSMImpl.kt @@ -34,9 +34,9 @@ internal class FSMImpl(ctx: Context) : IFlow(ctx), IMoGoAutopilotStat AtomicReference(null) } - private fun getDesc(): String { + private fun getDesc(): List { if (!CallerAutoPilotStatusListenerManager.isConnect()) { - return "未知" + return listOf("未知") } else { val nodeState = CallerAutoPilotControlManager.getNodeStateInfo(AdasConstants.NodeName.FSM2024)?.nodeState ?: AdasConstants.NodeState.NODE_UNKNOWN return getStateDescByNodeStateInfo(nodeState) @@ -61,12 +61,12 @@ internal class FSMImpl(ctx: Context) : IFlow(ctx), IMoGoAutopilotStat } } - private fun getStateDescByNodeStateInfo(nodeState: AdasConstants.NodeState): String { + private fun getStateDescByNodeStateInfo(nodeState: AdasConstants.NodeState): List { return when(nodeState) { - AdasConstants.NodeState.NODE_UNKNOWN -> "未知" - AdasConstants.NodeState.NODE_NOT_EXIST -> "FSM不存在" - AdasConstants.NodeState.NODE_EXIST -> if(fsmStateMsg.get()?.pilotStandbyFlag == true) "状态正常" else fsmStateMsg.get()?.pilotNotStandbyReason ?: "" - else -> "未知" + AdasConstants.NodeState.NODE_UNKNOWN -> listOf("未知") + AdasConstants.NodeState.NODE_NOT_EXIST -> listOf("FSM不存在") + AdasConstants.NodeState.NODE_EXIST -> if(fsmStateMsg.get()?.pilotStandbyFlag == true) listOf("状态正常") else fsmStateMsg.get()?.repeatedPilotNotStandbyReasonList ?: listOf("") + else -> listOf("未知") } } @@ -92,7 +92,7 @@ internal class FSMImpl(ctx: Context) : IFlow(ctx), IMoGoAutopilotStat } else { CallerLogger.d("$M_DEVA$TAG", "工控机断开了....") fsmStateMsg.set(null) - send(FSMStatus(FSMStateCode.UnKnown, "工控机断开了")) + send(FSMStatus(FSMStateCode.UnKnown, listOf("工控机断开了"))) } } @@ -122,9 +122,9 @@ internal class FSMImpl(ctx: Context) : IFlow(ctx), IMoGoAutopilotStat ) fsmStateMsg.set(fsmState) if (fsmState.pilotStandbyFlag) { - send(FSMStatus(FSMStateCode.ExistNormal, "状态正常")) + send(FSMStatus(FSMStateCode.ExistNormal, listOf("状态正常"))) } else { - send(FSMStatus(FSMStateCode.ExistError, fsmState.pilotNotStandbyReason)) + send(FSMStatus(FSMStateCode.ExistError, fsmState.repeatedPilotNotStandbyReasonList)) } } 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 0bef99c5a8..f53e53fc51 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 @@ -14,7 +14,7 @@ internal class StatusModel : ViewModel() { const val TAG = "StatusModel" val DEFAULTS = Pair(null, ArrayList().also { it += OverViewStatus() - it += FSMStatus(FSMStateCode.UnKnown, "") + it += FSMStatus(FSMStateCode.UnKnown, listOf("")) it += RTKStatus("", -1) it += IpcStatus(CallerAutoPilotStatusListenerManager.isConnect()) it += CanStatus(false) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt index fc975615d5..40ee18fb4a 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt @@ -141,9 +141,7 @@ internal class StatusAdapter(val ctx: Context, var data: List) : Recycle FSMStateCode.ExistError -> { iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_fsm_error) - CallerHmiManager.showFSMExceptionStatusWindow(ArrayList().also { - it += status.desc - }) + CallerHmiManager.showFSMExceptionStatusWindow(status.descList) } } } 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 57ca6cd7da..74b7dd1f4d 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 @@ -22,7 +22,6 @@ 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.SpeedStatus 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 @@ -72,7 +71,7 @@ class StartAutoPilotStatusView @JvmOverloads constructor( private fun initView() { // 默认展示 FSM 情况未知的状态 - handleFSM(FSMStatus(FSMStateCode.UnKnown, "未知")) + handleFSM(FSMStatus(FSMStateCode.UnKnown, listOf("未知"))) } /** @@ -132,9 +131,7 @@ class StartAutoPilotStatusView @JvmOverloads constructor( FSMStateCode.ExistError -> { fSMStatusLayout?.onClick { - CallerHmiManager.showFSMExceptionStatusWindow(ArrayList().also { - it += status.desc - }) + CallerHmiManager.showFSMExceptionStatusWindow(status.descList) } fSMStatusLayout?.setImageDrawable( ContextCompat.getDrawable( @@ -233,7 +230,6 @@ class StartAutoPilotStatusView @JvmOverloads constructor( } } - override fun onAttachedToWindow() { super.onAttachedToWindow() StatusManager.addListener(TAG, this) @@ -256,10 +252,6 @@ class StartAutoPilotStatusView @JvmOverloads constructor( handleFSM(status) } - is SpeedStatus -> { - // TODO - } - else -> { handleWithoutFSM(status) } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/fsm/FSMStatusDetailView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/fsm/FSMStatusDetailView.kt index dcf5bd1f5e..46f0fe7f82 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/fsm/FSMStatusDetailView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/fsm/FSMStatusDetailView.kt @@ -54,7 +54,7 @@ class FSMStatusDetailView @JvmOverloads constructor( } } - fun setFsmErrorStatus(msgArray: ArrayList) { + fun setFsmErrorStatus(msgArray: List) { tvTitle?.text = "FSM异常" runCatching { val c = Color.parseColor("#FF4E41") @@ -93,7 +93,7 @@ class FSMStatusDetailView @JvmOverloads constructor( removeFsmMsgItemView() } - private fun addFsmMsgItemView(msgArray: ArrayList, isError: Boolean) { + private fun addFsmMsgItemView(msgArray: List, isError: Boolean) { if (llFsmMsgContainerLayout == null) { Logger.e(TAG, "addFsmMsmItemView llFsmMsgContainerLayout is null") return @@ -145,14 +145,7 @@ class FSMStatusDetailView @JvmOverloads constructor( } FSMStateCode.ExistError -> { - // TODO 修改成多条 - setFsmErrorStatus(ArrayList().also { - it += status.desc - it += status.desc - it += status.desc - it += status.desc - it += status.desc - }) + setFsmErrorStatus(status.descList) } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/fsm/FSMStatusDetailWindowManager.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/fsm/FSMStatusDetailWindowManager.kt index 8d9e54242e..5a20375177 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/fsm/FSMStatusDetailWindowManager.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/fsm/FSMStatusDetailWindowManager.kt @@ -25,7 +25,7 @@ class FSMStatusDetailWindowManager private constructor() { } fun showExceptionStatus( - context: Context, errorMsg: ArrayList + context: Context, errorMsg: List ) { if (mFSMStatusDetailView == null) { mFSMStatusDetailView = FSMStatusDetailView(context) 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 a4c2ba44e4..3200105a17 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 @@ -355,7 +355,7 @@ class MoGoHmiProvider : IMoGoHmiProvider { /** * 展示 FSM 异常状态弹框 */ - override fun showFSMExceptionStatusWindow(errorMsg: ArrayList) { + override fun showFSMExceptionStatusWindow(errorMsg: List) { context?.let { FSMStatusDetailWindowManager.fsmStatusDetailWindowManager.showExceptionStatus(it, errorMsg)} } 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 946f8042da..f08192e75e 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 @@ -164,7 +164,7 @@ interface IMoGoHmiProvider :IProvider{ /** * 展示 FSM 异常状态弹框 */ - fun showFSMExceptionStatusWindow(errorMsg: ArrayList) + fun showFSMExceptionStatusWindow(errorMsg: List) /** * 关闭 FSM 异常状态弹框 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 ba417523b3..af63911cfa 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 @@ -248,7 +248,7 @@ object CallerHmiManager { /** * 展示 FSM 异常状态弹框 */ - fun showFSMExceptionStatusWindow(errorMsg: ArrayList) { + fun showFSMExceptionStatusWindow(errorMsg: List) { hmiProviderApi?.showFSMExceptionStatusWindow(errorMsg) }