win代码上传
parent
ecfd900d9e
commit
3b1afb5d73
|
|
@ -47,6 +47,8 @@
|
|||
var data = JSON.parse(event.data);
|
||||
console.log("接收到数据:" + JSON.stringify(data));
|
||||
this.tableData.forEach(item => {
|
||||
|
||||
|
||||
if (item.radarIp === data.radarIp) {
|
||||
item.status = data.status
|
||||
}
|
||||
|
|
@ -54,6 +56,7 @@
|
|||
};
|
||||
|
||||
socket.onclose = function (event) {
|
||||
|
||||
console.log("WebSocket连接已关闭");
|
||||
};
|
||||
},
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ public class DataResponse implements Serializable {
|
|||
/**
|
||||
* 雷达连接状态
|
||||
*/
|
||||
private Integer status = 0 ;
|
||||
private Integer status;
|
||||
|
||||
private List<Integer> data;
|
||||
|
||||
|
|
|
|||
|
|
@ -19,22 +19,26 @@ public class SocketUtil {
|
|||
dataResponse.setRadarIp(radarIp);
|
||||
dataResponse.setRadarLocation(radarLocation);
|
||||
try {
|
||||
boolean connected = socket.isConnected();
|
||||
if (!connected) {
|
||||
System.out.println("雷达:" + radarIp + "===" + radarLocation + ": 连接异常:{}" + connected);
|
||||
dataResponse.setStatus(0);
|
||||
dataResponse.setData(null);
|
||||
}else {
|
||||
|
||||
}
|
||||
// boolean connected = socket.isConnected();
|
||||
// if (!connected) {
|
||||
//
|
||||
// }else {
|
||||
//
|
||||
// }
|
||||
|
||||
InputStream inputStream = socket.getInputStream(); // 获取输入流
|
||||
int available = inputStream.available();
|
||||
byte[] buffer = new byte[available];
|
||||
inputStream.read(buffer, 0, available);
|
||||
if (buffer.length!= 0){
|
||||
dataResponse.setStatus(1);
|
||||
}else {
|
||||
// System.out.println("雷达:" + radarIp + "===" + radarLocation + ": 连接异常:{}" );
|
||||
dataResponse.setStatus(0);
|
||||
dataResponse.setData(null);
|
||||
}
|
||||
String hex = new BigInteger(1, buffer).toString(16);
|
||||
|
||||
RadarStatusWebSocket.sendToAll(JSON.toJSONString(dataResponse));
|
||||
if (!"0".equals(hex)) {
|
||||
hex = "0" + hex;
|
||||
List<Integer> decimal = new ArrayList<>();
|
||||
|
|
@ -43,8 +47,10 @@ public class SocketUtil {
|
|||
int s = BitUtils.covert(string);
|
||||
decimal.add(s);
|
||||
}
|
||||
dataResponse.setStatus(1);
|
||||
|
||||
dataResponse.setData(decimal);
|
||||
|
||||
RadarStatusWebSocket.sendToAll(JSON.toJSONString(dataResponse));
|
||||
return dataResponse;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,9 +33,9 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
|
|||
|
||||
public static CopyOnWriteArrayList<String> allRadar = new CopyOnWriteArrayList<>();
|
||||
|
||||
public static Integer count = 0 ;
|
||||
|
||||
private Integer consecutiveZeros = 0;
|
||||
// public static Integer count = 0 ;
|
||||
//
|
||||
// private Integer consecutiveZeros = 0;
|
||||
|
||||
|
||||
private Map<Long,String> radarDelMap = new HashMap<>();
|
||||
|
|
@ -57,12 +57,15 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
|
|||
radarDelMap.put(radar.getId(), "0");
|
||||
|
||||
CompletableFuture.runAsync(() -> {
|
||||
while (StringUtils.equals("0",radarDelMap.get(radar.getId()))) {
|
||||
long start = System.currentTimeMillis();
|
||||
task(radar, socket);
|
||||
|
||||
System.out.println("耗时时间: " + (System.currentTimeMillis() - start));
|
||||
// System.out.println("雷达ip : =====" + radar.getRadarIp());
|
||||
while (StringUtils.equals("0",radarDelMap.get(radar.getId()))) {
|
||||
|
||||
task(radar, socket);
|
||||
try {
|
||||
Thread.sleep(3000);
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
|
|
@ -73,42 +76,21 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
|
|||
}
|
||||
|
||||
private void task(SysRadar radar, Socket socket) {
|
||||
try {
|
||||
int count = 0;
|
||||
int consecutiveZeros = 0;
|
||||
CompletableFuture.runAsync(() ->{
|
||||
|
||||
Map<String, List<Integer>> pulse4Number = new HashMap<>();
|
||||
int count = 0;
|
||||
int consecutiveZeros = 0;
|
||||
// socket连接成功返回数据
|
||||
DataResponse data = SocketUtil.getData(socket, radar.getRadarLocation(), radar.getRadarIp());
|
||||
// 天线号字符串转集合
|
||||
List<String> numberList = convertStringToList(radar.getRadarNum());
|
||||
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);
|
||||
// 数据记录结束,计算最大pulse4值
|
||||
double maxPulse4 = pulse4Values.stream().mapToDouble(Integer::doubleValue).max().orElse(0);
|
||||
System.out.println("天线 " + number + " 的最大pulse4值为: " + maxPulse4);
|
||||
// 为下一次数据记录重置
|
||||
pulse4Values.clear();
|
||||
consecutiveZeros = 0;
|
||||
}
|
||||
} else {
|
||||
count++;
|
||||
System.out.println("天线:=== " + number + "雷达============" + radar.getRadarIp() + " 峰值为: " + data.getData().get(7) + "次数: ===" + count);
|
||||
pulse4Values.add(data.getData().get(7));
|
||||
}
|
||||
}
|
||||
SysDiscern sysDiscern = copyDataToDiscern(data);
|
||||
System.out.println(radar.getRadarIp() + ": " + data);
|
||||
// 雷达数据返回封装类赋值
|
||||
ModbusResponse modbusResponse = getModbusResponse(data);
|
||||
});
|
||||
Map<String, List<Integer>> pulse4Number = new HashMap<>();
|
||||
try {
|
||||
// socket连接成功返回数据
|
||||
DataResponse data = SocketUtil.getData(socket, radar.getRadarLocation(), radar.getRadarIp());
|
||||
// 天线号字符串转集合
|
||||
List<String> numberList = convertStringToList(radar.getRadarNum());
|
||||
SysDiscern sysDiscern = copyDataToDiscern(data);
|
||||
System.out.println(radar.getRadarIp() + ": " + data);
|
||||
// 雷达数据返回封装类赋值
|
||||
ModbusResponse modbusResponse = getModbusResponse(data);
|
||||
String tag = modbusResponse.getTagId();
|
||||
// 雷达原始数据对象
|
||||
PrimaryRadarData primaryRadarData = new PrimaryRadarData();
|
||||
|
|
@ -117,15 +99,17 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
|
|||
// 拷贝封装类属性到雷达原始数据对象
|
||||
BeanUtils.copyProperties(modbusResponse, primaryRadarData);
|
||||
|
||||
primaryRadarData.setRadarLocation(radar.getRadarLocation());
|
||||
//判断读取数据中是否携带标签
|
||||
if (!"0".equals(modbusResponse.getTagId())) {
|
||||
|
||||
|
||||
// 根据标签去数据库查询标签列表
|
||||
sysIdentifier = identifierService.selectIdentifierByTag(tag);
|
||||
//判断数据库查询结果是否有数据
|
||||
if (sysIdentifier != null) {
|
||||
// 有数据将查询到的标识器配置属性放进原始数据对象
|
||||
primaryRadarData.setLadleNumber(sysIdentifier.getLadleNumber());
|
||||
primaryRadarData.setRadarLocation(radar.getRadarLocation());
|
||||
primaryRadarData.setRadarIp(radar.getRadarIp());
|
||||
if (modbusResponse.getValue4() != 0) {
|
||||
// 给雷达识别报表赋值
|
||||
|
|
@ -138,14 +122,11 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
|
|||
} else {
|
||||
// 没有配置过将铁包号置空
|
||||
primaryRadarData.setLadleNumber(null);
|
||||
primaryRadarData.setRadarLocation(null);
|
||||
primaryRadarData.setRadarIp(radar.getRadarIp());
|
||||
}
|
||||
if (modbusResponse.getValue4() != null && modbusResponse.getValue4() != 0) {
|
||||
CompletableFuture.runAsync(() -> {
|
||||
primaryRadarDataService.insertPrimaryRadarData(primaryRadarData);
|
||||
// primaryRadarDataService.insertPrimaryRadarData(primaryRadarData);
|
||||
});
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,9 +53,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
value3,
|
||||
value4,
|
||||
value5,
|
||||
<if test="baseLine != null and baseLine != ''">base_line,</if>
|
||||
<if test="queryFre != null ">query_fre,</if>
|
||||
<if test="number != null and number != ''">number,</if>
|
||||
base_line,
|
||||
query_fre,
|
||||
number,
|
||||
<if test="radarLocation != null and radarLocation != ''">radar_location,</if>
|
||||
<if test="ladleNumber != null and ladleNumber != ''">ladle_number,</if>
|
||||
<if test="radarIp != null and radarIp != ''">radar_ip,</if>
|
||||
|
|
@ -71,9 +71,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
#{value3},
|
||||
#{value4},
|
||||
#{value5},
|
||||
<if test="baseLine != null and baseLine != ''">#{baseLine},</if>
|
||||
<if test="queryFre != null">#{queryFre},</if>
|
||||
<if test="number != null and number != ''">#{number},</if>
|
||||
#{baseLine},
|
||||
#{queryFre},
|
||||
#{number},
|
||||
<if test="radarLocation != null and radarLocation != ''">#{radarLocation},</if>
|
||||
<if test="ladleNumber != null and ladleNumber != ''">#{ladleNumber},</if>
|
||||
<if test="radarIp != null and radarIp != ''">#{radarIp},</if>
|
||||
|
|
|
|||
Loading…
Reference in New Issue