detached
parent
3a69a89d34
commit
3145b28624
|
|
@ -148,15 +148,15 @@ public class RadarStatusController implements InitializingBean {
|
|||
|
||||
buildAllRadar(radarList);
|
||||
|
||||
TimerTask task = new TimerTask() {
|
||||
@Override
|
||||
public void run() {
|
||||
allRadar.forEach(socketModel -> {
|
||||
asyncReadRadar(socketModel);
|
||||
});
|
||||
}
|
||||
};
|
||||
timer.scheduleAtFixedRate(task, 1, 100);
|
||||
// TimerTask task = new TimerTask() {
|
||||
// @Override
|
||||
// public void run() {
|
||||
// allRadar.forEach(socketModel -> {
|
||||
// asyncReadRadar(socketModel);
|
||||
// });
|
||||
// }
|
||||
// };
|
||||
// timer.scheduleAtFixedRate(task, 1, 100);
|
||||
|
||||
});
|
||||
}
|
||||
|
|
@ -271,7 +271,7 @@ public class RadarStatusController implements InitializingBean {
|
|||
public static void addRadar(List<SysRadar> radarList) {
|
||||
List<Long> idList = allRadar.stream().map(SocketModel::getId).collect(Collectors.toList());
|
||||
List<SysRadar> filterList = radarList.stream().filter(item -> !idList.contains(item.getId())).collect(Collectors.toList());
|
||||
buildAllRadar(filterList);
|
||||
// buildAllRadar(filterList);
|
||||
}
|
||||
|
||||
public static void delRadar(Long id) {
|
||||
|
|
@ -279,91 +279,91 @@ public class RadarStatusController implements InitializingBean {
|
|||
}
|
||||
|
||||
|
||||
private void asyncReadRadar(SocketModel socketModel) {
|
||||
CompletableFuture.runAsync(() -> {
|
||||
try {
|
||||
List<SysDiscern> discernList = new ArrayList<>();
|
||||
// socket连接成功返回数据
|
||||
DataResponse data = SocketUtil.getData(socketModel);
|
||||
// 天线号字符串转集合
|
||||
List<String> numberList = convertStringToList(socketModel.getNumber());
|
||||
for (String number : numberList) {
|
||||
if (!pulse4Number.containsKey(number)) {
|
||||
pulse4Number.put(number, new ArrayList<>());
|
||||
}
|
||||
List<Integer> pulse4Values = pulse4Number.get(number);
|
||||
if (data.getData().get(7) == 0){
|
||||
consecutiveZeros ++;
|
||||
if (consecutiveZeros >= 10) {
|
||||
// 10个0连续,说明该天线没有数据 从pulse4Number中删除该天线
|
||||
pulse4Number.remove(number);
|
||||
// 从radarList中删除该天线
|
||||
allRadar.remove(socketModel);
|
||||
|
||||
// 数据记录结束,计算最大pulse4值
|
||||
double maxPulse4 = pulse4Values.stream().mapToDouble(Integer::doubleValue).max().orElse(0);
|
||||
System.out.println("天线 " + number + " 的最大pulse4值为: " + maxPulse4);
|
||||
// 为下一次数据记录重置
|
||||
pulse4Values.clear();
|
||||
consecutiveZeros = 0;
|
||||
}
|
||||
}else {
|
||||
count ++;
|
||||
pulse4Values.add(data.getData().get(7));
|
||||
}
|
||||
}
|
||||
|
||||
SysDiscern sysDiscern = copyDataToDiscern(data);
|
||||
|
||||
System.out.println(socketModel.getRadarIp() + ": " + data);
|
||||
// 雷达数据返回封装类赋值
|
||||
ModbusResponse modbusResponse = getModbusResponse(data);
|
||||
|
||||
|
||||
|
||||
String tag = modbusResponse.getTagId();
|
||||
// 雷达原始数据对象
|
||||
PrimaryRadarData primaryRadarData = new PrimaryRadarData();
|
||||
// 标识器对象
|
||||
SysIdentifier sysIdentifier = new SysIdentifier();
|
||||
// 拷贝封装类属性到雷达原始数据对象
|
||||
BeanUtils.copyProperties(modbusResponse, primaryRadarData);
|
||||
|
||||
//判断读取数据中是否携带标签
|
||||
if (!"0".equals(modbusResponse.getTagId())) {
|
||||
// 根据标签去数据库查询标签列表
|
||||
sysIdentifier = identifierService.selectIdentifierByTag(tag);
|
||||
//判断数据库查询结果是否有数据
|
||||
if (sysIdentifier != null) {
|
||||
// 有数据将查询到的标识器配置属性放进原始数据对象
|
||||
primaryRadarData.setLadleNumber(sysIdentifier.getLadleNumber());
|
||||
primaryRadarData.setRadarLocation(socketModel.getRadarLocation());
|
||||
primaryRadarData.setRadarIp(socketModel.getRadarIp());
|
||||
|
||||
if (modbusResponse.getValue4() != 0){
|
||||
// 给雷达识别报表赋值
|
||||
sysDiscern.setType(sysIdentifier.getType());
|
||||
sysDiscern.setRadarLocation(socketModel.getRadarLocation());
|
||||
sysDiscern.setLadleNumber(sysIdentifier.getLadleNumber());
|
||||
sysDiscern.setCreateTime(new Date());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 没有配置过将铁包号置空
|
||||
primaryRadarData.setLadleNumber(null);
|
||||
primaryRadarData.setRadarLocation(null);
|
||||
primaryRadarData.setRadarIp(socketModel.getRadarIp());
|
||||
}
|
||||
if (modbusResponse.getValue4() != null && modbusResponse.getValue4() != 0) {
|
||||
primaryRadarDataService.insertPrimaryRadarData(primaryRadarData);
|
||||
} else {
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
}
|
||||
});
|
||||
}
|
||||
// private void asyncReadRadar(SocketModel socketModel) {
|
||||
// CompletableFuture.runAsync(() -> {
|
||||
// try {
|
||||
// List<SysDiscern> discernList = new ArrayList<>();
|
||||
// // socket连接成功返回数据
|
||||
// DataResponse data = SocketUtil.getData(socketModel);
|
||||
// // 天线号字符串转集合
|
||||
// List<String> numberList = convertStringToList(socketModel.getNumber());
|
||||
// for (String number : numberList) {
|
||||
// if (!pulse4Number.containsKey(number)) {
|
||||
// pulse4Number.put(number, new ArrayList<>());
|
||||
// }
|
||||
// List<Integer> pulse4Values = pulse4Number.get(number);
|
||||
// if (data.getData().get(7) == 0){
|
||||
// consecutiveZeros ++;
|
||||
// if (consecutiveZeros >= 10) {
|
||||
// // 10个0连续,说明该天线没有数据 从pulse4Number中删除该天线
|
||||
// pulse4Number.remove(number);
|
||||
// // 从radarList中删除该天线
|
||||
// allRadar.remove(socketModel);
|
||||
//
|
||||
// // 数据记录结束,计算最大pulse4值
|
||||
// double maxPulse4 = pulse4Values.stream().mapToDouble(Integer::doubleValue).max().orElse(0);
|
||||
// System.out.println("天线 " + number + " 的最大pulse4值为: " + maxPulse4);
|
||||
// // 为下一次数据记录重置
|
||||
// pulse4Values.clear();
|
||||
// consecutiveZeros = 0;
|
||||
// }
|
||||
// }else {
|
||||
// count ++;
|
||||
// pulse4Values.add(data.getData().get(7));
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// SysDiscern sysDiscern = copyDataToDiscern(data);
|
||||
//
|
||||
// System.out.println(socketModel.getRadarIp() + ": " + data);
|
||||
// // 雷达数据返回封装类赋值
|
||||
// ModbusResponse modbusResponse = getModbusResponse(data);
|
||||
//
|
||||
//
|
||||
//
|
||||
// String tag = modbusResponse.getTagId();
|
||||
// // 雷达原始数据对象
|
||||
// PrimaryRadarData primaryRadarData = new PrimaryRadarData();
|
||||
// // 标识器对象
|
||||
// SysIdentifier sysIdentifier = new SysIdentifier();
|
||||
// // 拷贝封装类属性到雷达原始数据对象
|
||||
// BeanUtils.copyProperties(modbusResponse, primaryRadarData);
|
||||
//
|
||||
// //判断读取数据中是否携带标签
|
||||
// if (!"0".equals(modbusResponse.getTagId())) {
|
||||
// // 根据标签去数据库查询标签列表
|
||||
// sysIdentifier = identifierService.selectIdentifierByTag(tag);
|
||||
// //判断数据库查询结果是否有数据
|
||||
// if (sysIdentifier != null) {
|
||||
// // 有数据将查询到的标识器配置属性放进原始数据对象
|
||||
// primaryRadarData.setLadleNumber(sysIdentifier.getLadleNumber());
|
||||
// primaryRadarData.setRadarLocation(socketModel.getRadarLocation());
|
||||
// primaryRadarData.setRadarIp(socketModel.getRadarIp());
|
||||
//
|
||||
// if (modbusResponse.getValue4() != 0){
|
||||
// // 给雷达识别报表赋值
|
||||
// sysDiscern.setType(sysIdentifier.getType());
|
||||
// sysDiscern.setRadarLocation(socketModel.getRadarLocation());
|
||||
// sysDiscern.setLadleNumber(sysIdentifier.getLadleNumber());
|
||||
// sysDiscern.setCreateTime(new Date());
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// // 没有配置过将铁包号置空
|
||||
// primaryRadarData.setLadleNumber(null);
|
||||
// primaryRadarData.setRadarLocation(null);
|
||||
// primaryRadarData.setRadarIp(socketModel.getRadarIp());
|
||||
// }
|
||||
// if (modbusResponse.getValue4() != null && modbusResponse.getValue4() != 0) {
|
||||
// primaryRadarDataService.insertPrimaryRadarData(primaryRadarData);
|
||||
// } else {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue