From 29eab346b55c74fb1ed3212ff7dcb0c24c7662fa Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 15 五月 2025 11:22:31 +0800 Subject: [PATCH] 示范区项目,虚拟卡表的占用状态及剩余金额需要设置成默认值,即不占用,不减费。修改原来的实现,增加设备剩余金额为默认值10000,配置项名称也做了达意修改。 --- pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java | 87 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 87 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java new file mode 100644 index 0000000..7bccddf --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java @@ -0,0 +1,87 @@ +package com.dy.rtuMw.server.forTcp; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.mina.core.session.IoSession; + +import com.dy.common.mw.channel.tcp.TcpIoSessionAttrIdIsRtuAddr; +import com.dy.common.mw.channel.tcp.TcpIoSessionEventCallback; +import com.dy.common.mw.core.CoreUnit; +import com.dy.rtuMw.server.tasks.RtuUpTask; + +public class TcpIoSessionCallback implements TcpIoSessionEventCallback{ + + private static Logger log = LogManager.getLogger(TcpIoSessionCallback.class.getName()); + + /** + * 缃戠粶杩炴帴鎵撳紑 + */ + public void sessionOpened(IoSession session) throws Exception { + log.info("缃戠粶杩炴帴寤虹珛锛岀粓绔綉鍧�鏄細" + session.getRemoteAddress().toString()) ; + if(session != null) { + String rtuAddr = (String) session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrRtuAddr); + if(rtuAddr != null && !rtuAddr.trim().equals("")){ + RtuLogDealer.log(rtuAddr, "缃戠粶鎺ュ叆"); + } + } + } + + /** + * 缃戠粶杩炴帴鍏抽棴 + */ + @Override + public void sessionClosed(IoSession session) throws Exception { + if(session != null){ + String rtuAddr = (String)session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrRtuAddr) ; + + if(rtuAddr != null && !rtuAddr.trim().equals("")){ + //璁板綍鐘舵�� + RtuStatusDealer.offLine(rtuAddr); + RtuLogDealer.log(rtuAddr, "缃戠粶杩炴帴鍏抽棴"); + } + log.info("缃戠粶杩炴帴鍏抽棴锛�" + + (rtuAddr==null?"":("缁堢鍦板潃鏄細" + rtuAddr))) ; + //+ (session==null?"":(session.getRemoteAddress() == null?"":(session.getRemoteAddress().toString()==null?"":("锛岀粓绔綉鍧�鏄細" + session.getRemoteAddress().toString()))))) ; + } + } + /** + * 鍙戠敓寮傚父 + */ + public void exceptionCaught(IoSession session, Throwable cause) throws Exception { + if(session != null && cause != null){ + String rtuAddr = (String)session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrRtuAddr) ; + log.error("缃戠粶浼氳瘽鍙戠敓寮傚父锛�" + + (rtuAddr==null?"":("缁堢鍦板潃鏄細" + rtuAddr)) + + (session==null?"":(session.getRemoteAddress() != null?("锛岀粓绔綉鍧�鏄細" + session.getRemoteAddress().toString()):"")) + + "\n寮傚父娑堟伅锛�" + cause.getMessage(), cause); + } + } + + /** + * TCP閫氶亾鍙戦�佸畬鏁版嵁鍚庯紝鍥炶皟鐨勬柟娉曪紝杩涜鍚庣画鏁版嵁澶勭悊 + */ + public void messageSended(IoSession session, Object message) throws Exception { + String rtuAddr = (String)session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrRtuAddr) ; + log.info("缃戠粶鍙戦�佷簡鏁版嵁锛�" + + (rtuAddr==null?"":("缁堢鍦板潃鏄細" + rtuAddr)) + + (session==null?"":(session.getRemoteAddress() != null?("锛岀粓绔綉鍧�鏄細" + session.getRemoteAddress().toString()):"")) ); + } + + /** + * TCP閫氶亾鎺ユ敹鍒版暟鎹紝鍥炶皟鐨勬柟娉曪紝杩涜鏁版嵁澶勭悊 + * 姝ゆ柟娉曡皟鐢ㄥ悗锛屼笂琛屾暟鎹劚绂讳簡NIO绾跨▼锛岃繘鍏ヤ簡鏍稿績绾跨▼ + */ + @Override + public void messageReceived(IoSession session, Object message)throws Exception { + if(session != null && message != null){ + RtuUpTask task = new RtuUpTask() ; + task.data = new Object[]{session, (byte[])message} ; + try{ + CoreUnit.getInstance().pushCoreTask(task); + }catch(Exception e){ + log.error(e.getMessage(), e); + } + } + } + +} -- Gitblit v1.8.0