From ba720c405bf35f2dc06977e051c31493290fcdf7 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Thu, 3 Mar 2022 16:28:58 +0800 Subject: [PATCH] =?UTF-8?q?[fixed]=E4=BF=AE=E5=A4=8D=E6=AD=A3=E5=9C=A8?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E6=97=B6=E6=96=AD=E5=BC=80=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E4=BF=AE=E5=A4=8D=E4=B8=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E7=9C=8B=E8=BF=9E=E6=8E=A5=E6=97=B6=E5=9B=BA=E5=AE=9A?= =?UTF-8?q?IP=E8=BD=AE=E5=BA=8F=E6=9C=AA=E5=81=9C=E6=AD=A2=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhidao/support/adas/high/AdasChannel.java | 15 +++++--- .../adas/high/common/IPCFixationIPHelper.java | 15 ++++++++ .../support/adas/high/socket/FpgaSocket.java | 34 ++++++++----------- 3 files changed, 41 insertions(+), 23 deletions(-) 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 37d697f6e4..44b5f7d289 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 @@ -125,6 +125,14 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec } } + @Override + public void onStopFindIP() { + if (adasConnectStatusListener != null) { + ipcConnectionStatus = Constants.IPC_CONNECTION_STATUS.DISCONNECTED; + adasConnectStatusListener.onConnectionIPCStatus(ipcConnectionStatus, null); + } + } + /** * 可连通的IP * @@ -435,11 +443,10 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec */ @Override public void disconnect() { + if (ipcFixationIPHelper!=null){ + ipcFixationIPHelper.stop(); + } if (!adasOptions.isClient()) { -// ipcConnectionStatus = Constants.IPC_CONNECTION_STATUS.DISCONNECTED; -// if (adasConnectStatusListener != null) { -// adasConnectStatusListener.onConnectionIPCStatus(ipcConnectionStatus, null); -// } if (udpConstract != null) udpConstract.release(); if (mSocket != null) diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/IPCFixationIPHelper.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/IPCFixationIPHelper.java index 4d9668e08a..0f99709540 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/IPCFixationIPHelper.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/IPCFixationIPHelper.java @@ -35,6 +35,11 @@ public class IPCFixationIPHelper { */ void onStartFindIP(); + /** + * 主动停止 + */ + void onStopFindIP(); + /** * 轮询结果可连通的IP * @@ -54,6 +59,16 @@ public class IPCFixationIPHelper { } } + public void stop() { + if (retryTimer != null) { + retryTimer.cancel(); + retryTimer = null; + } + isCallListener = true; + interrupted(); + listener.onStopFindIP(); + } + /** * 开始根据固定IP列表惊醒PING 方式查找可用工控机 */ diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/socket/FpgaSocket.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/socket/FpgaSocket.java index b7925148d9..eba814ffca 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/socket/FpgaSocket.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/socket/FpgaSocket.java @@ -100,7 +100,7 @@ public class FpgaSocket implements IWebSocket { request = new Request.Builder() .url(wsHost) .build(); - client.newWebSocket(request, listener); + mWebSocket = client.newWebSocket(request, listener); } } @@ -257,30 +257,14 @@ public class FpgaSocket implements IWebSocket { public void onClosing(@NonNull WebSocket webSocket, int code, @NonNull String reason) { super.onClosing(webSocket, code, reason); CupidLogUtils.e(TAG, "WebSocket onClosing= " + reason); - if (mWebSocket != null) { - mWebSocket.close(1000, null); - mWebSocket.cancel(); - mWebSocket = null; - } else { - if (mWebSocketConnectListener != null) - mWebSocketConnectListener.onWebSocketConnectFailed(reason); - reconnect(); - } + onClose(reason); } @Override public void onClosed(@NonNull WebSocket webSocket, int code, @NonNull String reason) { super.onClosed(webSocket, code, reason); CupidLogUtils.e(TAG, "WebSocket onClosed= " + reason); - if (mWebSocket != null) { - mWebSocket.close(1000, null); - mWebSocket.cancel(); - mWebSocket = null; - } else { - if (mWebSocketConnectListener != null) - mWebSocketConnectListener.onWebSocketConnectFailed(reason); - reconnect(); - } + onClose(reason); } @Override @@ -299,6 +283,18 @@ public class FpgaSocket implements IWebSocket { } } + private void onClose(String reason) { + if (mWebSocket != null) { + mWebSocket.close(1000, null); + mWebSocket.cancel(); + mWebSocket = null; + } else { + if (mWebSocketConnectListener != null) + mWebSocketConnectListener.onWebSocketConnectFailed(reason); + reconnect(); + } + } + public WebSocket getWebSocket() { return mWebSocket; }