From d19833d058eb3995e35cb9d45fb831169053eee4 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 16 七月 2024 22:21:24 +0800
Subject: [PATCH] 1、完善代码; 2、修改上行命令结果匹配命令的bug;

---
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpConstant.java     |   15 ++-
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java                        |    5 +
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Open.java     |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java                |    6 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java           |    3 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java |    6 +
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Close.java    |    6 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandCache.java              |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java                                         |   17 ++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml                                                  |    6 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionToRtu.java             |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuUpTask.java                         |   35 ++++++--
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/p206V1_0_0/RtuP206V1_0_0Ctrl.java    |   19 +---
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd84.java         |   89 ++++++++++++++++++++++
 14 files changed, 172 insertions(+), 41 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
index 01ef2c9..cedbfa8 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -138,6 +138,21 @@
 			if(ServerProperties.isLowPower == null){
 				ServerProperties.isLowPower = false ;
 			}
+
+			String onlyDealRtus = conf.getSetAttrTxt(doc, "config.base", "onlyDealRtus", null, true, null) ;
+			if(onlyDealRtus == null || onlyDealRtus.trim().equals("")){
+				ServerProperties.onlyDealRtusTest = false ;
+			}else{
+				onlyDealRtus = onlyDealRtus.replaceAll("锛�", ",") ;
+				onlyDealRtus = onlyDealRtus.replaceAll(" ", "") ;
+				ServerProperties.onlyDealRtus = onlyDealRtus.split(",") ;
+				if(ServerProperties.onlyDealRtus != null && ServerProperties.onlyDealRtus.length > 0){
+					ServerProperties.onlyDealRtusTest = true ;
+				}else{
+					ServerProperties.onlyDealRtusTest = false ;
+				}
+			}
+
 			//鍦ㄦ敮鎸佸閫氫俊鍗忚鏃讹紝鍙湁RTU涓婄嚎浜嗭紝鎵嶈兘璇嗗埆鍑鸿RTU瀹為檯鐢ㄧ殑閫氫俊鍗忚锛岃繘鑰岀敤姝ゅ崗璁В鏋愪笂琛屾暟鎹強鏋勯�犱笅琛屽懡浠ゃ��
 			//濡傛灉RTU鏈浘涓婄嚎锛堥�氫俊涓棿浠跺惎鍔ㄥ悗璇TU鏈浘涓婄嚎锛夛紝閭d箞鍦ㄥ悜瀹冨彂閫佷笅琛屽懡浠ゆ椂锛屼笉鑳藉垽鏂嚭鍏堕噰鐢ㄧ殑鍗忚锛屼篃涓嶈兘鏋勯�犲懡浠わ紝灏ゅ叾鏄綆鍔熻�楁儏鍐典笅锛屼笉涓婄嚎鏄甯哥幇璞°��
 			// 褰撳彧鏈変竴涓崗璁儏鍐典笅锛屽湪RTU鏈浘涓婄嚎鏃讹紝涔熻兘鐢ㄦ鍗忚鏋勯�犲懡浠ゅ苟缂撳瓨涓嬫潵锛屽挨鍏堕�傚悎浣庡姛鑰楁儏鍐点��
@@ -151,7 +166,7 @@
 			//閽堝涓�涓猂TU锛屼笅鍙戝懡浠ょ殑鏃堕棿闂撮殧
 			ServerProperties.commandSendInterval = conf.getSetAttrPlusInt(doc, "config.base", "commandSendInterval", null, 1, 40, null) * 1000L ;
 			//鍛戒护宸茬粡鍙戦�佽揪鏈�澶ф鏁帮紝浠嶆湭鏀跺埌鍛戒护缁撴灉锛岄渶瑕佸湪缂撳瓨缁х画绛夊緟锛屽叾绛夊緟鏈�澶ф椂闀�
-			ServerProperties.cachWaitResultTimeout = conf.getSetAttrPlusInt(doc, "config.base", "cachWaitResultTimeout", null, 10, 60, null) * 1000L ;
+			ServerProperties.cachWaitResultTimeout = conf.getSetAttrPlusInt(doc, "config.base", "cachWaitResultTimeout", null, 10, 360, null) * 1000L ;
 			//涓嶅湪绾跨紦瀛樼殑鍛戒护鏈�澶х紦瀛樻椂闀�
 			ServerProperties.offLineCachTimeout = conf.getSetAttrPlusInt(doc, "config.base", "offLineCachTimeout", null, 15, 172800, null) * 1000L ;
 			//TCP涓婅鏁版嵁鏃跺埢缂撳瓨鏃堕暱锛屽綋杈惧埌鏃堕暱鏃讹紝TCP涓婅鏁版嵁鏃跺埢琚竻绌猴紝閲囩敤TCP涓婅鏁版嵁鏃跺埢鐩殑鏄紝闃绘涓婃暟鎹悓鏃朵笅鍙戞暟鎹紝鍥犱负RTU澶勭悊涓嶈繃鏉�
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
index 19e02ec..e225ebd 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
@@ -6,6 +6,11 @@
 	public static String orgTag = "ym" ;
 	//鏄惁涓轰綆鍔熻��
 	public static Boolean isLowPower = false ;
