增加小巴车8网段的兼容
This commit is contained in:
donghongyu
2022-07-27 12:48:11 +08:00
parent 1c5bc09645
commit 64388cd6aa
2 changed files with 70 additions and 55 deletions

View File

@@ -36,26 +36,26 @@ PASSWORD=xintai2018
RELEASE=true
# AI CLOUD 云平台
# 工具类
MOGO_UTILS_VERSION=1.4.3.7
MOGO_UTILS_VERSION=1.4.3.8
# 网络请求
MOGO_NETWORK_VERSION=1.4.3.7
MOGO_NETWORK_VERSION=1.4.3.8
# 网络DNS
MOGO_HTTPDNS_VERSION=1.4.3.7
MOGO_HTTPDNS_VERSION=1.4.3.8
# 鉴权
MOGO_PASSPORT_VERSION=1.4.3.7
MOGO_PASSPORT_VERSION=1.4.3.8
# 常链接
MOGO_SOCKET_VERSION=1.4.3.7
MOGO_SOCKET_VERSION=1.4.3.8
# 数据采集
MOGO_REALTIME_VERSION=1.4.3.7
MOGO_REALTIME_VERSION=1.4.3.8
# 探路,道路事件发布,获取
MOGO_TANLU_VERSION=1.4.3.7
MOGO_TANLU_VERSION=1.4.3.8
# 直播推流
MOGO_LIVE_VERSION=1.4.3.7
MOGO_LIVE_VERSION=1.4.3.8
# 直播拉流
MOGO_TRAFFICLIVE_VERSION=1.4.3.7
MOGO_TRAFFICLIVE_VERSION=1.4.3.8
# 定位服务
MOGO_LOCATION_VERSION=1.4.3.7
MOGO_LOCATION_VERSION=1.4.3.8
# 远程通讯模块
MOGO_TELEMATIC_VERSION=1.4.3.7
MOGO_TELEMATIC_VERSION=1.4.3.8
# v2x
MOGO_V2X_VERSION=1.4.3.7
MOGO_V2X_VERSION=1.4.3.8

View File

@@ -41,6 +41,10 @@ public class NSDNettyManager {
private long network_ip = 0;
private long network_start = 0;
private long network_end = 0;
private String currentIp1 = "192.168.1.0";
private String currentIp8 = "192.168.8.0";
private String currentIp = currentIp1;
private NSDNettyManager() {
}
@@ -233,53 +237,64 @@ public class NSDNettyManager {
}
// BUS 由于采用的虚拟机,不在同一个局域网内,所以无法使用上面的方案
else {
// 启动发现司机屏幕任务
mDiscoveryTask = new DiscoveryDriverTask();
network_ip = NetInfo.getUnsignedLongFromIp("192.168.1.0");
int cidr = 24;
// Detected IP
int shift = (32 - cidr);
if (cidr < 31) {
network_start = (network_ip >> shift << shift) + 1;
network_end = (network_start | ((1 << shift) - 1)) - 1;
} else {
network_start = (network_ip >> shift << shift);
network_end = (network_start | ((1 << shift) - 1));
}
mDiscoveryTask.setNetwork(network_ip, network_start, network_end);
mDiscoveryTask.addDiscoveryDriverListener(new DiscoveryDriverListener() {
@Override
public void onSuccess(ArrayList<HostBean> hostList) {
// 这里返回数据代表了有司机端正在运行,这里遍历集合数据进行连接
if (hostList != null && hostList.size() > 0) {
String hostAddress = "";
for (HostBean hostBean : hostList) {
if (mNettyTcpClient != null && (mNettyTcpClient.isConnecting() || mNettyTcpClient.getConnectStatus())) {
Logger.d(TAG, "当前乘客屏幕已经连接到了ip" + hostAddress + ",port为" + 1088);
return;
}
hostAddress = hostBean.ipAddress;
Logger.d(TAG, "NSD查询到指定服务器信息ip为" + hostAddress + ",port为" + 1088);
//获取到指定的地址进行Netty的连接
connectNettyServer(hostAddress, 1088, uuid, listener);
}
} else {
Logger.d(TAG, "扫描完成,未找到可连接司机屏幕服务");
}
}
@Override
public void onCancel() {
}
});
mDiscoveryTask.execute();
scanDriverServer(uuid, listener);
}
}
private void scanDriverServer(String uuid, NettyClientListener listener) {
// 启动发现司机屏幕任务
mDiscoveryTask = new DiscoveryDriverTask();
network_ip = NetInfo.getUnsignedLongFromIp(currentIp);
int cidr = 24;
// Detected IP
int shift = (32 - cidr);
if (cidr < 31) {
network_start = (network_ip >> shift << shift) + 1;
network_end = (network_start | ((1 << shift) - 1)) - 1;
} else {
network_start = (network_ip >> shift << shift);
network_end = (network_start | ((1 << shift) - 1));
}
mDiscoveryTask.setNetwork(network_ip, network_start, network_end);
mDiscoveryTask.addDiscoveryDriverListener(new DiscoveryDriverListener() {
@Override
public void onSuccess(ArrayList<HostBean> hostList) {
// 这里返回数据代表了有司机端正在运行,这里遍历集合数据进行连接
if (hostList != null && hostList.size() > 0) {
String hostAddress = "";
for (HostBean hostBean : hostList) {
if (mNettyTcpClient != null && (mNettyTcpClient.isConnecting() || mNettyTcpClient.getConnectStatus())) {
Logger.d(TAG, "当前乘客屏幕已经连接到了ip" + hostAddress + ",port为" + 1088);
return;
}
hostAddress = hostBean.ipAddress;
Logger.d(TAG, "NSD查询到指定服务器信息ip为" + hostAddress + ",port为" + 1088);
//获取到指定的地址进行Netty的连接
connectNettyServer(hostAddress, 1088, uuid, listener);
}
} else {
Logger.d(TAG, "扫描完成,未找到可连接司机屏幕服务");
// 这里做1、8网段的切换扫描
if (currentIp.equals(currentIp1)) {
currentIp = currentIp8;
} else {
currentIp = currentIp1;
}
scanDriverServer(uuid, listener);
}
}
@Override
public void onCancel() {
}
});
mDiscoveryTask.execute();
}
private void connectNettyServer(String serverAddress, int port, String sign, NettyClientListener listener) {
Logger.d(TAG, "connectNettyServer");
if (serverAddress == null || serverAddress.length() == 0) {