From 664bb4d0b7799328667ffc47e39da711a77ddbfa Mon Sep 17 00:00:00 2001
From: jiazx0107@163.com <jiazx0107@163.com>
Date: 星期一, 28 八月 2023 12:05:33 +0800
Subject: [PATCH] 更新MODBUS-TCP协议,调整配置2

---
 igds-protocol-modbus/src/main/java/com/ld/igds/protocol/modbus/command/RemoteControlServiceImpl.java |   51 +++++++++++++++++++++++----------------------------
 1 files changed, 23 insertions(+), 28 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 9d6730e..2fe10f4 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
@@ -74,7 +74,7 @@
                 modbusTcp = new ModbusTcp(deviceModbus);
                 modbusTcp.setIp(request.getIp());
                 modbusTcp.setPort(request.getPort());
-                modbusTcp.setDeviceCode(exeDevice.getPassCode() + "");
+                modbusTcp.setBizCode(exeDevice.getPassCode() + "");
                 modbusTcp.setSerId(request.getSerId());
                 modbusTcp.setCompanyId(request.getCompanyId());
 
@@ -89,7 +89,7 @@
 
                 if (StringUtils.isBlank(exeDevice.getLink()) || "null".equals(exeDevice.getLink())) {
                     //鏍规嵁璁惧鐩爣鐘舵�侊紝璋冪敤MODBUS鎵ц
-                    modbusTcp.setAddrExe(this.getAddrExe(temp));
+                    modbusTcp.setAddrExe(ServerUtil.getAddrExe(temp));
                     doWriteExe(modbusTcp, exeDevice.getTargetStatus());
 
                     continue;
@@ -101,7 +101,7 @@
                 modbusTcpLink = new ModbusTcp(deviceModbus);
                 modbusTcpLink.setIp(request.getIp());
                 modbusTcpLink.setPort(request.getPort());
-                modbusTcpLink.setDeviceCode(exeDevice.getLink());
+                modbusTcpLink.setBizCode(exeDevice.getLink());
                 modbusTcpLink.setSerId(request.getSerId());
                 modbusTcpLink.setCompanyId(request.getCompanyId());
 
@@ -111,7 +111,7 @@
 
                     //鍏堝紑绐楀彛
                     temp = modbusTcp.getDeviceModbus().getOpen();
-                    modbusTcp.setAddrExe(this.getAddrExe(temp));
+                    modbusTcp.setAddrExe(ServerUtil.getAddrExe(temp));
 
                     doWriteExe(modbusTcp, DeviceStatus.OPEN.getCode());
 
@@ -120,7 +120,7 @@
 
                     //鍐嶅紑椋庢満
                     temp = modbusTcpLink.getDeviceModbus().getOpen();
-                    modbusTcpLink.setAddrExe(this.getAddrExe(temp));
+                    modbusTcpLink.setAddrExe(ServerUtil.getAddrExe(temp));
 
                     doWriteExe(modbusTcpLink, DeviceStatus.OPEN.getCode());
                 }
@@ -128,7 +128,7 @@
                 //濡傛灉鍏抽鏈�
                 if (DeviceStatus.F_CLOSE.getCode().equals(exeDevice.getTargetStatus())) {
                     temp = modbusTcpLink.getDeviceModbus().getStop();
-                    modbusTcpLink.setAddrExe(this.getAddrExe(temp));
+                    modbusTcpLink.setAddrExe(ServerUtil.getAddrExe(temp));
 
                     doWriteExe(modbusTcpLink, DeviceStatus.CLOSE.getCode());
                 }
@@ -137,7 +137,7 @@
                 //濡傛灉寮�绐�
                 if (DeviceStatus.W_OPEN.getCode().equals(exeDevice.getTargetStatus())) {
                     temp = modbusTcp.getDeviceModbus().getOpen();
-                    modbusTcp.setAddrExe(this.getAddrExe(temp));
+                    modbusTcp.setAddrExe(ServerUtil.getAddrExe(temp));
 
                     doWriteExe(modbusTcp, exeDevice.getTargetStatus());
                 }
@@ -147,14 +147,14 @@
 
                     //鍏堝叧椋庢満
                     temp = modbusTcpLink.getDeviceModbus().getStop();
-                    modbusTcpLink.setAddrExe(this.getAddrExe(temp));
+                    modbusTcpLink.setAddrExe(ServerUtil.getAddrExe(temp));
                     doWriteExe(modbusTcpLink, DeviceStatus.CLOSE.getCode());
 
                     Thread.sleep(300);
 
                     //鍦ㄥ叧绐楁埛
                     temp = modbusTcp.getDeviceModbus().getOpen();
-                    modbusTcp.setAddrExe(this.getAddrExe(temp));
+                    modbusTcp.setAddrExe(ServerUtil.getAddrExe(temp));
 
                     doWriteExe(modbusTcp, DeviceStatus.CLOSE.getCode());
                 }
@@ -168,19 +168,14 @@
         return new DeviceControlResponse(OrderRespEnum.ORDER_SUCCESS);
     }
 
