win代码上传

detached
zouyiqing 2024-01-29 19:42:05 +08:00
parent ecfd900d9e
commit 3b1afb5d73
5 changed files with 55 additions and 65 deletions

View File

@ -47,6 +47,8 @@
var data = JSON.parse(event.data); var data = JSON.parse(event.data);
console.log("接收到数据:" + JSON.stringify(data)); console.log("接收到数据:" + JSON.stringify(data));
this.tableData.forEach(item => { this.tableData.forEach(item => {
if (item.radarIp === data.radarIp) { if (item.radarIp === data.radarIp) {
item.status = data.status item.status = data.status
} }
@ -54,6 +56,7 @@
}; };
socket.onclose = function (event) { socket.onclose = function (event) {
console.log("WebSocket连接已关闭"); console.log("WebSocket连接已关闭");
}; };
}, },

View File

@ -22,7 +22,7 @@ public class DataResponse implements Serializable {
/** /**
* *
*/ */
private Integer status = 0 ; private Integer status;
private List<Integer> data; private List<Integer> data;

View File

@ -19,22 +19,26 @@ public class SocketUtil {
dataResponse.setRadarIp(radarIp); dataResponse.setRadarIp(radarIp);
dataResponse.setRadarLocation(radarLocation); dataResponse.setRadarLocation(radarLocation);
try { try {
boolean connected = socket.isConnected(); // boolean connected = socket.isConnected();
if (!connected) { // if (!connected) {
System.out.println("雷达:" + radarIp + "===" + radarLocation + ": 连接异常:{}" + connected); //
dataResponse.setStatus(0); // }else {
dataResponse.setData(null); //
}else { // }
}
InputStream inputStream = socket.getInputStream(); // 获取输入流 InputStream inputStream = socket.getInputStream(); // 获取输入流
int available = inputStream.available(); int available = inputStream.available();
byte[] buffer = new byte[available]; byte[] buffer = new byte[available];
inputStream.read(buffer, 0, 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); String hex = new BigInteger(1, buffer).toString(16);
RadarStatusWebSocket.sendToAll(JSON.toJSONString(dataResponse));
if (!"0".equals(hex)) { if (!"0".equals(hex)) {
hex = "0" + hex; hex = "0" + hex;
List<Integer> decimal = new ArrayList<>(); List<Integer> decimal = new ArrayList<>();
@ -43,8 +47,10 @@ public class SocketUtil {
int s = BitUtils.covert(string); int s = BitUtils.covert(string);
decimal.add(s); decimal.add(s);
} }
dataResponse.setStatus(1);
dataResponse.setData(decimal); dataResponse.setData(decimal);
RadarStatusWebSocket.sendToAll(JSON.toJSONString(dataResponse));
return dataResponse; return dataResponse;
} }

View File

@ -33,9 +33,9 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
public static CopyOnWriteArrayList<String> allRadar = new CopyOnWriteArrayList<>(); public static CopyOnWriteArrayList<String> allRadar = new CopyOnWriteArrayList<>();
public static Integer count = 0 ; // public static Integer count = 0 ;
//
private Integer consecutiveZeros = 0; // private Integer consecutiveZeros = 0;
private Map<Long,String> radarDelMap = new HashMap<>(); private Map<Long,String> radarDelMap = new HashMap<>();
@ -57,12 +57,15 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
radarDelMap.put(radar.getId(), "0"); radarDelMap.put(radar.getId(), "0");
CompletableFuture.runAsync(() -> { CompletableFuture.runAsync(() -> {
while (StringUtils.equals("0",radarDelMap.get(radar.getId()))) {
long start = System.currentTimeMillis();
task(radar, socket);
System.out.println("耗时时间: " + (System.currentTimeMillis() - start)); while (StringUtils.equals("0",radarDelMap.get(radar.getId()))) {
// System.out.println("雷达ip =====" + radar.getRadarIp());
task(radar, socket);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
} }
}); });
} catch (Exception e) { } catch (Exception e) {
@ -73,42 +76,21 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
} }
private void task(SysRadar radar, Socket socket) { 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; Map<String, List<Integer>> pulse4Number = new HashMap<>();
int consecutiveZeros = 0; try {
// socket连接成功返回数据 // socket连接成功返回数据
DataResponse data = SocketUtil.getData(socket, radar.getRadarLocation(), radar.getRadarIp()); DataResponse data = SocketUtil.getData(socket, radar.getRadarLocation(), radar.getRadarIp());
// 天线号字符串转集合 // 天线号字符串转集合
List<String> numberList = convertStringToList(radar.getRadarNum()); List<String> numberList = convertStringToList(radar.getRadarNum());
for (String number : numberList) { SysDiscern sysDiscern = copyDataToDiscern(data);
if (!pulse4Number.containsKey(number)) { System.out.println(radar.getRadarIp() + ": " + data);
pulse4Number.put(number, new ArrayList<>()); // 雷达数据返回封装类赋值
} ModbusResponse modbusResponse = getModbusResponse(data);
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);
String tag = modbusResponse.getTagId(); String tag = modbusResponse.getTagId();
// 雷达原始数据对象 // 雷达原始数据对象
PrimaryRadarData primaryRadarData = new PrimaryRadarData(); PrimaryRadarData primaryRadarData = new PrimaryRadarData();
@ -117,15 +99,17 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
// 拷贝封装类属性到雷达原始数据对象 // 拷贝封装类属性到雷达原始数据对象
BeanUtils.copyProperties(modbusResponse, primaryRadarData); BeanUtils.copyProperties(modbusResponse, primaryRadarData);
primaryRadarData.setRadarLocation(radar.getRadarLocation());
//判断读取数据中是否携带标签 //判断读取数据中是否携带标签
if (!"0".equals(modbusResponse.getTagId())) { if (!"0".equals(modbusResponse.getTagId())) {
// 根据标签去数据库查询标签列表 // 根据标签去数据库查询标签列表
sysIdentifier = identifierService.selectIdentifierByTag(tag); sysIdentifier = identifierService.selectIdentifierByTag(tag);
//判断数据库查询结果是否有数据 //判断数据库查询结果是否有数据
if (sysIdentifier != null) { if (sysIdentifier != null) {
// 有数据将查询到的标识器配置属性放进原始数据对象 // 有数据将查询到的标识器配置属性放进原始数据对象
primaryRadarData.setLadleNumber(sysIdentifier.getLadleNumber()); primaryRadarData.setLadleNumber(sysIdentifier.getLadleNumber());
primaryRadarData.setRadarLocation(radar.getRadarLocation());
primaryRadarData.setRadarIp(radar.getRadarIp()); primaryRadarData.setRadarIp(radar.getRadarIp());
if (modbusResponse.getValue4() != 0) { if (modbusResponse.getValue4() != 0) {
// 给雷达识别报表赋值 // 给雷达识别报表赋值
@ -138,14 +122,11 @@ public class RadarRealTimeDataServiceImpl implements RadarRealTimeDataService, I
} else { } else {
// 没有配置过将铁包号置空 // 没有配置过将铁包号置空
primaryRadarData.setLadleNumber(null); primaryRadarData.setLadleNumber(null);
primaryRadarData.setRadarLocation(null);
primaryRadarData.setRadarIp(radar.getRadarIp()); primaryRadarData.setRadarIp(radar.getRadarIp());
} }
if (modbusResponse.getValue4() != null && modbusResponse.getValue4() != 0) {
CompletableFuture.runAsync(() -> { CompletableFuture.runAsync(() -> {
primaryRadarDataService.insertPrimaryRadarData(primaryRadarData); // primaryRadarDataService.insertPrimaryRadarData(primaryRadarData);
}); });
}
} catch (Exception e) { } catch (Exception e) {
} }
} }

View File

@ -53,9 +53,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
value3, value3,
value4, value4,
value5, value5,
<if test="baseLine != null and baseLine != ''">base_line,</if> base_line,
<if test="queryFre != null ">query_fre,</if> query_fre,
<if test="number != null and number != ''">number,</if> number,
<if test="radarLocation != null and radarLocation != ''">radar_location,</if> <if test="radarLocation != null and radarLocation != ''">radar_location,</if>
<if test="ladleNumber != null and ladleNumber != ''">ladle_number,</if> <if test="ladleNumber != null and ladleNumber != ''">ladle_number,</if>
<if test="radarIp != null and radarIp != ''">radar_ip,</if> <if test="radarIp != null and radarIp != ''">radar_ip,</if>
@ -71,9 +71,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{value3}, #{value3},
#{value4}, #{value4},
#{value5}, #{value5},
<if test="baseLine != null and baseLine != ''">#{baseLine},</if> #{baseLine},
<if test="queryFre != null">#{queryFre},</if> #{queryFre},
<if test="number != null and number != ''">#{number},</if> #{number},
<if test="radarLocation != null and radarLocation != ''">#{radarLocation},</if> <if test="radarLocation != null and radarLocation != ''">#{radarLocation},</if>
<if test="ladleNumber != null and ladleNumber != ''">#{ladleNumber},</if> <if test="ladleNumber != null and ladleNumber != ''">#{ladleNumber},</if>
<if test="radarIp != null and radarIp != ''">#{radarIp},</if> <if test="radarIp != null and radarIp != ''">#{radarIp},</if>