From dba2b8fa7830de783b698d22671d63bdf2de9521 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期一, 06 五月 2024 16:45:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd56Vo.java            |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd55Vo.java            |   10 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_69_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_C0_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_92_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd97Vo.java            |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_39_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/ParseParamsForDownV202404.java    |   43 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd98Vo.java            |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd15Vo.java            |   14 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd16Vo.java            |   11 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Down.java             |   82 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Down.java             |   87 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_68_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Up.java               |   69 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_91_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/ParseParamsForUpV202404.java      |   39 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Up.java               |  136 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd10Vo.java            |   10 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Down.java             |   81 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataAlarmVo.java                  |   28 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd50Vo.java            |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Down.java             |   76 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java            |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd65Vo.java            |   10 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Down.java             |   83 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Up.java               |  143 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Up.java               |   80 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80Vo.java             |  204 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlCreate.java        |  129 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Down.java             |   76 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_93_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Down.java             |   68 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5BVo.java             |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Down.java             |   83 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java               |  115 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Up.java               |   74 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/说明.txt                             |    7 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6A_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_38_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd81Vo.java             |   85 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Up.java               |   75 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd8AVo.java             |   44 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5CVo.java            |   10 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_35_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd15Vo.java             |   30 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Up.java               |   92 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_65_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Down.java             |   76 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd10Vo.java             |   28 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Up.java               |   65 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3C_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java                                        |   39 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CodeV202404.java                  |  101 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd55Vo.java             |   53 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java             |   30 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Down.java             |   67 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Up.java               |   74 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd50Vo.java             |   28 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Down.java             |  145 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java         |  253 +++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_36_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_66_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Down.java             |   76 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd97Vo.java             |   29 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3D_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Down.java             |   68 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java               |  100 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataV202404.java                  |   25 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6C_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_67_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java             |  100 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_71_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/ProtocolConstantV206V202404.java  |   50 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_37_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/OnLineV202404.java                |   39 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Up.java               |   69 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Down.java             |   76 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java                                     |   12 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Up.java               |  118 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CommonV202404.java                |  223 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3B_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataStateVo.java                  |   24 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5CVo.java             |   40 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd65Vo.java             |   60 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6B_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_10_Down.java              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd98Vo.java             |   29 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java                |  155 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtil.java                                        |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/说明.txt                            |    5 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd02Vo.java             |   28 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Up.java               |   93 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/PrefixedDataAvailableV202404.java |  130 +
 102 files changed, 4,664 insertions(+), 54 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java
index 1bc29b7..5335fb6 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java
@@ -13,12 +13,12 @@
 	private static final long serialVersionUID = 20160805192500101L;
 
 	public String rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
