From 531f9bf5c963ac8066e4b1750a6c7be5e286a460 Mon Sep 17 00:00:00 2001 From: zouyiqing <854938661@qq.com> Date: Mon, 8 Jan 2024 16:02:21 +0800 Subject: [PATCH] =?UTF-8?q?win=E4=BB=A3=E7=A0=81=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/RadarStatusController.java | 74 +++++++++++-------- 1 file changed, 45 insertions(+), 29 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/RadarStatusController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/RadarStatusController.java index 9f6de3e..f551e4a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/RadarStatusController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/RadarStatusController.java @@ -18,9 +18,12 @@ import com.ruoyi.common.utils.modbus.ModbusUtils; import com.ruoyi.framework.web.domain.server.Sys; import com.ruoyi.system.service.ISysRadarService; import com.ruoyi.system.service.PrimaryRadarDataService; +import com.ruoyi.system.service.impl.IdentifierStatusServiceImpl; import com.serotonin.modbus4j.ModbusMaster; import com.serotonin.modbus4j.exception.ErrorResponseException; import com.serotonin.modbus4j.exception.ModbusTransportException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -29,10 +32,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; +import java.util.*; import java.util.concurrent.CompletableFuture; /** @@ -44,6 +44,7 @@ import java.util.concurrent.CompletableFuture; @RequestMapping("/system/radarStatus") public class RadarStatusController { + private static final Logger log = LoggerFactory.getLogger(RadarStatusController.class); @Autowired private ISysRadarService service; @@ -72,35 +73,50 @@ public class RadarStatusController // 异步连接硬件 CompletableFuture> listCompletableFuture = CompletableFuture.supplyAsync(() -> { List responses = new ArrayList<>(); - for (SysRadar radar : radarList) { - ModbusResponse modbusResponse = new ModbusResponse(); - while (true) { - ModbusMaster master = ModbusUtils.getSlave(radar.getRadarIp(), 23); - try { - modbusResponse = ModbusUtils.holdingRegister(); - System.out.println(modbusResponse); - } catch (ModbusTransportException e) { - throw new RuntimeException(e); - } catch (ErrorResponseException e) { - throw new RuntimeException(e); + + Timer timer = new Timer(); + TimerTask task = new TimerTask() { + @Override + public void run() {try { + for (SysRadar radar : radarList) { + + ModbusResponse modbusResponse = new ModbusResponse(); + ModbusMaster master = ModbusUtils.getSlave(radar.getRadarIp(), 23); + System.out.println(radar.getRadarIp()); + try { + modbusResponse = ModbusUtils.holdingRegister(); + System.out.println(modbusResponse); + } catch (ModbusTransportException e) { + throw new RuntimeException(e); + } catch (ErrorResponseException e) { + throw new RuntimeException(e); + } + } + + } catch (Exception e) { + System.err.println("从串口读取失败:" + e.getMessage()); } - } + } + }; + timer.scheduleAtFixedRate(task, 1, 40); + return responses; }); - try { - Thread.sleep(1000); // 睡眠1秒钟 - } catch (InterruptedException e) { - e.printStackTrace(); - } - listCompletableFuture.thenAccept(modbusResponses -> { - for (ModbusResponse modbusResponse : modbusResponses) { - System.out.println(modbusResponse); - PrimaryRadarData primaryRadarData = new PrimaryRadarData(); - BeanUtils.copyProperties(modbusResponse, primaryRadarData); - primaryRadarDataService.insertPrimaryRadarData(primaryRadarData); - } - }); +// try { +// Thread.sleep(1000); // 睡眠1秒钟 +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } +// listCompletableFuture.thenAccept(modbusResponses -> { +// for (ModbusResponse modbusResponse : modbusResponses) { +// System.out.println(modbusResponse); +// +// PrimaryRadarData primaryRadarData = new PrimaryRadarData(); +// BeanUtils.copyProperties(modbusResponse, primaryRadarData); +// primaryRadarDataService.insertPrimaryRadarData(primaryRadarData); +// } +// }); PageDomain pageDomain = TableSupport.buildPageRequest(); if (null == pageDomain.getPageNum() || null == pageDomain.getPageSize()) {