+	//鍙鐞嗘寚瀹歊TU鍦板潃璁惧锛屽叾浠栬澶囨暟鎹涪寮冿紝澶氫釜RTU鍦板潃鐢ㄨ嫳鏂囬�楀彿闅斿紑锛屽鏋滈厤缃┖涓诧紙鍗虫棤IMEI鍙凤級锛屽垯鎺ユ敹鍏ㄩ儴姘磋〃鏁版嵁锛岃缃鐩殑鏄拡瀵规煇涓按琛ㄨ繘琛岃皟璇�
+	public static Boolean onlyDealRtusTest = false ;
+	public static String[] onlyDealRtus ;
+
+
 	//鍦ㄦ敮鎸佸閫氫俊鍗忚鏃讹紝鍙湁RTU涓婄嚎浜嗭紝鎵嶈兘璇嗗埆鍑鸿RTU瀹為檯鐢ㄧ殑閫氫俊鍗忚锛岃繘鑰岀敤姝ゅ崗璁В鏋愪笂琛屾暟鎹強鏋勯�犱笅琛屽懡浠ゃ��
 	//濡傛灉RTU鏈浘涓婄嚎锛堥�氫俊涓棿浠跺惎鍔ㄥ悗璇TU鏈浘涓婄嚎锛夛紝閭d箞鍦ㄥ悜瀹冨彂閫佷笅琛屽懡浠ゆ椂锛屼笉鑳藉垽鏂嚭鍏堕噰鐢ㄧ殑鍗忚锛屼篃涓嶈兘鏋勯�犲懡浠わ紝灏ゅ叾鏄綆鍔熻�楁儏鍐典笅锛屼笉涓婄嚎鏄甯哥幇璞°��
 	// 褰撳彧鏈変竴涓崗璁儏鍐典笅锛屽湪RTU鏈浘涓婄嚎鏃讹紝涔熻兘鐢ㄦ鍗忚鏋勯�犲懡浠ゅ苟缂撳瓨涓嬫潵锛屽挨鍏堕�傚悎浣庡姛鑰楁儏鍐点��
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
index 95a86a8..4697e4a 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
@@ -34,6 +34,7 @@
 					this.nextDealRtuData(false, resFromRtu);
 					this.nextDealRtuComResult(resFromRtu);
 				}else{
+					log.error("鍖归厤鍛戒护澶辫触锛屽姛鑳界爜鏄細" + ((MidResultFromRtu) result).upCode );
 					this.nextDealRtuData(false, resFromRtu);
 					//鏈尮閰嶅埌涓嬪彂鐨勫懡浠わ紝鍛戒护鍦ㄧ紦瀛樺洜瓒呮椂琚竻闄や簡
 					RtuStatusDealer.commandFail2Success(resFromRtu.rtuAddr) ;
@@ -64,7 +65,9 @@
 	 */
 	private void nextDealRtuComResult(MidResultFromRtu resFromRtu){
 		try{
+			log.info("寮�濮嬫妸鍛戒护缁撴灉鏀惧叆缂撲腑");
 			RtuComResultCache.cacheRtuComResult(new RtuComResultNode(resFromRtu.data));
+			log.info("缁撴潫鎶婂懡浠ょ粨鏋滄斁鍏ョ紦涓�");
 		}catch(Exception e){
 			log.error(e.getMessage(), e);
 		}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionToRtu.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionToRtu.java
index 8d906fc..c112773 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionToRtu.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionToRtu.java
@@ -16,7 +16,7 @@
 			try {
 				MidResultToRtu resToRtu = (MidResultToRtu)result ;
 				TcpDownCommandCache.cacheCommand(resToRtu);
-				log.info("涓嬭鍛戒护(toRtu)" + resToRtu.downCode + "涓棿缁撴灉宸茬粡鏀惧叆涓嬭鍛戒护缂撳瓨涓�");
+				log.info("涓嬭鍛戒护(toRtu锛宨d=" + resToRtu.commandId + ")" + resToRtu.downCode + "涓棿鏁版嵁(MidResult)宸茬粡鏀惧叆涓嬭鍛戒护缂撳瓨涓�");
 			} catch (Exception e) {
 				log.error(e);
 			}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandCache.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandCache.java
index 54d5ecd..b4fc611 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandCache.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandCache.java
@@ -62,7 +62,7 @@
 				obj.onceReceivedResult = true ;//鏍囪瘑宸茬粡鏀跺埌鍛戒护缁撴灉
 				return res ;
 			}else{
-				node = node.pre ;
+				node = node.next ;
 			}
 		}
 		
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuUpTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuUpTask.java
index 167f7d7..bedf45e 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuUpTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuUpTask.java
@@ -78,18 +78,33 @@
 				}
 			}
 		}
