From 55085bc73d83d882b0ea05732b222076f6851478 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Thu, 16 Jun 2022 15:07:20 +0800 Subject: [PATCH] =?UTF-8?q?[change]=E4=BF=AE=E5=A4=8D=E4=B9=98=E5=AE=A2?= =?UTF-8?q?=E5=B1=8F=E5=88=86=E5=8F=91=E7=BA=BF=E7=A8=8B=E6=B2=A1=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/telematic/TeleMsgHandler.kt | 7 ++- .../zhidao/support/adas/high/AdasChannel.java | 46 +++++++++++-------- .../zhidao/support/adas/high/AdasManager.java | 14 ++++++ .../support/adas/high/IAdasNetCommApi.java | 10 ++++ 4 files changed, 58 insertions(+), 19 deletions(-) diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/telematic/TeleMsgHandler.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/telematic/TeleMsgHandler.kt index dfc51cfcd7..58109c2de8 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/telematic/TeleMsgHandler.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/telematic/TeleMsgHandler.kt @@ -122,6 +122,7 @@ class TeleMsgHandler : IMsgHandler { if (!isFirstDisc) { isFirstDisc = true } + AdasManager.getInstance().startDispatchHandler() ToastUtils.showShort("连接司机屏成功!") invokeNettyConnResult("乘客屏连接司机屏成功") val byteArray = byteArrayOf(0) @@ -138,14 +139,18 @@ class TeleMsgHandler : IMsgHandler { AppConfigInfo.iPCMacAddress = "" ToastUtils.showLong("断开和司机屏的连接!") invokeNettyConnResult("断开和司机屏的连接!") + AdasManager.getInstance().stopDispatchHandler() } } ConnectState.STATUS_CONNECT_ERROR -> { AppConfigInfo.plateNumber = "" ToastUtils.showLong("和司机端连接异常!") invokeNettyConnResult("乘客屏和司机屏连接异常,错误为:$content") + AdasManager.getInstance().stopDispatchHandler() + } + else -> { + AdasManager.getInstance().stopDispatchHandler() } - else -> {} } } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index 51851456f5..84fc8dfe2d 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -473,34 +473,44 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec adasConnectStatusListener.onConnectionIPCStatus(ipcConnectionStatus.get(), reason); } if (status == Constants.IPC_CONNECTION_STATUS.CONNECTED) { - if (dispatchHandler != null) { - dispatchHandler.start(); - } - if (dispatchHandlerPointCloud != null) { - dispatchHandlerPointCloud.start(); - } - if (dispatchHandlerParsePointCloud != null) { - dispatchHandlerParsePointCloud.start(); - } + startDispatchHandler(); startCheckCompatibility(); } else { stopCheckCompatibility(); } if (status == Constants.IPC_CONNECTION_STATUS.DISCONNECTED) { AdasManager.getInstance().setCarConfig(null); - if (dispatchHandler != null) { - dispatchHandler.stop(); - } - if (dispatchHandlerPointCloud != null) { - dispatchHandlerPointCloud.stop(); - } - if (dispatchHandlerParsePointCloud != null) { - dispatchHandlerParsePointCloud.stop(); - } + stopDispatchHandler(); } CupidLogUtils.i(TAG, "工控机连接状态 status=" + status + " reason=" + reason); } + @Override + public void startDispatchHandler() { + if (dispatchHandler != null) { + dispatchHandler.start(); + } + if (dispatchHandlerPointCloud != null) { + dispatchHandlerPointCloud.start(); + } + if (dispatchHandlerParsePointCloud != null) { + dispatchHandlerParsePointCloud.start(); + } + } + + @Override + public void stopDispatchHandler() { + if (dispatchHandler != null) { + dispatchHandler.stop(); + } + if (dispatchHandlerPointCloud != null) { + dispatchHandlerPointCloud.stop(); + } + if (dispatchHandlerParsePointCloud != null) { + dispatchHandlerParsePointCloud.stop(); + } + } + /** * 检查兼容性 */ diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java index a7352e41c5..b1bcf17274 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java @@ -200,6 +200,20 @@ public class AdasManager implements IAdasNetCommApi { } } + @Override + public void startDispatchHandler() { + if (mChannel != null) { + mChannel.startDispatchHandler(); + } + } + + @Override + public void stopDispatchHandler() { + if (mChannel != null) { + mChannel.stopDispatchHandler(); + } + } + /** * 获取工控机链接配置 * diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java index ebafd862e6..363854d6c8 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java @@ -214,6 +214,16 @@ public interface IAdasNetCommApi { */ void decoderRaw(byte[] bytes); + /** + * 启动分发线程 + */ + void startDispatchHandler(); + + /** + * 停止分发线程 + */ + void stopDispatchHandler(); + /** * Log是否开启打印 */