[change]封装连接状态方法

This commit is contained in:
xinfengkun
2022-05-09 18:33:09 +08:00
parent 2ae168b0d7
commit f4bb0af9e3

View File

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