-		
 		if(rtuAddr != null){
-			if(protocolName == null){
-				protocolName = TcpSessionCache.getTcpProtocolName(rtuAddr) ;
+			boolean toDeal = true ;
+			if(ServerProperties.onlyDealRtusTest){
+				boolean find = false ;
+				for(String testRtu : ServerProperties.onlyDealRtus){
+					if(testRtu.equals(rtuAddr)){
+						find = true ;
+						break ;
+					}
+				}
+				if(!find){
+					//涓嶅湪澶勭悊鑼冨洿鍐�
+					toDeal = false ;
+				}
 			}
-			
-			//璁剧疆鏀跺埌鏁版嵁鏃跺埢
-			TcpSessionCache.cacheUpDataTime(rtuAddr);
-			
-			if(protocolName != null){
-				//瀵逛笂琛屾暟鎹繘琛屽鐞�
-				this.dealUpData(session, rtuAddr, protocolName, isOnLine, upBuf, upHex) ;
+			if(toDeal){
+				if(protocolName == null){
+					protocolName = TcpSessionCache.getTcpProtocolName(rtuAddr) ;
+				}
+
+				//璁剧疆鏀跺埌鏁版嵁鏃跺埢
+				TcpSessionCache.cacheUpDataTime(rtuAddr);
+
+				if(protocolName != null){
+					//瀵逛笂琛屾暟鎹繘琛屽鐞�
+					this.dealUpData(session, rtuAddr, protocolName, isOnLine, upBuf, upHex) ;
+				}
 			}
 		}
 	}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java
index 10534e5..58b046e 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java
@@ -2,7 +2,8 @@
 
 import com.dy.common.mw.protocol.Command;
 import com.dy.common.mw.protocol.Data;
-import lombok.extern.slf4j.Slf4j;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.*;
 import org.springframework.http.converter.StringHttpMessageConverter;
@@ -18,10 +19,11 @@
  * @LastEditTime 2023/12/21 20:28
  * @Description
  */
-@Slf4j
 @Component()
 public class CommandResultDeal {
 
+    private static final Logger log = LogManager.getLogger(CommandResultDeal.class.getName());
+
     private RestTemplate restTemplate;
 
     @Autowired
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
index 87ad035..bddaf88 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
@@ -5,6 +5,7 @@
 		鍩烘湰閰嶇疆
 		orgTag 鏈烘瀯tag(瀵瑰簲鏈烘瀯tag,鍜屾暟鎹簮鍚庣紑)
 		isLowPower: 鏄惁涓轰綆鍔熻��
+		onlyDealRtus:鍙鐞嗘寚瀹歊TU鍦板潃璁惧锛屽叾浠栬澶囨暟鎹涪寮冿紝澶氫釜RTU鍦板潃鐢ㄨ嫳鏂囬�楀彿闅斿紑锛�
 		onlyOneProtocol锛氬湪鏀寔澶氶�氫俊鍗忚鏃讹紝鍙湁RTU涓婄嚎浜嗭紝鎵嶈兘璇嗗埆鍑鸿RTU瀹為檯鐢ㄧ殑閫氫俊鍗忚锛岃繘鑰岀敤姝ゅ崗璁В鏋愪笂琛屾暟鎹強鏋勯�犱笅琛屽懡浠ゃ��
 					     濡傛灉RTU鏈浘涓婄嚎锛堥�氫俊涓棿浠跺惎鍔ㄥ悗璇TU鏈浘涓婄嚎锛夛紝閭d箞鍦ㄥ悜瀹冨彂閫佷笅琛屽懡浠ゆ椂锛屼笉鑳藉垽鏂嚭鍏堕噰鐢ㄧ殑鍗忚锛屼篃涓嶈兘鏋勯�犲懡浠わ紝灏ゅ叾鏄綆鍔熻�楁儏鍐典笅锛屼笉涓婄嚎鏄甯哥幇璞°��
 					     褰撳彧鏈変竴涓崗璁儏鍐典笅锛屽湪RTU鏈浘涓婄嚎鏃讹紝涔熻兘鐢ㄦ鍗忚鏋勯�犲懡浠ゅ苟缂撳瓨涓嬫潵锛屽挨鍏堕�傚悎浣庡姛鑰楁儏鍐点��
@@ -22,10 +23,11 @@
 		<base
 			orgTag="ym"
 			isLowPower="false"
-			onlyOneProtocol="true"
+			onlyDealRtus="532328059995"
+			onlyOneProtocol="false"
 			downComandMaxResendTimes="1"
 			commandSendInterval="2"
-			cachWaitResultTimeout="60"
+			cachWaitResultTimeout="120"
 			offLineCachTimeout="86400"
 			lastUpDataTimeLive="500"
 			dbDataIdSuffix="0"
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/p206V1_0_0/RtuP206V1_0_0Ctrl.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/p206V1_0_0/RtuP206V1_0_0Ctrl.java
index 4550f5a..6c9ad33 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/p206V1_0_0/RtuP206V1_0_0Ctrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/p206V1_0_0/RtuP206V1_0_0Ctrl.java
@@ -3,6 +3,7 @@
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.pipIrrMwTestRtu.tcpClient.upData.UpCd83Close;
 import com.dy.pipIrrMwTestRtu.tcpClient.upData.UpCd83Open;
+import com.dy.pipIrrMwTestRtu.tcpClient.upData.UpCd84;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -22,9 +23,11 @@
     @GetMapping(path = "test")
     public BaseResponse<String> test(String com) {
         if(com.equals("83Open")){
-            this.cd83Open() ;
+            UpCd83Open.upCd83Data();
         }else if(com.equals("83Close")){
-            this.cd83Close() ;
+            UpCd83Close.upCd83Data();
+        }else if(com.equals("84")){
+            UpCd84.upCd84Data();
         }
         BaseResponse<String> rt = new BaseResponse<String>() ;
         rt.setCode("001") ;
@@ -32,18 +35,6 @@
         rt.setSuccess(true) ;
         return rt ;
     }
-
-
-    private void cd83Open(){
-        UpCd83Open.upCd83Data();
-    }
-
-
-    private void cd83Close(){
-        UpCd83Close.upCd83Data();
-    }
-
-
 
 }
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Close.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Close.java
index 9a82f4c..05a43a0 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Close.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Close.java
@@ -2,7 +2,6 @@
 
 import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
 import com.dy.common.util.ByteUtil;
-import com.dy.common.util.ByteUtilUnsigned;
 import com.dy.pipIrrMwTestRtu.ServerProperties;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -31,13 +30,14 @@
 
 
     /**
-     * 鏋勯�犲績璺虫暟鎹�
+     * 鏋勯�犱笂琛屾暟鎹�
      *
      * @return 瀛楄妭鏁扮粍
      * @throws Exception 寮傚父
      */
     private static byte[] createData(String rtuAddr) throws Exception {
-        UpConstant.closeValve();
+        UpConstant.addValve();//璋冩暣娴侀噺
+
         byte[] bytes = creatHead(rtuAddr, "83", (byte)0xB0);
 
         byte[] bs = new byte[1] ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Open.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Open.java
index 9273b94..d2dad7c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Open.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Open.java
@@ -31,7 +31,7 @@
 
 
     /**
-     * 鏋勯�犲績璺虫暟鎹�
+     * 鏋勯�犱笂琛屾暟鎹�
      *
      * @return 瀛楄妭鏁扮粍
      * @throws Exception 寮傚父
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd84.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd84.java
new file mode 100644
index 0000000..c015151
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd84.java
@@ -0,0 +1,89 @@
+package com.dy.pipIrrMwTestRtu.tcpClient.upData;
+
+import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+import com.dy.pipIrrMwTestRtu.ServerProperties;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/16 19:32
+ * @Description
+ */
+public class UpCd84 extends UpData {
+
+    private static final Logger log = LogManager.getLogger(UpCd84.class);
+
+    public static void upCd84Data() {
+        try {
+            if (UpData.session != null && UpData.session.isConnected()) {
+                byte[] bs = createData(ServerProperties.rtuAddr);
+                UpData.upSend(bs);
+            } else {
+                log.error("鏈繛鎺ラ�氫俊涓棿浠讹紝涓嶈兘鍙戦�佹暟鎹�");
+            }
+        } catch (Exception e) {
+            log.error("鍚戦�氫俊涓棿浠跺彂閫佹暟鎹骇鐢熷紓甯�", e);
+        }
+    }
+
+
+    /**
+     * 鏋勯�犲績璺虫暟鎹�
+     *
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    private static byte[] createData(String rtuAddr) throws Exception {
+        UpConstant.addValve();//璋冩暣娴侀噺
+
+        byte[] bytes = creatHead(rtuAddr, "84", (byte)0xB0);
+
+        byte[] bs = new byte[1] ;
+        bs[0] = (byte)0x01 ;//鍒峰崱寮�闃�
+        bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+        bs = new byte[1] ;
+        bs[0] = (byte)0x01 ;//鍗$被鍨� 鐢ㄦ埛鍗�
+        bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+        bs = new byte[4] ;//IC鍗″湴鍧�
+        ByteUtil.hex2Bytes_LE(ServerProperties.icCardAddr, bs, 0);
+        bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+        bs = new byte[8] ;//IC鍗$紪鍙�
+        GlCreate.createIcCardNo(ServerProperties.icCardNo, bs, 0);
+        bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+        bs = new byte[4] ;//鐢ㄦ按鎴蜂綑棰�
+        ByteUtil.int2BCD_LE(UpConstant.remainMoney, bs, 0);
+        bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+        bs = new byte[5] ;//绱娴侀噺
+        ByteUtil.int2BCD_LE(UpConstant.totalAmount, bs, 0);
+        bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+        bs = new byte[5] ;//鐬椂娴侀噺
+        ByteUtil.int2BCD_LE(UpConstant.instantAmount, bs, 0);
+        bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+        bs = new byte[]{0x00, 0x00} ;//鎶ヨ
+        bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+        bs = new byte[]{0x00, 0x00} ;//鐘舵��
+        bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+        bs = new byte[6] ;//鎺у埗鍣ㄦ椂閽�
+        GlCreate.createTp(bs, 0);
+        bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpConstant.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpConstant.java
index ce2ba66..6d4213f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpConstant.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpConstant.java
@@ -13,15 +13,16 @@
     private static String openValveDt ;
     private static String closeValveDt ;
 
+    public static Integer instantAmount = 10123;//鐬椂娴侀噺10.000
     public static Integer totalAmount = 1234567;//瀹炰负12345.67
     public static Integer remainMoney = 56789;//瀹炰负567.89
-    public static Integer thisAmount = 1000;//瀹炰负10.00
-    public static Integer thisMoney = 1000;//瀹炰负10.00
+    public static Integer thisAmount = 0;//
+    public static Integer thisMoney = 0;//
     public static Integer thisTime = 10;//瀹炰负10
     public static Integer thisPrice = 100;//瀹炰负1.00
 
-    public static Integer perAmount = thisAmount;
-    public static Integer perMoney = thisMoney;
+    public static Integer perAmount = 10;
+    public static Integer perMoney = 0;
 
 
     public static void clearOpenValveDt(){
@@ -40,7 +41,11 @@
         return closeValveDt ;
     }
 
-    public static void closeValve(){
+    public static void addValve(){
+        perMoney = perAmount / (thisPrice / 100) ;
+        thisAmount += perAmount ;
+        thisMoney += perMoney ;
+
         totalAmount = totalAmount + perAmount ;
         remainMoney = remainMoney - perMoney ;
     }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java
index b5dd099..6b98168 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/ComSupportP206V1_0_0.java
@@ -20,8 +20,12 @@
 public class ComSupportP206V1_0_0 {
     protected static String mwUrlTest = "http://127.0.0.1:8070/rtuMw/com/test" ;
     protected static String mwUrlSendCom = "http://127.0.0.1:8070/rtuMw/com/send" ;
-
     protected static String rtuAddr = "532328059995" ;
+
+//    protected static String mwUrlTest = "http://8.140.179.55:8071/rtuMw/com/test" ;
+//    protected static String mwUrlSendCom = "http://8.140.179.55:8071/rtuMw/com/send" ;
+//    protected static String rtuAddr = "620202000066" ;
+
     protected static String rtuResultSendWebUrl = "http://127.0.0.1:65535/test/comRes/receive" ;
     protected static String vsIcCardNo = "61181622830147822" ;//铏氭嫙IC鍗$紪鍙凤紙鐢ㄦ埛铏氭嫙鍗″簭鍒楀彿锛�
 

--
Gitblit v1.8.0