From 1a2b07f01ba4616fd9e894dddf474b56d020158c Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期一, 07 四月 2025 15:18:51 +0800 Subject: [PATCH] 整理版本 --- pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java | 131 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 131 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java new file mode 100644 index 0000000..20a30f6 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java @@ -0,0 +1,131 @@ +package com.dy.testClient.tcpClient; + +import com.dy.common.threadPool.ThreadPool; +import com.dy.common.util.ByteUtil; +import com.dy.testClient.ServerProperties; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.mina.core.session.IoSession; + +public class MyThreadJob implements ThreadPool.Job { + + private static final Logger log = LogManager.getLogger(MyThreadJob.class) ; + + public static String icCardAddr = "3B7D1E1A" ; + public static String icCardNo = "61181622830147821" ; + public static String openValveDt = "240711163700" ; + public static String cdC0 = "C0" ; + public static String cd83Open = "83Open" ; + public static String cd83Close = "83Close" ; + + + public static String curCd = cdC0 ;//閫氳繃淇敼杩欎釜鍊硷紝鏉ユ敼鍙樹笂鎶ユ暟鎹被鍨� + + public String rtuAddr; + public String serverIp; + public Integer serverPort; + + public IoSession session ; + public boolean exceptionOnConnect = false ; + + public static final int connectTimeout = 3000 ; + + public int sendTimes = 1 ;//鍙戦�佹暟鎹鏁� + public int heartbeatTimes = 1 ;//涓婃姤蹇冭烦娆℃暟 + + public long overStart = 0L; + public boolean isOver = false ; + + public MyThreadJob(){ + } + public MyThreadJob(String rtuAddr, String serverIp, Integer serverPort){ + this.rtuAddr = rtuAddr ; + this.serverIp = serverIp ; + this.serverPort = serverPort ; + } + + @Override + public void execute() throws Exception { + if(!this.isOver){ + if(session != null){ + if(sendTimes <= ServerProperties.sendTimes){ + log.info("RTU" + rtuAddr + "寮�濮嬩换鍔�"); + log.info("RTU" + rtuAddr + "灏嗚鎵ц" + ServerProperties.sendTimes + "杞浠诲姟锛屽綋鍓嶈疆娆℃槸" + sendTimes); + sendDataOfP206V1(curCd) ; + }else{ + if(ServerProperties.sendOverThenCloseConnect == 1){ + log.info("RTU" + rtuAddr + "绛夊緟涓�浼氾紝浠ユ帴鏀堕�氫俊涓棿浠朵笅琛屾暟鎹�"); + if(overStart == 0){ + overStart = System.currentTimeMillis() ; + }else{ + long now = System.currentTimeMillis() ; + if(now - overStart >= 30 * 1000){ + this.jobOver() ; + } + } + }else{ + this.jobOver() ; + } + } + } + } + } + + private void sendDataOfP206V1(String cd){ + try{ + if(heartbeatTimes > ServerProperties.heartbeatTimes){ + heartbeatTimes = 1 ; + byte[] bs = null ; + if(cd.equals(cdC0)){ + bs = RtuUpData.createCdC0(this.rtuAddr) ; + }else if(cd.equals(cd83Open)){ + bs = RtuUpData.createCd83Open(this.rtuAddr, icCardAddr, icCardNo, openValveDt) ; + }else if(cd.equals(cd83Close)){ + bs = RtuUpData.createCd83Close(this.rtuAddr, icCardAddr, icCardNo, openValveDt) ; + } + this.session.write(bs) ; + log.info("RTU" + rtuAddr + "鍙戦�佷簡涓婅鏁版嵁锛�" + ByteUtil.bytes2Hex(bs, false)); + TcpClUnit.clientSendData(); + sendTimes++ ; + }else{ + this.sendHeartbeat() ; + TcpClUnit.clientSendData(); + heartbeatTimes++ ; + } + }catch(Exception e){ + e.printStackTrace(); + } + } + private void sendHeartbeat(){ + try{ + byte[] bs = RtuUpData.createHeartbeat(this.rtuAddr) ; + this.session.write(bs) ; + log.info("RTU" + rtuAddr + "鍙戦�佷簡蹇冭烦鏁版嵁锛�" + ByteUtil.bytes2Hex(bs, false)); + }catch (Exception e){ + e.printStackTrace(); + } + } + + + private void jobOver(){ + if(ServerProperties.sendOverThenCloseConnect == 1){ + session.closeOnFlush() ; + } + this.isOver = true ; + TcpClUnit.clientOver() ; + } + + + + + @Override + public void destroy() { + } + + @Override + public boolean isDestroy() { + return false; + } + + +} -- Gitblit v1.8.0