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