-	private String commandId ;//鍛戒护ID锛屽彲鑳戒负null
-	private String rtuAddr ;//缁堢鍦板潃
-	private String protocol ;//鏁版嵁鎵�瀵瑰簲鐨勫崗璁悕绉�
-	private String code ;//鏁版嵁鎵�瀵瑰簲鐨勫姛鑳界爜:
-	private Object subData ;//瀵瑰簲鍚勪釜鍔熻兘鐮佺殑鍏蜂綋鏁版嵁
-	private String hex ;//涓婃姤鏁版嵁鐨勫崄鍏繘鍒�
+	public String commandId ;//鍛戒护ID锛屽彲鑳戒负null
+	public String rtuAddr ;//缁堢鍦板潃
+	public String protocol ;//鏁版嵁鎵�瀵瑰簲鐨勫崗璁悕绉�
+	public String code ;//鏁版嵁鎵�瀵瑰簲鐨勫姛鑳界爜:
+	public Object subData ;//瀵瑰簲鍚勪釜鍔熻兘鐮佺殑鍏蜂綋鏁版嵁
+	public String hex ;//涓婃姤鏁版嵁鐨勫崄鍏繘鍒�
 
 	public String toString() {
 		StringBuilder sb = new StringBuilder() ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Down.java
index 88025f2..f10fdef 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Down.java
@@ -19,7 +19,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_10_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_10_Down.java
index b37477e..356d492 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_10_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_10_Down.java
@@ -27,7 +27,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java
index a12a508..3e518e0 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java
@@ -28,7 +28,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_35_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_35_Down.java
index 567ff4c..df34fc2 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_35_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_35_Down.java
@@ -28,7 +28,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_36_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_36_Down.java
index 72c9171..1c19646 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_36_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_36_Down.java
@@ -28,7 +28,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_37_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_37_Down.java
index af6f4ac..d9e1c7f 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_37_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_37_Down.java
@@ -28,7 +28,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_38_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_38_Down.java
index a18ca65..3279544 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_38_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_38_Down.java
@@ -28,7 +28,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_39_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_39_Down.java
index 3686b0e..93a35ef 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_39_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_39_Down.java
@@ -28,7 +28,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Down.java
index 71892c8..42aafdc 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Down.java
@@ -28,7 +28,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3B_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3B_Down.java
index 2947121..a4edba7 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3B_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3B_Down.java
@@ -28,7 +28,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3C_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3C_Down.java
index 9c757f8..98c53c8 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3C_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3C_Down.java
@@ -28,7 +28,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3D_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3D_Down.java
index 37985d6..5387d72 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3D_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3D_Down.java
@@ -28,7 +28,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_65_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_65_Down.java
index b84d33e..ab45ea4 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_65_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_65_Down.java
@@ -27,7 +27,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_66_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_66_Down.java
index b84072d..2b4a92f 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_66_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_66_Down.java
@@ -29,7 +29,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_67_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_67_Down.java
index 2b0f2fe..765a2b1 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_67_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_67_Down.java
@@ -27,7 +27,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_68_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_68_Down.java
index 28e2fae..9eb3ad5 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_68_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_68_Down.java
@@ -27,7 +27,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_69_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_69_Down.java
index 621c3b2..8f5fe11 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_69_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_69_Down.java
@@ -27,7 +27,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6A_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6A_Down.java
index 8e538a3..cdac1c1 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6A_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6A_Down.java
@@ -27,7 +27,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6B_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6B_Down.java
index d681e0e..fb23c53 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6B_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6B_Down.java
@@ -27,7 +27,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6C_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6C_Down.java
index 8e7a7a3..aeb1980 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6C_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6C_Down.java
@@ -28,7 +28,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_71_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_71_Down.java
index 29289ca..9d7e002 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_71_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_71_Down.java
@@ -23,7 +23,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Down.java
index d60cfc3..d12c250 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Down.java
@@ -23,7 +23,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Down.java
index 459107a..753828d 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Down.java
@@ -23,7 +23,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Down.java
index 1541de3..0581296 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Down.java
@@ -23,7 +23,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_91_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_91_Down.java
index 279f96c..d8be3a8 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_91_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_91_Down.java
@@ -28,7 +28,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_92_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_92_Down.java
index 5bf918b..669d4f5 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_92_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_92_Down.java
@@ -27,7 +27,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_93_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_93_Down.java
index 7437c05..9bb634d 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_93_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_93_Down.java
@@ -27,7 +27,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Down.java
index baaa114..11fd9a7 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Down.java
@@ -28,7 +28,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Down.java
index a3d4f8b..d809aa1 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Down.java
@@ -28,7 +28,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_C0_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_C0_Down.java
index cba13dd..90c0eee 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_C0_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_C0_Down.java
@@ -23,7 +23,7 @@
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛�
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
         midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
diff --git "a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/\350\257\264\346\230\216.txt" "b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/\350\257\264\346\230\216.txt"
index 4f9010c..6505ee9 100644
--- "a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/\350\257\264\346\230\216.txt"
+++ "b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/\350\257\264\346\230\216.txt"
@@ -4,4 +4,9 @@
 浣嗗疄鐜扮殑閮ㄥ垎鍙互鐢ㄦ潵娴嬭瘯娴嬫帶涓�浣撻榾锛堜笌娈靛織寮轰竴璧锋祴璇曡繃锛夈��
 鐩墠鎯呭喌涓嬶紝杩欑増鏈崗璁疄鐜颁笉鑳藉簲鐢ㄤ簬瀹為檯椤圭洰涓紝濡傛灉蹇呴』瀹炵幇锛�
 杩橀渶瑕佺粨鍚堢‖浠跺崗璁叿浣撳疄鐜板唴瀹瑰啀瀹炵幇閫氫俊涓棿浠剁殑鍗忚瑙f瀽涓庢瀯閫犻儴鍒嗭紝
-杩橀渶瑕佸疄鐜颁笂琛屾暟鎹鐞嗕换鍔℃爲閮ㄥ垎銆�
\ No newline at end of file
+杩橀渶瑕佸疄鐜颁笂琛屾暟鎹鐞嗕换鍔℃爲閮ㄥ垎銆�
+
+
+闈虫�荤増娴嬫帶涓�浣撻榾涓庣帇姹熸捣鐗堟祴鎺т竴浣撻榾涓嶈兘鍦ㄥ悓涓�涓腑闂翠欢杩愯锛�
+鍥犱负涓や釜鐗堟湰鐨勫崗璁崗璁ご閮戒竴鏍凤紝娌℃硶鍖哄垎寮�鏉ワ紝濡傛灉涓ょ璁惧
+閮借搴旂敤锛岄渶瑕侀儴缃蹭袱涓�氫俊涓棿浠躲��
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CodeV202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CodeV202404.java
new file mode 100644
index 0000000..0be4b8b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CodeV202404.java
@@ -0,0 +1,101 @@
+package com.dy.common.mw.protocol.p206V202404;
+
+public class CodeV202404 {
+	//鍔熻兘鐮佷负瀛楃涓诧紝鍗佸叚杩涘埗鏁版嵁
+	public static final String cd_02 = "02" ;//閾捐矾妫�娴�
+	public static final String cd_10 = "10" ;//璁剧疆璁惧缁堢鍦板潃
+	public static final String cd_8A = "8A" ;//璁惧鐧诲綍
+	public static final String cd_50 = "50" ; //鏌ヨ璁惧缁堢鍦板潃
+	public static final String cd_80 = "80" ; //璁惧缁堢宸ヤ綔涓婃姤
+	public static final String cd_81 = "81" ; //璁惧缁堢闅忔満鑷姤
+	public static final String cd_5B = "5B" ; //鏌ヨ璁惧缁堢瀹炴椂鍊�
+	public static final String cd_65 = "65" ; //鏌ヨ璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍
+	public static final String cd_97 = "97" ; //娓呴櫎璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍
+	public static final String cd_15 = "15" ; //杩滅▼鐢ㄦ埛鍏呭��
+	public static final String cd_55 = "55" ; //鏌ヨ璁惧缁堢鍏呭�艰褰�
+	public static final String cd_98 = "98" ; //娓呯┖璁惧缁堢鍏呭�艰褰�
+	public static final String cd_16 = "16" ; //璁剧疆璁惧缁堢鍓╀綑姘撮噺鍜屽墿浣欓噾棰濇姤璀﹀��
+	public static final String cd_56 = "56" ; //鏌ヨ璁惧缁堢鍓╀綑姘撮噺鍜屽墿浣欓噾棰濇姤璀﹀��
+	public static final String cd_5C = "5C" ; //鏌ヨ璁惧缁堢鐨勬棩璁板綍
+	public static final String cd_99 = "99" ; //娓呯┖璁惧缁堢鏃ヨ褰�
+	public static final String cd_22 = "22" ; //璁剧疆鏈轰簳骞存渶澶у紑閲囬噺鍜屾按浣嶄笅闄�
+	public static final String cd_68 = "68" ; //鏌ヨ鏈轰簳骞存渶澶у紑閲囬噺鍜屾按浣嶄笅闄�
+	public static final String cd_30 = "30" ; //璁剧疆璁惧缁堢鐢ㄦ按鏈夋晥
+	public static final String cd_31 = "31" ; //璁剧疆璁惧缁堢鐢ㄦ按鏃犳晥
+	public static final String cd_92 = "92" ; //骞冲彴杩滅▼寮�鍚按娉�/闃�闂�
+	public static final String cd_93 = "93" ; //骞冲彴杩滅▼鍏抽棴姘存车/闃�闂�
+	public static final String cd_A2 = "A2" ; //APP杩滅▼寮�鍚按娉�/闃�闂�
+	public static final String cd_A3 = "A3" ; //APP杩滅▼鍏抽棴姘存车/闃�闂�
+	public static final String cd_83 = "83" ; //閬ユ祴缁堢瀹氱偣涓婃姤
+	public static final String cd_84 = "84" ; //鍒峰崱寮�娉�/闃�涓婃姤
+	public static final String cd_85 = "85" ; //鍒峰崱鍏虫车/闃�涓婃姤
+	public static final String cd_9A = "9A" ; //娓呴櫎骞寸敤姘撮噺鍜屽勾鐢ㄧ數閲�
+	public static final String cd_26 = "26" ; //璁剧疆璁惧缁堢骞寸敤姘撮噺
+	public static final String cd_21 = "21" ; //璁剧疆璁惧缁堢IP鍦板潃
+	public static final String cd_86 = "86" ; //鏌ヨ璁惧缁堢IP鍦板潃
+	public static final String cd_23 = "23" ; //璁剧疆璁惧缁堢鍩熷悕
+	public static final String cd_87 = "87" ; //鏌ヨ璁惧缁堢鍩熷悕
+	public static final String cd_88 = "88" ; //鏌ヨ璁惧缁堢娉ㄥ唽鍙�
+	public static final String cd_24 = "24" ; //璁剧疆璁惧缁堢娉ㄥ唽鍙�
+	public static final String cd_25 = "25" ; //璁剧疆璁惧缁堢閲嶆柊娉ㄥ唽
+	public static final String cd_9B = "9B" ; //娓呴櫎璁惧缁堢娉ㄥ唽鍙�
+	public static final String cd_9C = "9C" ; //榛戝悕鍗曡繙绋嬪己鍒跺叧闂按娉�/闃�闂�
+	public static final String cd_C2 = "C2" ; //寮�鍏虫按娉�/闃�闂ㄦ垚鍔�/澶辫触涓婃姤
+
+	public static String getCodeName(String code) {
+		String name = (code.equals(cd_02) ? "閾捐矾妫�娴�" :
+			(code.equals(cd_10) ? "璁剧疆璁惧缁堢鍦板潃" :
+			(code.equals(cd_8A) ? "璁惧鐧诲綍" :
+			(code.equals(cd_50) ? "鏌ヨ璁惧缁堢鍦板潃" :
+			(code.equals(cd_80) ? "璁惧缁堢宸ヤ綔涓婃姤" :
+			(code.equals(cd_81) ? "璁惧缁堢闅忔満鑷姤" :
+			(code.equals(cd_5B) ? "鏌ヨ璁惧缁堢瀹炴椂鍊�" :
+			(code.equals(cd_65) ? "鏌ヨ璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍" :
+			(code.equals(cd_97) ? "娓呴櫎璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍" :
+			(code.equals(cd_15) ? "杩滅▼鐢ㄦ埛鍏呭��" :
+			(code.equals(cd_55) ? "鏌ヨ璁惧缁堢鍏呭�艰褰�" :
+			(code.equals(cd_98) ? "娓呯┖璁惧缁堢鍏呭�艰褰�" :
+			(code.equals(cd_16) ? "璁剧疆璁惧缁堢鍓╀綑姘撮噺鍜屽墿浣欓噾棰濇姤璀﹀��" :
+			(code.equals(cd_56) ? "鏌ヨ璁惧缁堢鍓╀綑姘撮噺鍜屽墿浣欓噾棰濇姤璀﹀��" :
+			(code.equals(cd_5C) ? "鏌ヨ璁惧缁堢鐨勬棩璁板綍" :
+			(code.equals(cd_99) ? "娓呯┖璁惧缁堢鏃ヨ褰�" :
+			(code.equals(cd_22) ? "璁剧疆鏈轰簳骞存渶澶у紑閲囬噺鍜屾按浣嶄笅闄�" :
+			(code.equals(cd_68) ? "鏌ヨ鏈轰簳骞存渶澶у紑閲囬噺鍜屾按浣嶄笅闄�" :
+			(code.equals(cd_30) ? "璁剧疆璁惧缁堢鐢ㄦ按鏈夋晥" :
+			(code.equals(cd_31) ? "璁剧疆璁惧缁堢鐢ㄦ按鏃犳晥" :
+			(code.equals(cd_92) ? "骞冲彴杩滅▼寮�鍚按娉�/闃�闂�" :
+			(code.equals(cd_93) ? "骞冲彴杩滅▼鍏抽棴姘存车/闃�闂�" :
+			(code.equals(cd_A2) ? "APP杩滅▼寮�鍚按娉�/闃�闂�" :
+			(code.equals(cd_A3) ? "APP杩滅▼鍏抽棴姘存车/闃�闂�" :
+			(code.equals(cd_83) ? "閬ユ祴缁堢瀹氱偣涓婃姤" :
+			(code.equals(cd_84) ? "鍒峰崱寮�娉�/闃�涓婃姤" :
+			(code.equals(cd_85) ? "鍒峰崱鍏虫车/闃�涓婃姤" :
+			(code.equals(cd_9A) ? "娓呴櫎骞寸敤姘撮噺鍜屽勾鐢ㄧ數閲�" :
+			(code.equals(cd_26) ? "璁剧疆璁惧缁堢骞寸敤姘撮噺" :
+			(code.equals(cd_21) ? "璁剧疆璁惧缁堢IP鍦板潃" :
+			(code.equals(cd_86) ? "鏌ヨ璁惧缁堢IP鍦板潃" :
+			(code.equals(cd_23) ? "璁剧疆璁惧缁堢鍩熷悕" :
+			(code.equals(cd_87) ? "鏌ヨ璁惧缁堢鍩熷悕" :
+			(code.equals(cd_88) ? "鏌ヨ璁惧缁堢娉ㄥ唽鍙�" :
+			(code.equals(cd_24) ? "璁剧疆璁惧缁堢娉ㄥ唽鍙�" :
+			(code.equals(cd_25) ? "璁剧疆璁惧缁堢閲嶆柊娉ㄥ唽" :
+			(code.equals(cd_9B) ? "娓呴櫎璁惧缁堢娉ㄥ唽鍙�" :
+			(code.equals(cd_9C) ? "榛戝悕鍗曡繙绋嬪己鍒跺叧闂按娉�/闃�闂�" :
+			(code.equals(cd_C2) ? "寮�鍏虫按娉�/闃�闂ㄦ垚鍔�/澶辫触涓婃姤" :
+			""))))))))))))))))))))))))))))))))))))))) ;
+		return name ;
+	}
+
+	/**
+	 * 鏄惁涓烘湁鏁堝姛鑳界爜
+	 * @param code 鍔熻兘鐮�
+	 * @return 鏈夋晥true锛屾棤鏁坒alse
+	 */
+	public static boolean isValid(String code){
+		String name = getCodeName(code) ;
+		if(name != null && !name.equals("")){
+			return true ;
+		}
+		return false ;
+	}
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CommonV202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CommonV202404.java
new file mode 100644
index 0000000..42c9190
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CommonV202404.java
@@ -0,0 +1,223 @@
+package com.dy.common.mw.protocol.p206V202404;
+
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+import com.dy.common.util.CRC8_for_2_0;
+
+
+public class CommonV202404 {
+    /**
+     * 妫�鏌ュご
+     * @param bs 涓婅瀛楄妭鏁扮粍
+     * @return true鏄�,false鍚�
+     * @throws Exception  寮傚父
+     */
+    public Boolean isThisProtocolHead(byte[] bs) throws Exception{
+        if(bs == null){
+            return null ;
+        }else if(bs.length >= (ProtocolConstantV206V202404.ctrlIndex - 1)
+                && bs[0] == ProtocolConstantV206V202404.P_Head_Byte){
+            if(bs[2] == ProtocolConstantV206V202404.P_Head_Byte){
+                return true ;
+            }else if((byte)(bs[2] & 0xF8) == ProtocolConstantV206V202404.P_Head_Byte){
+                //濡傛灉鎺у埗鍩熴�佸湴鍧�鍩熴�佺敤鎴锋暟鎹煙(搴旂敤灞�)鐨勫瓧鑺傛�绘暟澶т簬255锛屽垯閫氳繃鎵╁睍绗簩涓紑濮嬪瓧绗�0x68鐨勪綆3浣嶄綔涓洪暱L鐨勯珮浣嶆墿灞�
+                //0xF8浜岃繘鍒讹細 11111000
+                return true ;
+            }else{
+                return false ;
+            }
+        }else{
+            return false ;
+        }
+    }
+
+    /**
+     * 妫�鏌ュご
+     * @param bs 涓婅瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public void checkHead(byte[] bs) throws Exception{
+        if(bs.length < ProtocolConstantV206V202404.lenHead2Code
+                || bs[0] != ProtocolConstantV206V202404.P_Head_Byte){
+            throw new Exception("涓婅鏁版嵁甯уご涓嶆纭紒") ;
+        }else{
+            if(bs.length >= ProtocolConstantV206V202404.lenHead2Code){
+                if(bs[2] != ProtocolConstantV206V202404.P_Head_Byte
+                    && (byte)(bs[2] & 0xF8) != ProtocolConstantV206V202404.P_Head_Byte){
+                    throw new Exception("涓婅鏁版嵁甯уご涓嶆纭紒") ;
+                }
+            }else{
+                throw new Exception("涓婅鏁版嵁甯уご涓嶆纭紒") ;
+            }
+        }
+    }
+
+    /**
+     * 妫�鏌ュ熬
+     * @param bs 涓婅瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public void checkTail(byte[] bs) throws Exception{
+        if(bs.length < 1 || bs[bs.length - 1] != ProtocolConstantV206V202404.P_Tail_Byte){
+            throw new Exception("涓婅鏁版嵁灏句笉姝g‘锛�") ;
+        }
+    }
+
+
+    /**
+     * 鍒嗘瀽甯ч暱搴�
+     * @param bs 涓婅瀛楄妭鏁扮粍
+     * @return 鏁版嵁闀垮害
+     * @throws Exception 寮傚父
+     */
+    public int parseFrameLen(byte[] bs)throws Exception{
+        if(bs[2] != ProtocolConstantV206V202404.P_Head_Byte
+                && (byte)(bs[2] & 0xF8) != ProtocolConstantV206V202404.P_Head_Byte){
+            int lenH = bs[2] & 0x07 ;
+            int lenL = ByteUtilUnsigned.byte2Byte(bs, ProtocolConstantV206V202404.dataLenIndex) ;
+            return (lenH * 100) + (lenL + ProtocolConstantV206V202404.lenHead2ctrl + ProtocolConstantV206V202404.lenTail) ;
+        }else{
+            int len = ByteUtilUnsigned.byte2Byte(bs, ProtocolConstantV206V202404.dataLenIndex) ;
+            return len + ProtocolConstantV206V202404.lenHead2ctrl + ProtocolConstantV206V202404.lenTail ;
+        }
+    }
+
+
+    /**
+     * 鍒嗘瀽鐢ㄦ埛鏁版嵁鍩熷瓧鑺傛暟
+     * @param bs 涓婅瀛楄妭鏁扮粍
+     * @return 鏁版嵁闀垮害
+     * @throws Exception 寮傚父
+     */
+    public int parseDataLen(byte[] bs)throws Exception{
+        return parseFrameLen(bs) ;
+    }
+
+
+    /**
+     * 鍒嗘瀽Rtu鍦板潃
+     * @param bs 涓婅瀛楄妭鏁扮粍
+     * @return 鎺у埗鍣ㄥ湴鍧�
+     * @throws Exception 寮傚父
+     */
+    public String parseRtuAddr(byte[] bs)throws Exception{
+        String rtuAddrBCD = "" + ByteUtil.BCD2Long_BE(bs, ProtocolConstantV206V202404.rtuAddr1Index_start, ProtocolConstantV206V202404.rtuAddr1Index_end) ;
+        String rtuAddrStr = "" + ByteUtilUnsigned.bytes2Short_LE(bs, ProtocolConstantV206V202404.rtuAddr2Index_start) ;
+        while(rtuAddrStr.length() < 5){
+            rtuAddrStr = "0" + rtuAddrStr ;
+        }
+        return rtuAddrBCD + rtuAddrStr ;
+    }
+
+
+    /**
+     * 鍒嗘瀽Rtu鍦板潃
+     * @param bs 涓婅瀛楄妭鏁扮粍
+     * @param index 鍚浣�
+     * @return 鎺у埗鍣ㄥ湴鍧�
+     * @throws Exception 寮傚父
+     */
+    public String parseRtuAddr(byte[] bs, int index)throws Exception{
+        String rtuAddrBCD = "" + ByteUtil.BCD2Long_BE(bs, index, index + ProtocolConstantV206V202404.rtuAddr1Index_end - ProtocolConstantV206V202404.rtuAddr1Index_start) ;//鍦板潃鏄ぇ绔ā寮�
+        String rtuAddrStr = "" + ByteUtilUnsigned.bytes2Short_LE(bs, index + 1 + ProtocolConstantV206V202404.rtuAddr1Index_end - ProtocolConstantV206V202404.rtuAddr1Index_start) ;
+        while(rtuAddrStr.length() < 5){
+            rtuAddrStr = "0" + rtuAddrStr ;
+        }
+        return rtuAddrBCD + rtuAddrStr ;
+    }
+
+
+    /**
+     * 鍒嗘瀽鍔熻兘鐮�
+     * @param bs 涓婅瀛楄妭鏁扮粍
+     * @return 鍔熻兘鐮�
+     */
+    public String parseCode(byte[] bs){
+        return ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V202404.codeIndex, 1) ;
+    }
+
+    /**
+     * 鏍¢獙鍜屾鏌�
+     * @param bs  涓婅瀛楄妭鏁扮粍
+     * @return 閫氳繃null锛屾湭閫氳繃杩斿洖鍘熷洜
+     * @throws Exception 寮傚父
+     */
+    public String checkCrc_str(byte[] bs) throws Exception {
+        byte crcCompute = (byte)new CRC8_for_2_0().CRC8(bs, ProtocolConstantV206V202404.ctrlIndex, bs.length - 3) ;
+        byte crcInBs = bs[bs.length - 2] ;
+        if(crcCompute == crcInBs){
+            return null ;
+        }else{
+            return "璁$畻CRC鏄�:" + crcCompute + "锛屼笂浼燙RC鏄�" + crcInBs ;
+        }
+    }
+
+
+    /*
+    鏋勯�犳帶鍒跺煙
+    D7                  D6                  D5锝濪4            D3锝濪0
+    浼犺緭鏂瑰悜浣� DIR        鎷嗗垎鏍囧織浣� DIV       甯ц鏁颁綅 FCB       鍔熻兘鐮�
+    1銆佷紶杈撴柟鍚戜綅(DIR)
+       DIR=0锛氳〃绀烘甯ф枃鏄敱涓績绔欏彂鍑虹殑涓嬭鎶ユ枃銆�
+       DIR=1锛氳〃绀烘甯ф枃鏄敱缁堢绔欏彂鍑虹殑涓婅鎶ユ枃銆�
+       姣忓抚鎶ユ枃鐨勯�氫俊杩囩▼涓槸涓嶅彉鐨勩��
+    2銆佹媶鍒嗘爣蹇椾綅(DIV)
+       DIV=1锛氳〃绀烘鎶ユ枃宸茶鎷嗗垎涓鸿嫢骞插抚锛屾帴鏀跺悗闇�瑕佹嫾鎺ャ�傛鏃舵帶鍒跺煙鍚庡鍔犱竴涓瓧鑺傦紝涓烘媶鍒嗗抚璁版暟DIVS锛岄噰鐢˙IN鍊掕鏁�(255-1),1琛ㄧず鏈�鍚庝竴甯ф暟鎹�傚惎鍔ㄧ珯鍙戦�佹椂鑷姩鍔犱笂鍙戦�侊紝浠庡姩绔欒繑甯ф椂瀵瑰簲鍔犱笂纭銆�
+       DIV=0锛氳〃绀烘甯ф姤鏂囦负鍗曞抚銆�
+    3銆佸抚璁℃暟浣�(FCB)锛�
+       FCB琛ㄧず姣忎釜绔欒繛缁殑鍙戦��/纭鎴栬姹�/鍝嶅簲鏈嶅姟鐨勫彉鍖栦綅銆侳CB浣嶇敤鏉ラ槻姝俊鎭紶杈撶殑涓㈠け鍜岄噸澶嶃��
+       鍚姩绔欏悜鍚屼竴浠庡姩绔欎紶杈撴柊鐨勫彂閫�/纭鎴栬姹�/鍝嶅簲浼犺緭鎶ュ姟鏃讹紝鍚姩绔欏皢璁剧疆FCB鍊硷紝鑻ヨ秴鏃舵湭鍒颁粠绔欑殑鎶ユ枃锛屾垨鎺ユ敹鍑虹幇宸敊锛屽垯鍚姩绔欏皢FCB鍑�1锛岄噸澶嶅師鏉ョ殑鍙戦��/纭鎴栬姹�/鍝嶅簲鏈嶅姟锛岀洿鍒癋CB鍑忎负0锛岃〃绀烘湰娆′紶杈撴湇鍔″け璐ャ��
+       浠庡姩绔欐敹鍒板惎鍔ㄧ珯FCB鍊间笉涓�0鐨勬姤鏂囧苟鎸夌収瑕佹眰纭鎴栧搷搴旀椂锛屽簲杩斿洖鐩稿簲鐨凢CB鍊笺��
+    */
+    public byte createCtrl(byte dir, byte funcCode){
+        byte b = dir;//DIR = 1(0x80)锛岃〃绀烘甯ф姤鏂囨槸鐢辩粓绔彂鍑虹殑涓婅鎶ユ枃锛�
+        b = (byte)(b | funcCode) ;
+        //DIV = 1(0x40)锛岃〃绀烘鎶ユ枃宸茶鎷嗗垎涓鸿嫢骞插抚
+        //FCB = 1(0x08)锛岃〃绀哄彧鍙戜竴娆�
+        b = (byte)(b |0x08) ;
+        //DIR = 0 涓嬭锛屽垯鍔熻兘鐮侀噰鐢�0
+        return b ;
+    }
+
+    /**
+     * 寰楀埌鍏冲紑闃�绫诲瀷鍚嶇О
+     * @param type 瀛楄妭
+     * @return 鍚嶇О
+     */
+    public static String openCloseValveType(byte type){
+        return switch (type) {
+            case 1 -> "鍒峰崱寮�闃�";
+            case 2 -> "鍒峰崱鍏抽榾";
+            case 3 -> "涓績绔欏紑闃�";
+            case 4 -> "涓績绔欏叧闃�";
+            case 5 -> "娆犺垂鍏抽榾";
+            case 6 -> "娴侀噺璁℃晠闅滃叧闃�";
+            case 7 -> "绱ф�ュ叧闃�";
+            case 8 -> "鐢ㄦ埛杩滅▼寮�闃�";
+            case 9 -> "鐢ㄦ埛杩滅▼鍏抽榾";
+            case 16 -> "绠¢亾鏃犳按鑷姩鍏抽榾";
+            default -> "鏈煡";
+        };
+    }
+
+	/*
+	 * 鍒嗘瀽鐗堟湰鍙�
+	 * @param bs  涓婅瀛楄妭鏁扮粍
+	 * @return 鐗堟湰鍙�
+	 * @throws Exception 寮傚父
+	public String parseVersion(byte[] bs)throws Exception{
+		short ver = ByteUtilUnsigned.byte2Byte(bs, ProtocolConstantV206V202404.versionIndex) ;
+		char[] cs = ("" + ver).toCharArray() ;
+		StringBuilder vs = new StringBuilder() ;
+		for(byte i = 0 ; i < cs.length; i++){
+			if(i == 0){
+				vs.append(cs[i]) ;
+			}else{
+				vs.append(".").append(cs[i]) ;
+			}
+		}
+		return vs.toString() ;
+	}
+	*/
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataAlarmVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataAlarmVo.java
new file mode 100644
index 0000000..65f6fcb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataAlarmVo.java
@@ -0,0 +1,28 @@
+package com.dy.common.mw.protocol.p206V202404;
+
+import lombok.Data;
+
+@Data
+public class DataAlarmVo {
+    public Byte batteryVolt ;// 钃勭數姹犵數鍘�
+    public Byte loss ;//婕忔崯
+    public Byte meter ;//浠〃
+    public Byte valve ;//闃�闂�
+
+    public String toString(){
+        StringBuilder str = new StringBuilder() ;
+        str.append("      鎶ヨ:\n");
+        str.append("         钃勭數姹犵數鍘嬶細");
+        str.append(batteryVolt==null?"":(batteryVolt==1?"鎶ヨ":"姝e父"));
+        str.append("\n");
+        str.append("         婕忔崯锛�");
+        str.append(loss==null?"":(loss==1?"鎶ヨ":"姝e父"));
+        str.append("\n");
+        str.append("         浠〃锛�");
+        str.append(meter==null?"":(meter==1?"鎶ヨ":"姝e父"));
+        str.append("\n");
+        str.append("         闃�闂細");
+        str.append(valve==null?"":(valve==1?"鎶ヨ":"姝e父"));
+        return str.toString() ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataStateVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataStateVo.java
new file mode 100644
index 0000000..41acc0d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataStateVo.java
@@ -0,0 +1,24 @@
+package com.dy.common.mw.protocol.p206V202404;
+
+import lombok.Data;
+
+@Data
+public class DataStateVo  {
+    public Byte icCard;// IC鍗″姛鑳�
+    public Byte working;//宸ヤ綔鐘舵��
+    public Byte valve ;//闃�闂�
+
+    public String toString(){
+        StringBuilder str = new StringBuilder() ;
+        str.append("      鐘舵��:\n");
+        str.append("         IC 鍗″姛鑳斤細");
+        str.append(icCard ==null?"":(icCard ==1?"鏈夋晥":"鏃犳晥"));
+        str.append("\n");
+        str.append("         宸ヤ綔鐘舵�侊細");
+        str.append(working ==null?"":(working ==1?"鍚姩":"鍋滄"));
+        str.append("\n");
+        str.append("         闃�闂ㄧ姸鎬侊細");
+        str.append(valve==null?"":(valve==1?"鎵撳紑":"鍏抽棴"));
+        return str.toString() ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataV202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataV202404.java
new file mode 100644
index 0000000..646d5ec
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataV202404.java
@@ -0,0 +1,25 @@
+package com.dy.common.mw.protocol.p206V202404;
+
+import lombok.Data;
+
+@Data
+public class DataV202404 implements java.io.Serializable{
+	
+	private static final long serialVersionUID = 202404280919001L;
+	
+	public String rtuAddr ;//RtuAddr
+
+	public Object subData ;
+
+	public String dt ;//閫氫俊涓棿浠朵骇鐢熸敹鎶ユ椂闂�(yyyy-MM-dd hh:mm:ss)
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("   鎺у埗鍣ㄥ湴鍧� : " + (rtuAddr==null?"":rtuAddr) + "\n") ;
+		sb.append("   缁堢鏁版嵁:\n") ;
+		if(subData != null){
+			sb.append(subData.toString()) ;
+		}
+		return sb.toString() ;
+	}
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java
new file mode 100644
index 0000000..08c5eb2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DriverV202404.java
@@ -0,0 +1,155 @@
+package com.dy.common.mw.protocol.p206V202404;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.util.DateTime;
+
+import java.net.URI;
+import java.net.URL;
+
+@AnnotationDriver(name= ProtocolConstantV206V202404.protocolName)
+public class DriverV202404 extends Driver {
+	
+	private static String scanRootPackage = "com.dy.common.mw.protocol.p206V202404." ;
+	
+	//鍦―river涓槸鍗曚緥锛岄殢Driver鐨勫崟渚嬪璞″湪鍗曠嚎绋嬩腑杩愯
+	private ParseParamsForUpV202404 upCpParams ;
+	private ParseParamsForDownV202404 downCpParams ;
+	
+	private Boolean reportOrResponse_trueOrFalse = null ;
+	private String rtuAddrInData = null ;
+
+	public DriverV202404(){
+		upCpParams = new ParseParamsForUpV202404() ;
+		downCpParams = new ParseParamsForDownV202404() ;
+	}
+
+
+	/**
+	 * 鎵弿璇嗗埆鍔熻兘鐮佹敞瑙g被
+	 */
+	@Override
+	public void scanAnnotationCode() throws Exception{
+		if(!scanRootPackage.endsWith(".")){
+			scanRootPackage += "." ;
+		}
+		URL url = this.getClass().getResource("/" + scanRootPackage.replace('.', '/'));
+		URI uri = new URI(url.toString());  
+		super.doScanAnnotationCode(this, ProtocolConstantV206V202404.protocolName, uri, scanRootPackage) ;
+	}
+
+	/**
+	 * 瑙f瀽涓婅鏁版嵁
+	 * @param isLowPower 鏄惁鍦ㄤ綆鍔熻�楃幆澧冧笅杩愯
+	 * @param rtuAddr
+	 * @param upBuffer
+	 * @param callback
+	 * @param upHex
+	 * @return
+	 */
+	@Override
+	public MidResult[] parseData(Boolean isLowPower, String rtuAddr, byte[] upBuffer, String upHex, DriverParserDataCallback callback, Object... params) {
+		reportOrResponse_trueOrFalse = null ;
+		boolean isFail = false ;
+		String upCode = null ;
+		try{
+			CommonV202404 cp = new CommonV202404() ;
+			cp.checkHead(upBuffer) ;
+			cp.checkTail(upBuffer) ;
+			String crcStr = cp.checkCrc_str(upBuffer) ;
+			if(crcStr != null){
+				return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屼笂琛屾暟鎹瓹RC妫�鏌ュけ璐ワ紝" + crcStr, null))} ;
+			}
+			rtuAddr = cp.parseRtuAddr(upBuffer) ;
+			upCode = cp.parseCode(upBuffer) ;
+			if(upCode == null){
+				return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屾湭鑳戒粠涓婅鏁版嵁涓В鏋愬嚭鍔熻兘鐮侊紒", null))} ;
+			}
+			//Integer dataLen = cp.parseFrameLen(upBuffer) ;
+			Data upData = new Data() ;
+			upData.setRtuAddr(rtuAddr) ;
+			upData.setProtocol(ProtocolConstantV206V202404.protocolName);
+			upData.setCode(upCode) ;
+			upData.setHex(upHex) ;
+			
+			
+			DataV202404 dV1_0_1 = new DataV202404() ;
+			//dV1_0_1.version = cp.parseVersion(upBuffer) ;
+			dV1_0_1.rtuAddr = rtuAddr ;
+			dV1_0_1.dt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
+			
+			upData.setSubData(dV1_0_1) ;
+			
+			this.upCpParams.clear();
+			this.upCpParams.setValue(ProtocolConstantV206V202404.protocolName, 
+					rtuAddr, 
+					upCode,
+					upHex, 
+					upBuffer, 
+					upData);
+			CodeParse codeParse = this.getUpCodeParser(upCode) ;
+			if(codeParse == null){
+				return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屾湭鑳藉緱鍒颁笂琛屾暟鎹姛鑳界爜" + upCode + "澶勭悊绫�!", null))} ;
+			}else{
+				return codeParse.parse(isLowPower, this.upCpParams, new CodeParseCallback(){
+					@Override
+					public void callback(Boolean flag) {
+						reportOrResponse_trueOrFalse = flag ;
+						rtuAddrInData = dV1_0_1.getRtuAddr() ;
+					}
+				});
+			}
+				
+		} catch (Exception e) {
+			isFail = true ;
+			return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr, "涓ラ噸閿欒锛屽垎鏋怰tu鏁版嵁鍑洪敊锛佹暟鎹负锛�" + upHex + (e.getMessage() == null?"":("锛屽嚭閿欎俊鎭細" + e.getMessage())), e))} ;
+		} finally{
+			callback.callback(rtuAddr, upCode, upHex, reportOrResponse_trueOrFalse, isFail, rtuAddrInData);
+		}
+	}
+
+	/**
+	 * 鏋勯�犱笅琛屾暟鎹紙鍛戒护锛�
+	 * @param isLowPower 鏄惁鍦ㄤ綆鍔熻�楃幆澧冧笅杩愯
+	 * @param command 鍛戒护
+	 * @return
+	 */
+	@Override
+	public MidResult[] createCommand(Boolean isLowPower, Command command, Object... params) {
+		String RtuResultSendWebUrl = command.getRtuResultSendWebUrl() ;
+		if(RtuResultSendWebUrl == null || RtuResultSendWebUrl.trim().equals("")){
+			return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, null, "涓ラ噸閿欒锛屽懡浠や腑rtu杩斿洖鍛戒护缁撴灉鍙戝悜鐩殑鍦皐eb URL涓虹┖锛屼笉鑳芥瀯寤轰换浣曞懡浠わ紒", null))} ;
+		}
+		String rtuAddr = command.getRtuAddr() ;
+		if(rtuAddr == null || rtuAddr.trim().equals("")){
+			return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, null, "涓ラ噸閿欒锛屽懡浠や腑Rtu鍦板潃涓虹┖锛屼笉鑳芥瀯寤轰换浣曞懡浠わ紒", null))} ;
+		}
+		try {
+			String commandCode = command.getCode() ;
+			
+			this.downCpParams.clear();
+			this.downCpParams.setValue(
+					RtuResultSendWebUrl,
+					ProtocolConstantV206V202404.protocolName, 
+					rtuAddr, 
+					command.getId(),
+					commandCode, 
+					command.getParam(), 
+					command.getAttachment());
+			
+			if(commandCode == null){
+				return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr,  "涓ラ噸閿欒锛屽懡浠や腑鍔熻兘鐮佷负绌猴紝涓嶈兘鏋勫缓浠讳綍鍛戒护锛�", null))} ;
+			}else{
+				CodeParse codeParse = this.getDownCodeParser(commandCode) ;
+				if(codeParse == null){
+					return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr,  "涓ラ噸閿欒锛屾湭鑳藉緱鍒颁笅琛屾暟鎹姛鑳界爜" + commandCode + "澶勭悊绫�!", null))} ;
+				}else{
+					return codeParse.parse(isLowPower, this.downCpParams, null);
+				}
+			}
+		} catch (Exception e) {
+			return new MidResult[]{(new MidResultError(ProtocolConstantV206V202404.protocolName, rtuAddr,  "涓ラ噸閿欒锛屾瀯閫犱笅琛屾暟鎹嚭閿欙紒鍛戒护涓猴細" + command.toString(), e))} ;
+		}
+	}
+
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/OnLineV202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/OnLineV202404.java
new file mode 100644
index 0000000..dfea28c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/OnLineV202404.java
@@ -0,0 +1,39 @@
+package com.dy.common.mw.protocol.p206V202404;
+
+import com.dy.common.mw.protocol.AnnotationOnLine;
+import com.dy.common.mw.protocol.OnLine;
+
+@AnnotationOnLine(
+		protocolName = ProtocolConstantV206V202404.protocolName,
+		priority = ProtocolConstantV206V202404.priority)
+@SuppressWarnings("unused")
+public class OnLineV202404 implements OnLine{
+
+	/**
+	 * 瀵逛笂绾挎暟鎹繘琛屽垎鏋� 
+	 * @param upBuf 涓婅鏁版嵁
+	 * @return
+	 */
+	@Override
+	public OnLineResult parse(byte[] upBuf)throws Exception {
+		OnLineResult olr = new OnLineResult() ;
+		CommonV202404 cp = new CommonV202404() ;
+		Boolean flag = cp.isThisProtocolHead(upBuf) ;
+		if(flag == null){
+			//鍑洪敊
+			olr.result = OnLine.OnLineAction_fail ;
+			olr.rtuAddr = null ;
+		}else if(!flag.booleanValue()){
+			//涓嶆槸鏈崗璁暟鎹�
+			olr.result = OnLine.OnLineAction_success_noMe ;
+			olr.rtuAddr = null ;
+		}else{
+			//鏄湰鍗忚鏁版嵁
+			olr.result = OnLine.OnLineAction_success ;
+			olr.rtuAddr = cp.parseRtuAddr(upBuf) ;
+			olr.protocolName = ProtocolConstantV206V202404.protocolName ;
+		}
+		return olr;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/ParseParamsForDownV202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/ParseParamsForDownV202404.java
new file mode 100644
index 0000000..ee77e4a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/ParseParamsForDownV202404.java
@@ -0,0 +1,43 @@
+package com.dy.common.mw.protocol.p206V202404;
+
+import com.dy.common.mw.protocol.CodeParseParams;
+
+public class ParseParamsForDownV202404 implements CodeParseParams{
+
+	public String rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
+	public String protocolName ;
+	public String rtuAddr ;//鎺у埗鍣ㄥ湴鍧�
+	public String commandId ;
+	public String commandCode ;
+	public Object param ;
+	public Object attachment ;
+	
+	public ParseParamsForDownV202404(){}
+	
+	public void clear(){
+		this.protocolName = null ; 
+		this.rtuAddr = null ; 
+		this.commandId = null ;
+		this.commandCode = null ; 
+		this.param = null ; 
+		this.attachment = null ; 
+	}
+	
+	public void setValue(
+			String rtuResultSendWebUrl,
+			String protocolName,
+			String rtuAddr,
+			String commandId,
+			String commandCode, 
+			Object param, 
+			Object attachment ){
+		this.rtuResultSendWebUrl = rtuResultSendWebUrl ;
+		this.protocolName = protocolName ;
+		this.rtuAddr = rtuAddr ;
+		this.commandId = commandId ;
+		this.commandCode = commandCode ; 
+		this.param = param ; 
+		this.attachment = attachment ; 
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/ParseParamsForUpV202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/ParseParamsForUpV202404.java
new file mode 100644
index 0000000..52a2097
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/ParseParamsForUpV202404.java
@@ -0,0 +1,39 @@
+package com.dy.common.mw.protocol.p206V202404;
+
+import com.dy.common.mw.protocol.CodeParseParams;
+import com.dy.common.mw.protocol.Data;
+
+public class ParseParamsForUpV202404 implements CodeParseParams{
+	
+	public String protocolName ;//鍗忚鍚嶇О
+	public String rtuAddr ;//鎺у埗鍣ㄥ潃
+	public String upCode ;//涓婅鎶ユ枃鏁版嵁涓殑鍔熻兘鐮�
+	public String upHex ;//琛屾姤鏂囨暟鎹崄鍏繘鍒跺舰寮�
+	public byte[] upBuffer ;//琛屾姤鏂囨暟鎹瓧鑺傛暟缁�
+	public Data data ;//瑙f瀽鍚庣殑鏁版嵁
+
+	public ParseParamsForUpV202404(){}
+	
+	public void clear(){
+		this.protocolName = null ; 
+		this.rtuAddr = null ; 
+		this.upCode = null ;
+		this.upHex = null ; 
+		this.upBuffer = null ; 
+		this.data = null ;
+	}
+	
+	public void setValue(String protocolName, 
+			String rtuAddr, 
+			String upCode,
+			String upHex, 
+			byte[] upBuffer,
+			Data data){
+		this.protocolName = protocolName ; 
+		this.rtuAddr = rtuAddr ; 
+		this.upCode = upCode ;
+		this.upHex = upHex ; 
+		this.upBuffer = upBuffer ; 
+		this.data = data ;
+	}
+}
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
new file mode 100644
index 0000000..de21587
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/PrefixedDataAvailableV202404.java
@@ -0,0 +1,130 @@
+package com.dy.common.mw.protocol.p206V202404;
+
+import com.dy.common.mw.channel.tcp.PrefixedDataAvailableStatus;
+import com.dy.common.mw.protocol.AnnotationPrefixedDataAvailable;
+import com.dy.common.mw.protocol.PrefixedDataAvailable;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.mina.core.buffer.BufferDataException;
+import org.apache.mina.core.buffer.IoBuffer;
+
+
+@AnnotationPrefixedDataAvailable(
+		protocolName = ProtocolConstantV206V202404.protocolName,
+		priority = ProtocolConstantV206V202404.priority,
+		onLineDataMinLength = ProtocolConstantV206V202404.onLineDataMinLength,
+		headMinLength = ProtocolConstantV206V202404.headMinLength)
+@SuppressWarnings("unused")
+public class PrefixedDataAvailableV202404 implements PrefixedDataAvailable {
+
+	private static final Logger log = LogManager.getLogger(PrefixedDataAvailableV202404.class) ;
+	
+	private static final String protocolName = ProtocolConstantV206V202404.protocolName ;
+
+
+	/**
+	 * 鍒嗘瀽涓婄嚎鏁版嵁(缃戠粶杩炴帴鍚庣涓�鍖呮暟鎹�)鏄惁鍙幏寰�
+	 * @param in IoBuffer
+	 * @param remain 涓�瀹氭椂澶т簬0鐨勬暟鎹�
+	 * @param minDataLength 鏈�灏忔暟鎹暱搴�
+	 * @param maxDataLength 鏈�澶ф暟鎹暱搴︼紝杈惧埌鎴栬秴杩囨闀垮害锛岃涓烘槸鍨冨溇鏁版嵁銆備緥濡傦細鏁版嵁澶撮儴鏄纭殑锛屼絾鍚堟硶鏁版嵁缁撳熬鎬讳笉鍑虹幇锛岃涓烘鏁版嵁鍨冨溇鏁版嵁
+	 * @return 涓嶆槸鏈崗璁暟鎹椂杩斿洖绌�
+	 * @throws Exception 寮傚父
+	 */
+	public PrefixedDataAvailableStatus forOnLine(IoBuffer in, 
+			int remain,
+			int minDataLength, //瀵瑰簲ProtocolConstantV2_0.onLineDataMinLength
+			int maxDataLength //瀵瑰簲ProtocolConstant.errorMaxLength
+			) 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) ;
+	}
+
+	/**
+	 * 鍒嗘瀽涓婄嚎鍚�(缃戠粶杩炴帴鍚庨潪绗竴鍖呮暟鎹�)鏄惁鍙幏寰�
+	 * @param in IoBuffer
+	 * @param remain  鍓╀綑
+	 * @param minDataLength 鏈�灏忔暟鎹暱搴�
+	 * @param maxDataLength 鏈�澶ф暟鎹暱搴�
+	 * @return PrefixedDataAvailableStatus
+	 * @throws Exception 寮傚父
+	 */
+	@Override
+	public PrefixedDataAvailableStatus forUpData(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) ;
+
+    }
+	/**
+	 * 杩涜鍒ゆ柇
+	 * @param preByte byte[]
+	 * @param minDataLength 鏈�灏忔暟鎹暱搴�
+	 * @param maxDataLength 鏈�澶ф暟鎹暱搴�
+	 * @return PrefixedDataAvailableStatus
+	 * @throws Exception 寮傚父
+	 */
+	private PrefixedDataAvailableStatus doForData(byte[] preByte, int minDataLength, int maxDataLength) throws Exception{
+		int remain = preByte.length ;
+    	
+        if (remain < minDataLength) {
+        	log.warn("鍩轰簬鍗忚锛�" + protocolName + "锛夊垽鏂暟鎹ご閮ㄥ彂鐢熸柇鍖呯幇璞°��") ;
+            return new PrefixedDataAvailableStatus().breaked() ;
+        }
+        
+        if(remain >= maxDataLength){
+			//瓒呭嚭浜嗘渶澶ч暱搴﹂檺鍒�,渚嬪锛氭暟鎹ご閮ㄦ槸姝g‘鐨勶紝浣嗗悎娉曟暟鎹粨灏炬�讳笉鍑虹幇锛岃涓烘鏁版嵁鍨冨溇鏁版嵁
+			return new PrefixedDataAvailableStatus().rubbish(remain) ;
+		}
+
+		
+        CommonV202404 parseCommon = new CommonV202404();
+		boolean isThisProtocolData = parseCommon.isThisProtocolHead(preByte) ;
+
+		if(!isThisProtocolData){
+			//涓嶆槸鏈崗璁暟鎹�
+			return null ;
+		}
+
+		Integer frameLen = parseCommon.parseFrameLen(preByte) ;
+
+		if(frameLen == null){
+			String headHex = ByteUtil.bytes2Hex(preByte, true) ;
+			throw new BufferDataException("鏀跺埌鏁版嵁涔嬪抚鍓嶉儴锛�" + headHex + "锛屼絾涓ラ噸閿欒锛屽湪杩涜鏂寘涓庣矘鍖呮鏌ユ椂锛屾湭鑳藉緱鍒版暟鎹抚鐨勯暱搴︺��");
+		}
+		
+        if (frameLen <= 0 || frameLen > maxDataLength) {
+			String headHex = ByteUtil.bytes2Hex(preByte, true) ;
+            throw new BufferDataException("鏀跺埌鏁版嵁涔嬪抚鍓嶉儴锛�" + headHex + "锛屼絾涓ラ噸閿欒锛屽湪杩涜鏂寘涓庣矘鍖呮鏌ユ椂锛屾暟鎹抚鐨勯暱搴�(" + frameLen + ")瓒呭嚭鍚堟硶鑼冨洿銆�");
+        }
+        
+        if(remain == frameLen){
+        	//涓嶆柇涓嶇矘
+            return new PrefixedDataAvailableStatus().completed(frameLen) ;
+        }else if(remain > frameLen){
+			String headHex = ByteUtil.bytes2Hex(preByte, true) ;
+        	log.warn("鏀跺埌鏁版嵁涔嬪抚鍓嶉儴锛�" + headHex + "锛屼絾鍙戠敓绮樺寘鐜拌薄銆�") ;
+            return new PrefixedDataAvailableStatus().adjoined(frameLen) ;
+        }else{
+        	// remain < dataLen
+			String headHex = ByteUtil.bytes2Hex(preByte, true) ;
+        	log.warn("鏀跺埌鏁版嵁涔嬪抚鍓嶉儴锛�" + headHex + "锛屼絾鍙戠敓鏂寘鐜拌薄銆�") ;
+            return new PrefixedDataAvailableStatus().breaked() ;
+        }
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/ProtocolConstantV206V202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/ProtocolConstantV206V202404.java
new file mode 100644
index 0000000..52f95a6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/ProtocolConstantV206V202404.java
@@ -0,0 +1,50 @@
+package com.dy.common.mw.protocol.p206V202404;
+
+public class ProtocolConstantV206V202404 {
+
+    public static final String version = "202404" ;
+
+    /**
+     * 娉ㄨВ鐩稿叧
+     */
+    public static final String protocolName = "p206V202404" ;
+    public static final int priority = 1 ;//浼樺厛绾�
+    /**
+     * RTU涓婄嚎鏁版嵁锛堜笂绾垮悗绗竴鍖呮暟鎹級鏈�灏忛暱搴︼紝璁剧疆璇ュ睘鎬т互澶囪繘琛屽畬鏁存�ф鏌ワ紝
+     * 鍗虫柇鍖呮鏌ワ紝浣垮敖鍙兘鏀跺叏涓婄嚎鏁版嵁锛堝彇鍊艰寖鍥�1-100锛�
+     */
+    public static final int onLineDataMinLength = 13 ;//閲囩敤蹇冭烦涓婅鏁版嵁闀垮害
+
+    /**
+     * RTU涓婃姤鏁版嵁鐨勫ご閮ㄦ渶灏忛暱搴︼紝涓婃姤鏁版嵁涓紝鍙栬繖涓渶灏忛暱搴︾殑閮ㄥ垎鏁版嵁涓紝
+     * 瑕佷竴瀹氬寘鍚暟鎹抚闀垮害锛屼互澶囧彇鍑烘暟鎹抚闀垮害鏉ワ紝杩涜瀹屾暣鎬ф鏌ワ紝
+     * 鍗虫柇鍖呬笌绮樺寘妫�鏌�(鍙栧�艰寖鍥�0-100锛屽叾涓彇鍊间负0鏃讹紝琛ㄧずheadMinLength鏁版嵁鏃犱綔鐢紝鐢卞崗璁疄鐜版潵鎺у埗)
+     */
+    public static final int headMinLength = 3 ;
+
+    //甯ц捣濮�
+    public static final byte P_Head_Byte = (byte)0x68 ;
+    public static final byte P_Tail_Byte = (byte)0x16 ;
+
+    //00H鏃堕仴娴嬬粓绔湪鍏煎宸ヤ綔鐘舵�侊紱01H鏃堕仴娴嬬粓绔湪鑷姤宸ヤ綔鐘舵�侊紱02H鏃堕仴娴嬬粓绔湪鏌ヨ/搴旂瓟宸ヤ綔鐘舵�侊紱03H鏃堕仴娴嬬粓绔湪璋冭瘯/缁翠慨鐘舵�併��
+    public static final byte P_Default_mode = (byte)0x00 ;//榛樿宸ヤ綔妯″紡
+
+    public static final String P_Head_Hex = "68" ;
+    public static final String P_Tail_Hex = "16" ;
+
+    public static final byte lenHead2ctrl = 3 ; //浠庡ご鍒版帶鍒跺煙锛堜笉鍖呮嫭锛夊瓧鑺傛暟缁勯暱搴�
+    public static final byte lenHead2Code = 13 ; //浠庡ご鍒板姛鑳界爜锛堝寘鎷級瀛楄妭鏁扮粍闀垮害
+    public static final byte lenTail = 2 ; //甯у熬閮ㄥ瓧鑺傛暟缁勯暱搴�
+    /**
+     * 鎵�鍦ㄥ瓧鑺傛暟缁勭殑浣嶇疆锛堜笅鏍囷級
+     */
+    public static final int dataLenIndex = 1 ;//甯ч暱搴︽墍鍦� 瀛楄妭鏁扮粍涓嬫爣
+    public static final int ctrlIndex = 3 ;//鎺у埗鍩熸墍鍦ㄥ瓧鑺傛暟缁勪笅鏍�
+    public static final int rtuAddr1Index_start = 4 ;//鎺у埗鍣ㄥ湴鍧� 瀛楄妭鏁扮粍寮�濮嬩笅鏍�
+    public static final int rtuAddr1Index_end = 9 ;//鎺у埗鍣ㄥ湴鍧� 瀛楄妭鏁扮粍寮�濮嬩笅鏍�
+    public static final int rtuAddr2Index_start = 10 ;//鎺у埗鍣ㄥ湴鍧� 瀛楄妭鏁扮粍鎴涓嬫爣
+    public static final int rtuAddr2Index_end = 11 ;//鎺у埗鍣ㄥ湴鍧� 瀛楄妭鏁扮粍鎴涓嬫爣
+    public static final int codeIndex = 12 ;//鍔熻兘鐮佸瓧鑺傛暟缁勪笅鏍�
+    public static final int dataIndex = 13 ;//鍏蜂綋鏁版嵁瀛楄妭鏁扮粍涓嬫爣
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd10Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd10Vo.java
new file mode 100644
index 0000000..a0e876d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd10Vo.java
@@ -0,0 +1,10 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd10Vo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public String rtuNewAddr ;//鎺у埗鍣ㄦ柊鍦板潃
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd15Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd15Vo.java
new file mode 100644
index 0000000..e453294
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd15Vo.java
@@ -0,0 +1,14 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd15Vo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public String icCardAddr ;//IC鍗″湴鍧�(8浣嶆暟瀛楁垨瀛楁瘝)
+    public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�16浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+    public Double chargeMoney ;//鍗曚綅:鍏�  2浣嶅皬鏁扮偣(鏈�澶у�� 99999999.99)
+    public Double chargeWater ;//鍗曚綅:m3  2浣嶅皬鏁扮偣(鏈�澶у�� 99999999.99)
+    public String flowNo ;//娴佹按鍙凤紙12浣嶆暟瀛楋級
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd16Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd16Vo.java
new file mode 100644
index 0000000..325814f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd16Vo.java
@@ -0,0 +1,11 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd16Vo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public Integer waterAlarm ;//鍓╀綑姘撮噺鎶ヨ鍊�,鍗曚綅:m3銆傛暣鏁帮紝鍙栧�艰寖鍥�0~65535
+    public Integer moneyAlarm ;//鍓╀綑閲戦鎶ヨ鍊�,鍗曚綅:鍏冦�傛暣鏁帮紝鍙栧�艰寖鍥�0~65535
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd50Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd50Vo.java
new file mode 100644
index 0000000..451017f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd50Vo.java
@@ -0,0 +1,9 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd50Vo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd55Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd55Vo.java
new file mode 100644
index 0000000..42ca8e6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd55Vo.java
@@ -0,0 +1,10 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd55Vo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public Integer page ;//鍒嗛〉锛堝彇鍊艰寖鍥�1銆�2銆�3銆�4銆�5銆�6銆�7銆�8銆�9锛�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd56Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd56Vo.java
new file mode 100644
index 0000000..d162f87
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd56Vo.java
@@ -0,0 +1,9 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd56Vo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java
new file mode 100644
index 0000000..b2d917d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java
@@ -0,0 +1,9 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd5BVo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5CVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5CVo.java
new file mode 100644
index 0000000..e381246
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5CVo.java
@@ -0,0 +1,10 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd5CVo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public Integer page ;//鍒嗛〉锛堝彇鍊艰寖鍥�1銆�2銆�3銆�4銆�5銆�6銆�7銆�8銆�9锛�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd65Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd65Vo.java
new file mode 100644
index 0000000..aad1dd2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd65Vo.java
@@ -0,0 +1,10 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd65Vo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public Integer page ;//鍒嗛〉锛屽彇鍊艰寖鍥达紙1銆�2銆�3銆�4銆�5銆�6銆�7銆�8銆�9锛�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd97Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd97Vo.java
new file mode 100644
index 0000000..2b3c096
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd97Vo.java
@@ -0,0 +1,9 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd97Vo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd98Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd98Vo.java
new file mode 100644
index 0000000..239f2c3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd98Vo.java
@@ -0,0 +1,9 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd98Vo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Down.java
new file mode 100644
index 0000000..15eb423
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Down.java
@@ -0,0 +1,83 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd02Vo;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_02
+})
+public class Cd_02_Down implements CodeParse {
+
+    //private static Logger log = LogManager.getLogger(Cd_02_Down.class);
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = true ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            DataCd02Vo cdData = (DataCd02Vo)para.param ;
+            byte[] bs = new byte[3] ;
+            bs[0] = (byte)(Integer.parseInt(cdData.controllerType, 16));
+            bs[1] = cdData.projectNo.byteValue() ;
+            bs[2] = (byte)(Integer.parseInt(cdData.getStatus(), 16));
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+    public static void main(String[] args) throws Exception{
+        ParseParamsForDownV202404 p = new ParseParamsForDownV202404() ;
+        p.commandCode = "02" ;
+        p.rtuAddr = "9672950001";
+
+        Cd_02_Down obj = new Cd_02_Down() ;
+        byte[] bs = obj.doParse(p) ;
+
+        String hex1 = ByteUtil.bytes2Hex(bs,true) ;
+        String hex2 = ByteUtil.bytes2Hex(bs,false) ;
+
+        System.out.println(hex1);
+        System.out.println(hex2);
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Up.java
new file mode 100644
index 0000000..b55c10e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Up.java
@@ -0,0 +1,92 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd02Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_02
+})
+@SuppressWarnings("unused")
+public class Cd_02_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_02_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = true ;
+
+        String confirmComCode = para.upCode ;
+        ParseParamsForDownV202404 downCpParams  = new ParseParamsForDownV202404() ;
+        downCpParams.setValue(
+                null,
+                ProtocolConstantV206V202404.protocolName,
+                para.rtuAddr,
+                Command.defaultId,
+                confirmComCode,
+                para.data.subData==null?null:(((DataV202404)para.data.subData).subData),
+                null);
+        //鏋勯�犲簲绛�
+        byte[] data = new Cd_02_Down().doParse(downCpParams) ;
+
+        MidResultToRtu confirmCommand = new MidResultToRtu() ;
+        confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        confirmCommand.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        confirmCommand.commandId = Command.defaultId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        confirmCommand.downCode = confirmComCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        confirmCommand.downBuffer = data ;//涓嬭鍛戒护鏁版嵁
+        confirmCommand.downBufHex = ByteUtil.bytes2Hex(data, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        confirmCommand.hasResponse = false ;//鏄惁鏈夊簲绛�
+        confirmCommand.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�2娆�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
+
+        confirmCommand.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            confirmCommand.isQuickSend = true ;
+        }
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs, confirmCommand} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd02Vo cdData = new DataCd02Vo() ;
+        dV1.subData = cdData ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V202404.dataIndex, 1) ;
+        cdData.projectNo = 0 + bs[ProtocolConstantV206V202404.dataIndex + 1];
+        cdData.status = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V202404.dataIndex + 2, 1) ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Down.java
new file mode 100644
index 0000000..8cd9aa2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Down.java
@@ -0,0 +1,87 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd10Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_10
+})
+public class Cd_10_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            String json = (String)para.param;
+            ComCd10Vo cvo = JSON.parseObject(json, ComCd10Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd10Vo涓簄ull") ;
+            }
+            byte[] bs = new byte[17] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            GlCreate.createRtuAddr(cvo.rtuNewAddr, bs, index);
+
+            index += 8 ;
+            GlCreate.createPw(bs, index);
+
+            index ++ ;
+            GlCreate.createS2D(bs, index) ;
+
+            index += 4 ;
+            bs[index] = 0 ; //鏃跺欢
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Up.java
new file mode 100644
index 0000000..c3158a6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Up.java
@@ -0,0 +1,69 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd10Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_10
+})
+@SuppressWarnings("unused")
+public class Cd_10_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_10_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd10Vo cdData = new DataCd10Vo() ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = 0 + bs[index];
+
+        index++ ;
+        cdData.rtuNewAddr = new CommonV202404().parseRtuAddr(bs, index) ;
+
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Down.java
new file mode 100644
index 0000000..a853664
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Down.java
@@ -0,0 +1,145 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd10Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd15Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.NumUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_15
+})
+public class Cd_15_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            String json = (String)para.param;
+            ComCd15Vo cvo = JSON.parseObject(json, ComCd15Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd15Vo涓簄ull") ;
+            }
+            if(cvo.icCardAddr.length() != 8){
+                throw new Exception("IC鍗″湴鍧�蹇呴』鏄�8浣嶆暟瀛楁垨瀛楁瘝") ;
+            }
+           if(!NumUtil.isPlusIntNumber(cvo.flowNo)){
+                throw new Exception("娴佹按鍙峰繀椤绘槸12浣嶆暟瀛�") ;
+            }
+            if(cvo.flowNo.length() != 12){
+                throw new Exception("娴佹按鍙峰繀椤绘槸12浣嶆暟瀛�") ;
+            }
+            byte[] bs = new byte[17] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            GlCreate.createIcCardAddr(cvo.icCardAddr, bs, index);
+
+            index += 4 ; ;
+            GlCreate.createIcCardNo(cvo.icCardNo, bs, index);
+
+            index += 8 ;
+            if(cvo.chargeMoney != null){
+                String chargeMoney = "" + (Double.valueOf(cvo.chargeMoney * 100)).longValue() ;
+                byte[] bTemp = ByteUtil.string2BCD_LE(chargeMoney) ;
+                int bTempLen = bTemp.length ;
+                int count = 0 ;
+                for(int i = 0 ; i < bTempLen; i++){
+                    bs[index++] = bTemp[i] ;
+                    count ++ ;
+                    if(count >= 5){
+                        break ;
+                    }
+                }
+                for(; count < 5; count++){
+                    bs[index++] = 0 ;
+                }
+            }else{
+                for(int i = 0 ; i < 5; i++){
+                    bs[index++] = 0 ;
+                }
+            }
+            if(cvo.chargeMoney != null){
+                String chargeMoney = "" + (Double.valueOf(cvo.chargeWater * 100)).longValue() ;
+                byte[] bTemp = ByteUtil.string2BCD_LE(chargeMoney) ;
+                int bTempLen = bTemp.length ;
+                int count = 0 ;
+                for(int i = 0 ; i < bTempLen; i++){
+                    bs[index++] = bTemp[i] ;
+                    count ++ ;
+                    if(count >= 5){
+                        break ;
+                    }
+                }
+                for(; count < 5; count++){
+                    bs[index++] = 0 ;
+                }
+            }else{
+                for(int i = 0 ; i < 5; i++){
+                    bs[index++] = 0 ;
+                }
+            }
+
+            ByteUtil.string2BCD_BE(bs, cvo.flowNo, index) ;
+
+            index += 6 ;
+            GlCreate.createPw(bs, index);
+
+            index ++ ;
+            GlCreate.createS2D(bs, index) ;
+
+            index += 4 ;
+            bs[index] = 0 ; //鏃跺欢
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Up.java
new file mode 100644
index 0000000..0ff2a95
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Up.java
@@ -0,0 +1,75 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd15Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd50Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_15
+})
+@SuppressWarnings("unused")
+public class Cd_15_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_15_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;//涓诲姩涓婃姤
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd15Vo cdData = new DataCd15Vo() ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = 0 + bs[index];
+
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java
new file mode 100644
index 0000000..4dc4781
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java
@@ -0,0 +1,100 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd16Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+import com.dy.common.util.NumUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_16
+})
+public class Cd_16_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            String json = (String)para.param;
+            ComCd16Vo cvo = JSON.parseObject(json, ComCd16Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd16Vo涓簄ull") ;
+            }
+            if(cvo.moneyAlarm < 0 || cvo.moneyAlarm > 65535){
+                throw new Exception("鍓╀綑閲戦鎶ヨ鍊煎繀椤绘槸0~65535鑼冨洿鍐呯殑鏁存暟") ;
+            }
+            if(cvo.waterAlarm < 0 || cvo.waterAlarm > 65535){
+                throw new Exception("鍓╀綑姘撮噺鎶ヨ鍊煎繀椤绘槸0~65535鑼冨洿鍐呯殑鏁存暟") ;
+            }
+
+
+            byte[] bs = new byte[13] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            ByteUtilUnsigned.short2Bytes_BE(bs, cvo.waterAlarm, index);
+
+            index ++ ;
+            ByteUtilUnsigned.short2Bytes_BE(bs, cvo.moneyAlarm, index);
+
+            index ++ ;
+            GlCreate.createPw(bs, index);
+
+            index ++ ;
+            GlCreate.createS2D(bs, index) ;
+
+            index += 4 ;
+            bs[index] = 0 ; //鏃跺欢
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Down.java
new file mode 100644
index 0000000..36a910e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Down.java
@@ -0,0 +1,76 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd10Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd50Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_50
+})
+public class Cd_50_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            String json = (String)para.param;
+            ComCd50Vo cvo = JSON.parseObject(json, ComCd50Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd10Vo涓簄ull") ;
+            }
+            byte[] bs = new byte[2] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Up.java
new file mode 100644
index 0000000..dc88816
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Up.java
@@ -0,0 +1,69 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd50Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_50
+})
+@SuppressWarnings("unused")
+public class Cd_50_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_50_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;//涓诲姩涓婃姤
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd50Vo cdData = new DataCd50Vo() ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = 0 + bs[index];
+
+        index++ ;
+        cdData.rtuAddr = new CommonV202404().parseRtuAddr(bs, index) ;
+
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Down.java
new file mode 100644
index 0000000..5ed1b31
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Down.java
@@ -0,0 +1,82 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd55Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd65Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_55
+})
+public class Cd_55_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            String json = (String)para.param;
+            ComCd55Vo cvo = JSON.parseObject(json, ComCd55Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd55Vo涓簄ull") ;
+            }
+            if(cvo.page < 1 || cvo.page > 8){
+                throw new Exception("ComCd55Vo鐨刾age鍙栧�间笉姝g‘锛屾纭彇鍊艰寖鍥存槸锛�1~9锛�") ;
+            }
+            byte[] bs = new byte[3] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            bs[index] = cvo.page.byteValue() ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Up.java
new file mode 100644
index 0000000..19a8adb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Up.java
@@ -0,0 +1,136 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd55Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_55
+})
+@SuppressWarnings("unused")
+public class Cd_55_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_55_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        String controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        Integer projectNo = 0 + bs[index];
+
+        index++ ;
+        byte hasRecord = bs[index];
+        if(hasRecord == 1){
+            //鏈夎褰�
+            List<DataCd55Vo> list = new ArrayList<>() ;
+            DataCd55Vo vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
+            while(vo != null){
+                index += 39 ;
+                list.add(vo) ;
+                vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
+            }
+            dV1.subData = list ;
+        }else{
+            //鏃犺褰�
+        }
+    }
+
+    private DataCd55Vo doParseData(byte[] bs, int index, int bsLen, String controllerType,Integer projectNo) throws Exception{
+        //姣忔潯鏁版嵁鍗�39瀛楄妭
+        if(bsLen - index > 35){
+            DataCd55Vo cdData = new DataCd55Vo() ;
+
+            cdData.controllerType = controllerType ;
+            cdData.projectNo = projectNo ;
+
+            cdData.icCardAddr = ByteUtil.bytes2Hex(bs, false, index, 4) ;
+
+            index += 4 ;
+            cdData.icCardNo  = GlParse.parseIcCardNo(bs, index, 6, 2) ;
+
+            index += 8 ;
+            int chargeMoney = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+            cdData.chargeMoney = chargeMoney/100.0D;
+
+            index += 5 ;
+            int chargeWater = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+            cdData.chargeWater = chargeWater/100.0D;
+
+            index += 5 ;
+            cdData.flowNo = ByteUtil.BCD2String_BE(bs, index, index + 5) ;
+
+            index += 6 ;
+            byte flag = bs[index] ;
+            if(flag == 1){
+                cdData.success = true ;
+            }else{
+                cdData.success = false ;
+            }
+
+            index += 1 ;
+            String ss = ByteUtil.BCD2String_BE(bs, index, index) ;
+            index++ ;
+            String mm = ByteUtil.BCD2String_BE(bs, index, index) ;
+            index++ ;
+            String HH = ByteUtil.BCD2String_BE(bs, index, index) ;
+            index++ ;
+            String dd = ByteUtil.BCD2String_BE(bs, index, index) ;
+            index++ ;
+            String MM = ByteUtil.BCD2String_BE(bs, index, index) ;
+            index++ ;
+            String yy = ByteUtil.BCD2String_BE(bs, index, index) ;
+            cdData.dt = "20" + yy + "-" + MM + "-" + dd + " " + HH + ":" + mm  + ":" + ss ;
+
+            return cdData ;
+        }else{
+            return null ;
+        }
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Down.java
new file mode 100644
index 0000000..62a38ec
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Down.java
@@ -0,0 +1,76 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd55Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd56Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_56
+})
+public class Cd_56_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            String json = (String)para.param;
+            ComCd56Vo cvo = JSON.parseObject(json, ComCd56Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd56Vo涓簄ull") ;
+            }
+            byte[] bs = new byte[2] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Up.java
new file mode 100644
index 0000000..7054446
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Up.java
@@ -0,0 +1,74 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd50Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd56Vo;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_56
+})
+@SuppressWarnings("unused")
+public class Cd_56_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_56_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;//涓诲姩涓婃姤
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd56Vo cdData = new DataCd56Vo() ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = 0 + bs[index];
+
+        index++ ;
+        cdData.waterAlarm = ByteUtilUnsigned.bytes2Short_BE(bs, index) ;
+
+        index += 2 ;
+        cdData.moneyAlarm = ByteUtilUnsigned.bytes2Short_BE(bs, index) ;
+
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Down.java
new file mode 100644
index 0000000..0cb1ab5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Down.java
@@ -0,0 +1,76 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd50Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd5BVo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_5B
+})
+public class Cd_5B_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            String json = (String)para.param;
+            ComCd5BVo cvo = JSON.parseObject(json, ComCd5BVo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd5BVo涓簄ull") ;
+            }
+            byte[] bs = new byte[2] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Up.java
new file mode 100644
index 0000000..5b3dc0c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Up.java
@@ -0,0 +1,65 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd50Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd5BVo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_5B
+})
+@SuppressWarnings("unused")
+public class Cd_5B_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_5B_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd5BVo cdData = new DataCd5BVo() ;
+        dV1.subData = cdData ;
+
+        GlParse.parseCd80And5B(bs, cdData);
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Down.java
new file mode 100644
index 0000000..7ac5167
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Down.java
@@ -0,0 +1,81 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd55Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_5C
+})
+public class Cd_5C_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            String json = (String)para.param;
+            ComCd55Vo cvo = JSON.parseObject(json, ComCd55Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd55Vo涓簄ull") ;
+            }
+            if(cvo.page < 1 || cvo.page > 8){
+                throw new Exception("ComCd55Vo鐨刾age鍙栧�间笉姝g‘锛屾纭彇鍊艰寖鍥存槸锛�1~9锛�") ;
+            }
+            byte[] bs = new byte[3] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            bs[index] = cvo.page.byteValue() ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Up.java
new file mode 100644
index 0000000..8f0dfc1
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Up.java
@@ -0,0 +1,118 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd5CVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_5C
+})
+@SuppressWarnings("unused")
+public class Cd_5C_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_5C_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        String controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        Integer projectNo = 0 + bs[index];
+
+        index++ ;
+        byte hasRecord = bs[index];
+        if(hasRecord == 1){
+            //鏈夎褰�
+            List<DataCd5CVo> list = new ArrayList<>() ;
+            DataCd5CVo vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
+            while(vo != null){
+                index += 39 ;
+                list.add(vo) ;
+                vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
+            }
+            dV1.subData = list ;
+        }else{
+            //鏃犺褰�
+        }
+    }
+
+    private DataCd5CVo doParseData(byte[] bs, int index, int bsLen, String controllerType,Integer projectNo) throws Exception{
+        //姣忔潯鏁版嵁鍗�39瀛楄妭
+        if(bsLen - index > 16){
+            DataCd5CVo cdData = new DataCd5CVo() ;
+
+            cdData.controllerType = controllerType ;
+            cdData.projectNo = projectNo ;
+
+            String HH = ByteUtil.BCD2String_BE(bs, index, index) ;
+            index++ ;
+            String dd = ByteUtil.BCD2String_BE(bs, index, index) ;
+            index++ ;
+            String MM = ByteUtil.BCD2String_BE(bs, index, index) ;
+            index++ ;
+            String yy = ByteUtil.BCD2String_BE(bs, index, index) ;
+            cdData.dt = "20" + yy + "-" + MM + "-" + dd + " " + HH  ;
+
+            int meterAmountDay = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+            cdData.meterAmountDay = meterAmountDay/100.0D;
+
+            index += 4 ;
+            int farmerAmountDay = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+            cdData.farmerAmountDay = farmerAmountDay/100.0D;
+
+            index += 4 ;
+            int lossAmountDay = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+            cdData.lossAmountDay = lossAmountDay/100.0D;
+
+            return cdData ;
+        }else{
+            return null ;
+        }
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Down.java
new file mode 100644
index 0000000..fe0c3a8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Down.java
@@ -0,0 +1,83 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd5BVo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd65Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.DateTime;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_65
+})
+public class Cd_65_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            String json = (String)para.param;
+            ComCd65Vo cvo = JSON.parseObject(json, ComCd65Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd65Vo涓簄ull") ;
+            }
+            if(cvo.page < 1 || cvo.page > 9){
+                throw new Exception("ComCd65Vo鐨刾age鍙栧�间笉姝g‘锛屾纭彇鍊艰寖鍥存槸锛�1~9锛�") ;
+            }
+            byte[] bs = new byte[3] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            bs[index] = cvo.page.byteValue() ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Up.java
new file mode 100644
index 0000000..b0ca292
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Up.java
@@ -0,0 +1,143 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd5BVo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd65Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_65
+})
+@SuppressWarnings("unused")
+public class Cd_65_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_65_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        String controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        Integer projectNo = 0 + bs[index];
+
+        index++ ;
+        byte hasRecord = bs[index];
+        if(hasRecord == 1){
+            //鏈夎褰�
+            List<DataCd65Vo> list = new ArrayList<>() ;
+            DataCd65Vo vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
+            while(vo != null){
+                index += 39 ;
+                list.add(vo) ;
+                vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
+            }
+            dV1.subData = list ;
+        }else{
+            //鏃犺褰�
+        }
+    }
+
+    private DataCd65Vo doParseData(byte[] bs, int index, int bsLen, String controllerType,Integer projectNo) throws Exception{
+        //姣忔潯鏁版嵁鍗�39瀛楄妭
+        if(bsLen - index > 39){
+            DataCd65Vo cdData = new DataCd65Vo() ;
+
+            cdData.controllerType = controllerType ;
+            cdData.projectNo = projectNo ;
+
+            cdData.icCardAddr = ByteUtil.bytes2Hex(bs, false, index, 4) ;
+
+            index += 4 ;
+            cdData.icCardNo  = GlParse.parseIcCardNo(bs, index, 6, 2) ;
+
+            index += 8 ;
+            int moneyRemain = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+            cdData.moneyRemain = moneyRemain/100.0D;
+
+            index += 5 ;
+            int waterRemain = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+            cdData.waterRemain = waterRemain/100.0D;
+
+            index += 5 ;
+            int thisEle = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+            cdData.thisEle = thisEle/100.0D;
+
+            index += 4 ;
+            int thisWater = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+            cdData.thisWater = thisWater/100.0D;
+
+            index += 4 ;
+            String mm = ByteUtil.BCD2String_BE(bs, index, index) ;
+            index++ ;
+            String HH = ByteUtil.BCD2String_BE(bs, index, index) ;
+            index++ ;
+            String dd = ByteUtil.BCD2String_BE(bs, index, index) ;
+            index++ ;
+            String MM = ByteUtil.BCD2String_BE(bs, index, index) ;
+            cdData.rtuStartDt = MM + "-" + dd + " " + HH + ":" + mm ;
+
+            index++ ;
+            mm = ByteUtil.BCD2String_BE(bs, index, index) ;
+            index++ ;
+            HH = ByteUtil.BCD2String_BE(bs, index, index) ;
+            index++ ;
+            dd = ByteUtil.BCD2String_BE(bs, index, index) ;
+            index++ ;
+            MM = ByteUtil.BCD2String_BE(bs, index, index) ;
+            cdData.rtuEndDt = MM + "-" + dd + " " + HH + ":" + mm ;
+
+            index++ ;
+            cdData.useWaterType = bs[index];
+
+            return cdData ;
+        }else{
+            return null ;
+        }
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Down.java
new file mode 100644
index 0000000..21dd8cf
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Down.java
@@ -0,0 +1,68 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd8AVo;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_80
+})
+public class Cd_80_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = true ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            DataCd80Vo cdData = (DataCd80Vo)para.param ;
+            byte[] bs = new byte[2] ;
+            bs[0] = (byte)(Integer.parseInt(cdData.getControllerType(), 16));
+            bs[1] = cdData.projectNo.byteValue() ;
+            GlCreate.createTp(bs, 3) ;
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Up.java
new file mode 100644
index 0000000..05d4c82
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Up.java
@@ -0,0 +1,93 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd8AVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_80
+})
+@SuppressWarnings("unused")
+public class Cd_80_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_80_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = true ;//涓诲姩涓婃姤
+
+        String confirmComCode = para.upCode ;
+        ParseParamsForDownV202404 downCpParams  = new ParseParamsForDownV202404() ;
+        downCpParams.setValue(
+                null,
+                ProtocolConstantV206V202404.protocolName,
+                para.rtuAddr,
+                Command.defaultId,
+                confirmComCode,
+                para.data.subData==null?null:(((DataV202404)para.data.subData).subData),
+                null);
+        //鏋勯�犲簲绛�
+        byte[] data = new Cd_80_Down().doParse(downCpParams) ;
+
+        MidResultToRtu confirmCommand = new MidResultToRtu() ;
+        confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        confirmCommand.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        confirmCommand.commandId = Command.defaultId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        confirmCommand.downCode = confirmComCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        confirmCommand.downBuffer = data ;//涓嬭鍛戒护鏁版嵁
+        confirmCommand.downBufHex = ByteUtil.bytes2Hex(data, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        confirmCommand.hasResponse = false ;//鏄惁鏈夊簲绛�
+        confirmCommand.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�2娆�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
+
+        confirmCommand.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            confirmCommand.isQuickSend = true ;
+        }
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs, confirmCommand} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd80Vo cdData = new DataCd80Vo() ;
+        dV1.subData = cdData ;
+
+        GlParse.parseCd80And5B(bs, cdData);
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Down.java
new file mode 100644
index 0000000..e7ac594
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Down.java
@@ -0,0 +1,68 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd81Vo;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_81
+})
+public class Cd_81_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = true ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            DataCd81Vo cdData = (DataCd81Vo)para.param ;
+            byte[] bs = new byte[2] ;
+            bs[0] = (byte)(Integer.parseInt(cdData.getControllerType(), 16));
+            bs[1] = cdData.projectNo.byteValue() ;
+            GlCreate.createTp(bs, 3) ;
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java
new file mode 100644
index 0000000..7fe4dd2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java
@@ -0,0 +1,100 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd81Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_81
+})
+@SuppressWarnings("unused")
+public class Cd_81_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_81_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = true ;//涓诲姩涓婃姤
+
+        String confirmComCode = para.upCode ;
+        ParseParamsForDownV202404 downCpParams  = new ParseParamsForDownV202404() ;
+        downCpParams.setValue(
+                null,
+                ProtocolConstantV206V202404.protocolName,
+                para.rtuAddr,
+                Command.defaultId,
+                confirmComCode,
+                para.data.subData==null?null:(((DataV202404)para.data.subData).subData),
+                null);
+        //鏋勯�犲簲绛�
+        byte[] data = new Cd_81_Down().doParse(downCpParams) ;
+
+        MidResultToRtu confirmCommand = new MidResultToRtu() ;
+        confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        confirmCommand.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        confirmCommand.commandId = Command.defaultId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        confirmCommand.downCode = confirmComCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        confirmCommand.downBuffer = data ;//涓嬭鍛戒护鏁版嵁
+        confirmCommand.downBufHex = ByteUtil.bytes2Hex(data, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        confirmCommand.hasResponse = false ;//鏄惁鏈夊簲绛�
+        confirmCommand.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�2娆�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
+
+        confirmCommand.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            confirmCommand.isQuickSend = true ;
+        }
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs, confirmCommand} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd81Vo cdData = new DataCd81Vo() ;
+        dV1.subData = cdData ;
+
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = 0 + bs[index];
+
+        index++ ;
+        GlParse.parseAlarmAndState(bs, index, cdData) ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Down.java
new file mode 100644
index 0000000..ebc085d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Down.java
@@ -0,0 +1,67 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd8AVo;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_8A
+})
+public class Cd_8A_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = true ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            DataCd8AVo cdData = (DataCd8AVo)para.param ;
+            byte[] bs = new byte[8] ;
+            bs[0] = (byte)(Integer.parseInt(cdData.getControllerType(), 16));
+            bs[1] = cdData.projectNo.byteValue() ;
+            GlCreate.createTp(bs, 3) ;
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java
new file mode 100644
index 0000000..e3196a5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java
@@ -0,0 +1,115 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd8AVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_8A
+})
+@SuppressWarnings("unused")
+public class Cd_8A_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_8A_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = true ;
+
+        String confirmComCode = para.upCode ;
+        ParseParamsForDownV202404 downCpParams  = new ParseParamsForDownV202404() ;
+        downCpParams.setValue(
+                null,
+                ProtocolConstantV206V202404.protocolName,
+                para.rtuAddr,
+                Command.defaultId,
+                confirmComCode,
+                para.data.subData==null?null:(((DataV202404)para.data.subData).subData),
+                null);
+        //鏋勯�犲簲绛�
+        byte[] data = new Cd_8A_Down().doParse(downCpParams) ;
+
+        MidResultToRtu confirmCommand = new MidResultToRtu() ;
+        confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        confirmCommand.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        confirmCommand.commandId = Command.defaultId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        confirmCommand.downCode = confirmComCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        confirmCommand.downBuffer = data ;//涓嬭鍛戒护鏁版嵁
+        confirmCommand.downBufHex = ByteUtil.bytes2Hex(data, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        confirmCommand.hasResponse = false ;//鏄惁鏈夊簲绛�
+        confirmCommand.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�2娆�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
+
+        confirmCommand.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            confirmCommand.isQuickSend = true ;
+        }
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs, confirmCommand} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd8AVo cdData = new DataCd8AVo() ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = 0 + bs[index];
+
+        index++ ;
+        int lng = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+        cdData.lng = lng/1000000.0D;
+
+        index += 5 ;
+        int lat = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+        cdData.lat = lat/1000000.0D;
+
+        index += 5 ;
+        int softVersion = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.softVersion = softVersion/10.0F;
+
+        index += 2 ;
+        int hardVersion = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.hardVersion = hardVersion/10.0F;
+
+        index += 2 ;
+        int protocolVersion = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.protocolVersion = protocolVersion/10.0F;
+
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Down.java
new file mode 100644
index 0000000..2c414b4
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Down.java
@@ -0,0 +1,76 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd65Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd97Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_97
+})
+public class Cd_97_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            String json = (String)para.param;
+            ComCd97Vo cvo = JSON.parseObject(json, ComCd97Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd97Vo涓簄ull") ;
+            }
+            byte[] bs = new byte[2] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Up.java
new file mode 100644
index 0000000..9f276fb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Up.java
@@ -0,0 +1,80 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd50Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd65Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd97Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_97
+})
+@SuppressWarnings("unused")
+public class Cd_97_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_97_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd97Vo cdData = new DataCd97Vo() ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = 0 + bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Down.java
new file mode 100644
index 0000000..047e57e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Down.java
@@ -0,0 +1,76 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd97Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd98Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_98
+})
+public class Cd_98_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            String json = (String)para.param;
+            ComCd98Vo cvo = JSON.parseObject(json, ComCd98Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd98Vo涓簄ull") ;
+            }
+            byte[] bs = new byte[2] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Up.java
new file mode 100644
index 0000000..eae5f1a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Up.java
@@ -0,0 +1,74 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd98Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_98
+})
+@SuppressWarnings("unused")
+public class Cd_98_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_98_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd98Vo cdData = new DataCd98Vo() ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = 0 + bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlCreate.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlCreate.java
new file mode 100644
index 0000000..16f5543
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlCreate.java
@@ -0,0 +1,129 @@
+package com.dy.common.mw.protocol.p206V202404.parse.global;
+
+import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+import com.dy.common.mw.protocol.p206V202404.CommonV202404;
+import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+import com.dy.common.util.CRC8_for_2_0;
+import com.dy.common.util.DateTime;
+
+public class GlCreate {
+    /**
+     * 6瀛楄妭BCD鐮侊紙12浣嶈鏀垮尯鍒掞級 + 2瀛楄妭HEX
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param commandCode 鍔熻兘鐮�
+     * @throws Exception
+     */
+    public static byte[] createStart2Cd(String rtuAddr, String commandCode) throws Exception {
+        CommonV202404 commonV202404 = new CommonV202404() ;
+        byte[] bsHead = new byte[ProtocolConstantV206V202404.lenHead2Code] ;
+        byte index = 0 ;
+        bsHead[index] = ProtocolConstantV206V202404.P_Head_Byte ;
+
+        index++ ;
+        bsHead[index] = 0 ;//甯ч暱搴�
+
+        index++ ;
+        bsHead[index] = ProtocolConstantV206V202404.P_Head_Byte ;
+
+        index++ ;
+        bsHead[index] = commonV202404.createCtrl((byte)0, (byte)0) ;
+
+        index++ ;
+        GlCreate.createRtuAddr(rtuAddr, bsHead, index);
+        index += 7 ;
+
+        ByteUtil.hex2Bytes(commandCode, bsHead, index) ;
+        return bsHead ;
+    }
+
+    /**
+     * 鐢熸垚鎺у埗鍣ㄥ湴鍧�
+     * 6瀛楄妭BCD鐮侊紙12浣嶈鏀垮尯鍒掞級 + 2瀛楄妭HEX
+     * @param rtuAddr
+     * @param bs
+     * @param index
+     * @throws Exception
+     */
+    public static void createRtuAddr(String rtuAddr, byte[] bs, int index) throws Exception {
+        String rtuAddr1 = rtuAddr.substring(0, 12) ;
+        String rtuAddr2 = rtuAddr.substring(12) ;
+
+        ByteUtil.string2BCD_BE(bs, rtuAddr1, index) ;
+        index += 6 ;
+
+        Integer rtuAddr2Int = Integer.parseInt(rtuAddr2) ;
+        ByteUtilUnsigned.short2Bytes_LE(bs, rtuAddr2Int.shortValue(), index);
+    }
+
+    /**
+     * 鐢熸垚IC鍗″湴鍧�
+     * @param icCardAddr
+     * @param bs
+     * @param index
+     * @throws Exception
+     */
+    public static void createIcCardAddr(String icCardAddr, byte[] bs, int index) throws Exception {
+        String s1 = icCardAddr.substring(0, 2) ;
+        String s2 = icCardAddr.substring(2, 4) ;
+        String s3 = icCardAddr.substring(4, 6) ;
+        String s4 = icCardAddr.substring(6, 8) ;
+        bs[index++] = (byte) (Integer.parseInt(s1, 16)) ;
+        bs[index++] = (byte) (Integer.parseInt(s2, 16)) ;
+        bs[index++] = (byte) (Integer.parseInt(s3, 16)) ;
+        bs[index++] = (byte) (Integer.parseInt(s4, 16)) ;
+    }
+
+    /**
+     * 鐢熸垚IC鍗$紪鐮�
+     * 6瀛楄妭BCD鐮侊紙12浣嶈鏀垮尯鍒掞級 + 2瀛楄妭HEX
+     * @param icCardNo
+     * @param bs
+     * @param index
+     * @throws Exception
+     */
+    public static void createIcCardNo(String icCardNo, byte[] bs, int index) throws Exception {
+        String icCardNo1 = icCardNo.substring(0, 12) ;
+        String icCardNo2 = icCardNo.substring(12) ;
+
+        ByteUtil.string2BCD_BE(bs, icCardNo1, index) ;
+        index += 6 ;
+
+        Integer icCardNo2Int = Integer.parseInt(icCardNo2) ;
+        ByteUtilUnsigned.short2Bytes_LE(bs, icCardNo2Int.shortValue(), index);
+    }
+    public static void createPw(byte[] bs, int index) throws Exception {
+        bs[index] = 0;
+        bs[index + 1] = 0;
+    }
+
+    public static void createTp(byte[] bs, int index) throws Exception {
+        bs[index] = Byte.parseByte(DateTime.ss()) ;
+        bs[index + 1] = Byte.parseByte(DateTime.mm()) ;
+        bs[index + 2] = Byte.parseByte(DateTime.HH()) ;
+        bs[index + 3] = Byte.parseByte(DateTime.dd()) ;
+        bs[index + 4] = (byte)(DateTime.week_Int().byteValue() << 5 | Byte.parseByte(DateTime.MM())) ;
+        bs[index + 5] = Byte.parseByte(DateTime.yy()) ;
+    }
+
+    public static void createS2D(byte[] bs, int index) throws Exception {
+        bs[index] = Byte.parseByte(DateTime.ss()) ;
+        bs[index + 1] = Byte.parseByte(DateTime.mm()) ;
+        bs[index + 2] = Byte.parseByte(DateTime.HH()) ;
+        bs[index + 3] = Byte.parseByte(DateTime.dd()) ;
+    }
+
+    public static void createLen(byte[] bsNoTail) throws Exception {
+        int len = bsNoTail.length - ProtocolConstantV206V1_0_0.lenHead2ctrl;
+        bsNoTail[ProtocolConstantV206V1_0_0.dataLenIndex] = (byte)len ;
+    }
+
+    public static byte[] createCrcTail(byte[] bsNoTail) throws Exception {
+        int crc = new CRC8_for_2_0().CRC8(bsNoTail, ProtocolConstantV206V1_0_0.ctrlIndex, bsNoTail.length -1) ;
+        byte[] bytes = new byte[ProtocolConstantV206V1_0_0.lenTail] ;
+        bytes[0] = (byte)crc ;
+        bytes[1] = ProtocolConstantV206V1_0_0.P_Tail_Byte ;
+        return bytes ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java
new file mode 100644
index 0000000..982ed69
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java
@@ -0,0 +1,253 @@
+package com.dy.common.mw.protocol.p206V202404.parse.global;
+
+import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd81Vo;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class GlParse {
+
+    private static final Logger log = LogManager.getLogger(GlParse.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁涓殑鏃堕挓
+     * @param bs 涓婅瀛楄妭鏁扮粍
+     * @param index 鍚浣�
+     * @return 鎺у埗鍣ㄥ湴鍧�
+     * @throws Exception 寮傚父
+     */
+    public static String parseRtuDt(byte[] bs, int index)throws Exception{
+        String ss = ByteUtil.BCD2String_BE(bs, index, index) ;
+        index++ ;
+        String MM = ByteUtil.BCD2String_BE(bs, index, index) ;
+        index++ ;
+        String HH = ByteUtil.BCD2String_BE(bs, index, index) ;
+        index++ ;
+        String dd = ByteUtil.BCD2String_BE(bs, index, index) ;
+        index++ ;
+        String mm = ByteUtil.BCD2String_BE(bs, index, index) ;
+        index++ ;
+        String yy = ByteUtil.BCD2String_BE(bs, index, index) ;
+        return yy + "-" + mm + "-" + dd + " " + HH + ":" + MM + ":" + ss ;
+    }
+   /**
+     * 鍒嗘瀽IC鍗$紪鍙�
+     * @param bs 涓婅瀛楄妭鏁扮粍
+     * @param index 鍚浣�
+     * @param len1 绗竴閮ㄥ垎瀛楄妭鏁�
+     * @param len2 绗簩閮ㄥ垎瀛楄妭鏁�
+     * @return 鎺у埗鍣ㄥ湴鍧�
+     * @throws Exception 寮傚父
+     */
+    public static String parseIcCardNo(byte[] bs, int index, int len1, int len2)throws Exception{
+        String rtuAddrBCD = "" + ByteUtil.BCD2Long_BE(bs, index, index + len1 - 1) ;
+        String rtuAddrStr = "" + ByteUtilUnsigned.bytes2Short_LE(bs, index + len1 + len2 -1 ) ;
+        while(rtuAddrStr.length() < 5){
+            rtuAddrStr = "0" + rtuAddrStr ;
+        }
+        return rtuAddrBCD + rtuAddrStr ;
+    }
+
+    /**
+     * 鍒嗘瀽鐘舵�佷笌鎶ヨ
+     * @param bs
+     * @param index
+     * @return
+     */
+    public static void parseAlarmAndState(byte[] bs, int index, DataCd80Vo vo){
+        byte b = bs[index] ;
+        vo.statePump = (byte)(b & 0x1) ;
+        vo.alarmWaterRemain = (byte)(b & 0x2) ;
+        vo.alarm0WaterRemain = (byte)(b & 0x4) ;
+        vo.alarmExceedYear = (byte)(b & 0x8) ;
+        vo.alarmWaterMeterFault = (byte)(b & 0x10) ;
+        vo.alarmSteal = (byte)(b & 0x20) ;
+        vo.alarmWaterMeterBreak = (byte)(b & 0x40) ;
+        vo.alarmEleMeterFault = (byte)(b & 0x80) ;
+
+        index++ ;
+        b = bs[index] ;
+        vo.alarm0MoneyRemain = (byte)(b & 0x1) ;
+        vo.alarmInnerDoor = (byte)(b & 0x2) ;
+        vo.alarmOuterDoor = (byte)(b & 0x4) ;
+        vo.alarmEleMiss = (byte)(b & 0x8) ;
+        vo.alarmEleExceed = (byte)(b & 0x10) ;
+        vo.alarmEleLowVolt = (byte)(b & 0x20) ;
+        vo.stateIcEnable = (byte)(b & 0x40) ;
+    }
+    /**
+     * 鍒嗘瀽鐘舵�佷笌鎶ヨ
+     * @param bs
+     * @param index
+     * @return
+     */
+    public static void parseAlarmAndState(byte[] bs, int index, DataCd81Vo vo){
+        byte b = bs[index] ;
+        vo.statePump = (byte)(b & 0x1) ;
+        vo.alarmWaterRemain = (byte)(b & 0x2) ;
+        vo.alarm0WaterRemain = (byte)(b & 0x4) ;
+        vo.alarmExceedYear = (byte)(b & 0x8) ;
+        vo.alarmWaterMeterFault = (byte)(b & 0x10) ;
+        vo.alarmSteal = (byte)(b & 0x20) ;
+        vo.alarmWaterMeterBreak = (byte)(b & 0x40) ;
+        vo.alarmEleMeterFault = (byte)(b & 0x80) ;
+
+        index++ ;
+        b = bs[index] ;
+        vo.alarm0MoneyRemain = (byte)(b & 0x1) ;
+        vo.alarmInnerDoor = (byte)(b & 0x2) ;
+        vo.alarmOuterDoor = (byte)(b & 0x4) ;
+        vo.alarmEleMiss = (byte)(b & 0x8) ;
+        vo.alarmEleExceed = (byte)(b & 0x10) ;
+        vo.alarmEleLowVolt = (byte)(b & 0x20) ;
+        vo.stateIcEnable = (byte)(b & 0x40) ;
+    }
+
+    public static String parseTp(byte[] bs, short index){
+        String dt = "" ;
+        try{
+            dt = dt + ByteUtil.BCD2String_BE(bs, index, index) ;//绉�
+            index++ ;
+            dt = ByteUtil.BCD2String_BE(bs, index, index) + ":" + dt ;//鍒�
+            index++ ;
+            dt = ByteUtil.BCD2String_BE(bs, index, index) + ":" + dt ;//鏃�
+            index++ ;
+            dt = ByteUtil.BCD2String_BE(bs, index, index) + " " + dt ;//鏃�
+            index++ ;
+            //bs[index] = (byte)(bs[index] & 0x10);
+            dt = ByteUtil.BCD2String_BE(bs, index, index) + "-" + dt ;//鏈�
+            index++ ;
+            dt = "20" + ByteUtil.BCD2String_BE(bs, index, index) + "-" + dt ;//骞�
+        }catch (Exception e){
+            log.error("瑙f瀽鎺у埗鍣ㄦ椂閽熸椂寮傚父锛�" + e.getMessage(), e);
+        }
+        return dt ;
+    }
+
+    /**
+     * 鍒嗘瀽鍔熻兘80鍜�5B鏁版嵁
+     * @param bs
+     * @param cdData
+     * @throws Exception
+     */
+    public static void parseCd80And5B(byte[] bs, DataCd80Vo cdData) throws Exception{
+
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = 0 + bs[index];
+
+        index++ ;
+        cdData.useWaterType = bs[index];
+
+        index++ ;
+        cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 4) ;
+
+        index += 8 ;
+        cdData.icCardAddr = ByteUtil.bytes2Hex(bs, false, index, 4) ;
+
+        index += 4 ;
+        cdData.icCardNo  = GlParse.parseIcCardNo(bs, index, 6, 2) ;
+
+        index += 8 ;
+        cdData.rtuDt  = GlParse.parseRtuDt(bs, index) ;
+
+        index += 6 ;
+        int waterLevel = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+        cdData.waterLevel = waterLevel/1000.0D;
+
+        index += 4 ;
+        int waterPress = ByteUtil.BCD2Int_BE(bs, index, index + 2) ;
+        cdData.waterPress = waterPress/100.0D;
+
+        index += 3 ;
+        int waterInstant = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+        cdData.waterInstant = waterInstant/100.0D;
+
+        index += 4 ;
+        int waterTotal = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+        cdData.waterTotal = waterTotal/100.0D;
+
+        index += 5 ;
+        int eleTotal = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+        cdData.eleTotal = eleTotal/100.0D;
+
+        index += 5 ;
+        int moneyRemain = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+        cdData.moneyRemain = moneyRemain/100.0D;
+
+        index += 5 ;
+        int waterRemain = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+        cdData.waterRemain = waterRemain/100.0D;
+
+        index += 5 ;
+        int thisEle = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+        cdData.thisEle = thisEle/100.0D;
+
+        index += 4 ;
+        int thisWater = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+        cdData.thisWater = thisWater/100.0D;
+
+        index += 4 ;
+        int thisMoney = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+        cdData.thisMoney = thisMoney/100.0D;
+
+        index += 4 ;
+        cdData.thisDuration = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+
+        index += 2 ;
+        int waterPrice = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.waterPrice = waterPrice/100.0D;
+
+        index += 2 ;
+        int elePrice = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.elePrice = elePrice/100.0D;
+
+        index += 2 ;
+        GlParse.parseAlarmAndState(bs, index, cdData) ;
+
+        index += 2 ;
+        int aVolt = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.aVolt = aVolt/10.0D;
+
+        index += 2 ;
+        int bVolt = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.bVolt = bVolt/10.0D;
+
+        index += 2 ;
+        int cVolt = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.cVolt = cVolt/10.0D;
+
+        index += 2 ;
+        int aCurrent = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.aCurrent = aCurrent/10.0D;
+
+        index += 2 ;
+        int bCurrent = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.bCurrent = bCurrent/10.0D;
+
+        index += 2 ;
+        int cCurrent = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.cCurrent = cCurrent/10.0D;
+
+        index += 2 ;
+        int batteryVolt = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.batteryVolt = batteryVolt/100.0D;
+
+        index += 2 ;
+        int waterMeterTransVolt = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.waterMeterTransVolt = waterMeterTransVolt/100.0D;
+
+        index += 2 ;
+        int waterMeterWorkVolt = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.waterMeterWorkVolt = waterMeterWorkVolt/100.0D;
+
+        index += 2 ;
+        cdData.csq = ByteUtil.BCD2Int_BE(bs, index, index) ;
+
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd02Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd02Vo.java
new file mode 100644
index 0000000..5888f6d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd02Vo.java
@@ -0,0 +1,28 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//閾捐矾妫�娴�
+@Data
+public class DataCd02Vo {
+
+	public String controllerType ;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+	public Integer projectNo ;//椤圭洰缂栧彿:
+	public String status ;//淇濇寔鍦ㄧ嚎鐘舵��:  F0 鐧诲綍锛孎1 閫�鍑虹櫥褰曪紝F2 鍦ㄧ嚎淇濇寔
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      閾捐矾妫�娴� : \n") ;
+		sb.append("      璇锋眰鐘舵�� : ") ;
+		sb.append(status == null?"鏈煡":(status.equals("F0")?"鐧诲綍":(status.equals("F1")?"閫�鍑虹櫥褰�":(status.equals("F2")?"鍦ㄧ嚎淇濇寔":status)))) ;
+		sb.append("\n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd10Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd10Vo.java
new file mode 100644
index 0000000..46ce7db
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd10Vo.java
@@ -0,0 +1,28 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//璁剧疆璁惧缁堢鍦板潃
+@Data
+public class DataCd10Vo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+	public Integer projectNo ;//椤圭洰缂栧彿:
+	public String rtuNewAddr ;//鎺у埗鍣ㄦ柊鍦板潃
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      璁剧疆缁堢鍦板潃搴旂瓟 : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      鎺у埗鍣ㄦ柊鍦板潃 : ") ;
+		sb.append(rtuNewAddr == null?"鏈煡":rtuNewAddr) ;
+		sb.append("\n") ;
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd15Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd15Vo.java
new file mode 100644
index 0000000..53bae3b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd15Vo.java
@@ -0,0 +1,30 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//杩滅▼鐢ㄦ埛鍏呭��
+@Data
+public class DataCd15Vo {
+
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+	public Integer projectNo ;//椤圭洰缂栧彿:
+	public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      娓呴櫎璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍 : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      鍛戒护缁撴灉 : ") ;
+		sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
+		sb.append("\n") ;
+
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd50Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd50Vo.java
new file mode 100644
index 0000000..1c3df62
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd50Vo.java
@@ -0,0 +1,28 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鏌ヨ璁惧缁堢鍦板潃
+@Data
+public class DataCd50Vo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+	public Integer projectNo ;//椤圭洰缂栧彿:
+	public String rtuAddr;//鎺у埗鍣ㄦ柊鍦板潃
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      璁剧疆缁堢鍦板潃搴旂瓟 : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      鎺у埗鍣ㄥ湴鍧� : ") ;
+		sb.append(rtuAddr == null?"鏈煡": rtuAddr) ;
+		sb.append("\n") ;
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd55Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd55Vo.java
new file mode 100644
index 0000000..a2c4b9a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd55Vo.java
@@ -0,0 +1,53 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鏌ヨ璁惧缁堢鍏呭�艰褰�
+@Data
+public class DataCd55Vo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+	public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+	public String icCardAddr ;//IC鍗″湴鍧�(8浣嶆暟瀛楁垨瀛楁瘝)
+	public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�16浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+	public Double chargeMoney ;//鍗曚綅:鍏�  2浣嶅皬鏁扮偣(鏈�澶у�� 99999999.99)
+	public Double chargeWater ;//鍗曚綅:m3  2浣嶅皬鏁扮偣(鏈�澶у�� 99999999.99)
+	public String flowNo ;//娴佹按鍙凤紙12浣嶆暟瀛楋級
+	public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+	public String dt ;//鍏呭�兼椂闂达紙yyyy-mm-dd HH:mm:ss锛�
+
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      鏌ヨ璁惧缁堢鍏呭�艰褰�  : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      IC鍗″湴鍧� : ") ;
+		sb.append(icCardAddr == null?"鏈煡":icCardAddr) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍗″簭鍒楀彿 : ") ;
+		sb.append(icCardNo == null?"鏈煡":icCardNo) ;
+		sb.append("\n") ;
+		sb.append("      鍏呭�奸噾棰� : ") ;
+		sb.append(chargeMoney == null?"鏈煡":chargeMoney) ;
+		sb.append("\n") ;
+		sb.append("      鍏呭�兼按閲� : ") ;
+		sb.append(chargeWater == null?"鏈煡":chargeWater) ;
+		sb.append("\n") ;
+		sb.append("      娴佹按鍙� : ") ;
+		sb.append(flowNo == null?"鏈煡":flowNo) ;
+		sb.append("\n") ;
+		sb.append("      鍏呭�肩粨鏋� : ") ;
+		sb.append(success == null?"鏈煡":(success.booleanValue()?"鎴愬姛":"澶辫触")) ;
+		sb.append("\n") ;
+		sb.append("      鍏呭�兼椂闂� : ") ;
+		sb.append(dt == null?"鏈煡":dt) ;
+		sb.append("\n") ;
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java
new file mode 100644
index 0000000..6ee2945
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java
@@ -0,0 +1,30 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鏌ヨ璁惧缁堢鍓╀綑姘撮噺鍜屽墿浣欓噾棰濇姤璀﹀��
+@Data
+public class DataCd56Vo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+	public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+	public Integer waterAlarm ;//鍓╀綑姘撮噺鎶ヨ鍊�,鍗曚綅:m3銆傛暣鏁帮紝鍙栧�艰寖鍥�0~65535
+	public Integer moneyAlarm ;//鍓╀綑閲戦鎶ヨ鍊�,鍗曚綅:鍏冦�傛暣鏁帮紝鍙栧�艰寖鍥�0~65535
+
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      鏌ヨ璁惧缁堢鍓╀綑姘撮噺鍜屽墿浣欓噾棰濇姤璀﹀��  : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      鍓╀綑姘撮噺鎶ヨ鍊� : ") ;
+		sb.append(moneyAlarm == null?"鏈煡":moneyAlarm) ;
+		sb.append("\n") ;
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5BVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5BVo.java
new file mode 100644
index 0000000..ca92652
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5BVo.java
@@ -0,0 +1,9 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//璁惧缁堢宸ヤ綔涓婃姤
+@Data
+public class DataCd5BVo extends DataCd80Vo {
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5CVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5CVo.java
new file mode 100644
index 0000000..50abb2c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5CVo.java
@@ -0,0 +1,40 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鏌ヨ璁惧缁堢鐨勫巻鍙叉棩璁板綍
+@Data
+public class DataCd5CVo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+	public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+	public String dt ;//瑙傚療鏃堕棿锛坹yyy-mm-dd HH锛�
+	public Double meterAmountDay ;//褰撴棩姘磋〃鍑�娴侀噺锛�2涓皬鏁扮偣
+	public Double farmerAmountDay ;//褰撴棩鐢ㄦ埛鐢ㄦ按閲忥紝2涓皬鏁扮偣
+	public Double lossAmountDay ;//褰撴棩婕忔崯姘撮噺锛�2涓皬鏁扮偣
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      鏌ヨ璁惧缁堢鐨勫巻鍙叉棩璁板綍  : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      瑙傚療鏃堕棿 : ") ;
+		sb.append(dt == null?"鏈煡":dt) ;
+		sb.append("\n") ;
+		sb.append("      褰撴棩姘磋〃鍑�娴侀噺 : ") ;
+		sb.append(meterAmountDay == null?"鏈煡":meterAmountDay) ;
+		sb.append("\n") ;
+		sb.append("      褰撴棩鐢ㄦ埛鐢ㄦ按閲� : ") ;
+		sb.append(farmerAmountDay == null?"鏈煡":farmerAmountDay) ;
+		sb.append("\n") ;
+		sb.append("      褰撴棩婕忔崯姘撮噺 : ") ;
+		sb.append(lossAmountDay == null?"鏈煡":lossAmountDay) ;
+		sb.append("\n") ;
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd65Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd65Vo.java
new file mode 100644
index 0000000..5395ec4
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd65Vo.java
@@ -0,0 +1,60 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鏌ヨ璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍
+@Data
+public class DataCd65Vo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+	public Integer projectNo ;//椤圭洰缂栧彿:
+	public String icCardAddr ;//IC鍗″湴鍧�(杩滅▼寮�娉�/闃�鏃舵鏁版嵁涓�0)
+	public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�16浣嶆暟瀛楋級
+	public Double moneyRemain ;//鐢ㄦ埛鍓╀綑閲戦(鍗曚綅0.01鍏�)
+	public Double waterRemain ;//鐢ㄦ埛鍓╀綑姘撮噺(鍗曚綅0.01m3)
+	public Double thisEle ;//鏈浣跨敤鐢甸噺(鍗曚綅0.01搴�)
+	public Double thisWater ;//鏈浣跨敤姘撮噺(鍗曚綅0.01绔嬫柟绫�)
+	public String rtuStartDt ;//鏈寮�濮嬫椂闂� (鍒嗘椂鏃ユ湀)
+	public String rtuEndDt ;//鏈缁撴潫鏃堕棿 (鍒嗘椂鏃ユ湀)
+	public Byte useWaterType ;//鐢ㄦ按鏂瑰紡锛�0x00:姝e父鍒峰崱寮�娉�/闃�鐢ㄦ按 0x01:骞冲彴杩滅▼寮�娉�/闃�鐢ㄦ按 0x02:鐢ㄦ埛杩滅▼寮�娉�/闃�鐢ㄦ按 0x03:娴嬭瘯鍗★紝0x04:鍏跺畠锛�
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      鏌ヨ璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍 : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ按鏂瑰紡 : ") ;
+		sb.append(useWaterType == null?"鏈煡":(useWaterType.byteValue()==0?"鍒峰崱寮�娉�/闃�":(useWaterType.byteValue()==1?"骞冲彴杩滅▼寮�娉�/闃�":(useWaterType.byteValue()==2?"APP杩滅▼寮�娉�/闃�":(useWaterType.byteValue()==3?"娴嬭瘯鍗″紑娉�/闃�":(useWaterType.byteValue()==4?"鍏朵粬":"鏈煡")))))) ;
+		sb.append("\n") ;
+		sb.append("      IC鍗″湴鍧� : ") ;
+		sb.append(icCardAddr == null?"鏈煡":icCardAddr) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍗″簭鍒楀彿 : ") ;
+		sb.append(icCardNo == null?"鏈煡":icCardNo) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍓╀綑閲戦 : ") ;
+		sb.append(moneyRemain == null?"鏈煡":moneyRemain) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍓╀綑姘撮噺 : ") ;
+		sb.append(waterRemain == null?"鏈煡":waterRemain) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤鐢甸噺 : ") ;
+		sb.append(thisEle == null?"鏈煡":thisEle) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤姘撮噺 : ") ;
+		sb.append(thisWater == null?"鏈煡":thisWater) ;
+		sb.append("\n") ;
+		sb.append("      鏈寮�濮嬫椂闂� : ") ;
+		sb.append(rtuStartDt == null?"鏈煡":rtuStartDt) ;
+		sb.append("\n") ;
+		sb.append("      鏈缁撴潫鏃堕棿 : ") ;
+		sb.append(rtuEndDt == null?"鏈煡":rtuEndDt) ;
+		sb.append("\n") ;
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80Vo.java
new file mode 100644
index 0000000..18ce06b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80Vo.java
@@ -0,0 +1,204 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//璁惧缁堢宸ヤ綔涓婃姤
+@Data
+public class DataCd80Vo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+	public Integer projectNo ;//椤圭洰缂栧彿:
+	public Byte useWaterType ;//鐢ㄦ按鏂瑰紡锛�0x00:姝e父鍒峰崱寮�娉�/闃�鐢ㄦ按 0x01:骞冲彴杩滅▼寮�娉�/闃�鐢ㄦ按 0x02:鐢ㄦ埛杩滅▼寮�娉�/闃�鐢ㄦ按 0x03:娴嬭瘯鍗★紝0x04:鍏跺畠锛�
+	public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+	public String icCardAddr ;//IC鍗″湴鍧�(杩滅▼寮�娉�/闃�鏃舵鏁版嵁涓�0)
+	public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�16浣嶆暟瀛楋級
+	public String rtuDt ;//瑙傚療鏃堕棿: 6瀛楄妭鐨凚CD鐮�(绉掑垎鏃舵棩鏈堝勾)
+	public Double waterLevel ;//姘翠綅锛堝崟浣�0.001绫筹級
+	public Double waterPress ;//姘村帇锛堝崟浣�0.01鍗冨笗锛�
+	public Double waterInstant ;//鐬椂娴侀噺锛堝崟浣�0.01绔嬫柟绫�/灏忔椂锛�
+	public Double waterTotal ;//姘磋〃绱娴侀噺(鍗曚綅0.01m3)
+	public Double eleTotal ;//鐢佃〃绱鐢甸噺(鍗曚綅0.01搴�)
+	public Double moneyRemain ;//鐢ㄦ埛鍓╀綑閲戦(鍗曚綅0.01鍏�)
+	public Double waterRemain ;//鐢ㄦ埛鍓╀綑姘撮噺(鍗曚綅0.01m3)
+	public Double thisEle ;//鏈浣跨敤鐢甸噺(鍗曚綅0.01搴�)
+	public Double thisWater ;//鏈浣跨敤姘撮噺(鍗曚綅0.01绔嬫柟绫�)
+	public Double thisMoney ;//鏈浣跨敤閲戦(鍗曚綅0.01鍏�)
+	public Integer thisDuration ;//鏈浣跨敤鏃堕暱(鍗曚綅:鍒嗛挓  鏈�澶�9999鍒嗛挓)
+	public Double waterPrice ;//褰撳墠姘撮噺鍗曚环(鍗曚綅0.01鍏� 鏈�澶�99.99鍏�)
+	public Double elePrice ;//褰撳墠鐢甸噺鍗曚环(鍗曚綅0.01鍏� 鏈�澶�99.99鍏�)
+	public Double aVolt ;//浜ゆ祦A鐩哥數鍘嬫暟鎹�(鍗曚綅0.1浼忕壒)
+	public Double bVolt ;//浜ゆ祦B鐩哥數鍘嬫暟鎹�(鍗曚綅0.1浼忕壒)
+	public Double cVolt ;//浜ゆ祦C鐩哥數鍘嬫暟鎹�(鍗曚綅0.1浼忕壒)
+	public Double aCurrent ;//浜ゆ祦A鐩哥數娴佹暟鎹�(鍗曚綅0.1瀹夊煿)
+	public Double bCurrent ;//浜ゆ祦B鐩哥數娴佹暟鎹�(鍗曚綅0.1瀹夊煿)
+	public Double cCurrent ;//浜ゆ祦C鐩哥數娴佹暟鎹�(鍗曚綅0.1瀹夊煿)
+	public Double batteryVolt ;//鍚庡鐢垫睜鐢靛帇(鍗曚綅0.01浼忕壒)
+	public Double waterMeterTransVolt ;//姘磋〃杩滀紶鐢靛帇(鍗曚綅0.01浼忕壒)
+	public Double waterMeterWorkVolt ;//姘磋〃宸ヤ綔鐢靛帇(鍗曚綅0.01浼忕壒)
+	/*
+	CSQ鍊煎簲鍦�0鍒�31涔嬮棿锛屽叾涓�99琛ㄧず鏃犱俊鍙枫��
+	缃戠粶璐ㄩ噺璇勪及锛�
+		CSQ鍊煎皬浜�10锛氬彲浠ヨ涓虹綉缁滆緝宸��
+		CSQ鍊煎湪10鍜�25涔嬮棿锛氬彲浠ヨ涓虹綉缁滀腑绛夈��
+		CSQ鍊煎ぇ浜�25锛氬彲浠ヨ涓虹綉缁滆緝濂姐��
+		CSQ鍊煎皬浜�11锛氫笉瀹规槗闄勭潃缃戠粶銆�
+		11 < CSQ < 18锛氱綉缁滀笉绋冲畾锛屽彲鑳戒細瀵艰嚧璇爜杈冨銆�
+		CSQ鍊煎ぇ浜�18锛氳兘绋冲畾閫氫俊
+	 */
+	public Integer csq ;//鎵嬫満淇″彿寮哄害 CSQ鍊硷紙锛�
+
+	public Byte statePump ; //娉�/闃�鐘舵��	(1锛氬紑娉�/闃�锛�0锛氬叧娉�/闃�)
+	public Byte alarmWaterRemain ; //鍓╀綑姘撮噺鎶ヨ	(1锛氬皬浜庢姤璀︿笂闄愭姤璀� 0锛氭甯�)
+	public Byte alarm0WaterRemain ; //鍓╀綑姘撮噺涓�0鍏虫车/闃�	(1锛氬墿浣欐按閲忎负0鍏虫车  0锛氭甯�)
+	public Byte alarmExceedYear ; //骞村害瓒呴噰鎶ヨ	(1锛氬勾鐢ㄦ按閲忓ぇ浜庨檺鍒舵按閲忔姤璀� 0锛氭甯�)
+	public Byte alarmWaterMeterFault ; //澶栭儴娴侀噺璁℃晠闅�	(1锛氭祦閲忚鏁呴殰鎶ヨ 0锛氭甯�)
+	public Byte alarmSteal ; //鍋锋按鎶ヨ	(1锛氱粫寮�鎺у埗鍣ㄧ敤姘存姤璀� 0锛氭甯�)
+	public Byte alarmWaterMeterBreak ; //娴侀噺璁℃崯鍧忔姤璀�	(1锛氭甯搁�氳浣嗙灛鏃朵负0鎶ヨ 0锛氭甯�)
+	public Byte alarmEleMeterFault ; //鐢佃〃鏁呴殰鎶ヨ	(1锛氬拰鐢佃〃閫氳鏂垨鏁版嵁涓嶆甯� 0锛氭甯�)
+	public Byte alarm0MoneyRemain ; //鍓╀綑閲戦涓�0鍏虫车/闃�	(1锛氬墿浣欓噾棰濅负0鎶ヨ  0锛氭甯�)
+	public Byte alarmInnerDoor ; //鎺у埗鍣ㄥ唴闂ㄦ姤璀�	(1锛氬唴闂ㄦ墦寮�鎶ヨ    0锛氭甯�)
+	public Byte alarmOuterDoor ; //鎺у埗鍣ㄥ闂ㄦ姤璀�	(1锛氬闂ㄦ墦寮�鎶ヨ    0锛氭甯�)
+	public Byte alarmEleMiss ; //浜ゆ祦缂洪」鎶ヨ	(1锛氫笁鐩哥己椤规姤璀�    0锛氭甯�)
+	public Byte alarmEleExceed ; //浜ゆ祦杩囨祦鎶ヨ	(1锛氫氦娴佽繃娴佹姤璀�    0锛氭甯�)
+	public Byte alarmEleLowVolt ; //涓夌浉鐢垫瑺鍘嬫姤璀�	(1锛氭瑺鍘嬫姤璀�        0锛氭甯�)
+	public Byte stateIcEnable ; //IC鍗′娇鑳�	(1銆両C鏈夊埛鍗℃敮鎸�    0锛氫笉鏀寔)
+
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      璁惧缁堢宸ヤ綔涓婃姤 : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ按鏂瑰紡 : ") ;
+		sb.append(useWaterType == null?"鏈煡":(useWaterType.byteValue()==0?"鍒峰崱寮�娉�/闃�":(useWaterType.byteValue()==1?"骞冲彴杩滅▼寮�娉�/闃�":(useWaterType.byteValue()==2?"APP杩滅▼寮�娉�/闃�":(useWaterType.byteValue()==3?"娴嬭瘯鍗″紑娉�/闃�":(useWaterType.byteValue()==4?"鍏朵粬":"鏈煡")))))) ;
+		sb.append("\n") ;
+		sb.append("      璁㈠崟鍙� : ") ;
+		sb.append(orderNo == null?"鏈煡":orderNo) ;
+		sb.append("\n") ;
+		sb.append("      IC鍗″湴鍧� : ") ;
+		sb.append(icCardAddr == null?"鏈煡":icCardAddr) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍗″簭鍒楀彿 : ") ;
+		sb.append(icCardNo == null?"鏈煡":icCardNo) ;
+		sb.append("\n") ;
+		sb.append("      瑙傚療鏃堕棿 : ") ;
+		sb.append(rtuDt == null?"鏈煡":rtuDt) ;
+		sb.append("\n") ;
+		sb.append("      姘翠綅 : ") ;
+		sb.append(waterLevel == null?"鏈煡":waterLevel) ;
+		sb.append("\n") ;
+		sb.append("      姘村帇 : ") ;
+		sb.append(waterPress == null?"鏈煡":waterPress) ;
+		sb.append("\n") ;
+		sb.append("      鐬椂娴侀噺 : ") ;
+		sb.append(waterInstant == null?"鏈煡":waterInstant) ;
+		sb.append("\n") ;
+		sb.append("      姘磋〃绱娴侀噺 : ") ;
+		sb.append(waterTotal == null?"鏈煡":waterTotal) ;
+		sb.append("\n") ;
+		sb.append("      鐢佃〃绱鐢甸噺 : ") ;
+		sb.append(eleTotal == null?"鏈煡":eleTotal) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍓╀綑閲戦 : ") ;
+		sb.append(moneyRemain == null?"鏈煡":moneyRemain) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍓╀綑姘撮噺 : ") ;
+		sb.append(waterRemain == null?"鏈煡":waterRemain) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤鐢甸噺 : ") ;
+		sb.append(thisEle == null?"鏈煡":thisEle) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤姘撮噺 : ") ;
+		sb.append(thisWater == null?"鏈煡":thisWater) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤閲戦 : ") ;
+		sb.append(thisMoney == null?"鏈煡":thisMoney) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤鏃堕暱 : ") ;
+		sb.append(thisDuration == null?"鏈煡":thisDuration) ;
+		sb.append("\n") ;
+		sb.append("      褰撳墠姘撮噺鍗曚环 : ") ;
+		sb.append(waterPrice == null?"鏈煡":waterPrice) ;
+		sb.append("\n") ;
+		sb.append("      褰撳墠鐢甸噺鍗曚环 : ") ;
+		sb.append(elePrice == null?"鏈煡":elePrice) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦A鐩哥數鍘� : ") ;
+		sb.append(aVolt == null?"鏈煡":aVolt) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦B鐩哥數鍘� : ") ;
+		sb.append(bVolt == null?"鏈煡":bVolt) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦C鐩哥數鍘� : ") ;
+		sb.append(cVolt == null?"鏈煡":cVolt) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦A鐩哥數娴� : ") ;
+		sb.append(aCurrent == null?"鏈煡":aCurrent) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦B鐩哥數娴� : ") ;
+		sb.append(bCurrent == null?"鏈煡":bCurrent) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦C鐩哥數娴� : ") ;
+		sb.append(cCurrent == null?"鏈煡":cCurrent) ;
+		sb.append("\n") ;
+		sb.append("      鍚庡鐢垫睜鐢靛帇 : ") ;
+		sb.append(batteryVolt == null?"鏈煡":batteryVolt) ;
+		sb.append("\n") ;
+		sb.append("      姘磋〃杩滀紶鐢靛帇 : ") ;
+		sb.append(waterMeterTransVolt == null?"鏈煡":waterMeterTransVolt) ;
+		sb.append("\n") ;
+		sb.append("      姘磋〃宸ヤ綔鐢靛帇 : ") ;
+		sb.append(waterMeterWorkVolt == null?"鏈煡":waterMeterWorkVolt) ;
+		sb.append("\n") ;
+		sb.append("      娉电姸鎬� : ") ;
+		sb.append(statePump == null?"鏈煡":(statePump.byteValue()==1?"娉�/闃�寮�":(statePump.byteValue()==0?"娉�/闃�鍏�":"鏈煡"))) ;
+		sb.append("      鍓╀綑姘撮噺鎶ヨ : ") ;
+		sb.append(alarmWaterRemain == null?"鏈煡":(alarmWaterRemain.byteValue()==1?"灏忎簬鎶ヨ涓婇檺":(alarmWaterRemain.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      鍓╀綑姘撮噺涓�0鍏虫车/闃� : ") ;
+		sb.append(alarm0WaterRemain == null?"鏈煡":(alarm0WaterRemain.byteValue()==1?"褰掗浂鍏虫车/闃�":(alarm0WaterRemain.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      骞村害瓒呴噰 : ") ;
+		sb.append(alarmExceedYear == null?"鏈煡":(alarmExceedYear.byteValue()==1?"鎶ヨ":(alarmExceedYear.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      澶栭儴娴侀噺璁℃晠闅� : ") ;
+		sb.append(alarmWaterMeterFault == null?"鏈煡":(alarmWaterMeterFault.byteValue()==1?"鎶ヨ":(alarmWaterMeterFault.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      鍋锋按 : ") ;
+		sb.append(alarmSteal == null?"鏈煡":(alarmSteal.byteValue()==1?"鎶ヨ":(alarmSteal.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      娴侀噺璁℃崯鍧� : ") ;
+		sb.append(alarmWaterMeterBreak == null?"鏈煡":(alarmWaterMeterBreak.byteValue()==1?"鎶ヨ":(alarmWaterMeterBreak.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      鐢佃〃鏁呴殰 : ") ;
+		sb.append(alarmEleMeterFault == null?"鏈煡":(alarmEleMeterFault.byteValue()==1?"鎶ヨ":(alarmEleMeterFault.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      鍓╀綑閲戦涓�0鍏虫车/闃� : ") ;
+		sb.append(alarm0MoneyRemain == null?"鏈煡":(alarm0MoneyRemain.byteValue()==1?"鎶ヨ":(alarm0MoneyRemain.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      鎺у埗鍣ㄥ唴闂� : ") ;
+		sb.append(alarmInnerDoor == null?"鏈煡":(alarmInnerDoor.byteValue()==1?"鎶ヨ":(alarmInnerDoor.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      鎺у埗鍣ㄥ闂� : ") ;
+		sb.append(alarmOuterDoor == null?"鏈煡":(alarmOuterDoor.byteValue()==1?"鎶ヨ":(alarmOuterDoor.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦缂洪」 : ") ;
+		sb.append(alarmEleMiss == null?"鏈煡":(alarmEleMiss.byteValue()==1?"鎶ヨ":(alarmEleMiss.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦杩囨祦 : ") ;
+		sb.append(alarmEleExceed == null?"鏈煡":(alarmEleExceed.byteValue()==1?"鎶ヨ":(alarmEleExceed.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      涓夌浉鐢垫瑺鍘� : ") ;
+		sb.append(alarmEleLowVolt == null?"鏈煡":(alarmEleLowVolt.byteValue()==1?"鎶ヨ":(alarmEleLowVolt.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      IC鍗′娇鑳� : ") ;
+		sb.append(stateIcEnable == null?"鏈煡":(stateIcEnable.byteValue()==1?"鏀寔":(stateIcEnable.byteValue()==0?"涓嶆敮鎸�":"鏈煡"))) ;
+		sb.append("\n") ;
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd81Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd81Vo.java
new file mode 100644
index 0000000..665b22a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd81Vo.java
@@ -0,0 +1,85 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//璁惧缁堢闅忔満鑷姤
+@Data
+public class DataCd81Vo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+	public Integer projectNo ;//椤圭洰缂栧彿:
+
+	public Byte statePump ; //娉�/闃�鐘舵��	(1锛氬紑娉�/闃�锛�0锛氬叧娉�/闃�)
+	public Byte alarmWaterRemain ; //鍓╀綑姘撮噺鎶ヨ	(1锛氬皬浜庢姤璀︿笂闄愭姤璀� 0锛氭甯�)
+	public Byte alarm0WaterRemain ; //鍓╀綑姘撮噺涓�0鍏虫车/闃�	(1锛氬墿浣欐按閲忎负0鍏虫车  0锛氭甯�)
+	public Byte alarmExceedYear ; //骞村害瓒呴噰鎶ヨ	(1锛氬勾鐢ㄦ按閲忓ぇ浜庨檺鍒舵按閲忔姤璀� 0锛氭甯�)
+	public Byte alarmWaterMeterFault ; //澶栭儴娴侀噺璁℃晠闅�	(1锛氭祦閲忚鏁呴殰鎶ヨ 0锛氭甯�)
+	public Byte alarmSteal ; //鍋锋按鎶ヨ	(1锛氱粫寮�鎺у埗鍣ㄧ敤姘存姤璀� 0锛氭甯�)
+	public Byte alarmWaterMeterBreak ; //娴侀噺璁℃崯鍧忔姤璀�	(1锛氭甯搁�氳浣嗙灛鏃朵负0鎶ヨ 0锛氭甯�)
+	public Byte alarmEleMeterFault ; //鐢佃〃鏁呴殰鎶ヨ	(1锛氬拰鐢佃〃閫氳鏂垨鏁版嵁涓嶆甯� 0锛氭甯�)
+	public Byte alarm0MoneyRemain ; //鍓╀綑閲戦涓�0鍏虫车/闃�	(1锛氬墿浣欓噾棰濅负0鎶ヨ  0锛氭甯�)
+	public Byte alarmInnerDoor ; //鎺у埗鍣ㄥ唴闂ㄦ姤璀�	(1锛氬唴闂ㄦ墦寮�鎶ヨ    0锛氭甯�)
+	public Byte alarmOuterDoor ; //鎺у埗鍣ㄥ闂ㄦ姤璀�	(1锛氬闂ㄦ墦寮�鎶ヨ    0锛氭甯�)
+	public Byte alarmEleMiss ; //浜ゆ祦缂洪」鎶ヨ	(1锛氫笁鐩哥己椤规姤璀�    0锛氭甯�)
+	public Byte alarmEleExceed ; //浜ゆ祦杩囨祦鎶ヨ	(1锛氫氦娴佽繃娴佹姤璀�    0锛氭甯�)
+	public Byte alarmEleLowVolt ; //涓夌浉鐢垫瑺鍘嬫姤璀�	(1锛氭瑺鍘嬫姤璀�        0锛氭甯�)
+	public Byte stateIcEnable ; //IC鍗′娇鑳�	(1銆両C鏈夊埛鍗℃敮鎸�    0锛氫笉鏀寔)
+
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      璁惧缁堢闅忔満鑷姤 : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      娉电姸鎬� : ") ;
+		sb.append(statePump == null?"鏈煡":(statePump.byteValue()==1?"娉�/闃�寮�":(statePump.byteValue()==0?"娉�/闃�鍏�":"鏈煡"))) ;
+		sb.append("      鍓╀綑姘撮噺鎶ヨ : ") ;
+		sb.append(alarmWaterRemain == null?"鏈煡":(alarmWaterRemain.byteValue()==1?"灏忎簬鎶ヨ涓婇檺":(alarmWaterRemain.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      鍓╀綑姘撮噺涓�0鍏虫车/闃� : ") ;
+		sb.append(alarm0WaterRemain == null?"鏈煡":(alarm0WaterRemain.byteValue()==1?"褰掗浂鍏虫车/闃�":(alarm0WaterRemain.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      骞村害瓒呴噰 : ") ;
+		sb.append(alarmExceedYear == null?"鏈煡":(alarmExceedYear.byteValue()==1?"鎶ヨ":(alarmExceedYear.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      澶栭儴娴侀噺璁℃晠闅� : ") ;
+		sb.append(alarmWaterMeterFault == null?"鏈煡":(alarmWaterMeterFault.byteValue()==1?"鎶ヨ":(alarmWaterMeterFault.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      鍋锋按 : ") ;
+		sb.append(alarmSteal == null?"鏈煡":(alarmSteal.byteValue()==1?"鎶ヨ":(alarmSteal.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      娴侀噺璁℃崯鍧� : ") ;
+		sb.append(alarmWaterMeterBreak == null?"鏈煡":(alarmWaterMeterBreak.byteValue()==1?"鎶ヨ":(alarmWaterMeterBreak.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      鐢佃〃鏁呴殰 : ") ;
+		sb.append(alarmEleMeterFault == null?"鏈煡":(alarmEleMeterFault.byteValue()==1?"鎶ヨ":(alarmEleMeterFault.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      鍓╀綑閲戦涓�0鍏虫车/闃� : ") ;
+		sb.append(alarm0MoneyRemain == null?"鏈煡":(alarm0MoneyRemain.byteValue()==1?"鎶ヨ":(alarm0MoneyRemain.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      鎺у埗鍣ㄥ唴闂� : ") ;
+		sb.append(alarmInnerDoor == null?"鏈煡":(alarmInnerDoor.byteValue()==1?"鎶ヨ":(alarmInnerDoor.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      鎺у埗鍣ㄥ闂� : ") ;
+		sb.append(alarmOuterDoor == null?"鏈煡":(alarmOuterDoor.byteValue()==1?"鎶ヨ":(alarmOuterDoor.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦缂洪」 : ") ;
+		sb.append(alarmEleMiss == null?"鏈煡":(alarmEleMiss.byteValue()==1?"鎶ヨ":(alarmEleMiss.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦杩囨祦 : ") ;
+		sb.append(alarmEleExceed == null?"鏈煡":(alarmEleExceed.byteValue()==1?"鎶ヨ":(alarmEleExceed.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      涓夌浉鐢垫瑺鍘� : ") ;
+		sb.append(alarmEleLowVolt == null?"鏈煡":(alarmEleLowVolt.byteValue()==1?"鎶ヨ":(alarmEleLowVolt.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      IC鍗′娇鑳� : ") ;
+		sb.append(stateIcEnable == null?"鏈煡":(stateIcEnable.byteValue()==1?"鏀寔":(stateIcEnable.byteValue()==0?"涓嶆敮鎸�":"鏈煡"))) ;
+		sb.append("\n") ;
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd8AVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd8AVo.java
new file mode 100644
index 0000000..3915231
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd8AVo.java
@@ -0,0 +1,44 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//璁惧鐧诲綍
+@Data
+public class DataCd8AVo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+	public Integer projectNo ;//椤圭洰缂栧彿:
+	public Double lng ;//缁忓害
+	public Double lat ;//绾害
+	public Float softVersion ;//杞欢鐗堟湰鍙�
+	public Float hardVersion ;//纭欢鐗堟湰鍙�
+	public Float protocolVersion ;//鍗忚鐗堟湰鍙�
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      璁惧鐧诲綍 : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      缁忓害 : ") ;
+		sb.append(lng == null?"鏈煡":lng) ;
+		sb.append("\n") ;
+		sb.append("      绾害 : ") ;
+		sb.append(lat == null?"鏈煡":lat) ;
+		sb.append("\n") ;
+		sb.append("      杞欢鐗堟湰鍙� : ") ;
+		sb.append(softVersion == null?"鏈煡":softVersion) ;
+		sb.append("\n") ;
+		sb.append("      纭欢鐗堟湰鍙� : ") ;
+		sb.append(hardVersion == null?"鏈煡":hardVersion) ;
+		sb.append("\n") ;
+		sb.append("      鍗忚鐗堟湰鍙� : ") ;
+		sb.append(protocolVersion == null?"鏈煡":protocolVersion) ;
+		sb.append("\n") ;
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd97Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd97Vo.java
new file mode 100644
index 0000000..a2440c2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd97Vo.java
@@ -0,0 +1,29 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//娓呴櫎璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍
+@Data
+public class DataCd97Vo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+	public Integer projectNo ;//椤圭洰缂栧彿:
+	public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      娓呴櫎璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍 : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      鍛戒护缁撴灉 : ") ;
+		sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
+		sb.append("\n") ;
+
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd98Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd98Vo.java
new file mode 100644
index 0000000..e061feb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd98Vo.java
@@ -0,0 +1,29 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//娓呴櫎璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍
+@Data
+public class DataCd98Vo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+	public Integer projectNo ;//椤圭洰缂栧彿:
+	public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      娓呴櫎璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍 : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      鍛戒护缁撴灉 : ") ;
+		sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
+		sb.append("\n") ;
+
+		return sb.toString() ;
+	}
+
+}
diff --git "a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/\350\257\264\346\230\216.txt" "b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/\350\257\264\346\230\216.txt"
new file mode 100644
index 0000000..f268ed9
--- /dev/null
+++ "b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/\350\257\264\346\230\216.txt"
@@ -0,0 +1,5 @@
+鏍规嵁鐜嬫睙娴峰埗瀹氱殑鏂板崗璁�婃櫤鑳芥帶鍒剁粓绔笌绠$悊骞冲彴浼犺緭鍗忚瑙勮寖240424.doc銆嬪疄鐜�
+
+闈虫�荤増娴嬫帶涓�浣撻榾涓庣帇姹熸捣鐗堟祴鎺т竴浣撻榾涓嶈兘鍦ㄥ悓涓�涓腑闂翠欢杩愯锛�
+鍥犱负涓や釜鐗堟湰鐨勫崗璁崗璁ご閮戒竴鏍凤紝娌℃硶鍖哄垎寮�鏉ワ紝濡傛灉涓ょ璁惧
+閮借搴旂敤锛岄渶瑕侀儴缃蹭袱涓�氫俊涓棿浠躲��
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtil.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtil.java
index 7fe22e9..ee7b49d 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtil.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtil.java
@@ -1195,7 +1195,7 @@
 	}
 
 	/**
-	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
+	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * 瀛楃涓茶浆鎹㈡垚byte鏁扮粍
 	 * @value bs byte[]
 	 * @value str String
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java
index be8a88a..8e97a16 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java
@@ -415,16 +415,29 @@
 	}
 	public static Integer week_Int(){
 		String str = week_Str() ;
-		return switch (str) {
-			case "Mon" -> 1;
-			case "Tue" -> 2;
-			case "Wed" -> 3;
-			case "Thu" -> 4;
-			case "Fri" -> 5;
-			case "Sat" -> 6;
-			case "Sun" -> 7;
-			default -> 0;
-		};
+		if(str.startsWith("鍛�")){
+			return switch (str) {
+				case "鍛ㄤ竴" -> 1;
+				case "鍛ㄤ簩" -> 2;
+				case "鍛ㄤ笁" -> 3;
+				case "鍛ㄥ洓" -> 4;
+				case "鍛ㄤ簲" -> 5;
+				case "鍛ㄥ叚" -> 6;
+				case "鍛ㄤ竷" -> 7;
+				default -> 0;
+			};
+		}else{
+			return switch (str) {
+				case "Mon" -> 1;
+				case "Tue" -> 2;
+				case "Wed" -> 3;
+				case "Thu" -> 4;
+				case "Fri" -> 5;
+				case "Sat" -> 6;
+				case "Sun" -> 7;
+				default -> 0;
+			};
+		}
 	}
 	/**
 	 * 涓や釜鏃ユ湡闂寸浉宸閽熸暟
@@ -1568,13 +1581,7 @@
 		String[] s = new String[3] ;
 		s[0] = ymd.substring(0 , 4) ;
 		s[1] = ymd.substring(5 , 7) ;
-		if(s[1].charAt(0) == '0'){
-			s[1] = s[1].substring(1) ;
-		}
 		s[2] = ymd.substring(8,10) ;
-		if(s[2].charAt(0) == '0'){
-			s[2] = s[2].substring(1) ;
-		}
 		return s ;
 	}
 	/**

--
Gitblit v1.8.0