From f4bb0af9e330945fa937a8537f04602c290c4b56 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Mon, 9 May 2022 18:33:09 +0800 Subject: [PATCH] =?UTF-8?q?[change]=E5=B0=81=E8=A3=85=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhidao/support/adas/high/AdasChannel.java | 47 +++++++++---------- 1 file changed, 22 insertions(+), 25 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 d1072081d7..df4a5b7033 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 @@ -9,12 +9,14 @@ import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_LINK_LOG_CONNEC import android.text.TextUtils; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.google.gson.Gson; import com.google.protobuf.InvalidProtocolBufferException; import com.zhidao.support.adas.high.bean.BaseInfo; import com.zhidao.support.adas.high.common.Constants; import com.zhidao.support.adas.high.common.CupidLogUtils; +import com.zhidao.support.adas.high.common.Define; import com.zhidao.support.adas.high.common.DigitalTrans; import com.zhidao.support.adas.high.common.IPCFixationIPHelper; import com.zhidao.support.adas.high.common.MessageType; @@ -104,18 +106,12 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec @Override public void onStartFindIP() { - if (adasConnectStatusListener != null) { - ipcConnectionStatus.set(Constants.IPC_CONNECTION_STATUS.SEARCH_ADDRESS); - adasConnectStatusListener.onConnectionIPCStatus(ipcConnectionStatus.get(), "正在搜索IP"); - } + updateConnectStatus(Constants.IPC_CONNECTION_STATUS.SEARCH_ADDRESS, "正在搜索IP"); } @Override public void onStopFindIP() { - if (adasConnectStatusListener != null) { - ipcConnectionStatus.set(Constants.IPC_CONNECTION_STATUS.DISCONNECTED); - adasConnectStatusListener.onConnectionIPCStatus(ipcConnectionStatus.get(), "停止搜索IP"); - } + updateConnectStatus(Constants.IPC_CONNECTION_STATUS.DISCONNECTED, "停止搜索IP"); } /** @@ -346,36 +342,26 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec @Override public void onConnecting(String msg) { - ipcConnectionStatus.set(Constants.IPC_CONNECTION_STATUS.CONNECTING); - if (adasConnectStatusListener != null) { - adasConnectStatusListener.onConnectionIPCStatus(ipcConnectionStatus.get(), msg); - } + updateConnectStatus(Constants.IPC_CONNECTION_STATUS.CONNECTING, msg); } @Override public void onWebSocketConnectSuccess(String ipAddress, int port) { - ipcConnectionStatus.set(Constants.IPC_CONNECTION_STATUS.CONNECTED); ipcConnectedIp = ipAddress; ipcConnectedPort = port; - if (adasConnectStatusListener != null) { - adasConnectStatusListener.onConnectionIPCStatus(ipcConnectionStatus.get(), "已连接"); - } + updateConnectStatus(Constants.IPC_CONNECTION_STATUS.CONNECTED, "已连接"); sendCarConfigReq(); } @Override public void onWebSocketConnectFailed(String t) { - ipcConnectionStatus.set(Constants.IPC_CONNECTION_STATUS.DISCONNECTED); ipcConnectedIp = null; ipcConnectedPort = Constants.DEFAULT_PORT; - if (adasConnectStatusListener != null) { - adasConnectStatusListener.onConnectionIPCStatus(ipcConnectionStatus.get(), t); - } + updateConnectStatus(Constants.IPC_CONNECTION_STATUS.DISCONNECTED, t); } @Override public void onMessage(String message) { - handlerWSMsg(message); } @Override @@ -384,10 +370,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec } private void notFoundAddress() { - ipcConnectionStatus.set(Constants.IPC_CONNECTION_STATUS.NOT_FOUND_ADDRESS); - if (adasConnectStatusListener != null) { - adasConnectStatusListener.onConnectionIPCStatus(ipcConnectionStatus.get(), "地址不可用或不合法"); - } + updateConnectStatus(Constants.IPC_CONNECTION_STATUS.NOT_FOUND_ADDRESS, "地址不可用或不合法"); } /** @@ -438,6 +421,20 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec //连接状态listener private final OnAdasConnectStatusListener adasConnectStatusListener; + /** + * 更新连接状态 + * + * @param status 状态 + * @param reason 状态描述 + * 如果ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.DISCONNECTED && reason==null 表示主动断开连接 + */ + private void updateConnectStatus(@Define.IPCConnectionStatus int status, @Nullable String reason) { + ipcConnectionStatus.set(status); + if (adasConnectStatusListener != null) { + adasConnectStatusListener.onConnectionIPCStatus(ipcConnectionStatus.get(), reason); + } + } + void setOnAdasListener(OnAdasListener adasListener) { mAdasListener = adasListener; }