[660][data-center] 添加查询节点状态以及主动推送节点状态接口

This commit is contained in:
xinfengkun
2024-08-20 10:17:39 +08:00
parent b4ed1f8585
commit 3e51b85e8b
11 changed files with 211 additions and 6 deletions

View File

@@ -65,6 +65,7 @@ import com.zhidao.support.adas.high.chain.AdasChain
import com.zhidao.support.adas.high.common.Constants
import com.zhidao.support.adas.high.common.CupidLogUtils
import com.zhjt.mogo.adas.common.MessageType
import com.zhjt.mogo.adas.data.Adas
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo.adas.data.bean.MogoReport
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
@@ -1375,4 +1376,8 @@ class MoGoAutopilotControlProvider :
return AdasManager.getInstance().sendSeatPressure(driver, copilot, backRow) > -1
}
override fun getNodeStateInfo(name: AdasConstants.NodeName): Adas.NodeStateInfo {
return AdasManager.getInstance().getNodeStateInfo(name)
}
}

View File

@@ -14,7 +14,6 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_AD
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_GUARDIAN
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_MAP_PARAM
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_PARALLEL
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_P_ACTIONS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_P_OBJECTS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_RECORD
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_ROUTE
@@ -73,6 +72,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerRoboBusJinlvM1StitchedV
import com.mogo.eagle.core.function.call.autopilot.CallerStartAutopilotFailedListenerManager.invokeStartAutopilotFailed
import com.mogo.eagle.core.function.call.autopilot.CallerSweeperFutianCleanSystemListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerSweeperFutianCloudTaskListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerNodeStateListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerV2XListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerV2nNioEventListenerManager
import com.mogo.eagle.core.function.call.obu.CallerObuMapMathListenerManager
@@ -88,6 +88,8 @@ import com.zhidao.support.adas.high.chain.AdasChain
import com.zhjt.mogo.adas.data.bean.AdasParam
import com.zhidao.support.adas.high.common.ProtocolStatus
import com.zhjt.mogo.adas.common.MessageType
import com.zhjt.mogo.adas.data.Adas
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo.adas.data.AiCloudTask
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics
import com.zhjt.mogo.adas.data.bean.LaunchConditionData
@@ -1022,6 +1024,19 @@ class MoGoAdasListenerImpl : OnAdasListener {
CallerV2nNioEventListenerManager.invokeV2nNioCongestionEvent(congestion)
}
/**
* 所连接的域控的节点状态信息
* 目前包含状态 节点是否存在;节点是否超时;
* SSM 只判断超时状态
* FSM 是否存在;是否超时;
*
* @param name 节点名称
* @param stateInfo 节点状态信息 包含:未知;存在;不存在; 以及存在的一些状态
*/
override fun onNodeStateInfo(name: AdasConstants.NodeName, stateInfo: Adas.NodeStateInfo) {
CallerNodeStateListenerManager.invokeNodeState(name, stateInfo)
}
/**
* 域控SSM接口接收超时
* 状态变动时才会回调默认SSM状态正常

View File

@@ -5,14 +5,15 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
import com.mogo.eagle.core.data.biz.trafficlight.TrafficLightResult
import com.mogo.eagle.core.data.deva.badcase.BagManagerEntity
import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider
import com.zhjt.mogo.adas.data.Adas
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable.IsBootable
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.GetTaskReq
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.StartTaskResp
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume.SuspendResumeTaskReq
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm.TaskConfirmResp
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskResp
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume.BigTaskActionResp
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm.TaskConfirmResp
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume.SuspendResumeTaskReq
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop.StopTaskResp
import mogo.telematics.pad.MessagePad
import mogo.yycp.paralleldriving.protocol.ParallelDrivingRequest
@@ -604,4 +605,13 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
* @param backRow 后排是否有人
*/
fun sendSeatPressure(driver: Boolean,copilot: Boolean,backRow: Boolean): Boolean
/**
* 查询节点状态
*
* @param name 节点名称 目前只有SSM和FSM2024
* @return 状态 SSM只能查询到超时状态FSM2024可以查询到节点是否存在状态以及超时状态
*/
fun getNodeStateInfo(name: AdasConstants.NodeName): Adas.NodeStateInfo
}

View File

@@ -0,0 +1,24 @@
package com.mogo.eagle.core.function.api.autopilot
import com.zhjt.mogo.adas.data.Adas
import com.zhjt.mogo.adas.data.AdasConstants
/**
*节点状态
*/
interface IMoGoNodeStateListener {
/**
* 所连接的域控的节点状态信息
* 目前包含状态 节点是否存在;节点是否超时;
* SSM 只判断超时状态
* FSM 是否存在;是否超时;
*
* @param name 节点名称
* @param stateInfo 节点状态信息 包含:未知;存在;不存在; 以及存在的一些状态
*/
fun onNodeStateInfo(name: AdasConstants.NodeName, stateInfo: Adas.NodeStateInfo)
}

View File

@@ -22,6 +22,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.util.AppStateManager
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.zhjt.mogo.adas.data.Adas
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable.IsBootable
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.GetTaskReq
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.StartTaskResp
@@ -919,4 +920,14 @@ object CallerAutoPilotControlManager {
fun sendSeatPressure(driver: Boolean,copilot: Boolean,backRow: Boolean): Boolean?{
return providerApi?.sendSeatPressure(driver, copilot, backRow)
}
/**
* 查询节点状态
*
* @param name 节点名称 目前只有SSM和FSM2024
* @return 状态 SSM只能查询到超时状态FSM2024可以查询到节点是否存在状态以及超时状态
*/
fun getNodeStateInfo(name: AdasConstants.NodeName): Adas.NodeStateInfo? {
return providerApi?.getNodeStateInfo(name)
}
}

View File

@@ -0,0 +1,62 @@
package com.mogo.eagle.core.function.call.autopilot
import com.mogo.eagle.core.function.api.autopilot.IMoGoNodeStateListener
import com.mogo.eagle.core.function.call.base.CallerBase
import com.zhjt.mogo.adas.data.Adas
import com.zhjt.mogo.adas.data.AdasConstants
/**
*节点状态
*/
object CallerNodeStateListenerManager : CallerBase<IMoGoNodeStateListener>() {
private val mutableMap = mutableMapOf<String, Set<AdasConstants.NodeName>>()
fun addNodeStateListener(
tag: String,
nodeName: Set<AdasConstants.NodeName>?,
listener: IMoGoNodeStateListener
) {
if (!nodeName.isNullOrEmpty()) {
mutableMap[tag] = nodeName
}
super.addListener(tag, listener)
}
fun removeNodeStateListener(tag: String) {
if (mutableMap.containsKey(tag)) {
mutableMap.remove(tag)
}
super.removeListener(tag)
}
fun invokeNodeState(name: AdasConstants.NodeName, stateInfo: Adas.NodeStateInfo) {
M_LISTENERS.forEach {
val names = mutableMap[it.key]
val listener = it.value
if (names.isNullOrEmpty()) {
listener.onNodeStateInfo(name, stateInfo)
} else {
if (names.contains(name)) {
listener.onNodeStateInfo(name, stateInfo)
}
}
}
}
override fun doSomeAfterAddListener(tag: String, listener: IMoGoNodeStateListener) {
super.doSomeAfterAddListener(tag, listener)
mutableMap.forEach { it ->
if (it.key == tag) {
val value = it.value
value.forEach { name ->
val state = CallerAutoPilotControlManager.getNodeStateInfo(name)
state?.let {
listener.onNodeStateInfo(name, state)
}
}
}
}
}
}