From bda423b1aae1d5322116511651ae03a54cdcd231 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 26 十一月 2024 17:25:39 +0800
Subject: [PATCH] 1、几个测试模块系统的log4j.xml配置中的编码修改; 2、RTU升级模拟器增加命令行设置服务端IP和端口功能; 3、应王江海要求,井电双控协议中也实现远程升级功能,因井电双控协议、阀控器协议不同,而双方协议中的升级子协议相同,所以通信中间件做增量开发、适应性修改,以适应这种混合协议情况,同时也提高通信中间件运行效率。

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/PrefixedDataAvailableV202404.java |   32 +++++++++++++++++++-------------
 1 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/PrefixedDataAvailableV202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/PrefixedDataAvailableV202404.java
index de21587..c2a258c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/PrefixedDataAvailableV202404.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/PrefixedDataAvailableV202404.java
@@ -8,10 +8,12 @@
 import org.apache.logging.log4j.Logger;
 import org.apache.mina.core.buffer.BufferDataException;
 import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.core.session.IoSession;
 
 
 @AnnotationPrefixedDataAvailable(
 		protocolName = ProtocolConstantV206V202404.protocolName,
+		protocolVersion = ProtocolConstantV206V202404.protocolVer,
 		priority = ProtocolConstantV206V202404.priority,
 		onLineDataMinLength = ProtocolConstantV206V202404.onLineDataMinLength,
 		headMinLength = ProtocolConstantV206V202404.headMinLength)
@@ -21,6 +23,7 @@
 	private static final Logger log = LogManager.getLogger(PrefixedDataAvailableV202404.class) ;
 	
 	private static final String protocolName = ProtocolConstantV206V202404.protocolName ;
+	private static final short protocolVersion = ProtocolConstantV206V202404.protocolVer ;
 
 
 	/**
@@ -32,10 +35,11 @@
 	 * @return 涓嶆槸鏈崗璁暟鎹椂杩斿洖绌�
 	 * @throws Exception 寮傚父
 	 */
-	public PrefixedDataAvailableStatus forOnLine(IoBuffer in, 
-			int remain,
-			int minDataLength, //瀵瑰簲ProtocolConstantV2_0.onLineDataMinLength
-			int maxDataLength //瀵瑰簲ProtocolConstant.errorMaxLength
+	public PrefixedDataAvailableStatus forOnLine(IoSession ioSession,
+												 IoBuffer in,
+												 int remain,
+												 int minDataLength, //瀵瑰簲ProtocolConstantV2_0.onLineDataMinLength
+												 int maxDataLength //瀵瑰簲ProtocolConstant.errorMaxLength
 			) throws Exception {
 		
 		int oldPosition = in.position() ;
@@ -44,7 +48,7 @@
 		//in.position(0) ;//閿欒鐢ㄦ硶锛屽鏋滃彂鐢熺矘鍖呮暟鎹紝灏嗕細姝诲惊鐜�
 		in.position(oldPosition) ;
 
-		return this.doForData(preByte, minDataLength, maxDataLength) ;
+		return this.doForData(ioSession, preByte, minDataLength, maxDataLength) ;
 	}
 
 	/**
@@ -57,28 +61,30 @@
 	 * @throws Exception 寮傚父
 	 */
 	@Override
-	public PrefixedDataAvailableStatus forUpData(IoBuffer in, 
-			int remain,
-			int minDataLength,
-			int maxDataLength) throws Exception {
+	public PrefixedDataAvailableStatus forUpData(IoSession ioSession,
+												 IoBuffer in,
+												 int remain,
+												 int minDataLength,
+												 int maxDataLength) throws Exception {
 		int oldPosition = in.position() ;
 		byte[] preByte = new byte[remain];
 		in.get(preByte) ;
 		//in.position(0) ;//閿欒鐢ㄦ硶锛屽鏋滃彂鐢熺矘鍖呮暟鎹紝灏嗕細姝诲惊鐜�
 		in.position(oldPosition) ;
 		
-		return this.doForData(preByte, minDataLength, maxDataLength) ;
+		return this.doForData(ioSession, preByte, minDataLength, maxDataLength) ;
 
     }
 	/**
 	 * 杩涜鍒ゆ柇
+	 * @param ioSession ioSession
 	 * @param preByte byte[]
 	 * @param minDataLength 鏈�灏忔暟鎹暱搴�
 	 * @param maxDataLength 鏈�澶ф暟鎹暱搴�
 	 * @return PrefixedDataAvailableStatus
 	 * @throws Exception 寮傚父
 	 */
-	private PrefixedDataAvailableStatus doForData(byte[] preByte, int minDataLength, int maxDataLength) throws Exception{
+	private PrefixedDataAvailableStatus doForData(IoSession ioSession, byte[] preByte, int minDataLength, int maxDataLength) throws Exception{
 		int remain = preByte.length ;
     	
         if (remain < minDataLength) {
@@ -114,11 +120,11 @@
         
         if(remain == frameLen){
         	//涓嶆柇涓嶇矘
-            return new PrefixedDataAvailableStatus().completed(frameLen) ;
+            return new PrefixedDataAvailableStatus().completed(frameLen, protocolName, protocolVersion) ;
         }else if(remain > frameLen){
 			String headHex = ByteUtil.bytes2Hex(preByte, true) ;
         	log.warn("鏀跺埌鏁版嵁涔嬪抚鍓嶉儴锛�" + headHex + "锛屼絾鍙戠敓绮樺寘鐜拌薄銆�") ;
-            return new PrefixedDataAvailableStatus().adjoined(frameLen) ;
+            return new PrefixedDataAvailableStatus().adjoined(frameLen, protocolName, protocolVersion) ;
         }else{
         	// remain < dataLen
 			String headHex = ByteUtil.bytes2Hex(preByte, true) ;

--
Gitblit v1.8.0