From 178c71496d5508dae69110f4d988cf128723d740 Mon Sep 17 00:00:00 2001 From: CZT <czt18638530771@163.com> Date: 星期三, 30 八月 2023 14:58:41 +0800 Subject: [PATCH] 配置Modbus协议:增加能耗信息 --- igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteControlServiceImpl.java | 35 ++++++++++++++++++++++++++++++----- 1 files changed, 30 insertions(+), 5 deletions(-) diff --git a/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteControlServiceImpl.java b/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteControlServiceImpl.java index 2fe10f4..5da1698 100644 --- a/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteControlServiceImpl.java +++ b/igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteControlServiceImpl.java @@ -1,6 +1,7 @@ package com.ld.igds.protocol.modbus.command; import com.ld.igds.common.CoreDeviceService; +import com.ld.igds.common.CoreSerService; import com.ld.igds.constant.Constant; import com.ld.igds.constant.DeviceStatus; import com.ld.igds.io.RemoteControlService; @@ -14,6 +15,7 @@ import com.ld.igds.modbus.service.HModbusService; import com.ld.igds.models.Device; import com.ld.igds.models.DeviceModbus; +import com.ld.igds.models.DeviceSer; import com.ld.igds.protocol.modbus.ModbusUtil2; import com.ld.igds.protocol.modbus.ServerUtil; import com.ld.igds.protocol.modbus.data.ModbusTcp; @@ -43,6 +45,8 @@ private HModbusService deviceModbusService; @Resource private AnalysisService analysisService; + @Resource + private CoreSerService coreSerService; @Override @@ -63,6 +67,7 @@ ModbusTcp modbusTcp; ModbusTcp modbusTcpLink = null; String temp = Constant.YN_N; + DeviceSer deviceSer; for (ExeDevice exeDevice : deviceList) { deviceModbus = deviceModbusService.getCacheDeviceModbus(request.getCompanyId(), exeDevice.getPassCode() + ""); @@ -74,6 +79,12 @@ modbusTcp = new ModbusTcp(deviceModbus); modbusTcp.setIp(request.getIp()); modbusTcp.setPort(request.getPort()); + //鑻odbus璁惧閰嶇疆鍒嗘満锛屽垯浣跨敤鎵�閰嶇疆鍒嗘満鐨処P銆佺鍙� + if(StringUtils.isNotEmpty(deviceModbus.getSerId())){ + deviceSer = coreSerService.getCacheSer(request.getCompanyId(), deviceModbus.getSerId()); + modbusTcp.setIp(deviceSer.getIp()); + modbusTcp.setPort(deviceSer.getPort()); + } modbusTcp.setBizCode(exeDevice.getPassCode() + ""); modbusTcp.setSerId(request.getSerId()); modbusTcp.setCompanyId(request.getCompanyId()); @@ -87,6 +98,16 @@ temp = modbusTcp.getDeviceModbus().getOpen(); } + //鐜祦椋庢満-鍏� + if (DeviceStatus.F_CLOSE.getCode().equals(exeDevice.getTargetStatus())) { + temp = modbusTcp.getDeviceModbus().getStop(); + } + + //鐜祦椋庢満-寮� + if (DeviceStatus.F_OPEN.getCode().equals(exeDevice.getTargetStatus())) { + temp = modbusTcp.getDeviceModbus().getOpen(); + } + if (StringUtils.isBlank(exeDevice.getLink()) || "null".equals(exeDevice.getLink())) { //鏍规嵁璁惧鐩爣鐘舵�侊紝璋冪敤MODBUS鎵ц modbusTcp.setAddrExe(ServerUtil.getAddrExe(temp)); @@ -94,7 +115,6 @@ continue; } - deviceModbus = deviceModbusService.getCacheDeviceModbus(request.getCompanyId(), exeDevice.getLink()); if (null == deviceModbus) continue; @@ -105,6 +125,12 @@ modbusTcpLink.setSerId(request.getSerId()); modbusTcpLink.setCompanyId(request.getCompanyId()); + //鑻odbus璁惧閰嶇疆鍒嗘満锛屽垯浣跨敤鎵�閰嶇疆鍒嗘満鐨処P銆佺鍙� + if(StringUtils.isNotEmpty(deviceModbus.getSerId())){ + deviceSer = coreSerService.getCacheSer(request.getCompanyId(), deviceModbus.getSerId()); + modbusTcpLink.setIp(deviceSer.getIp()); + modbusTcpLink.setPort(deviceSer.getPort()); + } //濡傛灉鏄紑椋庢満 if (DeviceStatus.F_OPEN.getCode().equals(exeDevice.getTargetStatus())) { @@ -112,9 +138,7 @@ //鍏堝紑绐楀彛 temp = modbusTcp.getDeviceModbus().getOpen(); modbusTcp.setAddrExe(ServerUtil.getAddrExe(temp)); - doWriteExe(modbusTcp, DeviceStatus.OPEN.getCode()); - Thread.sleep(300); @@ -153,7 +177,7 @@ Thread.sleep(300); //鍦ㄥ叧绐楁埛 - temp = modbusTcp.getDeviceModbus().getOpen(); + temp = modbusTcp.getDeviceModbus().getClose(); modbusTcp.setAddrExe(ServerUtil.getAddrExe(temp)); doWriteExe(modbusTcp, DeviceStatus.CLOSE.getCode()); @@ -255,6 +279,7 @@ if (Constant.YN_N.equals(modbusTcp.getDeviceModbus().getOpen())) return; + if (Constant.YN_N.equals(modbusTcp.getDeviceModbus().getOpenEnd())) return; int addrExe = ServerUtil.getAddrExe(modbusTcp.getDeviceModbus().getOpenEnd()); boolean result = ModbusUtil2.readInputStatus(modbusTcp.getIp(), modbusTcp.getPort(), addrExe); @@ -264,7 +289,7 @@ ServerUtil.add2StatusMap(modbusTcp.getCompanyId(), modbusTcp.getSerId(), modbusTcp.getBizCode(), DeviceStatus.OPEN.getCode()); } - + if (Constant.YN_N.equals(modbusTcp.getDeviceModbus().getCloseEnd())) return; addrExe = ServerUtil.getAddrExe(modbusTcp.getDeviceModbus().getCloseEnd()); result = ModbusUtil2.readInputStatus(modbusTcp.getIp(), modbusTcp.getPort(), addrExe); log.debug("---------璇诲叧鍒颁綅鐘舵��------{}-{}-{}", modbusTcp.getBizCode(), addrExe, result); -- Gitblit v1.9.3