From b397edee2be2dfcc3f28eeac50298b4de26b1afa Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 13 十二月 2024 16:53:45 +0800
Subject: [PATCH] 取水口日取水量表中,出现一些大数,明显不正确,发析系统日志,发现一些阀控器会上报一些累计流量为0的数据,且无规律,推测是其不能从水表读取到累计流量时会上报0值。如果间歇上报0值,间歇上报一些非0值,非0值减去0值,就会出现大数,一天中出现几次那么会大数进行累加,数值将更大。为此变更算法,规避这种情况,但也会丢失一些流量值。

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpIoHandler.java |   27 ++++++++++++++++++++++++---
 1 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpIoHandler.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpIoHandler.java
index 695ec8d..fe53fdb 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpIoHandler.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpIoHandler.java
@@ -8,9 +8,18 @@
 
 	private TcpUnitAdapter adapter ;
 
+	private boolean stop = false ;//涓簍rue鏃讹紝鍋滄TCP鏈嶅姟锛屽苟鎶婂凡缁廡CP杩炴帴鏂繛鎺�
 
 	public TcpIoHandler(TcpUnitAdapter adapter){
 		this.adapter = adapter ;
+	}
+
+	public void stop(){
+		stop = true ;
+	}
+
+	public void recover(){
+		this.stop = false ;
 	}
 
 	/**
@@ -18,14 +27,22 @@
 	 */
 	@Override
 	public void sessionCreated(IoSession session) throws Exception {
-		super.sessionCreated(session);
+		if(stop){
+			session.closeNow() ;
+		}else{
+			super.sessionCreated(session);
+		}
 	}
    
 	/**
      * 浼氳瘽open鏃跺洖璋冪殑鏂规硶 
      */
     public void sessionOpened(IoSession session) throws Exception {
-    	this.adapter.newSessionEventCallback().sessionOpened(session);
+		if(stop){
+			session.closeNow() ;
+		}else{
+			this.adapter.newSessionEventCallback().sessionOpened(session);
+		}
     }
     
 	/**
@@ -76,7 +93,11 @@
      */
 	@Override
     public void messageReceived(IoSession session, Object message) throws Exception {
-    	this.adapter.newSessionEventCallback().messageReceived(session, message);
+		if(stop){
+			session.closeNow() ;
+		}else{
+			this.adapter.newSessionEventCallback().messageReceived(session, message);
+		}
     }
 
 }

--
Gitblit v1.8.0