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