From d9765e031e100e1d8eea34e086cb9c81766e1a00 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 21 二月 2025 09:52:14 +0800
Subject: [PATCH] 针对王江海制定的协议: 1、优化相关注释; 2、优化代码; 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