-    private int getAddrExe(String temp) {
-        if (Constant.YN_N.equals(temp)) return 65535;
-        if (temp.length() > 4) {
-            temp = temp.substring(temp.length() - 4);
-        }
-        return Integer.valueOf(temp) - 1;
-    }
-
     private void doWriteExe(ModbusTcp modbusTcp, String targetStatus) throws Exception {
         boolean exeResult = ModbusUtil2.writeCoilStatus(modbusTcp.getIp(), modbusTcp.getPort(), modbusTcp.getAddrExe(), true);
         if (exeResult) {
-            log.debug("--------鍐欏叆鍊�---{}-{}-{}", modbusTcp.getSerId(), modbusTcp.getDeviceCode(), targetStatus);
-            ServerUtil.add2StatusMap(modbusTcp.getCompanyId(), modbusTcp.getSerId(), modbusTcp.getDeviceCode(), targetStatus);
+            //鏍规嵁Modbus-TCP锛屽皢鍐欒繃鐨勫�硷紝鎭㈠鍘熸潵鐨勫��
+            ModbusUtil2.writeCoilStatus(modbusTcp.getIp(), modbusTcp.getPort(), modbusTcp.getAddrExe(), false);
+            
+            log.debug("--------鍐欏叆鍊�---{}-{}-{}", modbusTcp.getSerId(), modbusTcp.getBizCode(), targetStatus);
+            ServerUtil.add2StatusMap(modbusTcp.getCompanyId(), modbusTcp.getSerId(), modbusTcp.getBizCode(), targetStatus);
         }
     }
 
@@ -214,7 +209,7 @@
                 modbusTcp = new ModbusTcp(deviceModbus);
                 modbusTcp.setIp(request.getIp());
                 modbusTcp.setPort(request.getPort());
-                modbusTcp.setDeviceCode(device.getPassCode() + "");
+                modbusTcp.setBizCode(device.getPassCode() + "");
                 modbusTcp.setSerId(device.getSerId());
                 modbusTcp.setCompanyId(device.getCompanyId());
 
@@ -232,10 +227,10 @@
                 modbusTcpLink.setIp(request.getIp());
                 modbusTcpLink.setPort(request.getPort());
                 modbusTcpLink.setSerId(device.getSerId());
-                modbusTcpLink.setDeviceCode(device.getLink());
+                modbusTcpLink.setBizCode(device.getLink());
                 modbusTcpLink.setCompanyId(device.getCompanyId());
 
-                modbusTcpLink.setAddrExe(this.getAddrExe(modbusTcp.getDeviceModbus().getOpenEnd()));
+                modbusTcpLink.setAddrExe(ServerUtil.getAddrExe(modbusTcp.getDeviceModbus().getOpenEnd()));
 
                 doReadStatus(modbusTcpLink);
             }
@@ -260,22 +255,22 @@
 
         if (Constant.YN_N.equals(modbusTcp.getDeviceModbus().getOpen())) return;
 
-        int addrExe = getAddrExe(modbusTcp.getDeviceModbus().getOpenEnd());
+        int addrExe = ServerUtil.getAddrExe(modbusTcp.getDeviceModbus().getOpenEnd());
 
         boolean result = ModbusUtil2.readInputStatus(modbusTcp.getIp(), modbusTcp.getPort(), addrExe);
-        log.debug("---------璇诲紑鍒颁綅鐘舵��------{}-{}-{}", modbusTcp.getDeviceCode(), addrExe, result);
+        log.debug("---------璇诲紑鍒颁綅鐘舵��------{}-{}-{}", modbusTcp.getBizCode(), addrExe, result);
 
         if (result) {
-            ServerUtil.add2StatusMap(modbusTcp.getCompanyId(), modbusTcp.getSerId(), modbusTcp.getDeviceCode(), DeviceStatus.OPEN.getCode());
+            ServerUtil.add2StatusMap(modbusTcp.getCompanyId(), modbusTcp.getSerId(), modbusTcp.getBizCode(), DeviceStatus.OPEN.getCode());
         }
 
 
-        addrExe = getAddrExe(modbusTcp.getDeviceModbus().getCloseEnd());
+        addrExe = ServerUtil.getAddrExe(modbusTcp.getDeviceModbus().getCloseEnd());
         result = ModbusUtil2.readInputStatus(modbusTcp.getIp(), modbusTcp.getPort(), addrExe);
-        log.debug("---------璇诲叧鍒颁綅鐘舵��------{}-{}-{}", modbusTcp.getDeviceCode(), addrExe, result);
+        log.debug("---------璇诲叧鍒颁綅鐘舵��------{}-{}-{}", modbusTcp.getBizCode(), addrExe, result);
 
         if (result) {
-            ServerUtil.add2StatusMap(modbusTcp.getCompanyId(), modbusTcp.getSerId(), modbusTcp.getDeviceCode(), DeviceStatus.CLOSE.getCode());
+            ServerUtil.add2StatusMap(modbusTcp.getCompanyId(), modbusTcp.getSerId(), modbusTcp.getBizCode(), DeviceStatus.CLOSE.getCode());
         }
     }
 

--
Gitblit v1.9.3