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 ; 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
} 
 |