[Change]
修复【RoboTaxi司机端V2.8.0】【偶现】车辆下电重启后,多次重启pad,无定位数据,无感知,无地图 http://jira.zhidaohulian.com/browse/YHJSYHZNWL-1044
This commit is contained in:
@@ -203,76 +203,80 @@ public class NSDNettyManager {
|
||||
*
|
||||
* @param context
|
||||
*/
|
||||
public void searchAndConnectServer(Context context, String uuid, NettyClientListener listener) {
|
||||
// 这里暂时关闭,原因是因为BUS上无法透穿虚拟机的网络限制
|
||||
// if (mNsdClient == null) {
|
||||
// mNsdClient = new NsdClient(context, SERVER_NAME, new NsdClient.IServerFound() {
|
||||
// @Override
|
||||
// public void onServerFound(NsdServiceInfo info, int port) {
|
||||
// if (info != null) {
|
||||
// String hostAddress = info.getHost().getHostAddress();
|
||||
// Logger.d(TAG, "NSD查询到指定服务器信息ip为:" + hostAddress + ",port为:" + port);
|
||||
// //获取到指定的地址,进行Netty的连接
|
||||
// connectNettyServer(hostAddress, port, uuid, listener);
|
||||
//
|
||||
// if (info.getServiceName().startsWith(SERVER_NAME)) {
|
||||
// //扫描到以后停止
|
||||
// mNsdClient.stopServiceDiscovery();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onServerFail() {
|
||||
// Logger.d(TAG, "NSD查询失败,未找到");
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// mNsdClient.startNSDClient();
|
||||
public void searchAndConnectServer(Context context, String uuid, boolean isTaxi, NettyClientListener listener) {
|
||||
if (isTaxi) {
|
||||
// 这里暂时关闭,原因是因为BUS上无法透穿虚拟机的网络限制
|
||||
if (mNsdClient == null) {
|
||||
mNsdClient = new NsdClient(context, SERVER_NAME, new NsdClient.IServerFound() {
|
||||
@Override
|
||||
public void onServerFound(NsdServiceInfo info, int port) {
|
||||
if (info != null) {
|
||||
String hostAddress = info.getHost().getHostAddress();
|
||||
Logger.d(TAG, "NSD查询到指定服务器信息ip为:" + hostAddress + ",port为:" + port);
|
||||
//获取到指定的地址,进行Netty的连接
|
||||
connectNettyServer(hostAddress, port, uuid, listener);
|
||||
|
||||
// 启动发现司机屏幕任务
|
||||
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;
|
||||
if (info.getServiceName().startsWith(SERVER_NAME)) {
|
||||
//扫描到以后停止
|
||||
mNsdClient.stopServiceDiscovery();
|
||||
}
|
||||
}
|
||||
hostAddress = hostBean.ipAddress;
|
||||
Logger.d(TAG, "NSD查询到指定服务器信息ip为:" + hostAddress + ",port为:" + 1088);
|
||||
//获取到指定的地址,进行Netty的连接
|
||||
connectNettyServer(hostAddress, 1088, uuid, listener);
|
||||
}
|
||||
} else {
|
||||
Logger.d(TAG, "扫描完成,未找到可连接司机屏幕服务");
|
||||
|
||||
@Override
|
||||
public void onServerFail() {
|
||||
Logger.d(TAG, "NSD查询失败,未找到");
|
||||
}
|
||||
});
|
||||
}
|
||||
mNsdClient.startNSDClient();
|
||||
}
|
||||
// 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() {
|
||||
@Override
|
||||
public void onCancel() {
|
||||
|
||||
}
|
||||
});
|
||||
mDiscoveryTask.execute();
|
||||
}
|
||||
});
|
||||
mDiscoveryTask.execute();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user