From 959dcca95276888cd9c092d93d276ef9aa580aef Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期三, 30 四月 2025 16:26:19 +0800 Subject: [PATCH] 1、增加远程透传命令; 2、表阀一体机协议优化; --- pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/WebDownComTask.java | 70 +++++++++++++++++++++++++++++++++++ 1 files changed, 70 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/WebDownComTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/WebDownComTask.java new file mode 100644 index 0000000..9d49d97 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/WebDownComTask.java @@ -0,0 +1,70 @@ +package com.dy.rtuMw.server.tasks; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import com.dy.common.mw.core.CoreTask; +import com.dy.common.mw.protocol.MidResult; +import com.dy.common.mw.protocol.Command; +import com.dy.common.mw.protocol.Driver; +import com.dy.common.mw.protocol.ProtocolCache; +import com.dy.rtuMw.server.ServerProperties; +import com.dy.rtuMw.server.forTcp.TcpSessionCache; + +/** + * 浠巜eb涓氬姟绯荤粺鍙戝悜RTU鐨勫懡浠や换鍔� + * @author Administrator + * + */ +public class WebDownComTask extends CoreTask { + + private static Logger log = LogManager.getLogger(WebDownComTask.class.getName()); + + @Override + public Integer execute() { + Command com = (Command)this.data ; + try { + log.info("涓嬪彂杩滅▼鍛戒护" + com.getCode() + "鐨勬牳蹇冧换鍔″紑濮嬫墽琛�"); + this.deal(com); + } catch (Exception e) { + log.error("澶勭悊涓嬭鍛戒护鍑洪敊" + (e.getMessage()==null?"!":("锛�" + e.getMessage())) ,e); + } + return null ; + } + + /** + * 澶勭悊鍛戒护 + * @param com 鍛戒护 + * @throws Exception + */ + private void deal(Command com) throws Exception{ + String rtuAddr = com.getRtuAddr() ; + //鍓嶉潰宸茬粡鍒ゆ柇rtuAddr涓虹┖鎯呭喌锛岃嚦姝ゅ叾涓嶄负绌� + Driver dri = null ; + Object[] objs = TcpSessionCache.getTcpProtocolNameVersion(rtuAddr) ; + if(objs == null || objs.length == 0 || objs[0] == null){ + //RTU鏈浘涓婄嚎 + int count = ProtocolCache.driverCount() ; + if(count == 1){ + //鍙湁涓�涓崗璁� + dri = ProtocolCache.getFirstDriver() ; + } + }else{ + String protocolName = (String)objs[0]; + com.protocolVersion = (Short)objs[1]; + dri = ProtocolCache.getDriver(protocolName, com.protocolVersion) ; + } + if(dri == null){ + log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癛TU(" + rtuAddr + ")椹卞姩绫诲疄渚嬶紒"); + }else{ + MidResult[] actions = dri.createCommand(ServerProperties.isLowPower, com) ; + log.info("涓嬪彂杩滅▼鍛戒护" + com.getCode() + "鐢卞崗璁┍鍔ㄦ瀯閫犲畬鎴�"); + if(actions != null){ + for(MidResult act : actions){ + act.action(); + } + } + } + } + +} -- Gitblit v1.8.0