[8.2.0][adas] 修改心跳机制:增加接收域控心跳,兼容域控老版本心跳,修改心跳超时断开连接后立即进行重连,域控连接状态新增调用时间链路日志排查问题

This commit is contained in:
xinfengkun
2025-08-01 17:34:05 +08:00
parent 4add71e4cc
commit 12f3f8b5e0
10 changed files with 119 additions and 90 deletions

View File

@@ -96,13 +96,14 @@ class MoGoAdasMsgConnectStatusListenerImpl :
/**
* 与工控机链接状态变化
*
* @param status {@link AdasConstants.IpcConnectionStatus}
* @param reason 连接信息需要判null,目前只有以下参数存在值其他全部为null
* {@link AdasConstants.IpcConnectionStatus#HEARTBEAT_TIMEOUT} 表示超时时间
* {@link AdasConstants.IpcConnectionStatus#CONNECT_EXCEPTION} 表示连接异常原因
* {@link AdasConstants.IpcConnectionStatus#SERVER_DISCONNECTED} 服务端断开如果服务端关闭时发送了原因将存在如果服务端关闭时未发送将为null
* @param callbackTime 回调时间
* @param status {@link AdasConstants.IpcConnectionStatus}
* @param reason 连接信息需要判null,目前只有以下参数存在值其他全部为null
* {@link AdasConstants.IpcConnectionStatus#HEARTBEAT_TIMEOUT} 表示超时时间
* {@link AdasConstants.IpcConnectionStatus#CONNECT_EXCEPTION} 表示连接异常原因
* {@link AdasConstants.IpcConnectionStatus#SERVER_DISCONNECTED} 服务端断开如果服务端关闭时发送了原因将存在如果服务端关闭时未发送将为null
*/
override fun onConnectionIPCStatus(status: AdasConstants.IpcConnectionStatus, reason: String?) {
override fun onConnectionIPCStatus(callbackTime: Long, status: AdasConstants.IpcConnectionStatus, reason: String?) {
val isConnected = status == AdasConstants.IpcConnectionStatus.CONNECTED
CallerAutopilotActionsListenerManager.setConnected(isConnected)
CallerParallelDrivingActionsListenerManager.setConnected(isConnected)
@@ -235,8 +236,10 @@ class MoGoAdasMsgConnectStatusListenerImpl :
}
AdasConstants.IpcConnectionStatus.HEARTBEAT_TIMEOUT -> {
connectStatusDescribe =
"心跳超时(连接域控成功后在一段时间内未收到域控任何数据),超时时间:${reason}"
connectStatusDescribe = "心跳超时"
reason?.let {
connectStatusDescribe = it
}
CallerLogger.d(
"$M_D_C$TAG",
connectStatusDescribe
@@ -270,7 +273,7 @@ class MoGoAdasMsgConnectStatusListenerImpl :
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatusReason = reason
CallerAutoPilotStatusListenerManager.invokeAutoPilotStatus()
CallerAutoPilotStatusListenerManager.invokeAutoPilotIPCStatusChanged(status, reason)
saveIntoMsgBox(status, connectStatusDescribe)
saveIntoMsgBox(callbackTime, status, connectStatusDescribe)
}
/**
@@ -326,9 +329,10 @@ class MoGoAdasMsgConnectStatusListenerImpl :
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
linkCode = CHAIN_SOURCE_ADAS,
nodeAliasCode = CHAIN_CODE_ADAS_CONNECT_STATUS,
paramIndexes = [0,1]
paramIndexes = [0,1,2]
)
private fun saveIntoMsgBox(
callbackTime: Long,
status: AdasConstants.IpcConnectionStatus,
reason: String
) {