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; }