New file |
| | |
| | | package com.dy.simRtu202404.tcpClient; |
| | | |
| | | import com.dy.simRtu202404.ServerProperties; |
| | | import com.dy.simRtu202404.tcpClient.upData.UpData; |
| | | import com.dy.simRtu202404.tcpClient.upData.UpHeartBeat; |
| | | import com.dy.simRtu202404.tcpClient.upData.UpOpenCloseValve; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | import org.apache.mina.core.session.IoSession; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/2/26 14:39 |
| | | * @Description |
| | | */ |
| | | public class Worker { |
| | | |
| | | private static final Logger log = LogManager.getLogger(TcpClUnit.class) ; |
| | | |
| | | protected static IoSession session ; |
| | | |
| | | private static Worker instance = new Worker() ; |
| | | |
| | | private static Integer UpHeartBeatTimes = 0 ; |
| | | private static boolean isOpenValve = false ; |
| | | private static boolean isCloseValve = false ; |
| | | private static Integer OpenedCount = 0 ; |
| | | private static Integer ClosedCount = 0 ; |
| | | |
| | | private Worker(){ |
| | | } |
| | | |
| | | public static Worker getInstance(IoSession session){ |
| | | Worker.session = session ; |
| | | return instance ; |
| | | } |
| | | |
| | | public void doWork(){ |
| | | UpData.setSession(Starter.session); |
| | | new Thread(new Runnable(){ |
| | | @Override |
| | | public void run() { |
| | | while(true){ |
| | | try { |
| | | reportData() ; |
| | | Thread.sleep(1000L); |
| | | }catch (Exception e){ |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | }).start(); |
| | | } |
| | | private void reportData() throws Exception{ |
| | | UpHeartBeat.upCd02Data(ServerProperties.rtuAddr); |
| | | UpHeartBeatTimes += 1 ; |
| | | |
| | | Thread.sleep(10000L); |
| | | |
| | | if(UpHeartBeatTimes == 2){ |
| | | UpHeartBeatTimes = 0 ; |
| | | if(ServerProperties.type == 1){ |
| | | if(!isOpenValve){ |
| | | UpOpenCloseValve.upCd84Data(ServerProperties.rtuAddr); |
| | | isOpenValve = true ; |
| | | } |
| | | } |
| | | |
| | | if(ServerProperties.type == 2){ |
| | | if(!isCloseValve){ |
| | | UpOpenCloseValve.upCd85Data(ServerProperties.rtuAddr); |
| | | isCloseValve = true ; |
| | | } |
| | | } |
| | | |
| | | if(ServerProperties.type == 3){ |
| | | if(!isOpenValve){ |
| | | UpOpenCloseValve.upCd84Data(ServerProperties.rtuAddr); |
| | | isOpenValve = true ; |
| | | } |
| | | OpenedCount += 1 ; |
| | | if(OpenedCount == 10){ |
| | | OpenedCount = 0 ; |
| | | if(!isCloseValve){ |
| | | UpOpenCloseValve.upCd85Data(ServerProperties.rtuAddr); |
| | | isCloseValve = true ; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if(ServerProperties.type == 4){ |
| | | if(!isOpenValve && !isCloseValve){ |
| | | //初次 |
| | | UpOpenCloseValve.upCd84Data(ServerProperties.rtuAddr); |
| | | isOpenValve = true ; |
| | | isCloseValve = false ; |
| | | }else{ |
| | | if(isOpenValve){ |
| | | OpenedCount += 1 ; |
| | | } |
| | | if(OpenedCount == 10){ |
| | | OpenedCount = 0 ; |
| | | UpOpenCloseValve.upCd85Data(ServerProperties.rtuAddr); |
| | | isOpenValve = false ; |
| | | isCloseValve = true ; |
| | | } |
| | | |
| | | if(isCloseValve){ |
| | | ClosedCount += 1 ; |
| | | } |
| | | if(ClosedCount == 10){ |
| | | ClosedCount = 0 ; |
| | | UpOpenCloseValve.upCd84Data(ServerProperties.rtuAddr); |
| | | isOpenValve = true ; |
| | | isCloseValve = false ; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |