Browse Source

20241223

java8
qiezi 1 year ago
parent
commit
635694c27d
  1. 19
      src/main/java/com/xujie/sys/modules/reader/service/impl/ModbusCommunicateServiceImpl.java

19
src/main/java/com/xujie/sys/modules/reader/service/impl/ModbusCommunicateServiceImpl.java

@ -134,7 +134,21 @@ public class ModbusCommunicateServiceImpl implements ModbusCommunicateService {
log.info("没有维护RS232/RS485的设备信息"); log.info("没有维护RS232/RS485的设备信息");
return; return;
} }
// 创建线程池
ExecutorService executor = Executors.newFixedThreadPool(list.size());
for (EquipmentFolderLocation device : list) { for (EquipmentFolderLocation device : list) {
executor.submit(()->{
try {
getDateByTransparentFlag(device);
}catch (Exception e){
log.info("获取数据失败:{}", e.getMessage());
}
});
}
}
private void getDateByTransparentFlag(EquipmentFolderLocation device) {
String IP = device.getIp();//IP String IP = device.getIp();//IP
int PORT = device.getPort();//端口 int PORT = device.getPort();//端口
int unitId = device.getUnitId();// 从站ID int unitId = device.getUnitId();// 从站ID
@ -150,11 +164,11 @@ public class ModbusCommunicateServiceImpl implements ModbusCommunicateService {
List<Integer> values = CollectUtil.getValues(IP, PORT, unitId, ref-1, count); List<Integer> values = CollectUtil.getValues(IP, PORT, unitId, ref-1, count);
if (values.size() != 2 && "float".equals(type)){ if (values.size() != 2 && "float".equals(type)){
log.info("获取数据失败"); log.info("获取数据失败");
continue;
return;
} }
float num = registersToFloat(values.get(0), values.get(1)); float num = registersToFloat(values.get(0), values.get(1));
if ((num == 0 || num == 0.0) && (Objects.isNull(sort.getValue()) || "0".equalsIgnoreCase(sort.getValue()) || "0.0".equalsIgnoreCase(sort.getValue()))){ if ((num == 0 || num == 0.0) && (Objects.isNull(sort.getValue()) || "0".equalsIgnoreCase(sort.getValue()) || "0.0".equalsIgnoreCase(sort.getValue()))){
continue;
return;
} }
Date createDate = new Date(); Date createDate = new Date();
EquipmentDataDetail detail = new EquipmentDataDetail(); EquipmentDataDetail detail = new EquipmentDataDetail();
@ -175,7 +189,6 @@ public class ModbusCommunicateServiceImpl implements ModbusCommunicateService {
.eq(EquipmentFolderSortEntity::getId, sort.getId()) .eq(EquipmentFolderSortEntity::getId, sort.getId())
.update(); .update();
} }
}
public static float registersToFloat(int highRegister, int lowRegister) { public static float registersToFloat(int highRegister, int lowRegister) {

Loading…
Cancel
Save