diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt index ae3a55e6d8..49248e37c1 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt @@ -49,6 +49,9 @@ class MoGoAdasMsgConnectStatusListenerImpl : @Volatile private var isFirstException = true + @Volatile + private var isFirstDisconnected = false//只有连接成功后断开连接才加入消息盒子 + init { CallerCloudListenerManager.addListener(TAG, this) CallerAutopilotActionsListenerManager.setConnected(AdasManager.getInstance().ipcConnectionStatus == AdasConstants.IpcConnectionStatus.CONNECTED) @@ -118,17 +121,17 @@ class MoGoAdasMsgConnectStatusListenerImpl : } AdasConstants.IpcConnectionStatus.CONNECTING -> { - CallerLogger.d("$M_D_C$TAG", "连接中") + CallerLogger.d("$M_D_C$TAG", "域控连接中") connectToast("域控连接中") } AdasConstants.IpcConnectionStatus.RECONNECTING_TIMER -> { - CallerLogger.d("$M_D_C$TAG", "重连中(定时器)") + CallerLogger.d("$M_D_C$TAG", "域控重连中(定时器)") connectToast("域控重连中") } AdasConstants.IpcConnectionStatus.RECONNECTING_NETWORK -> { - CallerLogger.d("$M_D_C$TAG", "重连中(网络监听)") + CallerLogger.d("$M_D_C$TAG", "域控重连中(网络监听)") connectToast("域控重连中") } @@ -163,7 +166,6 @@ class MoGoAdasMsgConnectStatusListenerImpl : "找不到可用地址(当前鹰眼配置的域控地址列表中的全部地址均无法PING通【不修改默认配置的情况下需要排查PAD是否连接车载路由器、工控机是否连接车载路由器、工控机是否开机等】)" ) resetArgs() - connectToast("找不到可用的域控地址") } AdasConstants.IpcConnectionStatus.CERTIFICATION_FAILED -> { @@ -180,7 +182,6 @@ class MoGoAdasMsgConnectStatusListenerImpl : "心跳超时(表示连接域控成功后在一段时间内未收到域控任何数据,默认4秒【可以配置】),超时时间:${reason}秒" ) resetArgs() - connectToast("域控心跳超时") } AdasConstants.IpcConnectionStatus.PROTOCOL_MISMATCH -> { @@ -197,7 +198,6 @@ class MoGoAdasMsgConnectStatusListenerImpl : "域控主动断开连接(表示域控主动发起断开WebSocket连接,目前主要原因有:1.证书认证失败;2.老版本MAP不支持多连接的情况下会踢掉客户端;),域控断开发送的消息:${reason}" ) resetArgs() - connectToast("域控主动断开连接") } } CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ipcConnStatus = status @@ -216,10 +216,14 @@ class MoGoAdasMsgConnectStatusListenerImpl : when (status) { AdasConstants.IpcConnectionStatus.CONNECTED -> { isFirstException = true + isFirstDisconnected = true } AdasConstants.IpcConnectionStatus.DISCONNECTED -> { - title = "连接异常" - content = "域控未连接或主动断开连接" + if (isFirstDisconnected) { + title = "连接异常" + content = "域控未连接或主动断开连接" + isFirstDisconnected = false + } } AdasConstants.IpcConnectionStatus.CONNECT_EXCEPTION -> {