[650][adas] 新增FSM2024接口;新增FSM2024超时接口,FSM数据接入新增检测能否启动自驾440兼容版本;

This commit is contained in:
xinfengkun
2024-06-14 15:15:40 +08:00
parent 75d18a6ea7
commit 39f6f085fc
15 changed files with 377 additions and 24 deletions

View File

@@ -74,6 +74,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
import com.zhjt.service.chain.ChainLog
import fault_management.FmInfo
import fsm.Fsm2024
import function_state_management.FunctionStates
import mogo.telematics.pad.MessagePad
import mogo.telematics.pad.MessagePad.TrackedObject
@@ -491,6 +492,16 @@ class MoGoAdasListenerImpl : OnAdasListener {
CallerFaultManagementStateListenerManager.invokeFaultManagementState(fmInfo)
}
/**
* FSM状态
* 目前在启动自驾前置条件检测440版本中使用
* @param header 头
* @param fsmState 数据
*/
override fun onFSM2024State(header: MessagePad.Header, fsmState: Fsm2024.FSMStateMsg) {
CallerFsm2024ListenerManager.invokeFSM2024State(fsmState)
}
/**
* 数据采集配置应答
*/
@@ -938,10 +949,26 @@ class MoGoAdasListenerImpl : OnAdasListener {
CallerRoboBusJinlvM1StitchedVideoListenerManager.invokeRoboBusJinlvM1StitchedVideo(data)
}
/**
* 域控SSM接口接收超时
* 状态变动时才会回调默认SSM状态正常
*
* @param isTimeout trueSSM接口接收超时 falseSSM接口恢复正常
*/
override fun onSsmReceiveTimeout(isTimeout: Boolean) {
CallerAutoPilotStatusListenerManager.invokeSsmReceiveTimeout(isTimeout)
}
/**
* 域控FSM接口接收超时
* 状态变动时才会回调默认FSM状态正常 前提是存在FSM接口
*
* @param isTimeout trueFSM接口接收超时 falseFSM接口恢复正常
*/
override fun onFsm2024ReceiveTimeout(isTimeout: Boolean) {
CallerAutoPilotStatusListenerManager.invokeFsmReceiveTimeout(isTimeout)
}
/**
* 是否可以启动自动驾驶
* 使用方法查看app_ipc_monitoring/uiMainActivity/onAutopilotAbility

View File

@@ -56,6 +56,14 @@ interface IMoGoAutopilotStatusListener {
*/
fun onSsmReceiveTimeout(isTimeout: Boolean) {}
/**
* 域控FSM接口接收超时
* 状态变动时才会回调默认FSM状态正常 前提是存在FSM接口
*
* @param isTimeout trueFSM接口接收超时 falseFSM接口恢复正常
*/
fun onFsmReceiveTimeout(isTimeout: Boolean) {}
/**
* 工控机主动查询 AdasManager#sendStatusQueryReq(),后会收到如下回调
*/

View File

@@ -0,0 +1,18 @@
package com.mogo.eagle.core.function.api.autopilot
import fsm.Fsm2024
/**
* 新版FSM状态
*/
interface IMoGoFsm2024Listener {
/**
* FSM状态
* 目前在启动自驾前置条件检测440版本中使用
* @param header 头
* @param fsmState 数据
*/
fun onFSM2024State(fsmState: Fsm2024.FSMStateMsg)
}

View File

@@ -236,6 +236,19 @@ object CallerAutoPilotStatusListenerManager : CallerBase<IMoGoAutopilotStatusLis
}
}
/**
* 域控FSM接口接收超时
* 状态变动时才会回调默认FSM状态正常 前提是存在FSM接口
*
* @param isTimeout trueFSM接口接收超时 falseFSM接口恢复正常
*/
fun invokeFsmReceiveTimeout(isTimeout: Boolean) {
M_LISTENERS.forEach {
val listener = it.value
listener.onFsmReceiveTimeout(isTimeout)
}
}
/**
* 主动调查询接口AdasManager#sendStatusQueryReq(), 会收到以下回调
*/

View File

@@ -0,0 +1,24 @@
package com.mogo.eagle.core.function.call.autopilot
import com.mogo.eagle.core.function.api.autopilot.IMoGoFsm2024Listener
import com.mogo.eagle.core.function.call.base.CallerBase
import fsm.Fsm2024
import mogo.telematics.pad.MessagePad
/**
* 新版FSM状态
*/
object CallerFsm2024ListenerManager : CallerBase<IMoGoFsm2024Listener>() {
/**
* 绿波通行(单路口)事件推送, 透传
*/
fun invokeFSM2024State(fsmState: Fsm2024.FSMStateMsg) {
M_LISTENERS.forEach {
val listener = it.value
listener.onFSM2024State(fsmState)
}
}
}