From 429f9d85eddbb07081c149d7156964337ba688aa Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 22 十一月 2023 15:28:40 +0800
Subject: [PATCH] 通信中间件开发,阶段性提交

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TaskConfig.java                  |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/queue/Queue.java                                              |   27 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TaskSurpport.java                |  132 +++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java                      |  156 +++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java                                 |   92 -
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/Task.java                        |   46 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java                       |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TkReceive.java                   |   31 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Down.java                  |   97 ++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/TcpUpDataCache.java                   |   70 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd02Vo.java                        |   20 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnit.java                                   |   48 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java                        |   16 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionToRtu.java           |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnitConfigVo.java                           |    6 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TkRtuData.java                   |   29 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultFromRtu.java                             |    3 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ProtocolConstantV206V1_0_0.java        |   50 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Up.java                    |   85 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ParseParamsForDownV1_0_1.java          |   40 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/ServerProperties.java                      |    8 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TreeParse.java                   |  172 +++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/p206V1_0_0/TkFindP206V1_0_0.java |   27 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/DriverParserDataCallback.java                     |   10 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultError.java                               |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLine.java                                       |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/config.xml                                                |   29 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/AboutRtuNode.java                     |   62 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java               |   46 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java                                         |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DriverV1_0_1.java                      |  149 +++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailableHandleImp.java               |   10 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java                                      |   45 -
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/PrefixedDataAvailableV1_0_1.java       |   57 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreThread.java                                       |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java                        |   26 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuDownTask.java                     |    3 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TaskPool.java                    |  115 ++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/p206V1_0_0/TkPreGenObjs.java     |   82 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/TreadPoolFactory.java                              |   17 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TreeConfig.java                  |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ParseParamsForUpV1_0_1.java            |   39 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionFromRtu.java         |   26 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Driver.java                                       |   14 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCdC0Vo.java                        |    7 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultToRtu.java                               |    3 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java                                       |   50 
 pipIrr-platform/pipIrr-common/pipIrr-common.iml                                                                         |    1 
 /dev/null                                                                                                               |    0 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtil.java                                            |  414 ++++----
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpDownCommandCache.java            |   32 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/Tree.xml                         |   95 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java                                 |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/BusiConstantTask.java                |   74 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/OnLineV1_0_1.java                      |   12 
 55 files changed, 2,098 insertions(+), 517 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/pipIrr-common.iml b/pipIrr-platform/pipIrr-common/pipIrr-common.iml
index 7fe4295..bfdde8c 100644
--- a/pipIrr-platform/pipIrr-common/pipIrr-common.iml
+++ b/pipIrr-platform/pipIrr-common/pipIrr-common.iml
@@ -105,5 +105,6 @@
     <orderEntry type="library" name="Maven: org.jdom:jdom2:2.0.6.1" level="project" />
     <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.8.21" level="project" />
     <orderEntry type="library" name="Maven: org.apache.mina:mina-core:2.2.1" level="project" />
+    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz-weblogic:2.1.7" level="project" />
   </component>
 </module>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreThread.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreThread.java
index 46341fe..124c735 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreThread.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/core/CoreThread.java
@@ -10,7 +10,7 @@
 	
 	private static CoreThread instance = new CoreThread() ;
 
-	private static Long sleepBigBusy = 100L ;//澶у繖鏃讹紙闄や簡鎭掍箙浠诲姟锛岃繕鏄叾浠栦换鍔★級锛屾牳蹇冪嚎绋嬫殏鍋滈棿闅�
+	private static Long sleepBigBusy = 100L ;//澶у繖鏃讹紙闄や簡鎭掍箙浠诲姟锛岃繕鏈夊叾浠栦换鍔★級锛屾牳蹇冪嚎绋嬫殏鍋滈棿闅�
 	private static Long sleepSmallBusy = 500L ;//灏忓繖鏃讹紙鍙湁鎭掍箙浠诲姟锛屾棤鍏朵粬浠诲姟锛夛紝鏍稿績绾跨▼鏆傚仠闂撮殧
 	
 	private CoreThread(){
@@ -22,8 +22,8 @@
 	
 	/**
 	 * 璁剧疆鏆傚仠鏃堕暱
-	 * @param sleepWorking
-	 * @param sleepIdel
+	 * @param sleepBigBusy 澶у繖鏃讹紙闄や簡鎭掍箙浠诲姟锛岃繕鏈夊叾浠栦换鍔★級锛屾牳蹇冪嚎绋嬫殏鍋滈棿闅�
+	 * @param sleepSmallBusy 灏忓繖鏃讹紙鍙湁鎭掍箙浠诲姟锛屾棤鍏朵粬浠诲姟锛夛紝鏍稿績绾跨▼鏆傚仠闂撮殧
 	 */
 	public void setSleep(Long sleepBigBusy, Long sleepSmallBusy){
 		CoreThread.sleepBigBusy = sleepBigBusy ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java
index 674046b..0638c78 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java
@@ -32,25 +32,7 @@
 	 * RTU 鍦板潃
 	 */
 	public String rtuAddr ;
-	
-	/**
-	 * 姘磋〃鍙�
-	 * 搴旂敤鐢典俊骞冲彴鏃舵湁鏁�
-	 */
-	public String meterNo ;
-	
-	/**
-	 * 鐢典俊骞冲彴涓婄殑浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴涓婅繍琛屾椂锛屼负null
-	 * 搴旂敤鐢典俊骞冲彴鏃舵湁鏁�
-	 */
-	public Integer productId ;
-	
-	/**
-	 * 鐢典俊骞冲彴涓婄殑璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴涓婅繍琛屾椂锛屼负null
-	 * 搴旂敤鐢典俊骞冲彴鏃舵湁鏁�
-	 */
-	public String deviceId ;
-	
+
 	/**
 	 * 鍛戒护绫诲瀷:Rtu鍛戒护銆侀拡瀵圭洃鎺т腑闂翠欢鐨勫懡浠�
 	 * 鐢眂om.dy.common.mw.protocol.CommandType绫诲畾涔�
@@ -81,13 +63,6 @@
 		String s = "鍛戒护id=" + id + "\n" ;
 		s += (protocol == null ? "" : ("鍗忚=" + protocol + "\n"));
 		s += (rtuAddr == null ? "" : ("IMEI鍙�=" + rtuAddr + "\n"));
-		s += (meterNo == null ? "" : ("姘磋〃鍙�=" + meterNo + "\n"));
-		if(productId != null){
-			s +=  "鐢典俊骞冲彴浜у搧ID=" + productId + "\n" ;
-		}
-		if(deviceId != null && !deviceId.trim().equals("")){
-			s +=  "鐢典俊骞冲彴璁惧ID=" + deviceId + "\n" ;
-		}
 		s += "鍛戒护绫诲瀷=" + (type.equals(CommandType.innerCommand)?"鍐呴儴鍛戒护":"缁堢鍛戒护") + "\n" ;
 		s += (code == null ? "" : ("鍔熻兘鐮�=" + code + "\n")) ;
 		s += "杩斿洖涓棿浠跺鍛戒护澶勭悊缁撴灉=" + (noRtMwDealRes == null?"杩斿洖":(noRtMwDealRes?"涓嶈繑鍥�":"杩斿洖") + "\n") ;
@@ -209,24 +184,6 @@
 	}
 	public void setProtocol(String protocol) {
 		this.protocol = protocol;
-	}
-	public String getMeterNo() {
-		return meterNo;
-	}
-	public void setMeterNo(String meterNo) {
-		this.meterNo = meterNo;
-	}
-	public Integer getProductId() {
-		return productId;
-	}
-	public void setProductId(Integer productId) {
-		this.productId = productId;
-	}
-	public String getDeviceId() {
-		return deviceId;
-	}
-	public void setDeviceId(String deviceId) {
-		this.deviceId = deviceId;
 	}
 	public String getType() {
 		return type;
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 cbc9b69..3b9f364 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
@@ -6,7 +6,6 @@
 
 /**
  * 鏁版嵁鏍�
- * @author Administrator
  *
  */
 public class Data  implements java.io.Serializable{
@@ -15,7 +14,6 @@
 
 	private String commandId ;//鍛戒护ID锛屽彲鑳戒负null
 	private String rtuAddr ;//缁堢鍦板潃
-	private String meterNo ;//姘磋〃鍙�
 	private String protocol ;//鏁版嵁鎵�瀵瑰簲鐨勫崗璁悕绉�
 	private String code ;//鏁版嵁鎵�瀵瑰簲鐨勫姛鑳界爜:
 	private Object subData ;//瀵瑰簲鍚勪釜鍔熻兘鐮佺殑鍏蜂綋鏁版嵁
@@ -25,7 +23,6 @@
 		StringBuilder sb = new StringBuilder() ;
 		sb.append("涓婅鎶ユ枃(鍗佸叚杩涘埗): ").append((hex == null?"":hex)).append("\n") ; //
 		sb.append("IMEI鍙� : ").append((rtuAddr==null?"":rtuAddr)).append("\n") ;
-		sb.append("姘磋〃鍙� : ").append((meterNo==null?"":meterNo)).append("\n") ;
 		if(commandId != null){
 			sb.append("鍛戒护ID : ").append(commandId).append("\n") ; //鍛戒护ID
 		}
@@ -88,12 +85,6 @@
 		this.rtuAddr = rtuAddr;
 	}
 	
-	public String getMeterNo() {
-		return meterNo;
-	}
-	public void setMeterNo(String meterNo) {
-		this.meterNo = meterNo;
-	}
 	public String getCode() {
 		return code;
 	}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Driver.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Driver.java
index 4b607f3..9f29d8c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Driver.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Driver.java
@@ -142,7 +142,7 @@
 		return codeParse ;
 	}
 	/**
-	 * 瑙f瀽涓婅鏁版嵁
+	 * 瑙f瀽鐢典俊骞冲彴涓婅鏁版嵁
 	 * @param isLowPower 鏄惁鍦ㄤ綆鍔熻�楃幆澧冧笅杩愯
 	 * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
 	 * @param upBuffer 瀛楄妭鏁扮粍
@@ -151,18 +151,6 @@
 	 * @return MidResult[]
 	 */
 	public abstract MidResult[] parseData(Boolean isLowPower, String rtuAddr, byte[] upBuffer, String upHex, DriverParserDataCallback callback, Object... params) ;
-	/**
-	 * 瑙f瀽鐢典俊骞冲彴涓婅鏁版嵁
-	 * @param isLowPower 鏄惁鍦ㄤ綆鍔熻�楃幆澧冧笅杩愯
-	 * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
-	 * @param productId 鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴涓繍琛屾椂锛屼负null
-	 * @param deviceId 鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴涓繍琛屾椂锛屼负null
-	 * @param upBuffer 瀛楄妭鏁扮粍
-	 * @param upHex 瀛楄妭鏁扮粍16杩涘埗褰㈠紡
-	 * @param callback 鍥炶皟
-	 * @return MidResult[]
-	 */
-	public abstract MidResult[] parseData(Boolean isLowPower, String rtuAddr, Integer productId, String deviceId, byte[] upBuffer, String upHex, DriverParserDataCallback callback, Object... params) ;
 	
 	/**
 	 * 鏋勯�犱笅琛屾暟鎹紙鍛戒护锛�
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/DriverParserDataCallback.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/DriverParserDataCallback.java
index 5ca3e20..fb552c1 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/DriverParserDataCallback.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/DriverParserDataCallback.java
@@ -4,23 +4,19 @@
 
 	/**
 	 * 瑙f瀽涓婅鏁版嵁鍚庡洖璋�
-	 * @param rtuAddr 涓婅鏁版嵁鍗忚澶翠腑鐨処MEI鍙�
-	 * @param meterNo 涓婅鏁版嵁鍗忚澶翠腑鐨勬按琛ㄥ彿
+	 * @param rtuAddr 涓婅鏁版嵁鍗忚澶翠腑RtuAddr
 	 * @param code 涓婅鏁版嵁 鍔熻兘鐮�
 	 * @param upHex 涓婅鏁版嵁
 	 * @param reportOrResponse_trueOrFalse 涓婅鏁版嵁鏄富鍔ㄤ笂鎶ヨ繕鏄懡浠ょ粨鏋�
 	 * @param parseFail 涓婅鏁版嵁瑙f瀽鏄惁澶辫触
 	 * @param rtuAddrInData 涓婅鏁版嵁涓湪鍗忚鏁版嵁涓殑IMEI鍙凤紝
-	 * @param meterNoInData 涓婅鏁版嵁涓湪鍗忚鏁版嵁涓殑姘磋〃鍙凤紝
 	 * 	鈥滀慨鏀筊TU缁堢绠$悊閰嶇疆鍙傛暟鈥濆懡浠ょ殑杩斿洖鏁版嵁锛屽叾鍗忚澶翠腑鐨処MEI鍙蜂笌鏁版嵁涓殑IMEI鍙蜂笉涓�鏍凤紝
 	 *  濡傛灉RTU涓嶈兘鍏抽棴缃戠粶锛岄偅涔坰essionCach涓殑IMEI鍙锋�绘槸鐢ㄤ慨鏀瑰墠鐨処MEI鍙凤紝浣垮緱浠ュ悗涓婅鏁版嵁鐨勪笉鑳芥壘鍒扮紦瀛樹腑鐨凷ession
 	 */
 	void callback(String rtuAddr,
-			String meterNo, 
-			String code, 
+			String code,
 			String upHex, 
 			Boolean reportOrResponse_trueOrFalse, 
 			boolean parseFail,
-			String rtuAddrInData,
-			String meterNoInData) ;
+			String rtuAddrInData) ;
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultError.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultError.java
index 0a71d84..628037b 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultError.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultError.java
@@ -12,14 +12,12 @@
 
 	public String protocolName ;//鍗忚鍚嶇О
 	public String rtuAddr ;//IMEI鍙凤紝娉ㄦ剰rtuAddr鍙兘涓簄ull
-	public String meterNo ;//姘磋〃鍙凤紝娉ㄦ剰meterNo鍙兘涓簄ull
 	public String message ;//鍑洪敊娑堟伅
 	public Exception e ;//寮傚父
 	
-	public MidResultError(String protocolName, String rtuAddr, String meterNo, String message, Exception e){
+	public MidResultError(String protocolName, String rtuAddr, String message, Exception e){
 		this.protocolName = protocolName ;
 		this.rtuAddr = rtuAddr ;
-		this.meterNo = meterNo ;
 		this.message = message ;
 		this.e = e ;
 	}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultFromRtu.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultFromRtu.java
index 50562ef..e6efa2e 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultFromRtu.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultFromRtu.java
@@ -14,9 +14,6 @@
 	
 	public String protocolName ;//鍗忚鍚嶇О
 	public String rtuAddr ;//IMEI鍙�
-	public String meterNo ;//姘磋〃鍙�
-	public Integer productId ;//鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-	public String deviceId ;//鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
 	public String upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
 	public String upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
 	public byte[] upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultToRtu.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultToRtu.java
index 4c58abe..7b3a643 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultToRtu.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultToRtu.java
@@ -12,9 +12,6 @@
 
 	public String protocolName ;//鍗忚鍚嶇О
 	public String rtuAddr ;//IMEI鍙�(鐢典俊骞冲彴IMEI)
-	public String meterNo ;//姘磋〃鍙�
-	public Integer productId ;//鐢典俊骞冲彴浜у搧ID
-	public String deviceId ;//鐢典俊骞冲彴璁惧ID
 	public String commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
 	public String downCode ;//涓嬭鍛戒护鍔熻兘鐮�;
 	public byte[] downBuffer ;//涓嬭鍛戒护鏁版嵁
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLine.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLine.java
index f8b693b..d11f570 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLine.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLine.java
@@ -17,12 +17,10 @@
 		public int result ;//鍒嗘瀽缁撴灉
 		public String protocolName ;//鍗忚鍚嶇О
 		public String rtuAddr ;//IMEI鍙�
-		public String meterNo ;//姘磋〃鍙�
 		public byte[] remoteData;//闇�瑕佸悜Rtu鍥炲啓鐨勬暟鎹�
 		public OnLineResult(){
 			result = OnLineAction_fail ;
 			rtuAddr = null ;
-			meterNo = null ;
 			remoteData = null ;
 		}
 	}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java
index 825588f..f5b6613 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java
@@ -6,7 +6,7 @@
 public class OnLineHandle {
 	
 	/**
-	 * 瑙f瀽涓婄嚎鏁版嵁锛屽緱鍒癐MEI鍙�
+	 * 瑙f瀽涓婄嚎鏁版嵁锛屽緱鍒癛tuAddr
 	 * @param bs 瀛楄妭鏁扮粍
 	 * @return OnLine.OnLineResult
 	 */
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailableHandleImp.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailableHandleImp.java
index 56d32fc..dbf7f64 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailableHandleImp.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailableHandleImp.java
@@ -35,13 +35,13 @@
     			if(set.size() == 0){
     				throw new Exception("涓婄嚎鏁版嵁瀹屾暣鎬ф鏌ユ椂锛屽緱鍒扮殑鍗忚瀹屾暣鎬ф鏌ョ被闆嗗悎涓虹┖銆�") ;
     			}
-    			int prority = ProtocolConstant.firstPriority ;
+    			int priority = ProtocolConstant.firstPriority ;
 
 	    		while(true){
-	    			Object[] objs = this.getClassObjAndAnnotationVo(prority, set) ;
+	    			Object[] objs = this.getClassObjAndAnnotationVo(priority, set) ;
 	    			PrefixedDataAvailable pda = (PrefixedDataAvailable)objs[0] ;
-	    			if(pda == null && prority == ProtocolConstant.firstPriority){
-	    				throw new Exception("涓婄嚎鏁版嵁瀹屾暣鎬ф鏌ユ椂锛屾湭寰楀埌浼樺厛绾т负" + prority + "涓婄嚎鏁版嵁瀹屾暣鎬ф鏌ョ被锛�") ;
+	    			if(pda == null && priority == ProtocolConstant.firstPriority){
+	    				throw new Exception("涓婄嚎鏁版嵁瀹屾暣鎬ф鏌ユ椂锛屾湭寰楀埌浼樺厛绾т负" + priority + "涓婄嚎鏁版嵁瀹屾暣鎬ф鏌ョ被锛�") ;
 	    			}else if(pda == null){
 	    				//璇存槑涓婄嚎鏁版嵁瀹屾暣鎬ф鏌ョ被闆嗗悎宸茬粡閬嶅巻瀹屼簡銆�
 	    				break ;
@@ -53,7 +53,7 @@
 	    			if(pds == null){
 						//璇存槑涓嶆槸瀵瑰簲鐨勫崗璁暟鎹紝闇�瑕佸彟澶栫殑鍗忚鏉ュ鐞嗕笂绾�
 						//寰幆缁х画
-						prority++ ;
+						priority++ ;
 					}else{
 						//鍋滄寰幆锛岃繑鍥炵粨鏋�
 						break ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206/ProtocolConstantV206.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206/ProtocolConstantV206.java
deleted file mode 100644
index ba9afef..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206/ProtocolConstantV206.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.dy.common.mw.protocol.p206;
-
-public class ProtocolConstantV206 {
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/CodeV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java
similarity index 65%
rename from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/CodeV1_0_1.java
rename to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java
index 4a82844..87ee9cf 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/CodeV1_0_1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java
@@ -1,29 +1,27 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1;
+package com.dy.common.mw.protocol.p206V1_0_0;
 
 public class CodeV1_0_1 {
 	//鍔熻兘鐮佷负瀛楃涓诧紝鍗佸叚杩涘埗鏁版嵁
-	public static final String cd_01 = "01" ;//瀹氭椂锛堝懆鏈燂級涓婃姤
-	public static final String cd_02 = "02" ;//瀹炴椂(瑙﹀彂)涓婃姤
+	public static final String cd_02 = "02" ;//閾捐矾妫�娴�
 	public static final String cd_03 = "03" ;//浜嬩欢涓婃姤
 	public static final String cd_04 = "04" ;//寮�闃�
 	public static final String cd_05 = "05" ;//鍏抽榾
 	public static final String cd_06 = "06" ;//闃�闂ㄥ姩浣滅粨鏋�
 
 	public static String getCodeName(String code) {
-		String name = (code.equals(cd_01) ? "瀹氭椂涓婃姤 " : 
-			(code.equals(cd_02) ? "瑙﹀彂涓婃姤" : 
-			(code.equals(cd_03) ? "浜嬩欢涓婃姤" : 
+		String name = (code.equals(cd_02) ? "閾捐矾妫�娴�" :
+			(code.equals(cd_03) ? "浜嬩欢涓婃姤" :
 			(code.equals(cd_04) ? "寮�闃�" : 
 			(code.equals(cd_05) ? "鍏抽榾" : 
 			(code.equals(cd_06) ? "闃�闂ㄥ姩浣滅粨鏋�" : 
-			"")))))) ;
+			""))))) ;
 		return name ;
 	}
 	
 	/**
 	 * 鏄惁涓烘湁鏁堝姛鑳界爜
-	 * @param code
-	 * @return
+	 * @param code 鍔熻兘鐮�
+	 * @return 鏈夋晥true锛屾棤鏁坒alse
 	 */
 	public static boolean isValid(String code){
 		String name = getCodeName(code) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java
new file mode 100644
index 0000000..e8616b0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java
@@ -0,0 +1,156 @@
+package com.dy.common.mw.protocol.p206V1_0_0;
+
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+
+
+public class CommonV1_0_1 {
+	/**
+	 * 妫�鏌ュご
+	 * @param bs 涓婅瀛楄妭鏁扮粍
+	 * @return true鏄�,false鍚�
+	 * @throws Exception  寮傚父
+	 */
+	public Boolean isThisProtocolHead(byte[] bs) throws Exception{
+		if(bs == null){
+			return null ;
+		}else if(bs.length >= (ProtocolConstantV206V1_0_0.ctrlIndex - 1)
+				&& bs[0] == ProtocolConstantV206V1_0_0.P_Head_Byte
+				&& bs[2] == ProtocolConstantV206V1_0_0.P_Head_Byte){
+			//String vs = this.parseVersion(bs) ;
+			//return vs.equals(ProtocolConstantV206V1_0_0.version);
+			return true ;
+		}else{
+			return false ;
+		}
+	}
+	
+	/**
+	 * 妫�鏌ュご
+	 * @param bs 涓婅瀛楄妭鏁扮粍
+	 * @throws Exception 寮傚父
+	 */
+	public void checkHead(byte[] bs) throws Exception{
+		if(bs.length < 13 || bs[0] != ProtocolConstantV206V1_0_0.P_Head_Byte || bs[2] != ProtocolConstantV206V1_0_0.P_Head_Byte){
+			throw new Exception("涓婅鏁版嵁甯уご涓嶆纭紒") ;
+		}
+	}
+	
+	/**
+	 * 妫�鏌ュ熬
+	 * @param bs 涓婅瀛楄妭鏁扮粍
+	 * @throws Exception 寮傚父
+	 */
+	public void checkTail(byte[] bs) throws Exception{
+		if(bs.length < 1 || bs[bs.length - 1] != ProtocolConstantV206V1_0_0.P_Tail_Byte){
+			throw new Exception("涓婅鏁版嵁灏句笉姝g‘锛�") ;
+		}
+	}
+
+
+	/**
+	 * 鍒嗘瀽鏁版嵁瀛楄妭鏁�
+	 * @param bs 涓婅瀛楄妭鏁扮粍
+	 * @return 鏁版嵁闀垮害
+	 * @throws Exception 寮傚父
+	 */
+	public int parseDataLen(byte[] bs)throws Exception{
+		return ByteUtilUnsigned.bytes2Short_BE(bs, ProtocolConstantV206V1_0_0.dataLenIndex) ;
+	}
+
+
+	/**
+	 * 鍒嗘瀽IMEI鍙�
+	 * @param bs 涓婅瀛楄妭鏁扮粍
+	 * @return 鎺у埗鍣ㄥ湴鍧�
+	 * @throws Exception 寮傚父
+	 */
+	public String parseRtuAddr(byte[] bs)throws Exception{
+		String rtuAddrBCD = "" + ByteUtil.BCD2Long_BE(bs, ProtocolConstantV206V1_0_0.rtuAddr1Index_start, ProtocolConstantV206V1_0_0.rtuAddr1Index_end) ;
+		String rtuAddrStr = "" + ByteUtilUnsigned.bytes2Short_BE(bs, ProtocolConstantV206V1_0_0.rtuAddr2Index_start) ;
+		while(rtuAddrStr.length() < 6){
+			rtuAddrStr = "0" + rtuAddrStr ;
+		}
+		return rtuAddrBCD + rtuAddrStr ;
+	}
+
+	/**
+	 * 鍒嗘瀽鍔熻兘鐮�
+	 * @param bs 涓婅瀛楄妭鏁扮粍
+	 * @return 鍔熻兘鐮�
+	 */
+	public String parseCode(byte[] bs){
+		return ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V1_0_0.codeIndex, 1) ;
+	}
+
+
+	/**
+	 * 鏍¢獙鍜屾鏌�
+	 * @param bs 涓婅瀛楄妭鏁扮粍
+	 * @return 閫氳繃true,鏈�氳繃false
+	 */
+	public boolean checkCrc(byte[] bs) {
+		byte he = 0 ;
+		for(int i = 0 ; i <= bs.length - 3 ; i++){
+			he = (byte)(he + bs[i]) ;
+		}
+		return bs[bs.length - 2] == he ;
+	}
+
+	/**
+	 * 鏍¢獙鍜屾鏌�
+	 * @param bs  涓婅瀛楄妭鏁扮粍
+	 * @return 閫氳繃null锛屾湭閫氳繃杩斿洖鍘熷洜
+	 * @throws Exception 寮傚父
+	 */
+	public String checkCrc_str(byte[] bs) throws Exception {
+		byte[] he = new byte[1] ;
+		for(int i = 0 ; i <= bs.length - 3 ; i++){
+			he[0] = (byte)(he[0] + bs[i]) ;
+		}
+		short hes = ByteUtilUnsigned.byte2Byte(he, 0);
+		short heOrg = ByteUtilUnsigned.byte2Byte(bs, bs.length - 2);
+		if(hes == heOrg){
+			return null ;
+		}else{
+			return "璁$畻鏍¢獙鍜屾槸:" + hes + "锛屼笂浼犳牎楠屽拰鏄�" + heOrg ;
+		}
+	}
+
+
+	/*
+	鏋勯�犳帶鍒跺煙
+	D7                  D6                  D5锝濪4            D3锝濪0
+	浼犺緭鏂瑰悜浣� DIR        鎷嗗垎鏍囧織浣� DIV       甯ц鏁颁綅 FCB       鍔熻兘鐮�
+	*/
+	public byte createCtrl(byte funcCode){
+		byte b = 0 ;
+		b = (byte)(b | funcCode) ;
+		//FCB == 3
+		b = (byte)(b | (byte)60) ;
+		//DIV = 0
+		//DIR = 0
+		return b ;
+	}
+	
+	/*
+	 * 鍒嗘瀽鐗堟湰鍙�
+	 * @param bs  涓婅瀛楄妭鏁扮粍
+	 * @return 鐗堟湰鍙�
+	 * @throws Exception 寮傚父
+	public String parseVersion(byte[] bs)throws Exception{
+		short ver = ByteUtilUnsigned.byte2Byte(bs, ProtocolConstantV206V1_0_0.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/p206V1_0_0/DataCd02Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd02Vo.java
new file mode 100644
index 0000000..edd5ccd
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd02Vo.java
@@ -0,0 +1,20 @@
+package com.dy.common.mw.protocol.p206V1_0_0;
+
+import lombok.Data;
+
+//閾捐矾妫�娴�
+@Data
+public class DataCd02Vo {
+
+	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") ;
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCdC0Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCdC0Vo.java
new file mode 100644
index 0000000..531d4b7
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCdC0Vo.java
@@ -0,0 +1,7 @@
+package com.dy.common.mw.protocol.p206V1_0_0;
+
+import lombok.Data;
+
+@Data
+public class DataCdC0Vo {
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java
new file mode 100644
index 0000000..e7d9d72
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java
@@ -0,0 +1,26 @@
+package com.dy.common.mw.protocol.p206V1_0_0;
+
+import lombok.Data;
+
+@Data
+public class DataV1_0_1 implements java.io.Serializable{
+	
+	private static final long serialVersionUID = 202211271110001L;
+	
+	public String rtuAddr ;//RtuAddr
+
+	public DataCd02Vo dataCd02Vo;//閾捐矾妫�娴�
+	public DataCdC0Vo dataCdC0Vo;//缁堢鑷姤瀹炴椂鏁版嵁
+
+	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(dataCd02Vo != null){
+			sb.append(dataCd02Vo.toString()) ;
+		}
+		return sb.toString() ;
+	}
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DriverV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DriverV1_0_1.java
new file mode 100644
index 0000000..2a8a6e6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DriverV1_0_1.java
@@ -0,0 +1,149 @@
+package com.dy.common.mw.protocol.p206V1_0_0;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.util.DateTime;
+
+import java.net.URI;
+import java.net.URL;
+
+@AnnotationDriver(name= ProtocolConstantV206V1_0_0.protocolName)
+public class DriverV1_0_1 extends Driver {
+	
+	private static String scanRootPackage = "" ;
+	
+	//鍦―river涓槸鍗曚緥锛岄殢Driver鐨勫崟渚嬪璞″湪鍗曠嚎绋嬩腑杩愯
+	private ParseParamsForUpV1_0_1 upCpParams ;
+	private ParseParamsForDownV1_0_1 downCpParams ;
+	
+	private Boolean reportOrResponse_trueOrFalse = null ;
+	private String rtuAddrInData = null ;
+
+	public DriverV1_0_1(){
+		upCpParams = new ParseParamsForUpV1_0_1() ;
+		downCpParams = new ParseParamsForDownV1_0_1() ;
+	}
+
+
+	/**
+	 * 鎵弿璇嗗埆鍔熻兘鐮佹敞瑙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, ProtocolConstantV206V1_0_0.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{
+			CommonV1_0_1 cp = new CommonV1_0_1() ;
+			cp.checkHead(upBuffer) ;
+			cp.checkTail(upBuffer) ;
+			String crcStr = cp.checkCrc_str(upBuffer) ;
+			if(crcStr != null){
+				return new MidResult[]{(new MidResultError(ProtocolConstantV206V1_0_0.protocolName, rtuAddr, "涓ラ噸閿欒锛屼笂琛屾暟鎹瓹RC妫�鏌ュけ璐ワ紝" + crcStr, null))} ;
+			}
+			rtuAddr = cp.parseRtuAddr(upBuffer) ;
+			upCode = cp.parseCode(upBuffer) ;
+			if(upCode == null){
+				return new MidResult[]{(new MidResultError(ProtocolConstantV206V1_0_0.protocolName, rtuAddr, "涓ラ噸閿欒锛屾湭鑳戒粠涓婅鏁版嵁涓В鏋愬嚭鍔熻兘鐮侊紒", null))} ;
+			}
+			//Integer dataLen = cp.parseFrameLen(upBuffer) ;
+			Data upData = new Data() ;
+			upData.setRtuAddr(rtuAddr) ;
+			upData.setProtocol(ProtocolConstantV206V1_0_0.protocolName);
+			upData.setCode(upCode) ;
+			upData.setHex(upHex) ;
+			
+			
+			DataV1_0_1 dV1_0_1 = new DataV1_0_1() ;
+			//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(ProtocolConstantV206V1_0_0.protocolName, 
+					rtuAddr, 
+					upCode,
+					upHex, 
+					upBuffer, 
+					upData);
+			CodeParse codeParse = this.getUpCodeParser(upCode) ;
+			if(codeParse == null){
+				return new MidResult[]{(new MidResultError(ProtocolConstantV206V1_0_0.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(ProtocolConstantV206V1_0_0.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 rtuAddr = command.getRtuAddr() ;
+		if(rtuAddr == null){
+			return new MidResult[]{(new MidResultError(ProtocolConstantV206V1_0_0.protocolName, null, "涓ラ噸閿欒锛屽懡浠や腑IMEI鍙蜂负绌猴紝涓嶈兘鏋勫缓浠讳綍鍛戒护锛�", null))} ;
+		}
+		try {
+			String commandCode = command.getCode() ;
+			
+			this.downCpParams.clear();
+			this.downCpParams.setValue(
+					ProtocolConstantV206V1_0_0.protocolName, 
+					rtuAddr, 
+					command.getId(),
+					commandCode, 
+					command.getParam(), 
+					command.getAttachment());
+			
+			if(commandCode == null){
+				return new MidResult[]{(new MidResultError(ProtocolConstantV206V1_0_0.protocolName, rtuAddr,  "涓ラ噸閿欒锛屽懡浠や腑鍔熻兘鐮佷负绌猴紝涓嶈兘鏋勫缓浠讳綍鍛戒护锛�", null))} ;
+			}else{
+				CodeParse codeParse = this.getDownCodeParser(commandCode) ;
+				if(codeParse == null){
+					return new MidResult[]{(new MidResultError(ProtocolConstantV206V1_0_0.protocolName, rtuAddr,  "涓ラ噸閿欒锛屾湭鑳藉緱鍒颁笅琛屾暟鎹姛鑳界爜" + commandCode + "澶勭悊绫�!", null))} ;
+				}else{
+					return codeParse.parse(isLowPower, this.downCpParams, null);
+				}
+			}
+		} catch (Exception e) {
+			return new MidResult[]{(new MidResultError(ProtocolConstantV206V1_0_0.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/pMeterV1_0_1/OnLineV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/OnLineV1_0_1.java
similarity index 73%
rename from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/OnLineV1_0_1.java
rename to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/OnLineV1_0_1.java
index 2e56566..69d63a1 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/OnLineV1_0_1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/OnLineV1_0_1.java
@@ -1,11 +1,12 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1;
+package com.dy.common.mw.protocol.p206V1_0_0;
 
 import com.dy.common.mw.protocol.AnnotationOnLine;
 import com.dy.common.mw.protocol.OnLine;
 
 @AnnotationOnLine(
-		protocolName = ProtocolConstantV1_0_1.protocolName,
-		priority = ProtocolConstantV1_0_1.priority) 
+		protocolName = ProtocolConstantV206V1_0_0.protocolName,
+		priority = ProtocolConstantV206V1_0_0.priority)
+@SuppressWarnings("unused")
 public class OnLineV1_0_1 implements OnLine{
 
 	/**
@@ -22,18 +23,15 @@
 			//鍑洪敊
 			olr.result = OnLine.OnLineAction_fail ;
 			olr.rtuAddr = null ;
-			olr.meterNo = null ;
 		}else if(!flag.booleanValue()){
 			//涓嶆槸鏈崗璁暟鎹�
 			olr.result = OnLine.OnLineAction_success_noMe ;
 			olr.rtuAddr = null ;
-			olr.meterNo = null ;
 		}else{
 			//鏄湰鍗忚鏁版嵁
 			olr.result = OnLine.OnLineAction_success ;
 			olr.rtuAddr = cp.parseRtuAddr(upBuf) ;
-			olr.meterNo = cp.parseMeterNo(upBuf) ;
-			olr.protocolName = ProtocolConstantV1_0_1.protocolName ;
+			olr.protocolName = ProtocolConstantV206V1_0_0.protocolName ;
 		}
 		return olr;
 	}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ParseParamsForDownV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ParseParamsForDownV1_0_1.java
new file mode 100644
index 0000000..a0f2caa
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ParseParamsForDownV1_0_1.java
@@ -0,0 +1,40 @@
+package com.dy.common.mw.protocol.p206V1_0_0;
+
+import com.dy.common.mw.protocol.CodeParseParams;
+
+public class ParseParamsForDownV1_0_1 implements CodeParseParams{
+	
+	public String protocolName ;
+	public String rtuAddr ;//鎺у埗鍣ㄥ湴鍧�
+	public String commandId ;
+	public String commandCode ;
+	public Object param ;
+	public Object attachment ;
+	
+	public ParseParamsForDownV1_0_1(){}
+	
+	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 protocolName, 
+			String rtuAddr, 
+			String commandId,
+			String commandCode, 
+			Object param, 
+			Object attachment ){
+		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/p206V1_0_0/ParseParamsForUpV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ParseParamsForUpV1_0_1.java
new file mode 100644
index 0000000..58d58c9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ParseParamsForUpV1_0_1.java
@@ -0,0 +1,39 @@
+package com.dy.common.mw.protocol.p206V1_0_0;
+
+import com.dy.common.mw.protocol.CodeParseParams;
+import com.dy.common.mw.protocol.Data;
+
+public class ParseParamsForUpV1_0_1 implements CodeParseParams{
+	
+	public String protocolName ;//鍗忚鍚嶇О
+	public String rtuAddr ;//鎺у埗鍣ㄥ潃
+	public String upCode ;//涓婅鎶ユ枃鏁版嵁涓殑鍔熻兘鐮�
+	public String upHex ;//琛屾姤鏂囨暟鎹崄鍏繘鍒跺舰寮�
+	public byte[] upBuffer ;//琛屾姤鏂囨暟鎹瓧鑺傛暟缁�
+	public Data data ;//瑙f瀽鍚庣殑鏁版嵁
+
+	public ParseParamsForUpV1_0_1(){}
+	
+	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/pMeterV1_0_1/PrefixedDataAvailableV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/PrefixedDataAvailableV1_0_1.java
similarity index 75%
rename from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/PrefixedDataAvailableV1_0_1.java
rename to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/PrefixedDataAvailableV1_0_1.java
index 63ec806..e53f268 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/PrefixedDataAvailableV1_0_1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/PrefixedDataAvailableV1_0_1.java
@@ -1,36 +1,36 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1;
-
-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;
+package com.dy.common.mw.protocol.p206V1_0_0;
 
 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 = ProtocolConstantV1_0_1.protocolName,
-		priority = ProtocolConstantV1_0_1.priority,
-		onLineDataMinLength = ProtocolConstantV1_0_1.onLineDataMinLength,
-		headMinLength = ProtocolConstantV1_0_1.headMinLength) 
-public class PrefixedDataAvailableV1_0_1  implements PrefixedDataAvailable {
+		protocolName = ProtocolConstantV206V1_0_0.protocolName,
+		priority = ProtocolConstantV206V1_0_0.priority,
+		onLineDataMinLength = ProtocolConstantV206V1_0_0.onLineDataMinLength,
+		headMinLength = ProtocolConstantV206V1_0_0.headMinLength)
+@SuppressWarnings("unused")
+public class PrefixedDataAvailableV1_0_1 implements PrefixedDataAvailable {
 
-	private static Logger log = LogManager.getLogger(PrefixedDataAvailableV1_0_1.class) ;
+	private static final Logger log = LogManager.getLogger(PrefixedDataAvailableV1_0_1.class) ;
 	
-	private static String protocolName = ProtocolConstantV1_0_1.protocolName ;
+	private static final String protocolName = ProtocolConstantV206V1_0_0.protocolName ;
 
 
 	/**
 	 * 鍒嗘瀽涓婄嚎鏁版嵁(缃戠粶杩炴帴鍚庣涓�鍖呮暟鎹�)鏄惁鍙幏寰�
-	 * @param in
+	 * @param in IoBuffer
 	 * @param remain 涓�瀹氭椂澶т簬0鐨勬暟鎹�
 	 * @param minDataLength 鏈�灏忔暟鎹暱搴�
 	 * @param maxDataLength 鏈�澶ф暟鎹暱搴︼紝杈惧埌鎴栬秴杩囨闀垮害锛岃涓烘槸鍨冨溇鏁版嵁銆備緥濡傦細鏁版嵁澶撮儴鏄纭殑锛屼絾鍚堟硶鏁版嵁缁撳熬鎬讳笉鍑虹幇锛岃涓烘鏁版嵁鍨冨溇鏁版嵁
 	 * @return 涓嶆槸鏈崗璁暟鎹椂杩斿洖绌�
-	 * @throws Exception
+	 * @throws Exception 寮傚父
 	 */
 	public PrefixedDataAvailableStatus forOnLine(IoBuffer in, 
 			int remain,
@@ -49,11 +49,12 @@
 
 	/**
 	 * 鍒嗘瀽涓婄嚎鍚�(缃戠粶杩炴帴鍚庨潪绗竴鍖呮暟鎹�)鏄惁鍙幏寰�
-	 * @param in
-	 * @param protocolConf Rtu閰嶇疆
-	 * @param maxDataLength
-	 * @return
-	 * @throws Exception
+	 * @param in IoBuffer
+	 * @param remain  鍓╀綑
+	 * @param minDataLength 鏈�灏忔暟鎹暱搴�
+	 * @param maxDataLength 鏈�澶ф暟鎹暱搴�
+	 * @return PrefixedDataAvailableStatus
+	 * @throws Exception 寮傚父
 	 */
 	@Override
 	public PrefixedDataAvailableStatus forUpData(IoBuffer in, 
@@ -71,9 +72,11 @@
     }
 	/**
 	 * 杩涜鍒ゆ柇
-	 * @param preByte
-	 * @param maxDataLength
-	 * @return
+	 * @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 ;
@@ -98,14 +101,14 @@
 		}
 
 		Integer dataLen = parseCommon.parseDataLen(preByte) ;
-		
-		String headHex = ByteUtil.bytes2Hex(preByte, true) ;
-		
+
 		if(dataLen == null){
+			String headHex = ByteUtil.bytes2Hex(preByte, true) ;
 			throw new BufferDataException("鏀跺埌鏁版嵁涔嬪抚鍓嶉儴锛�" + headHex + "锛屼絾涓ラ噸閿欒锛屽湪杩涜鏂寘涓庣矘鍖呮鏌ユ椂锛屾湭鑳藉緱鍒版暟鎹抚鐨勯暱搴︺��");
 		}
 		
         if (dataLen <= 0 || dataLen > maxDataLength) {
+			String headHex = ByteUtil.bytes2Hex(preByte, true) ;
             throw new BufferDataException("鏀跺埌鏁版嵁涔嬪抚鍓嶉儴锛�" + headHex + "锛屼絾涓ラ噸閿欒锛屽湪杩涜鏂寘涓庣矘鍖呮鏌ユ椂锛屾暟鎹抚鐨勯暱搴�(" + dataLen + ")瓒呭嚭鍚堟硶鑼冨洿銆�");
         }
         
@@ -113,10 +116,12 @@
         	//涓嶆柇涓嶇矘
             return new PrefixedDataAvailableStatus().completed(dataLen) ;
         }else if(remain > dataLen){
+			String headHex = ByteUtil.bytes2Hex(preByte, true) ;
         	log.warn("鏀跺埌鏁版嵁涔嬪抚鍓嶉儴锛�" + headHex + "锛屼絾鍙戠敓绮樺寘鐜拌薄銆�") ;
             return new PrefixedDataAvailableStatus().adjoined(dataLen) ;
         }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/p206V1_0_0/ProtocolConstantV206V1_0_0.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ProtocolConstantV206V1_0_0.java
new file mode 100644
index 0000000..fdec425
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ProtocolConstantV206V1_0_0.java
@@ -0,0 +1,50 @@
+package com.dy.common.mw.protocol.p206V1_0_0;
+
+public class ProtocolConstantV206V1_0_0 {
+
+    public static final String version = "1.0.1" ;
+    public static final Byte versionByte = 101 ;
+
+    /**
+     * 娉ㄨВ鐩稿叧
+     */
+    public static final String protocolName = "p206V1_0_1" ;
+    public static final int priority = 1 ;//浼樺厛绾�
+    /**
+     * RTU涓婄嚎鏁版嵁锛堜笂绾垮悗绗竴鍖呮暟鎹級鏈�灏忛暱搴︼紝璁剧疆璇ュ睘鎬т互澶囪繘琛屽畬鏁存�ф鏌ワ紝
+     * 鍗虫柇鍖呮鏌ワ紝浣垮敖鍙兘鏀跺叏涓婄嚎鏁版嵁锛堝彇鍊艰寖鍥�1-100锛�
+     */
+    public static final int onLineDataMinLength = 30 ;//閲囩敤闃�鎺у洖鎵э紙鍏堕暱搴︽渶鐭級鐨勫瓧鑺傛暟
+
+    /**
+     * 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 ;
+
+    public static final String P_Head_Hex = "68" ;
+    public static final String P_Tail_Hex = "16" ;
+
+    public static final byte lenHead2Code = 10 ; //浠庡ご鍒板姛鑳界爜瀛楄妭鏁扮粍闀垮害
+    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 = 6 ;//鎺у埗鍣ㄥ湴鍧� 瀛楄妭鏁扮粍寮�濮嬩笅鏍�
+    public static final int rtuAddr2Index_start = 7 ;//鎺у埗鍣ㄥ湴鍧� 瀛楄妭鏁扮粍鎴涓嬫爣
+    public static final int rtuAddr2Index_end = 8 ;//鎺у埗鍣ㄥ湴鍧� 瀛楄妭鏁扮粍鎴涓嬫爣
+    public static final int codeIndex = 9 ;//鍔熻兘鐮佸瓧鑺傛暟缁勪笅鏍�
+    public static final int dataIndex = 10 ;//鍏蜂綋鏁版嵁瀛楄妭鏁扮粍涓嬫爣
+
+
+
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..9a28b35
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Down.java
@@ -0,0 +1,97 @@
+package com.dy.common.mw.protocol.p206V1_0_0.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V1_0_0.*;
+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;
+
+@AnnotationCodeDown(ifAny={
+        CodeV1_0_1.cd_06
+})
+public class Cd_02_Down  implements CodeParse {
+
+    //private static Logger log = LogManager.getLogger(Cd_XY_Down.class);
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV1_0_1 para = (ParseParamsForDownV1_0_1) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//IMEI鍙凤紙鐢典俊骞冲彴璁惧IMEI锛�
+        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 = true ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        //瀵筊TU涓婅鏁版嵁鐨勫簲绛�
+        midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = 1 ;//瀵筊TU涓婅鏁版嵁搴旂瓟锛屾墍浠ュ彧闇�鍙戜竴娆�
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para
+     * @return
+     * @throws Exception
+     */
+    public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception {
+        CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
+        byte[] bytes ;
+        byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
+        byte index = 0 ;
+        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+
+        index++ ;
+        bsHead[index] = 0 ;//甯ч暱搴�
+
+        index++ ;
+        bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ;
+
+        index++ ;
+        bsHead[index] = commonV1_0_1.createCtrl((byte)0) ;
+
+        String rtuAddr = para.rtuAddr ;
+        String rtuAddr1 = rtuAddr.substring(0, 6) ;
+        String rtuAddr2 = rtuAddr.substring(6) ;
+
+        index++ ;
+        ByteUtil.string2BCD_BE(bsHead, rtuAddr1, index) ;
+        index += 3 ;
+
+        Integer rtuAddr2Int = Integer.parseInt(rtuAddr2) ;
+        ByteUtilUnsigned.short2Bytes_BE(bsHead, rtuAddr2Int.shortValue(), index);
+        index += 2 ;
+
+        ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
+
+        byte[] bs = new byte[7] ;
+        bs[0] = (byte)0xF2 ;
+        ByteUtil.string2BCD_BE(bs, DateTime.yyMMddhhmmss(), 1) ;
+
+        bytes = ByteUtil.bytesMerge(bsHead, bs) ;
+
+        int len = bytes.length + ProtocolConstantV206V1_0_0.lenTail;
+        bytes[ProtocolConstantV206V1_0_0.dataLenIndex] = (byte)len ;
+
+        int crc = new CRC8_for_2_0().CRC8(bytes, ProtocolConstantV206V1_0_0.ctrlIndex, bytes.length -1) ;
+        bs = new byte[ProtocolConstantV206V1_0_0.lenTail] ;
+        bs[0] = (byte)crc ;
+        bs[1] = ProtocolConstantV206V1_0_0.P_Tail_Byte ;
+        bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+        return bytes ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Up.java
new file mode 100644
index 0000000..b227d63
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Up.java
@@ -0,0 +1,85 @@
+package com.dy.common.mw.protocol.p206V1_0_0.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import com.dy.common.mw.protocol.p206V1_0_0.*;
+
+@AnnotationCodeUp(ifAny={
+        CodeV1_0_1.cd_02
+})
+@SuppressWarnings("unused")
+public class Cd_02_Up implements CodeParse{
+
+    private static Logger log = LogManager.getLogger(Cd_02_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV1_0_1 para = (ParseParamsForUpV1_0_1)params ;
+        int bsLen = new CommonV1_0_1().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV1_0_1.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//IMEI鍙�
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = true ;//涓诲姩涓婃姤
+
+        String confirmComCode = CodeV1_0_1.cd_02 ;
+        ParseParamsForDownV1_0_1 downCpParams  = new ParseParamsForDownV1_0_1() ;
+        downCpParams.setValue(
+                ProtocolConstantV206V1_0_0.protocolName,
+                para.rtuAddr,
+                Command.defaultId,
+                confirmComCode,
+                null,
+                null);
+        //鏋勯�犲簲绛�
+        byte[] data = new Cd_02_Down().doParse(downCpParams) ;
+
+        MidResultToRtu confirmCommand = new MidResultToRtu() ;
+        confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        confirmCommand.rtuAddr = para.rtuAddr ;//IMEI鍙�
+        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.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
+        confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
+
+        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 {
+        DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ;
+        DataCd02Vo cdData = new DataCd02Vo() ;
+        dV1.dataCd02Vo = cdData ;
+        cdData.status = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V1_0_0.dataIndex, 1) ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/CommonV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/CommonV1_0_1.java
deleted file mode 100644
index 5d8478f..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/CommonV1_0_1.java
+++ /dev/null
@@ -1,166 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1;
-
-import com.dy.common.util.ByteUtil;
-import com.dy.common.util.ByteUtilUnsigned;
-
-
-public class CommonV1_0_1 {
-	/**
-	 * 妫�鏌ュご
-	 * @param bs
-	 * @return
-	 * @throws Exception 
-	 */
-	public Boolean isThisProtocolHead(byte[] bs) throws Exception{
-		if(bs == null){
-			return null ;
-		}else if(bs.length >= (ProtocolConstantV1_0_1.versionIndex + 1) 
-				&& bs[0] == ProtocolConstantV1_0_1.P_Head_Byte){
-			String vs = this.parseVersion(bs) ;
-			if(vs.equals(ProtocolConstantV1_0_1.version)){
-				return true ;
-			}else{
-				return false ;
-			}
-		}else{
-			return false ;
-		}
-	}
-	
-	/**
-	 * 妫�鏌ュご
-	 * @param bs
-	 * @return
-	 * @throws Exception
-	 */
-	public void checkHead(byte[] bs) throws Exception{
-		if(bs.length >= 1 && bs[0] == ProtocolConstantV1_0_1.P_Head_Byte){
-			return ;
-		}else{
-			throw new Exception("涓婅鏁版嵁甯уご涓嶆纭紒") ;
-		}
-	}
-	
-	/**
-	 * 妫�鏌ュ熬
-	 * @param bs
-	 * @return
-	 * @throws Exception
-	 */
-	public void checkTail(byte[] bs) throws Exception{
-		if(bs.length >= 1 && bs[bs.length - 1] == ProtocolConstantV1_0_1.P_Tail_Byte){
-			return ;
-		}else{
-			throw new Exception("涓婅鏁版嵁灏句笉姝g‘锛�") ;
-		}
-	}
-	
-
-
-	/**
-	 * 鏍¢獙鍜屾鏌�
-	 * @param bs
-	 * @param userdataLen
-	 * @param hasPackages
-	 * @return
-	 * @throws Exception
-	 */
-	public boolean checkCrc(byte[] bs) throws Exception {
-		byte he = 0 ;
-		for(int i = 0 ; i <= bs.length - 3 ; i++){
-			he = (byte)(he + bs[i]) ;
-		}
-		if(bs[bs.length - 2] == he){
-			return true ;
-		}else{
-			return false ;
-		}
-	}
-
-	/**
-	 * 鏍¢獙鍜屾鏌�
-	 * @param bs
-	 * @param userdataLen
-	 * @param hasPackages
-	 * @return
-	 * @throws Exception
-	 */
-	public String checkCrc_str(byte[] bs) throws Exception {
-		byte[] he = new byte[1] ;
-		for(int i = 0 ; i <= bs.length - 3 ; i++){
-			he[0] = (byte)(he[0] + bs[i]) ;
-		}
-		short hes = ByteUtilUnsigned.byte2Byte(he, 0);
-		short heOrg = ByteUtilUnsigned.byte2Byte(bs, bs.length - 2);
-		if(hes == heOrg){
-			return null ;
-		}else{
-			return "璁$畻鏍¢獙鍜屾槸:" + hes + "锛屼笂浼犳牎楠屽拰鏄�" + heOrg ;
-		}
-	}
-	
-	/**
-	 * 鍒嗘瀽鐗堟湰鍙�
-	 * @param bs
-	 * @return
-	 * @throws Exception
-	 */
-	public String parseVersion(byte[] bs)throws Exception{
-		Short ver = ByteUtilUnsigned.byte2Byte(bs, ProtocolConstantV1_0_1.versionIndex) ;
-		char[] cs = ("" + ver).toCharArray() ;
-		String vs = "" ;
-		for(byte i = 0 ; i < cs.length; i++){
-			if(i == 0){
-				vs += "" + cs[i] ;
-			}else{
-				vs += "." + cs[i] ;
-			}
-		}
-		return vs ;
-	}
-	
-
-	/**
-	 * 鍒嗘瀽鏁版嵁瀛楄妭鏁� 
-	 * @param bs
-	 * @return
-	 * @throws Exception
-	 */
-	public int parseDataLen(byte[] bs)throws Exception{
-		return ByteUtilUnsigned.bytes2Short_BE(bs, ProtocolConstantV1_0_1.dataLenIndex_start) ;
-	}
-
-	
-	/**
-	 * 鍒嗘瀽IMEI鍙�
-	 * @param bs
-	 * @return
-	 * @throws Exception
-	 */
-	public String parseRtuAddr(byte[] bs)throws Exception{
-		return "" + ByteUtil.BCD2Long_BE(bs, ProtocolConstantV1_0_1.rtuAddrIndex_start, ProtocolConstantV1_0_1.rtuAddrIndex_end) ;
-	}
-	
-	
-	/**
-	 * 鍒嗘瀽琛ㄥ彿
-	 * @param bs
-	 * @return
-	 * @throws Exception
-	 */
-	public String parseMeterNo(byte[] bs)throws Exception{
-		return "" + ByteUtil.BCD2Long_BE(bs, ProtocolConstantV1_0_1.meterNoIndex_start, ProtocolConstantV1_0_1.meterNoIndex_end) ;
-	}
-	
-	
-	/**
-	 * 鍒嗘瀽鍔熻兘鐮�
-	 * @param bs
-	 * @return
-	 * @throws Exception
-	 */
-	public String parseCode(byte[] bs)throws Exception{
-		return ByteUtil.bytes2Hex(bs, false, ProtocolConstantV1_0_1.codeIndex, 1) ;
-	}
-	
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd01Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd01Vo.java
deleted file mode 100644
index a9f2d76..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd01Vo.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1;
-
-import java.util.List;
-
-//鍛ㄦ湡涓婃姤
-public class DataCd01Vo {
-	//浠ヤ笅鏁版嵁閮芥槸24锛�0锛夋椂鏁寸偣閲囬泦鐨勬暟鎹�
-	public String dt ;//涓婃姤鏃堕棿(鏍煎紡 yyyy-mm-dd hh:mm:ss)
-	public String dataDt ;//鏁版嵁鏃堕棿(鏍煎紡 yyyy-mm-dd)
-	public Float totalAmount ;//绱鐢ㄦ按閲�
-	public Float totalAmountPerDay ;//鏃ョ粨鐢ㄦ按閲�
-	public Float volt ;//鐢垫睜鐢靛帇
-	public Float signal ;//淇″彿寮哄害
-	public Byte valveSta ;//闃�闂ㄧ姸鎬�: 00闃�寮�锛�01闃�鍏�
-	public Byte alarmValve ;//闃�闂ㄦ姤璀�:  1鎶ヨ锛�0鏃�
-	public Byte alarmMagnetism ;//寮虹鎶ヨ:  1鎶ヨ锛�0鏃�
-	public Byte alarmVolt ;//鐢靛帇娆犲帇鎶ヨ:  1鎶ヨ锛�0鏃�
-	public List<Float> values ;//鍛ㄦ湡涓婃姤鏁版嵁
-	public Short gap ;//瀵嗛噰鏁版嵁闂撮殧锛堝垎閽燂級
-	   
-    public boolean isAlarm(){
-    	boolean flag = false ;
-    	if(valveSta != null && valveSta.intValue() == 1){//闃�闂ㄧ姸鎬�(0:闃�寮�   1:闃�鍏�) 
-    		flag = true ;
-    	}
-    	if(alarmValve != null && alarmValve.intValue() == 1){//闃�闂ㄥ紓甯稿憡璀�	1 闃�闂ㄥ紓甯革紝0 闃�闂ㄦ甯�  
-    		flag = true ;
-    	}
-    	if(alarmVolt != null && alarmVolt.intValue() == 1){//鐢垫睜娆犲帇鍛婅  1鍛婅锛�0鏃犲憡璀�  
-    		flag = true ;
-    	}
-    	if(alarmMagnetism != null && alarmMagnetism.intValue() == 1){//纾佸共鎵板憡璀� 	1鍛婅锛�0鏃犲憡璀�     	
-    		flag = true ;
-    	}
-    	return flag ;
-    }
-	public String toString(){
-		StringBuffer sb = new StringBuffer() ;
-		sb.append("      瀹氭椂涓婃姤 : \n") ;
-		sb.append("      缁堢鏃堕棿 : " + dt + "\n") ;
-		sb.append("      鏁版嵁鏃堕棿 : " + dataDt + "\n") ;
-		sb.append("      鍐荤粨绱姘撮噺 : " + totalAmount + "\n") ;
-		sb.append("      鏃ョ疮璁℃按閲� : " + totalAmountPerDay + "\n") ;
-		sb.append("      鐢靛帇 : " + volt + "\n") ;
-		sb.append("      淇″彿寮哄害 : " + signal + "\n") ;
-		sb.append("      闃�闂ㄧ姸鎬� : " + valveSta + "锛�" + (valveSta==0?"闃�寮�":"闃�鍏�") +  "锛塡n") ;
-		sb.append("      闃�闂ㄦ姤璀� : " + alarmValve + "锛�" + (alarmValve==0?"姝e父":"鎶ヨ") +  "锛塡n") ;
-		sb.append("      寮虹鎶ヨ : " + alarmMagnetism + "锛�" + (alarmMagnetism==0?"姝e父":"鎶ヨ") +  "锛塡n") ;
-		sb.append("      娆犲帇鎶ヨ : " + alarmVolt + "锛�" + (alarmVolt==0?"姝e父":"鎶ヨ") +  "锛塡n") ;
-		sb.append("      瀵嗛噰鏁版嵁闂撮殧 : " + gap +  "锛堝垎閽燂級\n") ;
-		sb.append("        瀵嗛噰鏁版嵁锛歕n") ;
-		if(values != null && values.size() > 0){
-			for(int i = 0 ; i < values.size(); i++){
-				sb.append("          " + (i + 1) + "鏃剁敤姘撮噺锛�" + values.get(i) + "\n") ;
-			}
-		}
-		return sb.toString() ;
-	}
-	public String getDt() {
-		return dt;
-	}
-	public void setDt(String dt) {
-		this.dt = dt;
-	}
-	public String getDataDt() {
-		return dataDt;
-	}
-	public void setDataDt(String dataDt) {
-		this.dataDt = dataDt;
-	}
-	public Float getTotalAmount() {
-		return totalAmount;
-	}
-	public void setTotalAmount(Float totalAmount) {
-		this.totalAmount = totalAmount;
-	}
-	public Float getTotalAmountPerDay() {
-		return totalAmountPerDay;
-	}
-	public void setTotalAmountPerDay(Float totalAmountPerDay) {
-		this.totalAmountPerDay = totalAmountPerDay;
-	}
-	public Float getVolt() {
-		return volt;
-	}
-	public void setVolt(Float volt) {
-		this.volt = volt;
-	}
-	public Float getSignal() {
-		return signal;
-	}
-	public void setSignal(Float signal) {
-		this.signal = signal;
-	}
-	public Byte getValveSta() {
-		return valveSta;
-	}
-	public void setValveSta(Byte valveSta) {
-		this.valveSta = valveSta;
-	}
-	public Byte getAlarmValve() {
-		return alarmValve;
-	}
-	public void setAlarmValve(Byte alarmValve) {
-		this.alarmValve = alarmValve;
-	}
-	public Byte getAlarmMagnetism() {
-		return alarmMagnetism;
-	}
-	public void setAlarmMagnetism(Byte alarmMagnetism) {
-		this.alarmMagnetism = alarmMagnetism;
-	}
-	public Byte getAlarmVolt() {
-		return alarmVolt;
-	}
-	public void setAlarmVolt(Byte alarmVolt) {
-		this.alarmVolt = alarmVolt;
-	}
-	public List<Float> getValues() {
-		return values;
-	}
-	public void setValues(List<Float> values) {
-		this.values = values;
-	}
-	public Short getGap() {
-		return gap;
-	}
-	public void setGap(Short gap) {
-		this.gap = gap;
-	}
-
-	
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd02Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd02Vo.java
deleted file mode 100644
index 99c9ee3..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd02Vo.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1;
-
-//瀹炴椂(瑙﹀彂)涓婃姤
-public class DataCd02Vo {
-	//浠ヤ笅鏁版嵁閮芥槸涓婃姤鏃跺埢鐨勬暟鎹�
-	public String dt ;//涓婃姤鏃堕棿(鏍煎紡 yyyy-mm-dd hh:mm:ss)
-	public Float totalAmount ;
-	public Float volt ;
-	public Float signal ;//淇″彿寮哄害
-	public Byte valveSta ;//闃�闂ㄧ姸鎬�: 00闃�寮�锛�01闃�鍏�
-	public Byte alarmValve ;//闃�闂ㄦ姤璀�
-	public Byte alarmMagnetism ;//寮虹鎶ヨ
-	public Byte alarmVolt ;//鐢靛帇娆犲帇鎶ヨ
-	
-	   
-    public boolean isAlarm(){
-    	boolean flag = false ;
-    	if(valveSta != null && valveSta.intValue() == 1){//闃�闂ㄧ姸鎬�(0:闃�寮�   1:闃�鍏�) 
-    		flag = true ;
-    	}
-    	if(alarmValve != null && alarmValve.intValue() == 1){//闃�闂ㄥ紓甯稿憡璀�	1 闃�闂ㄥ紓甯革紝0 闃�闂ㄦ甯�  
-    		flag = true ;
-    	}
-    	if(alarmVolt != null && alarmVolt.intValue() == 1){//鐢垫睜娆犲帇鍛婅  1鍛婅锛�0鏃犲憡璀�  
-    		flag = true ;
-    	}
-    	if(alarmMagnetism != null && alarmMagnetism.intValue() == 1){//纾佸共鎵板憡璀� 	1鍛婅锛�0鏃犲憡璀�     	
-    		flag = true ;
-    	}
-    	return flag ;
-    }
-    
-	public String toString(){
-		StringBuffer sb = new StringBuffer() ;
-		sb.append("      瑙﹀彂涓婃姤 : \n") ;
-		sb.append("      缁堢鏃堕棿 : " + dt + "\n") ;
-		sb.append("      鍐荤粨绱姘撮噺 : " + totalAmount + "\n") ;
-		sb.append("      鐢靛帇 : " + volt + "\n") ;
-		sb.append("      淇″彿寮哄害 : " + signal + "\n") ;
-		sb.append("      闃�闂ㄧ姸鎬� : " + valveSta + "锛�" + (valveSta==0?"闃�寮�":"闃�鍏�") +  "锛塡n") ;
-		sb.append("      闃�闂ㄦ姤璀� : " + alarmValve + "锛�" + (alarmValve==0?"姝e父":"鎶ヨ") +  "锛塡n") ;
-		sb.append("      寮虹鎶ヨ : " + alarmMagnetism + "锛�" + (alarmMagnetism==0?"姝e父":"鎶ヨ") +  "锛塡n") ;
-		sb.append("      娆犲帇鎶ヨ : " + alarmVolt + "锛�" + (alarmVolt==0?"姝e父":"鎶ヨ") +  "锛塡n") ;
-		return sb.toString() ;
-	}
-	public String getDt() {
-		return dt;
-	}
-	public void setDt(String dt) {
-		this.dt = dt;
-	}
-	public Float getTotalAmount() {
-		return totalAmount;
-	}
-	public void setTotalAmount(Float totalAmount) {
-		this.totalAmount = totalAmount;
-	}
-	public Float getVolt() {
-		return volt;
-	}
-	public void setVolt(Float volt) {
-		this.volt = volt;
-	}
-	public Float getSignal() {
-		return signal;
-	}
-	public void setSignal(Float signal) {
-		this.signal = signal;
-	}
-	public Byte getValveSta() {
-		return valveSta;
-	}
-	public void setValveSta(Byte valveSta) {
-		this.valveSta = valveSta;
-	}
-	public Byte getAlarmValve() {
-		return alarmValve;
-	}
-	public void setAlarmValve(Byte alarmValve) {
-		this.alarmValve = alarmValve;
-	}
-	public Byte getAlarmMagnetism() {
-		return alarmMagnetism;
-	}
-	public void setAlarmMagnetism(Byte alarmMagnetism) {
-		this.alarmMagnetism = alarmMagnetism;
-	}
-	public Byte getAlarmVolt() {
-		return alarmVolt;
-	}
-	public void setAlarmVolt(Byte alarmVolt) {
-		this.alarmVolt = alarmVolt;
-	}
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd03Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd03Vo.java
deleted file mode 100644
index 3331af9..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd03Vo.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1;
-
-//浜嬩欢涓婃姤
-public class DataCd03Vo {
-	//浠ヤ笅鏁版嵁閮芥槸涓婃姤鏃跺埢鐨勬暟鎹�
-	public String dt ;//涓婃姤鏃堕棿(鏍煎紡 yyyy-mm-dd hh:mm:ss)
-	public Float volt ;
-	public Byte valveSta ;//闃�闂ㄧ姸鎬�: 00闃�寮�锛�01闃�鍏�
-	public Byte alarmValve ;//闃�闂ㄦ姤璀�
-	public Byte alarmMagnetism ;//寮虹鎶ヨ
-	public Byte alarmVolt ;//鐢靛帇娆犲帇鎶ヨ
-	   
-    public boolean isAlarm(){
-    	boolean flag = false ;
-    	if(valveSta != null && valveSta.intValue() == 1){//闃�闂ㄧ姸鎬�(0:闃�寮�   1:闃�鍏�) 
-    		flag = true ;
-    	}
-    	if(alarmValve != null && alarmValve.intValue() == 1){//闃�闂ㄥ紓甯稿憡璀�	1 闃�闂ㄥ紓甯革紝0 闃�闂ㄦ甯�  
-    		flag = true ;
-    	}
-    	if(alarmVolt != null && alarmVolt.intValue() == 1){//鐢垫睜娆犲帇鍛婅  1鍛婅锛�0鏃犲憡璀�  
-    		flag = true ;
-    	}
-    	if(alarmMagnetism != null && alarmMagnetism.intValue() == 1){//纾佸共鎵板憡璀� 	1鍛婅锛�0鏃犲憡璀�     	
-    		flag = true ;
-    	}
-    	return flag ;
-    }
-    
-	public String toString(){
-		StringBuffer sb = new StringBuffer() ;
-		sb.append("      浜嬩欢涓婃姤 : \n") ;
-		sb.append("      缁堢鏃堕棿 : " + dt + "\n") ;
-		sb.append("      鐢靛帇 : " + volt + "\n") ;
-		sb.append("      闃�闂ㄧ姸鎬� : " + valveSta + "锛�" + (valveSta==0?"闃�寮�":"闃�鍏�") +  "锛塡n") ;
-		sb.append("      闃�闂ㄦ姤璀� : " + alarmValve + "锛�" + (alarmValve==0?"姝e父":"鎶ヨ") +  "锛塡n") ;
-		sb.append("      寮虹鎶ヨ : " + alarmMagnetism + "锛�" + (alarmMagnetism==0?"姝e父":"鎶ヨ") +  "锛塡n") ;
-		sb.append("      娆犲帇鎶ヨ : " + alarmVolt + "锛�" + (alarmVolt==0?"姝e父":"鎶ヨ") +  "锛塡n") ;
-		return sb.toString() ;
-	}
-	public String getDt() {
-		return dt;
-	}
-	public void setDt(String dt) {
-		this.dt = dt;
-	}
-	public Float getVolt() {
-		return volt;
-	}
-	public void setVolt(Float volt) {
-		this.volt = volt;
-	}
-	public Byte getValveSta() {
-		return valveSta;
-	}
-	public void setValveSta(Byte valveSta) {
-		this.valveSta = valveSta;
-	}
-	public Byte getAlarmValve() {
-		return alarmValve;
-	}
-	public void setAlarmValve(Byte alarmValve) {
-		this.alarmValve = alarmValve;
-	}
-	public Byte getAlarmMagnetism() {
-		return alarmMagnetism;
-	}
-	public void setAlarmMagnetism(Byte alarmMagnetism) {
-		this.alarmMagnetism = alarmMagnetism;
-	}
-	public Byte getAlarmVolt() {
-		return alarmVolt;
-	}
-	public void setAlarmVolt(Byte alarmVolt) {
-		this.alarmVolt = alarmVolt;
-	}
-	
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd0405Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd0405Vo.java
deleted file mode 100644
index 4b43380..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd0405Vo.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1;
-
-public class DataCd0405Vo {
-	
-	public Byte open1_close2 ;//寮�闃�鏄�1锛屽叧闃�鏄�2
-	
-	public Byte state ;//寮�鍏抽榾鎿嶄綔缁撴灉锛氬紑鍏冲埌浣嶏細01H锛�	寮�鍏宠秴鏃讹細02H	鐢垫祦瓒呴檺锛�03H
-	
-	//浠ヤ笅鏁版嵁閮芥槸涓婃姤鏃跺埢鐨勬暟鎹�
-	public String dt ;//涓婃姤鏃堕棿(鏍煎紡 yyyy-mm-dd hh:mm:ss)
-
-	public String toString(){
-		StringBuffer sb = new StringBuffer() ;
-		if(open1_close2 != null && open1_close2.byteValue() == 1){
-			if(state != null && state.byteValue() == 1){
-				sb.append("      寮�闃�缁撴灉 : 寮�鍒颁綅\n") ;
-			}else if(state != null && state.byteValue() == 2){
-				sb.append("      寮�闃�缁撴灉 : 瓒呮椂\n") ;
-			}else if(state != null && state.byteValue() == 2){
-				sb.append("      寮�闃�缁撴灉 : 鐢垫祦瓒呴檺\n") ;
-			}
-		}else if(open1_close2 != null && open1_close2.byteValue() == 2){
-			if(state != null && state.byteValue() == 1){
-				sb.append("      鍏抽榾缁撴灉 : 鍏冲埌浣峔n") ;
-			}else if(state != null && state.byteValue() == 2){
-				sb.append("      鍏抽榾缁撴灉 : 瓒呮椂\n") ;
-			}else if(state != null && state.byteValue() == 2){
-				sb.append("      鍏抽榾缁撴灉 : 鐢垫祦瓒呴檺\n") ;
-			}
-		}
-		sb.append("      缁堢鏃堕棿 : " + dt + "\n") ;
-		return sb.toString() ;
-	}
-	
-	/**
-	 * 鐢卞叾浜х敓鍛戒护鏃ュ織锛屽苟瀛樺偍鍒版暟鎹簱涓�
-	 * @return
-	 */
-	public String resultInfo(){
-		StringBuffer sb = new StringBuffer() ;
-		if(open1_close2 != null && open1_close2.byteValue() == 1){
-			if(state != null && state.byteValue() == 1){
-				sb.append("      寮�闃�缁撴灉 : 寮�鍒颁綅\n") ;
-			}else if(state != null && state.byteValue() == 2){
-				sb.append("      寮�闃�缁撴灉 : 瓒呮椂\n") ;
-			}else if(state != null && state.byteValue() == 2){
-				sb.append("      寮�闃�缁撴灉 : 鐢垫祦瓒呴檺\n") ;
-			}
-		}else if(open1_close2 != null && open1_close2.byteValue() == 2){
-			if(state != null && state.byteValue() == 1){
-				sb.append("      鍏抽榾缁撴灉 : 鍏冲埌浣峔n") ;
-			}else if(state != null && state.byteValue() == 2){
-				sb.append("      鍏抽榾缁撴灉 : 瓒呮椂\n") ;
-			}else if(state != null && state.byteValue() == 2){
-				sb.append("      鍏抽榾缁撴灉 : 鐢垫祦瓒呴檺\n") ;
-			}
-		}
-		sb.append("      缁堢鏃堕棿 : " + dt + "\n") ;
-		return sb.toString() ;
-	}
-	
-	public Byte getOpen1_close2() {
-		return open1_close2;
-	}
-	public void setOpen1_close2(Byte open1_close2) {
-		this.open1_close2 = open1_close2;
-	}
-	public Byte getState() {
-		return state;
-	}
-	public void setState(Byte sate) {
-		this.state = sate;
-	}
-	public String getDt() {
-		return dt;
-	}
-	public void setDt(String dt) {
-		this.dt = dt;
-	}
-
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd06Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd06Vo.java
deleted file mode 100644
index a4784fd..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataCd06Vo.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1;
-
-//寮�鍏抽榾缁撴灉涓婃姤
-public class DataCd06Vo {
-	public String dt ;//涓婃姤鏃堕棿(鏍煎紡 yyyy-mm-dd hh:mm:ss)
-	public Byte valveRes ;//闃�闂ㄥ姩浣滅粨鏋�: //0, 鍏冲埌浣�; 1, 寮�鍒颁綅; 2, 瓒呮椂; 3, 鍫佃浆; 4, 娲楅榾鎴愬姛
-	   
-    public boolean isAlarm(){
-    	if(valveRes != null && (valveRes.intValue() == 2 || valveRes.intValue() == 3)){//2 瓒呮椂      3鍫佃浆
-    		return true ;
-    	}
-    	return false ;
-    }
-    
-	public String toString(){
-		StringBuffer sb = new StringBuffer() ;
-		sb.append("      寮�鍏抽榾缁撴灉涓婃姤 : \n") ;
-		sb.append("      缁堢鏃堕棿 : " + dt + "\n") ;
-		sb.append("      闃�闂ㄥ姩浣滅粨鏋� : " + valveRes + "锛�" + (valveRes==0?"鍏冲埌浣�":(valveRes==1?"寮�鍒颁綅":(valveRes==2?"瓒呮椂":(valveRes==3?"鍫佃浆":(valveRes==4?"娲楅榾鎴愬姛":""))))) +  "锛塡n") ;
-		return sb.toString() ;
-	}
-
-	public String getDt() {
-		return dt;
-	}
-
-	public void setDt(String dt) {
-		this.dt = dt;
-	}
-
-	public Byte getValveRes() {
-		return valveRes;
-	}
-
-	public void setValveRes(Byte valveRes) {
-		this.valveRes = valveRes;
-	}
-	
-
-	
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataV1_0_1.java
deleted file mode 100644
index 5f9d4cf..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DataV1_0_1.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1;
-
-public class DataV1_0_1  implements java.io.Serializable{
-	
-	private static final long serialVersionUID = 202211271110001L;
-	
-	public static String ALIAS = DataV1_0_1.class.getName() ;
-	
-	public String rtuAddr ;//RtuAddr
-	public String meterNo ;//姘磋〃鍙�
-	public String version ;//鍗忚鐗堟湰鍙� 
-	
-	public DataCd01Vo dataCd01Vo ;//鍛ㄦ湡涓婃姤鏁版嵁
-	public DataCd02Vo dataCd02Vo ;//瀹炴椂锛堣Е鍙戯級涓婃姤鏁版嵁
-	public DataCd03Vo dataCd03Vo ;//浜嬩欢鎶�
-	public DataCd0405Vo dataCd0405Vo ;//寮�鍏抽榾鍥炴墽
-	public DataCd06Vo dataCd06Vo ;//寮�鍏抽榾缁撴灉
-	
-	public String dt ;//閫氫俊涓棿浠朵骇鐢熷彂鎶ユ椂闂�(yyyy-MM-dd hh:mm:ss)
-
-	
-	public String toString(){
-		StringBuffer sb = new StringBuffer() ;
-		sb.append("   鐢典俊IMEI鍙� : " + (rtuAddr==null?"":rtuAddr) + "\n") ;
-		sb.append("   姘磋〃鍙� : " + (meterNo==null?"":meterNo) + "\n") ;
-		sb.append("   鍗忚鐗堟湰鍙�:" + version + "\n") ;
-		sb.append("   缁堢鏁版嵁:\n") ;
-		if(dataCd01Vo != null){
-			sb.append(dataCd01Vo.toString()) ;
-		}
-		if(dataCd02Vo != null){
-			sb.append(dataCd02Vo.toString()) ;
-		}
-		if(dataCd03Vo != null){
-			sb.append(dataCd03Vo.toString()) ;
-		}
-		if(dataCd0405Vo != null){
-			sb.append(dataCd0405Vo.toString()) ;
-		}
-		if(dataCd06Vo != null){
-			sb.append(dataCd06Vo.toString()) ;
-		}
-		return sb.toString() ;
-	}
-	
-	/**
-	 * 鐢卞叾浜х敓鍛戒护鏃ュ織
-	 * @return
-	 */
-	public String resultInfo(){
-		if(dataCd0405Vo != null){
-			return dataCd0405Vo.resultInfo() ;
-		}
-		return "" ;
-	}
-	
-	
-	public String getRtuAddr() {
-		return rtuAddr;
-	}
-	public void setRtuAddr(String rtuAddr) {
-		this.rtuAddr = rtuAddr;
-	}
-	
-	public String getMeterNo() {
-		return meterNo;
-	}
-
-
-	public void setMeterNo(String meterNo) {
-		this.meterNo = meterNo;
-	}
-
-
-	public String getVersion() {
-		return version;
-	}
-	public void setVersion(String version) {
-		this.version = version;
-	}
-	public String getDt() {
-		return dt;
-	}
-	public void setDt(String dt) {
-		this.dt = dt;
-	}
-
-
-	public DataCd01Vo getDataCd01Vo() {
-		return dataCd01Vo;
-	}
-
-
-	public void setDataCd01Vo(DataCd01Vo dataCd01Vo) {
-		this.dataCd01Vo = dataCd01Vo;
-	}
-
-
-	public DataCd02Vo getDataCd02Vo() {
-		return dataCd02Vo;
-	}
-
-
-	public void setDataCd02Vo(DataCd02Vo dataCd02Vo) {
-		this.dataCd02Vo = dataCd02Vo;
-	}
-
-
-	public DataCd03Vo getDataCd03Vo() {
-		return dataCd03Vo;
-	}
-
-
-	public void setDataCd03Vo(DataCd03Vo dataCd03Vo) {
-		this.dataCd03Vo = dataCd03Vo;
-	}
-
-
-	public DataCd0405Vo getDataCd0405Vo() {
-		return dataCd0405Vo;
-	}
-
-
-	public void setDataCd0405Vo(DataCd0405Vo dataCd0405Vo) {
-		this.dataCd0405Vo = dataCd0405Vo;
-	}
-
-	public DataCd06Vo getDataCd06Vo() {
-		return dataCd06Vo;
-	}
-
-	public void setDataCd06Vo(DataCd06Vo dataCd06Vo) {
-		this.dataCd06Vo = dataCd06Vo;
-	}
-	
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DriverV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DriverV1_0_1.java
deleted file mode 100644
index a3a1648..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/DriverV1_0_1.java
+++ /dev/null
@@ -1,188 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1;
-
-import java.net.URI;
-import java.net.URL;
-
-import com.dy.common.mw.protocol.AnnotationDriver;
-import com.dy.common.mw.protocol.CodeParse;
-import com.dy.common.mw.protocol.CodeParseCallback;
-import com.dy.common.mw.protocol.Command;
-import com.dy.common.mw.protocol.Data;
-import com.dy.common.mw.protocol.Driver;
-import com.dy.common.mw.protocol.DriverParserDataCallback;
-import com.dy.common.mw.protocol.MidResult;
-import com.dy.common.mw.protocol.MidResultError;
-import com.dy.common.util.DateTime;
-
-@AnnotationDriver(name=ProtocolConstantV1_0_1.protocolName)
-public class DriverV1_0_1  extends Driver {
-	
-	private static String scanRootPackage = "com.dy.common.mw.protocol.pMeterV1_0_1." ;
-	
-	//鍦―river涓槸鍗曚緥锛岄殢Driver鐨勫崟渚嬪璞″湪鍗曠嚎绋嬩腑杩愯
-	private ParseParamsForUpV1_0_1 upCpParams ;
-	private ParseParamsForDownV1_0_1  downCpParams ;
-	
-	private Boolean reportOrResponse_trueOrFalse = null ;
-	private String rtuAddrInData = null ;
-	private String meterNoInData = null ;
-	
-	public DriverV1_0_1(){
-		upCpParams = new ParseParamsForUpV1_0_1() ;
-		downCpParams = new ParseParamsForDownV1_0_1() ;
-	}
-
-
-	/**
-	 * 鎵弿璇嗗埆鍔熻兘鐮佹敞瑙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, ProtocolConstantV1_0_1.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) {
-		 return parseData(isLowPower, rtuAddr, null, null, upBuffer, upHex, callback) ;
-	}
-	/**
-	 * 瑙f瀽涓婅鏁版嵁
-	 * @param isLowPower 鏄惁鍦ㄤ綆鍔熻�楃幆澧冧笅杩愯
-	 * @param rtuAddr
-	 * @param productId 鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴涓繍琛屾椂锛屼负null
-	 * @param deviceId 鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴涓繍琛屾椂锛屼负null
-	 * @param upBuffer
-	 * @param callback
-	 * @param upHex
-	 * @return
-	 */
-	@Override
-	public MidResult[] parseData(Boolean isLowPower, String rtuAddr, Integer productId, String deviceId, byte[] upBuffer, String upHex, DriverParserDataCallback callback, Object... params) {
-		reportOrResponse_trueOrFalse = null ;
-		boolean isFail = false ;
-		String meterNo = null ;
-		String upCode = "" ;
-		try{
-			CommonV1_0_1 cp = new CommonV1_0_1() ;
-			cp.checkHead(upBuffer) ;
-			cp.checkTail(upBuffer) ;
-			String crcStr = cp.checkCrc_str(upBuffer) ;
-			if(crcStr != null){
-				return new MidResult[]{(new MidResultError(ProtocolConstantV1_0_1.protocolName, rtuAddr, null, "涓ラ噸閿欒锛屼笂琛屾暟鎹瓹RC妫�鏌ュけ璐ワ紝" + crcStr, null))} ;
-			}
-			rtuAddr = cp.parseRtuAddr(upBuffer) ;
-			upCode = cp.parseCode(upBuffer) ;
-			if(upCode == null){
-				return new MidResult[]{(new MidResultError(ProtocolConstantV1_0_1.protocolName, rtuAddr, null, "涓ラ噸閿欒锛屾湭鑳戒粠涓婅鏁版嵁涓В鏋愬嚭鍔熻兘鐮侊紒", null))} ;
-			}
-			//Integer dataLen = cp.parseFrameLen(upBuffer) ;
-			Data upData = new Data() ;
-			upData.setRtuAddr(rtuAddr) ;
-			meterNo = cp.parseMeterNo(upBuffer) ;
-			upData.setMeterNo(meterNo) ;
-			upData.setProtocol(ProtocolConstantV1_0_1.protocolName);
-			upData.setCode(upCode) ;
-			upData.setHex(upHex) ;
-			
-			
-			DataV1_0_1 dV1_0_1 = new DataV1_0_1() ;
-			dV1_0_1.version = cp.parseVersion(upBuffer) ;
-			dV1_0_1.rtuAddr = rtuAddr ;
-			dV1_0_1.meterNo = meterNo ;
-			dV1_0_1.meterNo = cp.parseMeterNo(upBuffer) ;
-			dV1_0_1.dt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
-			
-			upData.setSubData(dV1_0_1) ;
-			
-			this.upCpParams.clear();
-			this.upCpParams.setValue(ProtocolConstantV1_0_1.protocolName, 
-					rtuAddr, 
-					meterNo,
-					productId, 
-					deviceId, 
-					upCode, 
-					upHex, 
-					upBuffer, 
-					upData);
-			CodeParse codeParse = this.getUpCodeParser(upCode) ;
-			if(codeParse == null){
-				return new MidResult[]{(new MidResultError(ProtocolConstantV1_0_1.protocolName, rtuAddr, meterNo, "涓ラ噸閿欒锛屾湭鑳藉緱鍒颁笂琛屾暟鎹姛鑳界爜" + 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() ;
-						meterNoInData = dV1_0_1.getMeterNo() ;
-					}
-				});
-			}
-				
-		} catch (Exception e) {
-			isFail = true ;
-			return new MidResult[]{(new MidResultError(ProtocolConstantV1_0_1.protocolName, rtuAddr, meterNo, "涓ラ噸閿欒锛屽垎鏋怰tu鏁版嵁鍑洪敊锛佹暟鎹负锛�" + upHex + (e.getMessage() == null?"":("锛屽嚭閿欎俊鎭細" + e.getMessage())), e))} ;
-		} finally{
-			callback.callback(rtuAddr, meterNo, upCode, upHex, reportOrResponse_trueOrFalse, isFail, rtuAddrInData, meterNoInData);
-		}
-	}
-	/**
-	 * 鏋勯�犱笅琛屾暟鎹紙鍛戒护锛�
-	 * @param isLowPower 鏄惁鍦ㄤ綆鍔熻�楃幆澧冧笅杩愯
-	 * @param command 鍛戒护
-	 * @return
-	 */
-	@Override
-	public MidResult[] createCommand(Boolean isLowPower, Command command, Object... params) {
-		String rtuAddr = command.getRtuAddr() ;
-		if(rtuAddr == null){
-			return new MidResult[]{(new MidResultError(ProtocolConstantV1_0_1.protocolName, null, null, "涓ラ噸閿欒锛屽懡浠や腑IMEI鍙蜂负绌猴紝涓嶈兘鏋勫缓浠讳綍鍛戒护锛�", null))} ;
-		}
-		String meterNo = command.getMeterNo() ;
-		if(meterNo == null){
-			return new MidResult[]{(new MidResultError(ProtocolConstantV1_0_1.protocolName, null, null, "涓ラ噸閿欒锛屽懡浠や腑姘磋〃鍙蜂负绌猴紝涓嶈兘鏋勫缓浠讳綍鍛戒护锛�", null))} ;
-		}
-		try {
-			String commandCode = command.getCode() ;
-			
-			this.downCpParams.clear();
-			this.downCpParams.setValue(
-					ProtocolConstantV1_0_1.protocolName, 
-					rtuAddr, 
-					meterNo,
-					command.getProductId(), //鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-					command.getDeviceId(), //鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-					command.getId(), 
-					commandCode, 
-					command.getParam(), 
-					command.getAttachment());
-			
-			if(commandCode == null){
-				return new MidResult[]{(new MidResultError(ProtocolConstantV1_0_1.protocolName, rtuAddr, meterNo, "涓ラ噸閿欒锛屽懡浠や腑鍔熻兘鐮佷负绌猴紝涓嶈兘鏋勫缓浠讳綍鍛戒护锛�", null))} ;
-			}else{
-				CodeParse codeParse = this.getDownCodeParser(commandCode) ;
-				if(codeParse == null){
-					return new MidResult[]{(new MidResultError(ProtocolConstantV1_0_1.protocolName, rtuAddr, meterNo, "涓ラ噸閿欒锛屾湭鑳藉緱鍒颁笅琛屾暟鎹姛鑳界爜" + commandCode + "澶勭悊绫�!", null))} ;
-				}else{
-					return codeParse.parse(isLowPower, this.downCpParams, null);
-				}
-			}
-		} catch (Exception e) {
-			return new MidResult[]{(new MidResultError(ProtocolConstantV1_0_1.protocolName, rtuAddr, meterNo, "涓ラ噸閿欒锛屾瀯閫犱笅琛屾暟鎹嚭閿欙紒鍛戒护涓猴細" + command.toString(), e))} ;
-		}
-	}
-
-
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/ParseParamsForDownV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/ParseParamsForDownV1_0_1.java
deleted file mode 100644
index 862ab0c..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/ParseParamsForDownV1_0_1.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1;
-
-import com.dy.common.mw.protocol.CodeParseParams;
-
-public class ParseParamsForDownV1_0_1 implements CodeParseParams{
-	
-	public String protocolName ;
-	public String rtuAddr ;//IMEI鍙凤紙鐢典俊骞冲彴璁惧IMEI锛�
-	public String meterNo ;//姘磋〃鍙�
-	public Integer productId ;//鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-	public String deviceId ;//鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-	public String commandId ;
-	public String commandCode ;
-	public Object param ;
-	public Object attachment ;
-	
-	public ParseParamsForDownV1_0_1(){}
-	
-	public void clear(){
-		this.protocolName = null ; 
-		this.rtuAddr = null ; 
-		this.meterNo = null ; 
-		this.productId = null ; 
-		this.deviceId = null ; 
-		this.commandId = null ; 
-		this.commandCode = null ; 
-		this.param = null ; 
-		this.attachment = null ; 
-	}
-	
-	public void setValue(
-			String protocolName, 
-			String rtuAddr, 
-			String meterNo,
-			Integer productId, 
-			String deviceId, 
-			String commandId,
-			String commandCode, 
-			Object param, 
-			Object attachment ){
-		this.protocolName = protocolName ; 
-		this.rtuAddr = rtuAddr ; 
-		this.meterNo = meterNo ; 
-		this.productId = productId ; 
-		this.deviceId = deviceId ; 
-		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/pMeterV1_0_1/ParseParamsForUpV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/ParseParamsForUpV1_0_1.java
deleted file mode 100644
index 988ddc1..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/ParseParamsForUpV1_0_1.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1;
-
-import com.dy.common.mw.protocol.CodeParseParams;
-import com.dy.common.mw.protocol.Data;
-
-public class ParseParamsForUpV1_0_1 implements CodeParseParams{
-	
-	public String protocolName ;//鍗忚鍚嶇О
-	public String rtuAddr ;//IMEI鍙�(IMEI鍙�)
-	public String meterNo ;//姘磋〃鍙�
-	public Integer productId ;//鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-	public String deviceId ;//鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-	public String upCode ;//涓婅鎶ユ枃鏁版嵁涓殑鍔熻兘鐮�
-	public String upHex ;//琛屾姤鏂囨暟鎹崄鍏繘鍒跺舰寮�
-	public byte[] upBuffer ;//琛屾姤鏂囨暟鎹瓧鑺傛暟缁�
-	public Data data ;//瑙f瀽鍚庣殑鏁版嵁
-
-	public ParseParamsForUpV1_0_1(){}
-	
-	public void clear(){
-		this.protocolName = null ; 
-		this.rtuAddr = null ; 
-		this.meterNo = null ; 
-		this.productId = null ; 
-		this.deviceId = null ; 
-		this.upCode = null ; 
-		this.upHex = null ; 
-		this.upBuffer = null ; 
-		this.data = null ;
-	}
-	
-	public void setValue(String protocolName, 
-			String rtuAddr, 
-			String meterNo,
-			Integer productId, 
-			String deviceId, 
-			String upCode, 
-			String upHex, 
-			byte[] upBuffer,
-			Data data){
-		this.protocolName = protocolName ; 
-		this.rtuAddr = rtuAddr ; 
-		this.meterNo = meterNo ; 
-		this.productId = productId ; 
-		this.deviceId = deviceId ; 
-		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/pMeterV1_0_1/ProtocolConstantV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/ProtocolConstantV1_0_1.java
deleted file mode 100644
index a12d6ff..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/ProtocolConstantV1_0_1.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1;
-
-public class ProtocolConstantV1_0_1 {
-
-	public static final String version = "1.0.1" ;
-	public static final Byte versionByte = 101 ;
-	
-	/**
-	 * 娉ㄨВ鐩稿叧
-	 */
-	public static final String protocolName = "meterV1_0_1" ;
-	public static final int priority = 1 ;//浼樺厛绾�
-	/**
-	 * RTU涓婄嚎鏁版嵁锛堜笂绾垮悗绗竴鍖呮暟鎹級鏈�灏忛暱搴︼紝璁剧疆璇ュ睘鎬т互澶囪繘琛屽畬鏁存�ф鏌ワ紝
-	 * 鍗虫柇鍖呮鏌ワ紝浣垮敖鍙兘鏀跺叏涓婄嚎鏁版嵁锛堝彇鍊艰寖鍥�1-100锛�
-	 */
-	public static final int onLineDataMinLength = 30 ;//閲囩敤闃�鎺у洖鎵э紙鍏堕暱搴︽渶鐭級鐨勫瓧鑺傛暟
-
-	/**
-	 * 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 ; 
-	
-	public static final String P_Head_Hex = "68" ; 
-	public static final String P_Tail_Hex = "16" ; 
-	
-	public static final byte downBsHeadLen = 21 ;//涓嬭鏁版嵁澶撮儴(寮�濮嬭嚦鍔熻兘鐮佹墍鍦ㄥ瓧鑺�)
-	public static final byte downBsTailLen = 2 ;//涓嬭鏁版嵁灏鹃儴(鏍¢獙鍜屾墍鍦ㄥ瓧鑺傝嚦鏈�鍚�)
-
-	/**
-	 * 鎵�鍦ㄥ瓧鑺傛暟缁勭殑浣嶇疆锛堜笅鏍囷級
-	 */
-	public static final int dataLenIndex_start = 1 ;//甯ч暱搴︽墍鍦� 瀛楄妭鏁扮粍璧峰涓嬫爣
-	public static final int dataLenIndex_end = 2 ;//甯ч暱搴︽墍鍦� 瀛楄妭鏁扮粍鎴涓嬫爣
-	public static final int versionIndex = 3 ;//鐗堟湰鍙峰瓧鑺傛暟缁勪笅鏍�
-	public static final int rtuAddrIndex_start = 4 ;//閫氳妯″潡 IMEI 璧峰瀛楄妭鏁扮粍涓嬫爣
-	public static final int rtuAddrIndex_end = 11 ;//閫氳妯″潡 IMEI 鎴瀛楄妭鏁扮粍涓嬫爣
-	public static final int meterNoIndex_start = 12 ;//琛ㄥ彿璧峰瀛楄妭鏁扮粍涓嬫爣
-	public static final int meterNoIndex_end = 19 ;//琛ㄥ彿鎴瀛楄妭鏁扮粍涓嬫爣
-	public static final int codeIndex = 20 ;//鍔熻兘鐮佸瓧鑺傛暟缁勪笅鏍�
-	//public static final int dtIndex_start = 13 ;////鏃ユ湡寮�濮嬪瓧鑺傛暟缁勪笅鏍�
-	//public static final int dtIndex_end = 18 ;////鏃ユ湡鎴瀛楄妭鏁扮粍涓嬫爣
-	//public static final int signalIndex_start = 28 ;//淇″彿寮哄害寮�濮嬪瓧鑺傛暟缁勪笅鏍�
-	//public static final int signalIndex_end = 29 ;//淇″彿寮哄害鎴瀛楄妭鏁扮粍涓嬫爣
-
-
-}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_01_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_01_Up.java
deleted file mode 100644
index 0c47f3b..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_01_Up.java
+++ /dev/null
@@ -1,168 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1.parse;
-
-import java.util.ArrayList;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import com.dy.common.mw.protocol.AnnotationCodeUp;
-import com.dy.common.mw.protocol.CodeParse;
-import com.dy.common.mw.protocol.CodeParseCallback;
-import com.dy.common.mw.protocol.CodeParseParams;
-import com.dy.common.mw.protocol.Command;
-import com.dy.common.mw.protocol.Data;
-import com.dy.common.mw.protocol.MidResult;
-import com.dy.common.mw.protocol.MidResultFromRtu;
-import com.dy.common.mw.protocol.MidResultToRtu;
-import com.dy.common.mw.protocol.pMeterV1_0_1.*;
-import com.dy.common.util.ByteUtil;
-import com.dy.common.util.ByteUtilUnsigned;
-import com.dy.common.util.DateTime;
-
-@AnnotationCodeUp(ifAny={
-		CodeV1_0_1.cd_01
-})
-public class Cd_01_Up implements CodeParse{
-
-	private static Logger log = LogManager.getLogger(Cd_01_Up.class);
-
-	/**
-	 * 鍒嗘瀽涓婅鏁版嵁
-	 */
-	@Override
-	public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
-		ParseParamsForUpV1_0_1 para = (ParseParamsForUpV1_0_1)params ;
-		int bsLen = new CommonV1_0_1().parseDataLen(para.upBuffer) ;
-		if(bsLen > 0){
-			this.doParse(para.upBuffer, 
-					bsLen,
-					para.upCode, 
-					para.data) ;
-		}
-		log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV1_0_1.getCodeName(para.upCode) + " 姘磋〃鍙�=" + para.meterNo + ">:\n" + para.data.toString());
-
-		MidResultFromRtu midRs = new MidResultFromRtu() ;
-		midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-		midRs.rtuAddr = para.rtuAddr ;//IMEI鍙�
-		midRs.meterNo = para.meterNo ;//姘磋〃鍙�
-		midRs.productId = para.productId ;//鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		midRs.deviceId = para.deviceId ;//鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
-		midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
-		midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
-		midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
-		
-		midRs.reportOrResponse_trueOrFalse = true ;//涓诲姩涓婃姤
-		
-		String confirmComCode = CodeV1_0_1.cd_01 ;
-		ParseParamsForDownV1_0_1 downCpParams  = new ParseParamsForDownV1_0_1() ;
-		downCpParams.setValue(
-				ProtocolConstantV1_0_1.protocolName, 
-				para.rtuAddr, 
-				para.meterNo, 
-				para.productId,
-				para.deviceId,
-				Command.defaultId,
-				confirmComCode, 
-				null, 
-				null);
-		//鏋勯�犱笂鎶ョ‘璁ゅ簲绛�
-		byte[] data = new Cd_XY_Down().doParse(downCpParams) ;
-
-		MidResultToRtu confirmCommand = new MidResultToRtu() ;
-		confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
-		confirmCommand.rtuAddr = para.rtuAddr ;//IMEI鍙�
-		confirmCommand.meterNo = para.meterNo ;//姘磋〃鍙�
-		confirmCommand.productId = para.productId ;//鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		confirmCommand.deviceId = para.deviceId ;//鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		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.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
-		confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
-
-		callback.callback(midRs.reportOrResponse_trueOrFalse);
-		return new MidResult[]{midRs, confirmCommand} ;
-	}
-	/**
-	 * 鎵ц鍒嗘瀽
-	 * @param bs 
-	 * @param bsLen瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
-	 * @param dataCode
-	 * @param index
-	 * @param contentDataEndIndex
-	 * @param data
-	 * @throws Exception
-	 */
-	protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
-		DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ;
-		DataCd01Vo cdData = new DataCd01Vo() ;
-		dV1.dataCd01Vo = cdData ;
-		
-		int index = ProtocolConstantV1_0_1.codeIndex + 1 ;
-		
-		cdData.dt = "20" + ByteUtil.BCD2String_BE(bs, index, index++)
-		+ "-" + ByteUtil.BCD2String_BE(bs, index, index++)
-		+ "-" + ByteUtil.BCD2String_BE(bs, index, index++)
-		+ " " + ByteUtil.BCD2String_BE(bs, index, index++)
-		+ ":" + ByteUtil.BCD2String_BE(bs, index, index++)
-		+ ":" + ByteUtil.BCD2String_BE(bs, index, index) ;
-		int[] ymdhms = DateTime.yyyy_MM_dd_HH_MM_SS_2_ymdhmsGroup(cdData.dt) ;
-		String yesterday = DateTime.yesterday_yyyy_MM_dd(ymdhms[0], ymdhms[1], ymdhms[2]);
-		cdData.dataDt = yesterday ;
-		
-		index++ ;
-		if(!ByteUtilUnsigned.bytesIsAll0xFF(bs, index, 4)){
-			//褰揜TU瀹炴涓婃姤鏃讹紝鍥犳湭鍒濆鍖栦笂鎶ョ殑鏄� 0xFFFF
-			cdData.totalAmount = ByteUtilUnsigned.bytes2Int_BE(bs, index)/100.0f ;
-		}else{
-			cdData.totalAmount = 0.0f ;
-		}
-		
-		index += 4 ;
-		if(!ByteUtilUnsigned.bytesIsAll0xFF(bs, index, 4)){
-			//褰揜TU瀹炴涓婃姤鏃讹紝鍥犳湭鍒濆鍖栦笂鎶ョ殑鏄� 0xFFFF
-			cdData.totalAmountPerDay = ByteUtilUnsigned.bytes2Int_BE(bs, index)/100.0f ;
-		}else{
-			cdData.totalAmountPerDay = 0.0f ;
-		}
-		
-		index += 4 ;
-		cdData.volt = ByteUtilUnsigned.byte2Byte(bs, index)/10.0f ;
-		
-		index += 1 ;
-		cdData.signal = 0.0f + ByteUtilUnsigned.bytes2Short_BE(bs, index) ;
-		
-		index += 2 ;
-		byte staAlarm = bs[index] ;
-		cdData.valveSta = (byte)(staAlarm & 1) ;
-		staAlarm = (byte)(staAlarm >> 2) ;
-		cdData.alarmValve = (byte)(staAlarm & 1) ;
-		staAlarm = (byte)(staAlarm >> 1) ;
-		cdData.alarmMagnetism = (byte)(staAlarm & 1) ;
-		staAlarm = (byte)(staAlarm >> 1) ;
-		cdData.alarmVolt = (byte)(staAlarm & 1) ;
-		
-		index++ ;
-		cdData.values = new ArrayList<Float>() ;
-		for(byte i = 0; (i < (byte)24 && index < (bsLen - 2)); i++){
-			if(!ByteUtilUnsigned.bytesIsAll0xFF(bs, index, 2)){
-				//褰揜TU瀹炴涓婃姤鏃讹紝鍥犳湭鍒濆鍖栦笂鎶ョ殑鏄� 0xFFFF
-				Integer v = ByteUtilUnsigned.bytes2Short_BE(bs, index) ;
-				if(v >= Integer.MAX_VALUE){
-					//鏍规嵁鍗忚锛屽綋缁堢娌℃湁璁板綍鏁版嵁锛屾暟鎹唴瀹规槸ffff ffff
-					v = 0 ;
-				}
-				cdData.values.add(v/100.0f) ;
-			}else{
-				cdData.values.add(0.0f) ;
-			}
-			index += 2 ;
-		}
-		
-		cdData.gap = 60 ;//鏍规嵁褰撳墠姘磋〃瀹炵幇锛屽瘑閲囨暟鎹噰闆嗛棿闅旀槸60鍒嗛挓
-	}
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_02_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_02_Up.java
deleted file mode 100644
index 4d3f5cc..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_02_Up.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1.parse;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import com.dy.common.mw.protocol.AnnotationCodeUp;
-import com.dy.common.mw.protocol.CodeParse;
-import com.dy.common.mw.protocol.CodeParseCallback;
-import com.dy.common.mw.protocol.CodeParseParams;
-import com.dy.common.mw.protocol.Command;
-import com.dy.common.mw.protocol.Data;
-import com.dy.common.mw.protocol.MidResult;
-import com.dy.common.mw.protocol.MidResultFromRtu;
-import com.dy.common.mw.protocol.MidResultToRtu;
-import com.dy.common.mw.protocol.pMeterV1_0_1.*;
-import com.dy.common.util.ByteUtil;
-import com.dy.common.util.ByteUtilUnsigned;
-
-@AnnotationCodeUp(ifAny={
-		CodeV1_0_1.cd_02
-})
-public class Cd_02_Up implements CodeParse{
-
-	private static Logger log = LogManager.getLogger(Cd_02_Up.class);
-
-	/**
-	 * 鍒嗘瀽涓婅鏁版嵁
-	 */
-	@Override
-	public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
-		ParseParamsForUpV1_0_1 para = (ParseParamsForUpV1_0_1)params ;
-		int bsLen = new CommonV1_0_1().parseDataLen(para.upBuffer) ;
-		if(bsLen > 0){
-			this.doParse(para.upBuffer, 
-					bsLen,
-					para.upCode, 
-					para.data) ;
-		}
-		log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV1_0_1.getCodeName(para.upCode) + " 姘磋〃鍙�=" + para.meterNo + ">:\n" + para.data.toString());
-
-		MidResultFromRtu midRs = new MidResultFromRtu() ;
-		midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-		midRs.rtuAddr = para.rtuAddr ;//IMEI鍙�
-		midRs.meterNo = para.meterNo ;//姘磋〃鍙�
-		midRs.productId = para.productId ;//鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		midRs.deviceId = para.deviceId ;//鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
-		midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
-		midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
-		midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
-		
-		midRs.reportOrResponse_trueOrFalse = true ;//涓诲姩涓婃姤
-		
-		String confirmComCode = CodeV1_0_1.cd_02 ;
-		ParseParamsForDownV1_0_1 downCpParams  = new ParseParamsForDownV1_0_1() ;
-		downCpParams.setValue(
-				ProtocolConstantV1_0_1.protocolName, 
-				para.rtuAddr, 
-				para.meterNo,
-				para.productId,
-				para.deviceId,
-				Command.defaultId,
-				confirmComCode, 
-				null, 
-				null);
-		//鏋勯�犱笂鎶ョ‘璁ゅ簲绛�
-		byte[] data = new Cd_XY_Down().doParse(downCpParams) ;
-
-		MidResultToRtu confirmCommand = new MidResultToRtu() ;
-		confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
-		confirmCommand.rtuAddr = para.rtuAddr ;//IMEI鍙�
-		confirmCommand.meterNo = para.meterNo ;//姘磋〃鍙�
-		confirmCommand.productId = para.productId ;//鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		confirmCommand.deviceId = para.deviceId ;//鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		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.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
-		confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
-
-		callback.callback(midRs.reportOrResponse_trueOrFalse);
-		return new MidResult[]{midRs, confirmCommand} ;
-	}
-	/**
-	 * 鎵ц鍒嗘瀽
-	 * @param bs 
-	 * @param bsLen瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
-	 * @param dataCode
-	 * @param index
-	 * @param contentDataEndIndex
-	 * @param data
-	 * @throws Exception
-	 */
-	protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
-		DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ;
-		DataCd02Vo cdData = new DataCd02Vo() ;
-		dV1.dataCd02Vo = cdData ;
-		
-		int index = ProtocolConstantV1_0_1.codeIndex + 1 ;
-		
-		cdData.dt = "20" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ "-" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ "-" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ " " + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ ":" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ ":" + ByteUtil.BCD2String_BE(bs, index, index) ;
-		
-		index++ ;
-		if(!ByteUtilUnsigned.bytesIsAll0xFF(bs, index, 4)){
-			//褰揜TU瀹炴涓婃姤鏃讹紝鍥犳湭鍒濆鍖栦笂鎶ョ殑瀛楄妭鏄� 0xFF
-			cdData.totalAmount = ByteUtilUnsigned.bytes2Int_BE(bs, index)/100.0f;
-		}else{
-			cdData.totalAmount = 0.0f ;
-		}
-		
-		index += 4 ;
-		cdData.volt = ByteUtilUnsigned.byte2Byte(bs, index)/10.0f ;
-		
-		index += 1 ;
-		cdData.signal = 0.0f + ByteUtilUnsigned.bytes2Short_BE(bs, index) ;
-		
-		index += 2 ;
-		byte staAlarm = bs[index] ;
-		cdData.valveSta = (byte)(staAlarm & 1) ;
-		staAlarm = (byte)(staAlarm >> 2) ;
-		cdData.alarmValve = (byte)(staAlarm & 1) ;
-		staAlarm = (byte)(staAlarm >> 1) ;
-		cdData.alarmMagnetism = (byte)(staAlarm & 1) ;
-		staAlarm = (byte)(staAlarm >> 1) ;
-		cdData.alarmVolt = (byte)(staAlarm & 1) ;
-
-	}
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_03_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_03_Up.java
deleted file mode 100644
index 0be46e9..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_03_Up.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1.parse;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import com.dy.common.mw.protocol.AnnotationCodeUp;
-import com.dy.common.mw.protocol.CodeParse;
-import com.dy.common.mw.protocol.CodeParseCallback;
-import com.dy.common.mw.protocol.CodeParseParams;
-import com.dy.common.mw.protocol.Command;
-import com.dy.common.mw.protocol.Data;
-import com.dy.common.mw.protocol.MidResult;
-import com.dy.common.mw.protocol.MidResultFromRtu;
-import com.dy.common.mw.protocol.MidResultToRtu;
-import com.dy.common.mw.protocol.pMeterV1_0_1.*;
-import com.dy.common.util.ByteUtil;
-import com.dy.common.util.ByteUtilUnsigned;
-
-@AnnotationCodeUp(ifAny={
-		CodeV1_0_1.cd_03
-})
-public class Cd_03_Up implements CodeParse{
-
-	private static Logger log = LogManager.getLogger(Cd_03_Up.class);
-
-	/**
-	 * 鍒嗘瀽涓婅鏁版嵁
-	 */
-	@Override
-	public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
-		ParseParamsForUpV1_0_1 para = (ParseParamsForUpV1_0_1)params ;
-		int bsLen = new CommonV1_0_1().parseDataLen(para.upBuffer) ;
-		if(bsLen > 0){
-			this.doParse(para.upBuffer, 
-					bsLen,
-					para.upCode, 
-					para.data) ;
-		}
-		log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV1_0_1.getCodeName(para.upCode) + " 姘磋〃鍙�=" + para.meterNo + ">:\n" + para.data.toString());
-
-		MidResultFromRtu midRs = new MidResultFromRtu() ;
-		midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-		midRs.rtuAddr = para.rtuAddr ;//IMEI鍙�
-		midRs.meterNo = para.meterNo ;//姘磋〃鍙�
-		midRs.productId = para.productId ;//鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		midRs.deviceId = para.deviceId ;//鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
-		midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
-		midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
-		midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
-		
-		midRs.reportOrResponse_trueOrFalse = true ;//涓诲姩涓婃姤
-		
-		String confirmComCode = CodeV1_0_1.cd_03 ;
-		ParseParamsForDownV1_0_1 downCpParams  = new ParseParamsForDownV1_0_1() ;
-		downCpParams.setValue(
-				ProtocolConstantV1_0_1.protocolName, 
-				para.rtuAddr, 
-				para.meterNo, 
-				para.productId,
-				para.deviceId,
-				Command.defaultId,
-				confirmComCode, 
-				null, 
-				null);
-		//鏋勯�犱笂鎶ョ‘璁ゅ簲绛�
-		byte[] data = new Cd_XY_Down().doParse(downCpParams) ;
-
-		MidResultToRtu confirmCommand = new MidResultToRtu() ;
-		confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
-		confirmCommand.rtuAddr = para.rtuAddr ;//IMEI鍙�
-		confirmCommand.meterNo = para.meterNo ;//姘磋〃鍙�
-		confirmCommand.productId = para.productId ;//鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		confirmCommand.deviceId = para.deviceId ;//鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		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.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
-		confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
-
-		callback.callback(midRs.reportOrResponse_trueOrFalse);
-		return new MidResult[]{midRs, confirmCommand} ;
-	}
-	/**
-	 * 鎵ц鍒嗘瀽
-	 * @param bs 
-	 * @param bsLen瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
-	 * @param dataCode
-	 * @param index
-	 * @param contentDataEndIndex
-	 * @param data
-	 * @throws Exception
-	 */
-	protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
-		DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ;
-		DataCd03Vo cdData = new DataCd03Vo() ;
-		dV1.dataCd03Vo = cdData ;
-		
-		int index = ProtocolConstantV1_0_1.codeIndex + 1 ;
-		
-		cdData.dt = "20" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ "-" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ "-" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ " " + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ ":" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ ":" + ByteUtil.BCD2String_BE(bs, index, index) ;
-		
-		index++ ;
-		cdData.volt = ByteUtilUnsigned.bytes2Short_BE(bs, index)/10.0f ;
-		
-		index++ ;
-		byte staAlarm = bs[index] ;
-		cdData.valveSta = (byte)(staAlarm & 1) ;
-		staAlarm = (byte)(staAlarm >> 2) ;
-		cdData.alarmValve = (byte)(staAlarm & 1) ;
-		staAlarm = (byte)(staAlarm >> 1) ;
-		cdData.alarmMagnetism = (byte)(staAlarm & 1) ;
-		staAlarm = (byte)(staAlarm >> 1) ;
-		cdData.alarmVolt = (byte)(staAlarm & 1) ;
-	}
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_0405_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_0405_Up.java
deleted file mode 100644
index f9433e2..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_0405_Up.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1.parse;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import com.dy.common.mw.protocol.AnnotationCodeUp;
-import com.dy.common.mw.protocol.CodeParse;
-import com.dy.common.mw.protocol.CodeParseCallback;
-import com.dy.common.mw.protocol.CodeParseParams;
-import com.dy.common.mw.protocol.Data;
-import com.dy.common.mw.protocol.MidResult;
-import com.dy.common.mw.protocol.MidResultFromRtu;
-import com.dy.common.mw.protocol.pMeterV1_0_1.*;
-import com.dy.common.util.ByteUtil;
-
-@AnnotationCodeUp(ifAny={
-		CodeV1_0_1.cd_04,
-		CodeV1_0_1.cd_05
-})
-public class Cd_0405_Up implements CodeParse{
-
-	private static Logger log = LogManager.getLogger(Cd_0405_Up.class);
-
-	/**
-	 * 鍒嗘瀽涓婅鏁版嵁
-	 */
-	@Override
-	public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
-		ParseParamsForUpV1_0_1 para = (ParseParamsForUpV1_0_1)params ;
-		int bsLen = new CommonV1_0_1().parseDataLen(para.upBuffer) ;
-		if(bsLen > 0){
-			this.doParse(para.upBuffer, 
-					bsLen,
-					para.upCode, 
-					para.data) ;
-		}
-		log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV1_0_1.getCodeName(para.upCode) + " 姘磋〃鍙�=" + para.meterNo + ">:\n" + para.data.toString());
-
-		MidResultFromRtu midRs = new MidResultFromRtu() ;
-		midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-		midRs.rtuAddr = para.rtuAddr ;//IMEI鍙�
-		midRs.meterNo = para.meterNo ;//姘磋〃鍙�
-		midRs.productId = para.productId ;//鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		midRs.deviceId = para.deviceId ;//鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		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 index
-	 * @param contentDataEndIndex
-	 * @param data
-	 * @throws Exception
-	 */
-	protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
-		DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ;
-		DataCd0405Vo cdData = new DataCd0405Vo() ;
-		dV1.dataCd0405Vo = cdData ;
-		
-		if(dataCode.equals(CodeV1_0_1.cd_04)){
-			cdData.open1_close2 = 1 ;
-		} else if(dataCode.equals(CodeV1_0_1.cd_05)){
-			cdData.open1_close2 = 2 ;
-		}
-		
-		int index = ProtocolConstantV1_0_1.codeIndex + 1 ;
-		cdData.dt = "20" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ "-" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ "-" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ " " + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ ":" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ ":" + ByteUtil.BCD2String_BE(bs, index, index) ;
-		
-		index ++ ;
-		cdData.state = bs[index] ;
-		
-	}
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_06_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_06_Down.java
deleted file mode 100644
index 1bcee3e..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_06_Down.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1.parse;
-
-import com.dy.common.mw.protocol.AnnotationCodeDown;
-import com.dy.common.mw.protocol.CodeParse;
-import com.dy.common.mw.protocol.CodeParseCallback;
-import com.dy.common.mw.protocol.CodeParseParams;
-import com.dy.common.mw.protocol.MidResult;
-import com.dy.common.mw.protocol.MidResultToRtu;
-import com.dy.common.mw.protocol.pMeterV1_0_1.*;
-import com.dy.common.util.ByteUtil;
-import com.dy.common.util.ByteUtilUnsigned;
-import com.dy.common.util.DateTime;
-
-@AnnotationCodeDown(ifAny={
-		CodeV1_0_1.cd_06
-})
-public class Cd_06_Down  implements CodeParse{
-
-	//private static Logger log = LogManager.getLogger(Cd_XY_Down.class);
-
-	@Override
-	public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
-		ParseParamsForDownV1_0_1 para = (ParseParamsForDownV1_0_1) params ;
-		byte[] bs = this.doParse(para) ;
-		
-		MidResultToRtu midRs = new MidResultToRtu() ;
-		midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-		midRs.rtuAddr = para.rtuAddr ;//IMEI鍙凤紙鐢典俊骞冲彴璁惧IMEI锛�
-		midRs.meterNo = para.meterNo ;//姘磋〃鍙�
-		midRs.productId = para.productId ;//鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		midRs.deviceId = para.deviceId ;//鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		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 = true ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
-		
-		//瀵筊TU涓婅鏁版嵁鐨勫簲绛�
-		midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
-		midRs.maxSendTimes = 1 ;//瀵筊TU涓婅鏁版嵁搴旂瓟锛屾墍浠ュ彧闇�鍙戜竴娆�
-		if(isLowPower != null && isLowPower.booleanValue()){
-			//浣庡姛鑰楁椂
-			midRs.isQuickSend = true ;
-		}
-
-		return new MidResult[]{midRs} ;
-	}
-	/**
-	 * 鏋勯�犱笅琛屾暟鎹�
-	 * @param params  
-	 * @return
-	 * @throws Exception
-	 */
-	public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception {
-		byte[] bytes = null ;
-		byte[] bsHead = new byte[ProtocolConstantV1_0_1.downBsHeadLen] ;
-		byte index = 0 ;
-		bsHead[index] = ProtocolConstantV1_0_1.P_Head_Byte ;
-		index++ ;
-		bsHead[index] = 0 ;//甯ч暱搴�
-		index++ ;
-		bsHead[index] = 0 ;//甯ч暱搴�
-		
-		index++ ;
-		bsHead[index] = ProtocolConstantV1_0_1.versionByte ;//鍗忚鐗堟湰鍙�
-		index++ ;
-		
-		String rtuAddr = para.rtuAddr ;
-		while(true){
-			if(rtuAddr.length() >= 16){
-				break ;
-			}else{
-				rtuAddr = "0" + rtuAddr ;
-			}
-		}
-
-		ByteUtil.string2BCD_BE(bsHead, rtuAddr, index) ;//IMEI鍙�
-		index += 8 ;
-		String meterNo = para.meterNo ;
-		while(true){
-			if(meterNo.length() >= 16){
-				break ;
-			}else{
-				meterNo = "0" + meterNo ;
-			}
-		}
-		ByteUtil.string2BCD_BE(bsHead, meterNo, index) ;//姘磋〃鍙�
-		index += 8 ;
-		
-		ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
-		
-		byte[] bs = new byte[7] ;
-		bs[0] = ((Byte)para.param).byteValue();//闃�闂ㄥ姩浣滅粨鏋滃洖浼�
-		ByteUtil.string2BCD_BE(bs, DateTime.yyMMddhhmmss(), 1) ;
-		
-		bytes = ByteUtil.bytesMerge(bsHead, bs) ;
-		
-		int len = bytes.length + ProtocolConstantV1_0_1.downBsTailLen ;
-		ByteUtilUnsigned.short2Bytes_BE(bytes, len, ProtocolConstantV1_0_1.dataLenIndex_start);
-		
-		
-		byte he = 0 ;
-		for(int i = 0 ; i < bytes.length; i++){
-			he += bytes[i] ;
-		}
-		
-		bs = new byte[ProtocolConstantV1_0_1.downBsTailLen] ;
-		ByteUtilUnsigned.byte2Byte(bs, he, 0) ;
-		bs[1] = ProtocolConstantV1_0_1.P_Tail_Byte ;
-		bytes = ByteUtil.bytesMerge(bytes, bs) ;
-		
-		return bytes ;
-	}
-
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_06_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_06_Up.java
deleted file mode 100644
index 5cd2f7d..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_06_Up.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1.parse;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import com.dy.common.mw.protocol.AnnotationCodeUp;
-import com.dy.common.mw.protocol.CodeParse;
-import com.dy.common.mw.protocol.CodeParseCallback;
-import com.dy.common.mw.protocol.CodeParseParams;
-import com.dy.common.mw.protocol.Command;
-import com.dy.common.mw.protocol.Data;
-import com.dy.common.mw.protocol.MidResult;
-import com.dy.common.mw.protocol.MidResultFromRtu;
-import com.dy.common.mw.protocol.MidResultToRtu;
-import com.dy.common.mw.protocol.pMeterV1_0_1.*;
-import com.dy.common.util.ByteUtil;
-
-@AnnotationCodeUp(ifAny={
-		CodeV1_0_1.cd_06
-})
-public class Cd_06_Up implements CodeParse{
-
-	private static Logger log = LogManager.getLogger(Cd_06_Up.class);
-
-	/**
-	 * 鍒嗘瀽涓婅鏁版嵁
-	 */
-	@Override
-	public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
-		ParseParamsForUpV1_0_1 para = (ParseParamsForUpV1_0_1)params ;
-		int bsLen = new CommonV1_0_1().parseDataLen(para.upBuffer) ;
-		if(bsLen > 0){
-			this.doParse(para.upBuffer, 
-					bsLen,
-					para.upCode, 
-					para.data) ;
-		}
-		log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV1_0_1.getCodeName(para.upCode) + " 姘磋〃鍙�=" + para.meterNo + ">:\n" + para.data.toString());
-
-		MidResultFromRtu midRs = new MidResultFromRtu() ;
-		midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-		midRs.rtuAddr = para.rtuAddr ;//IMEI鍙�
-		midRs.meterNo = para.meterNo ;//姘磋〃鍙�
-		midRs.productId = para.productId ;//鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		midRs.deviceId = para.deviceId ;//鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
-		midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
-		midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
-		midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
-		
-		midRs.reportOrResponse_trueOrFalse = true ;//涓诲姩涓婃姤
-		
-		String confirmComCode = CodeV1_0_1.cd_06 ;
-		ParseParamsForDownV1_0_1 downCpParams  = new ParseParamsForDownV1_0_1() ;
-		downCpParams.setValue(
-				ProtocolConstantV1_0_1.protocolName, 
-				para.rtuAddr, 
-				para.meterNo, 
-				para.productId,
-				para.deviceId,
-				Command.defaultId,
-				confirmComCode, 
-				((DataV1_0_1)para.data.getSubData()).dataCd06Vo.valveRes, 
-				null);
-		//鏋勯�犱笂鎶ョ‘璁ゅ簲绛�
-		byte[] data = new Cd_06_Down().doParse(downCpParams) ;
-
-		MidResultToRtu confirmCommand = new MidResultToRtu() ;
-		confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
-		confirmCommand.rtuAddr = para.rtuAddr ;//IMEI鍙�
-		confirmCommand.meterNo = para.meterNo ;//姘磋〃鍙�
-		confirmCommand.productId = para.productId ;//鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		confirmCommand.deviceId = para.deviceId ;//鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		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.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
-		confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
-
-		callback.callback(midRs.reportOrResponse_trueOrFalse);
-		return new MidResult[]{midRs, confirmCommand} ;
-	}
-	/**
-	 * 鎵ц鍒嗘瀽
-	 * @param bs 
-	 * @param bsLen瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
-	 * @param dataCode
-	 * @param index
-	 * @param contentDataEndIndex
-	 * @param data
-	 * @throws Exception
-	 */
-	protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
-		DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ;
-		DataCd06Vo cdData = new DataCd06Vo() ;
-		dV1.dataCd06Vo = cdData ;
-		
-		int index = ProtocolConstantV1_0_1.codeIndex + 1 ;
-		cdData.valveRes = bs[index] ;
-		
-		/* 浜轰负璁剧疆鎶ヨ鐘舵�佽繘琛屾祴璇�
-		if(cdData.valveRes == 0){
-			cdData.valveRes = 2 ;
-		}else if(cdData.valveRes == 1){
-			cdData.valveRes = 3 ;
-		}
-		*/
-		
-		index++ ;
-		cdData.dt = "20" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ "-" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ "-" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ " " + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ ":" + ByteUtil.BCD2String_BE(bs, index, index++)
-				+ ":" + ByteUtil.BCD2String_BE(bs, index, index) ;
-	}
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_XY_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_XY_Down.java
deleted file mode 100644
index 118bf27..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/parse/Cd_XY_Down.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package com.dy.common.mw.protocol.pMeterV1_0_1.parse;
-
-import com.dy.common.mw.protocol.AnnotationCodeDown;
-import com.dy.common.mw.protocol.CodeParse;
-import com.dy.common.mw.protocol.CodeParseCallback;
-import com.dy.common.mw.protocol.CodeParseParams;
-import com.dy.common.mw.protocol.MidResult;
-import com.dy.common.mw.protocol.MidResultToRtu;
-import com.dy.common.mw.protocol.pMeterV1_0_1.*;
-import com.dy.common.util.ByteUtil;
-import com.dy.common.util.ByteUtilUnsigned;
-import com.dy.common.util.DateTime;
-
-@AnnotationCodeDown(ifAny={
-		CodeV1_0_1.cd_01,
-		CodeV1_0_1.cd_02,
-		CodeV1_0_1.cd_03,
-		CodeV1_0_1.cd_04,
-		CodeV1_0_1.cd_05
-})
-public class Cd_XY_Down  implements CodeParse{
-
-	//private static Logger log = LogManager.getLogger(Cd_XY_Down.class);
-
-	@Override
-	public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
-		ParseParamsForDownV1_0_1 para = (ParseParamsForDownV1_0_1) params ;
-		byte[] bs = this.doParse(para) ;
-		
-		MidResultToRtu midRs = new MidResultToRtu() ;
-		midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
-		midRs.rtuAddr = para.rtuAddr ;//IMEI鍙凤紙鐢典俊骞冲彴璁惧IMEI锛�
-		midRs.meterNo = para.meterNo ;//姘磋〃鍙�
-		midRs.productId = para.productId ;//鐢典俊骞冲彴浜у搧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		midRs.deviceId = para.deviceId ;//鐢典俊骞冲彴璁惧ID锛屽綋涓嶅湪鐢典俊骞冲彴杩愯鏃讹紝涓簄ull
-		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 = true ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
-		
-		if(para.commandCode != null && (
-				para.commandCode.equals(CodeV1_0_1.cd_01) ||
-				para.commandCode.equals(CodeV1_0_1.cd_02) ||
-				para.commandCode.equals(CodeV1_0_1.cd_03)
-				)){
-			//瀵筊TU涓婅鏁版嵁鐨勫簲绛�
-			midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
-			midRs.maxSendTimes = 1 ;//瀵筊TU涓婅鏁版嵁搴旂瓟锛屾墍浠ュ彧闇�鍙戜竴娆�
-			if(isLowPower != null && isLowPower.booleanValue()){
-				//浣庡姛鑰楁椂
-				midRs.isQuickSend = true ;
-			}
-		}
-
-		return new MidResult[]{midRs} ;
-	}
-	/**
-	 * 鏋勯�犱笅琛屾暟鎹�
-	 * @param params  
-	 * @return
-	 * @throws Exception
-	 */
-	public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception {
-		byte[] bytes = null ;
-		byte[] bsHead = new byte[ProtocolConstantV1_0_1.downBsHeadLen] ;
-		byte index = 0 ;
-		bsHead[index] = ProtocolConstantV1_0_1.P_Head_Byte ;
-		index++ ;
-		bsHead[index] = 0 ;//甯ч暱搴�
-		index++ ;
-		bsHead[index] = 0 ;//甯ч暱搴�
-		
-		index++ ;
-		bsHead[index] = ProtocolConstantV1_0_1.versionByte ;//鍗忚鐗堟湰鍙�
-		index++ ;
-		
-		String rtuAddr = para.rtuAddr ;
-		while(true){
-			if(rtuAddr.length() >= 16){
-				break ;
-			}else{
-				rtuAddr = "0" + rtuAddr ;
-			}
-		}
-
-		ByteUtil.string2BCD_BE(bsHead, rtuAddr, index) ;//IMEI鍙�
-		index += 8 ;
-		String meterNo = para.meterNo ;
-		while(true){
-			if(meterNo.length() >= 16){
-				break ;
-			}else{
-				meterNo = "0" + meterNo ;
-			}
-		}
-		ByteUtil.string2BCD_BE(bsHead, meterNo, index) ;//姘磋〃鍙�
-		index += 8 ;
-		
-		ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
-		
-		byte[] bs = new byte[6] ;
-		ByteUtil.string2BCD_BE(bs, DateTime.yyMMddhhmmss(), 0) ;
-		
-		bytes = ByteUtil.bytesMerge(bsHead, bs) ;
-		
-		int len = bytes.length + ProtocolConstantV1_0_1.downBsTailLen ;
-		ByteUtilUnsigned.short2Bytes_BE(bytes, len, ProtocolConstantV1_0_1.dataLenIndex_start);
-		
-		
-		byte he = 0 ;
-		for(int i = 0 ; i < bytes.length; i++){
-			he += bytes[i] ;
-		}
-		
-		bs = new byte[ProtocolConstantV1_0_1.downBsTailLen] ;
-		ByteUtilUnsigned.byte2Byte(bs, he, 0) ;
-		bs[1] = ProtocolConstantV1_0_1.P_Tail_Byte ;
-		bytes = ByteUtil.bytesMerge(bytes, bs) ;
-		
-		return bytes ;
-	}
-
-}
diff --git "a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/\350\257\264\346\230\216.txt" "b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/\350\257\264\346\230\216.txt"
deleted file mode 100644
index e69de29..0000000
--- "a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/\350\257\264\346\230\216.txt"
+++ /dev/null
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnit.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnit.java
index ea7216e..4bd6941 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnit.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnit.java
@@ -39,31 +39,36 @@
 	public void start(UnitStartedCallbackInterface callback) throws Exception {
 		if(!started){
 			started = true ;
-			if(confVo.enableThreadPool){
-				TreadPoolFactory.initThreadPoolShort("鐭换鍔″伐浣滅嚎绋嬫睜", 
-						this.confVo.short_maxThread, 
-						this.confVo.short_minThread, 
-						this.confVo.short_freeTimeout, 
+			if(confVo.enableShortThreadPool) {
+				TreadPoolFactory.initThreadPoolShort("鐭换鍔″伐浣滅嚎绋嬫睜",
+						this.confVo.short_maxThread,
+						this.confVo.short_minThread,
+						this.confVo.short_freeTimeout,
 						this.confVo.short_busyTimeout);
-				TreadPoolFactory.initThreadPoolLong("闀夸换鍔″伐浣滅嚎绋嬫睜", 
-						this.confVo.long_maxThread, 
-						this.confVo.long_minThread, 
-						this.confVo.long_freeTimeout, 
-						this.confVo.long_busyTimeout);
-				
-				if(this.confVo.showStartInfo){
-					System.out.println("绾跨▼姹犳ā鍧楁垚鍔熷惎鍔�");
-				}
+			}else{
+				System.out.println("鐭嚎绋嬫睜閰嶇疆涓嶅惎鍔�");
 			}
-			callback.call(null);
+			if(confVo.enableLongThreadPool) {
+				TreadPoolFactory.initThreadPoolLong("闀夸换鍔″伐浣滅嚎绋嬫睜",
+						this.confVo.long_maxThread,
+						this.confVo.long_minThread,
+						this.confVo.long_freeTimeout,
+						this.confVo.long_busyTimeout);
+			}else{
+				System.out.println("闀跨嚎绋嬫睜閰嶇疆涓嶅惎鍔�");
+			}
+			if(this.confVo.showStartInfo){
+				System.out.println("绾跨▼姹犳ā鍧楁垚鍔熷惎鍔�");
+			}
 		}
+		callback.call(null);
 	}
 
 	@Override
-	public void stop(UnitStartedCallbackInterface callback) throws Exception {
+	public void stop(UnitStartedCallbackInterface callback) {
 	}
 	
-	
+	/*
 	public static void main(String[] args) throws Exception{
 		SupportUnitConfigVo supVo = new SupportUnitConfigVo() ;
 		//鐭伐浣滄椂闀跨嚎绋嬫睜锛岀嚎绋嬭礋璐g敤鏃惰緝鐭殑宸ヤ綔浠诲姟
@@ -82,8 +87,9 @@
 			supVo.long_busyTimeout = -1 ;
 		}
 		
-		supVo.enableThreadPool = true ;
-		
+		supVo.enableShortThreadPool = true ;
+		supVo.enableLongThreadPool = true ;
+
 		supVo.showStartInfo = true ;
 
 		SupportUnit supUnit = SupportUnit.getInstance() ;
@@ -94,6 +100,7 @@
 		supUnit.start(obj -> {
 		});
 	}
+
 	private static class AdapterImp_SupportUnit implements SupportUnitAdapter {
 		
 		private SupportUnitConfigVo configVo = null ;
@@ -106,7 +113,6 @@
 		public void setConfig(SupportUnitConfigVo configVo) {
 			this.configVo = configVo;
 		}
-
-
 	}
+	*/
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnitConfigVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnitConfigVo.java
index 9bf912c..fd6cd57 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnitConfigVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnitConfigVo.java
@@ -1,8 +1,10 @@
 package com.dy.common.mw.support;
 
 public class SupportUnitConfigVo {
-	
-	public boolean enableThreadPool ;
+
+	public boolean enableShortThreadPool ;
+
+	public boolean enableLongThreadPool ;
 
 	//鐭换鍔$嚎绋嬫睜
 	public int short_maxThread ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/queue/Queue.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/queue/Queue.java
index cfa77d5..13114af 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/queue/Queue.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/queue/Queue.java
@@ -4,7 +4,7 @@
 import org.apache.logging.log4j.Logger;
 
 /**
- * 闃熷垪锛屽厛杩涘厛鍑�
+ * 闃熷垪锛屽厛杩涘厛鍑猴紝闈炵嚎绋嬪畨鍏�
  */
 public class Queue {
 	@SuppressWarnings("unfinal")
@@ -62,6 +62,7 @@
 	 */
 	@SuppressWarnings("unused")
 	public void pushHead(NodeObj obj)throws Exception{
+		//涓や釜绾跨▼鐜锛岄渶瑕佸悓姝ラ攣
 		synchronized(synObj){
 			if(obj == null){
 				return ;
@@ -89,6 +90,7 @@
 	 * @param obj 鍏ュ垪鐨勫璞�
 	 */
 	public void pushTail(NodeObj obj)throws Exception{
+		//涓や釜绾跨▼鐜锛岄渶瑕佸悓姝ラ攣
 		synchronized(synObj){
 			if(obj == null){
 				return ;
@@ -116,6 +118,7 @@
 	 * @return 鍑哄垪瀵硅薄
 	 */
 	public NodeObj pop(){
+		//涓や釜绾跨▼鐜锛岄渶瑕佸悓姝ラ攣
 		synchronized(synObj){
 			NodeObj obj = null ;
 			if(this.size > 0){
@@ -139,11 +142,14 @@
 	 */
 	@SuppressWarnings("unused")
 	public Node getFirstNode(){
-		Node node = this.head.next ;
-		if(node != this.tail){
-			return node ;
+		//涓や釜绾跨▼鐜锛岄渶瑕佸悓姝ラ攣
+		synchronized(synObj) {
+			Node node = this.head.next;
+			if (node != this.tail) {
+				return node;
+			}
+			return null;
 		}
-		return null ;
 	}
 	/**
 	 * 寰楀埌鏈�鍚庝竴涓妭鐐癸紝浣嗕笉鎶婅妭鐐逛粠闃熷垪涓竻闄�
@@ -151,11 +157,14 @@
 	 */
 	@SuppressWarnings("unused")
 	public Node getLastNode(){
-		Node node = this.tail.pre ;
-		if(node != this.head){
-			return node ;
+		//涓や釜绾跨▼鐜锛岄渶瑕佸悓姝ラ攣
+		synchronized(synObj) {
+			Node node = this.tail.pre;
+			if (node != this.head) {
+				return node;
+			}
+			return null;
 		}
-		return null ;
 	}
 	
 	/**
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java
index 204d758..8ec40ae 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/ThreadPoolImp.java
@@ -75,36 +75,6 @@
 		 */
 		private Logger log = LogManager.getLogger(MonitorThread.class.getName());
 		
-		/**
-		 * 寰楀埌榛樿鍞竴瀹炰緥
-		 * @return
-		 */
-//		public MyThreadPool getDefaultInstance(){
-//			if(myPool == null){
-//				myPool = new MyThreadPool(null, null, null, null, null) ;
-//			}
-//			return myPool ;
-//		}
-		/**
-		 * 寰楀埌鍞竴瀹炰緥
-		 * @param poolName
-		 * @param maxNum
-		 * @param minNum
-		 * @param freeTimeout
-		 * @param busyTimeout
-		 * @return
-		 */
-//		public MyThreadPool getInstance(
-//				String poolName , 
-//				Integer maxNum , 
-//				Integer minNum ,
-//				Long freeTimeout ,
-//				Long busyTimeout){
-//			if(myPool == null){
-//				myPool = new MyThreadPool(poolName, maxNum, minNum, freeTimeout, busyTimeout) ;
-//			}
-//			return myPool ;
-//		}
 
 		/**
 		 * 绾跨▼姹犳瀯閫犳柟娉�
@@ -125,8 +95,8 @@
 			}
 			this.poolName = poolName ;
 			
-			if(maxNum == null || maxNum.intValue() <= 0){
-				maxNum = -1 ;
+			if(maxNum == null || maxNum.intValue() < 0){
+				maxNum = 65535 ;
 			}
 			if(minNum == null || minNum.intValue() < 0){
 				minNum = 0 ;
@@ -148,20 +118,19 @@
 			}else{
 				this.busyTimeout = busyTimeout ;	
 			}
-
-			this.busiThreads = new ArrayList<MyThread>();
-			this.freeThreads = new ArrayList<MyThread>();
-
-			//鏈�灏忓寲绾跨▼姹�
-			for (int i = 0; i < this.minNum ; i++) {
-				MyThread t = new MyThread(this);
-				t.start();
-				this.freeThreads.add(t);
-				this.currNum++;
+			if(maxNum != 0){
+				this.busiThreads = new ArrayList<>();
+				this.freeThreads = new ArrayList<>();
+				//鏈�灏忓寲绾跨▼姹�
+				for (int i = 0; i < this.minNum ; i++) {
+					MyThread t = new MyThread(this);
+					t.start();
+					this.freeThreads.add(t);
+					this.currNum++;
+				}
+				this.monitorThread = new MonitorThread(this) ;
+				this.monitorThread.start() ;
 			}
-			
-			this.monitorThread = new MonitorThread(this) ;
-			this.monitorThread.start() ;
 		}
 
 		/**
@@ -171,6 +140,9 @@
 		 */
 		@Override
 		public void putJob(Job job) throws Exception {
+			if(this.busiThreads == null || this.freeThreads == null){
+				throw new Exception("绾跨▼姹犳湭鍚姩") ;
+			}
 			synchronized(this.synObj) {
 				//log.debug("宸ヤ綔浠诲姟鍒嗛厤鍒扮嚎绋嬫睜涓��") ;
 				MyThread t = null ;
@@ -215,7 +187,10 @@
 		/**
 		 * 绾跨▼宸ヤ綔瀹屾垚锛屼粠busiThreads鍥炲綊freeThreads
 		 */
-		protected void freeThread(MyThread t) {
+		protected void freeThread(MyThread t) throws Exception {
+			if(this.busiThreads == null || this.freeThreads == null){
+				throw new Exception("绾跨▼姹犳湭鍚姩") ;
+			}
 			synchronized (synObj) {
 				busiThreads.remove(t);
 				freeThreads.add(t);
@@ -236,7 +211,7 @@
 
 			/**
 			 * 
-			 * @param pool
+			 * @param pool 姹�
 			 */
 			public MonitorThread(MyThreadPool pool){
 				this.pool = pool ;
@@ -302,6 +277,7 @@
 							}
 						}//end synchronized (pool.synObj)
 					}catch(Exception e){
+						e.printStackTrace();
 					}finally{
 						continue ;
 					}
@@ -354,7 +330,7 @@
 		
 		/**
 		 * 璁剧疆绾跨▼宸ヤ綔瀵硅薄
-		 * @param job
+		 * @param job 宸ヤ綔
 		 */
 		protected void putJob(Job job) throws Exception {
 			if(job == null){
@@ -418,13 +394,19 @@
 		}
 		
 		public void free(){
-			//浣挎湰绾跨▼鍥炲綊绌洪棽绾跨▼姹�
-			pool.freeThread(this);
-			//绌洪棽寮�濮嬭鏃�
-			this.time = System.currentTimeMillis() ;
-			// 娌℃湁鍙仛鐨勪簡
-			this.canJob = false;
-			log.debug("绾跨▼姹�(" + this.pool.poolName + ")涓殑绾跨▼鍥炲綊绌洪棽闆嗗悎銆�");
+			try{
+				//浣挎湰绾跨▼鍥炲綊绌洪棽绾跨▼姹�
+				pool.freeThread(this);
+				//绌洪棽寮�濮嬭鏃�
+				this.time = System.currentTimeMillis() ;
+				// 娌℃湁鍙仛鐨勪簡
+				this.canJob = false;
+				log.debug("绾跨▼姹�(" + this.pool.poolName + ")涓殑绾跨▼鍥炲綊绌洪棽闆嗗悎銆�");
+			}catch (Exception e){
+				log.error("绾跨▼姹�(" + pool.poolName + ")鐨勫伐浣滅嚎绋嬮噴鏀惧洖褰掓椂鍙戠敓寮傚父:\n" + e.getMessage(), e);
+				e.printStackTrace();
+			}
+
 		}
 
 		/**
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/TreadPoolFactory.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/TreadPoolFactory.java
index 040913d..cbdc7ba 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/TreadPoolFactory.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/threadPool/TreadPoolFactory.java
@@ -8,9 +8,9 @@
 	
 	/**
 	 * 鍒濆鍖栫嚎绋嬫睜
-	 * @param threadPoolName 绾跨▼姹犲拰绾跨▼鍚嶇О
-	 * @param maxThreadNum 绾跨▼姹犳渶澶х嚎绋嬫暟 锛岃嫢涓�-1锛屼笉鍙楅檺鍒�
-	 * @param minThreadNum 绾跨▼姹犳渶灏忕嚎绋嬫暟锛屾垨鍒濆绾跨▼鏁�
+	 * @param poolName 绾跨▼姹犲拰绾跨▼鍚嶇О
+	 * @param maxNum 绾跨▼姹犳渶澶х嚎绋嬫暟 锛岃嫢涓�-1锛屼笉鍙楅檺鍒�
+	 * @param minNum 绾跨▼姹犳渶灏忕嚎绋嬫暟锛屾垨鍒濆绾跨▼鏁�
 	 * @param freeTimeout 绌洪棽绾跨▼瓒呮椂鏃堕暱(绉�)
 	 * @param busyTimeout 蹇欑绾跨▼瓒呮椂鏃堕暱(绉�)锛岃嫢涓�-1锛屼笉鍙楅檺鍒�
 	 * @return 绾跨▼姹犲疄渚�
@@ -30,9 +30,9 @@
 	
 	/**
 	 * 鍒濆鍖栫嚎绋嬫睜
-	 * @param threadPoolName 绾跨▼姹犲拰绾跨▼鍚嶇О
-	 * @param maxThreadNum 绾跨▼姹犳渶澶х嚎绋嬫暟锛岃嫢涓�-1锛屼笉鍙楅檺鍒�
-	 * @param minThreadNum 绾跨▼姹犳渶灏忕嚎绋嬫暟锛屾垨鍒濆绾跨▼鏁�
+	 * @param poolName 绾跨▼姹犲拰绾跨▼鍚嶇О
+	 * @param maxNum 绾跨▼姹犳渶澶х嚎绋嬫暟锛岃嫢涓�-1锛屼笉鍙楅檺鍒�
+	 * @param minNum 绾跨▼姹犳渶灏忕嚎绋嬫暟锛屾垨鍒濆绾跨▼鏁�
 	 * @param freeTimeout 绌洪棽绾跨▼瓒呮椂鏃堕暱(绉�)
 	 * @param busyTimeout 蹇欑绾跨▼瓒呮椂鏃堕暱(绉�)锛岃嫢涓�-1锛屼笉鍙楅檺鍒�
 	 * @return 绾跨▼姹犲疄渚�
@@ -51,8 +51,6 @@
 	}
 	/**
 	 * 寰楀埌鍞竴绾跨▼姹犲疄渚�
-	 * @param dataSourceName
-	 * @return
 	 * @throws Exception
 	 */
 	public final static ThreadPool.Pool getThreadPoolShort()
@@ -64,9 +62,6 @@
 	}
 	/**
 	 * 寰楀埌鍞竴绾跨▼姹犲疄渚�
-	 * @param dataSourceName
-	 * @return
-	 * @throws Exception
 	 */
 	public final static ThreadPool.Pool getThreadPoolLong()
 		throws Exception {
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 7b06e4d..c782aa6 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
@@ -9,7 +9,7 @@
 	 * 灏嗗瓧鑺傛暟缁勫悎骞跺埌瀛楄妭鏁扮粍涓�
 	 * @param bGroup1 琚悎骞舵暟缁�
 	 * @param bGroup2 鍚堝苟鏁扮粍
-	 * @return 鍚堝苟鍚庢暟缁�
+	 * @return 杩斿洖 鍚堝苟鍚庢暟缁�
 	 */
 	public static byte[] bytesMerge(byte[] bGroup1, byte[] bGroup2){
 		if(bGroup1 == null && bGroup2 == null){
@@ -29,11 +29,11 @@
 
 	/**
 	 * 鍒ゆ柇鎵�鏈夊瓧鑺傛槸鍚︿负0xFF
-	 * @param bs
-	 * @param index
-	 * @param len
-	 * @return
-	 * @throws Exception
+	 * @param bs 瀛楄妭鏁扮粍
+	 * @param index 涓嬫爣浣�
+	 * @param len 闀垮害
+	 * @return 杩斿洖 杩斿洖
+	 * @throws Exception 寮傚父
 	 */
 	public static boolean bytesIsAll0xFF(byte[] bs, int index, int len)throws Exception {
 		int count = 0 ;
@@ -42,14 +42,14 @@
 				count++ ;
 			}
 		}
-		return count==len?true:false ;
+		return count == len;
 	}
-	
+
 	/**
 	 * 浜岃繘鍒惰浆鍗佽繘鍒舵暟
 	 * @param str
-	 * @return
-	 * @throws Exception
+	 * @return 杩斿洖
+	 * @throws Exception 寮傚父
 	 */
 	public static int binary2Int(String str) throws Exception {
         int cnt=0;
@@ -69,13 +69,13 @@
         return sum;
     }
 
-	
+
 	/**
 	 * 瀛楄妭杞瓨浜岃繘鍒�
-	 * 
+	 *
 	 * @param b byte
-	 * @throws Exception
-	 * @return String
+	 * @throws Exception 寮傚父
+	 * @return 杩斿洖 String
 	 */
 	public static String byte2Binary(byte b) throws Exception {
 		int n = (b + 256) % 256 + 256;
@@ -87,11 +87,11 @@
 	}
 	/**
 	 * 瀛楄妭杞瓨8浣嶄簩杩涘埗
-	 * 
+	 *
 	 * @param b
 	 *            byte
-	 * @throws Exception
-	 * @return String
+	 * @throws Exception 寮傚父
+	 * @return 杩斿洖 String
 	 */
 	public static String byte2bit8Binary(byte b) throws Exception {
 		String s = byte2Binary(b);
@@ -101,13 +101,13 @@
 		}
 		return s;
 	}
-	
+
 	/**
 	 * 瀛楄妭鍙朾it
 	 * @param b
-	 * @param index
-	 * @throws Exception
-	 * @return String
+	 * @param b
+	 * @throws Exception 寮傚父
+	 * @return 杩斿洖 String
 	 */
 	public static byte[] getBit(byte b) throws Exception {
 		byte[] bs = new byte[8] ;
@@ -125,9 +125,9 @@
 	/**
 	 * 瀛楄妭鍙朾it
 	 * @param b
-	 * @param index
-	 * @throws Exception
-	 * @return String
+	 * @param index 涓嬫爣浣�
+	 * @throws Exception 寮傚父
+	 * @return 杩斿洖 String
 	 */
 	public static byte getBit(byte b, byte index) throws Exception {
 		if(index == 0){
@@ -153,11 +153,11 @@
 
 	/**
 	 * 涓�涓瓧鑺傝浆姝f暣鏁�
-	 * 
+	 *
 	 * @param b
 	 *            byte
-	 * @throws Exception
-	 * @return String
+	 * @throws Exception 寮傚父
+	 * @return 杩斿洖 String
 	 */
 	public static Short byte2PlusInt(byte b) throws Exception {
 		short v = b ;
@@ -167,13 +167,13 @@
 		return v ;
 	}
 
-	
+
 	/**
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * double杞崲byte
-	 * @param bs byte[]
+	 * @param bs 瀛楄妭鏁扮粍 byte[]
 	 * @param value double double绫诲瀷鐨勫弬鏁�
-	 * @param from int
+	 * @param from 寮�濮嬩綅 int
 	 */
 	public static void double2Bytes_BE(byte[] bs, double value, int from)throws Exception {
 		boolean b = isOutOfArrLength(bs.length, (from - 1) + 8);
@@ -188,9 +188,9 @@
 	/**
 	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
 	 * double杞崲byte锛屽瓧鑺傞『搴忔槸鍊掔殑
-	 * @param bs byte[]
+	 * @param bs 瀛楄妭鏁扮粍 byte[]
 	 * @param value double double绫诲瀷鐨勫弬鏁�
-	 * @param from int
+	 * @param from 寮�濮嬩綅 int
 	 */
 	public static void double2Bytes_LE(byte[] bs, double value, int from)throws Exception {
 		boolean b = isOutOfArrLength(bs.length, (from - 1) + 8);
@@ -205,8 +205,8 @@
 	/**
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * byte杞崲double
-	 * @param bs byte[]
-	 * @param from int
+	 * @param bs 瀛楄妭鏁扮粍 byte[]
+	 * @param from 寮�濮嬩綅 int
 	 */
 	public static double bytes2Double_BE(byte[] bs, int from) throws Exception {
 		long l = bytes2Long_BE(bs, from);
@@ -216,8 +216,8 @@
 	/**
 	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
 	 * byte杞崲double锛屽瓧鑺傞『搴忔槸鍊掔殑
-	 * @param bs byte[]
-	 * @param from int
+	 * @param bs 瀛楄妭鏁扮粍 byte[]
+	 * @param from 寮�濮嬩綅 int
 	 */
 	public static double bytes2Double_LE(byte[] bs, int from) throws Exception {
 		long l = bytes2Long_LE(bs, from);
@@ -306,7 +306,7 @@
 
 	/**
 	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
-	 * 杞崲long鍨嬩负byte鏁扮粍 
+	 * 杞崲long鍨嬩负byte鏁扮粍
 	 * @value bs byte[]
 	 * @value value long
 	 * @value from int
@@ -315,8 +315,8 @@
 		boolean b = isOutOfArrLength(bs.length, (from - 1) + 8);
 		if (b) {
 			for (int i = 0; i < 8; i++) {
-				bs[from + i] = Long.valueOf(value & 0xff).byteValue(); 
-				value = value >> 8;  
+				bs[from + i] = Long.valueOf(value & 0xff).byteValue();
+				value = value >> 8;
 			if(value == 0){
 				break ;
 			}
@@ -325,12 +325,12 @@
 			throw new Exception("long2Bytes鏃舵暟缁勮秺鐣�");
 		}
 	}
-	
+
 	/**
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * 8浣嶅瓧鑺傛暟缁勮浆鎹负闀挎暣鍨�
-	 * @param bs byte[]
-	 * @return
+	 * @param bs 瀛楄妭鏁扮粍 byte[]
+	 * @return 杩斿洖
 	 */
 	public static long bytes2Long_BE(byte[] bs) {
 		int len = bs.length ;
@@ -347,16 +347,16 @@
 				l = l | ls[i] ;
 			}
 			return l;
-		} 
+		}
 		return 0L ;
 	}
-		
+
 	/**
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * 8浣嶅瓧鑺傛暟缁勮浆鎹负闀挎暣鍨�
-	 * @param bs byte[]
-	 * @param from int
-	 * @return
+	 * @param bs 瀛楄妭鏁扮粍 byte[]
+	 * @param from 寮�濮嬩綅 int
+	 * @return 杩斿洖
 	 */
 	public static long bytes2Long_BE(byte[] bs, int from) throws Exception {
 		boolean b = isOutOfArrLength(bs.length, (from - 1) + 8);
@@ -388,10 +388,10 @@
 	/**
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * 8浣嶅瓧鑺傛暟缁勮浆鎹负闀挎暣鍨�
-	 * @param bs byte[]
-	 * @param from int
+	 * @param bs 瀛楄妭鏁扮粍 byte[]
+	 * @param from 寮�濮嬩綅 int
 	 * @param end int
-	 * @return
+	 * @return 杩斿洖
 	 */
 	public static long bytes2Long_BE(byte[] bs, int from, int end) throws Exception {
 		boolean b = isOutOfArrLength(bs.length, end);
@@ -414,13 +414,13 @@
 		}
 	}
 
-	
-	
+
+
 	/**
 	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
 	 * 8浣嶅瓧鑺傛暟缁勮浆鎹负闀挎暣鍨�
-	 * @param bs byte[]
-	 * @return
+	 * @param bs 瀛楄妭鏁扮粍 byte[]
+	 * @return 杩斿洖
 	 */
 	public static long bytes2Long_LE(byte[] bs) {
 		int len = bs.length ;
@@ -437,16 +437,16 @@
 				l = l | ls[i] ;
 			}
 			return l;
-		} 
+		}
 		return 0L ;
 	}
 
 	/**
 	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
-	 * 8浣嶅瓧鑺傛暟缁勮浆鎹负闀挎暣鍨� 
-	 * @param bs byte[]
-	 * @param from int
-	 * @return
+	 * 8浣嶅瓧鑺傛暟缁勮浆鎹负闀挎暣鍨�
+	 * @param bs 瀛楄妭鏁扮粍 byte[]
+	 * @param from 寮�濮嬩綅 int
+	 * @return 杩斿洖
 	 */
 	public static long bytes2Long_LE(byte[] bs, int from) throws Exception {
 		boolean b = isOutOfArrLength(bs.length, (from - 1) + 8);
@@ -479,10 +479,10 @@
 	/**
 	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
 	 * 8浣嶅瓧鑺傛暟缁勮浆鎹负闀挎暣鍨�
-	 * @param bs byte[]
-	 * @param from int
+	 * @param bs 瀛楄妭鏁扮粍 byte[]
+	 * @param from 寮�濮嬩綅 int
 	 * @param end int
-	 * @return
+	 * @return 杩斿洖
 	 */
 	public static long bytes2Long_LE(byte[] bs, int from, int end) throws Exception {
 		boolean b = isOutOfArrLength(bs.length, end);
@@ -551,8 +551,9 @@
 	/**
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * 4浣嶅瓧鑺傛暟缁勮浆鎹负鏁村瀷
-	 * @param b
-	 * @return
+	 * @param bs 瀛楄妭鏁扮粍
+	 * @param from 寮�濮嬩綅
+	 * @return 杩斿洖
 	 */
 	public static int bytes2Int_BE(byte[] bs, int from) throws Exception {
 		boolean b = isOutOfArrLength(bs.length, (from - 1) + 4);
@@ -573,13 +574,13 @@
 			throw new Exception("byte2Int鏃舵暟缁勮秺鐣�");
 		}
 	}
-	
+
 
 	/**
 	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
 	 * 4浣嶅瓧鑺傛暟缁勮浆鎹负鏁村瀷锛屽瓧鑺傞『搴忔槸鍊掔殑
-	 * @param b
-	 * @return
+	 * @param bs 瀛楄妭鏁扮粍 瀛楄妭鏁扮粍
+	 * @return 杩斿洖
 	 */
 	public static int bytes2Int_LE(byte[] bs, int from) throws Exception {
 		boolean b = isOutOfArrLength(bs.length, (from - 1) + 4);
@@ -600,7 +601,7 @@
 			throw new Exception("byte2Int鏃舵暟缁勮秺鐣�");
 		}
 	}
-	
+
 
 	/**
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
@@ -674,14 +675,14 @@
 	/**
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * 2浣嶅瓧鑺傛暟缁勮浆鎹负鐭暣鍨�
-	 * @param b
-	 * @return
+	 * @param bs 瀛楄妭鏁扮粍 瀛楄妭鏁扮粍
+	 * @return 杩斿洖
 	 */
 	public static short bytes2Short_BE(byte[] bs, int from) throws Exception {
 		boolean b = isOutOfArrLength(bs.length, (from - 1) + 2);
 		if (b) {
 			int s = 0;
-			int s0 = bs[from + 0] ; 
+			int s0 = bs[from + 0] ;
 			int s1 = bs[from + 1] ;
 
 			// s1涓嶅彉
@@ -697,14 +698,14 @@
 	/**
 	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
 	 * 2浣嶅瓧鑺傛暟缁勮浆鎹负鐭暣鍨嬶紝瀛楄妭椤哄簭鏄�掔殑
-	 * @param b
-	 * @return
+	 * @param bs 瀛楄妭鏁扮粍 瀛楄妭鏁扮粍
+	 * @return 杩斿洖
 	 */
 	public static short bytes2Short_LE(byte[] bs, int from) throws Exception {
 		boolean b = isOutOfArrLength(bs.length, (from - 1) + 2);
 		if (b) {
 			int s = 0;
-			int s0 = bs[from + 0] ; 
+			int s0 = bs[from + 0] ;
 			int s1 = bs[from + 1] ;
 
 			// s0涓嶅彉
@@ -718,11 +719,11 @@
 	}
 	/**
 	 * 瀛楃鍒颁竴瀛楄妭杞崲
-	 * 
+	 *
 	 * @value bs byte[]
 	 * @value ch char char绫诲瀷鐨勫弬鏁�
 	 * @value index int
-	 * @return
+	 * @return 杩斿洖
 	 */
 	public static void char2Bytes(byte[] bs, char ch, int index)throws Exception {
 		boolean b = isOutOfArrLength(bs.length, index);
@@ -735,10 +736,9 @@
 
 	/**
 	 * 涓�瀛楄妭杞崲涓哄瓧绗�
-	 * 
-	 * @param b
+	 * @param bs 瀛楄妭鏁扮粍 瀛楄妭鏁扮粍
 	 * @value index int
-	 * @return
+	 * @return 杩斿洖
 	 */
 	public static char bytes2Char(byte[] bs, int index) throws Exception {
 		boolean b = isOutOfArrLength(bs.length, index);
@@ -751,13 +751,13 @@
 
 	/**
 	 * 瀛楃涓插瀷鏁板瓧杞垚byte
-	 * 
+	 *
 	 * @param s
-	 * @return
-	 * @throws Exception
+	 * @return 杩斿洖
+	 * @throws Exception 寮傚父
 	 */
 	public static byte string2byte(String s) throws Exception {
-		int n = 0;
+		int n ;
 		try {
 			n = Integer.parseInt(s);
 		} catch (Exception e) {
@@ -772,7 +772,7 @@
 	 * @value bs byte[]
 	 * @value str String
 	 * @value from int
-	 * @return
+	 * @return 杩斿洖
 	 * @throws java.io.UnsupportedEncodingException
 	 */
 	public static int string2Bytes_BE(byte[] bs, String str, int from, int end)throws Exception {
@@ -798,7 +798,7 @@
 	 * @value bs byte[]
 	 * @value str String
 	 * @value from int
-	 * @return
+	 * @return 杩斿洖
 	 * @throws java.io.UnsupportedEncodingException
 	 */
 	public static int string2Bytes_LE(byte[] bs, String str, int from, int end)throws Exception {
@@ -824,7 +824,7 @@
 	 * @value bs byte[]
 	 * @value str String
 	 * @value from int
-	 * @return
+	 * @return 杩斿洖
 	 * @throws java.io.UnsupportedEncodingException
 	 */
 	public static int string2Bytes_BE(byte[] bs, String str, int from)throws Exception {
@@ -846,7 +846,7 @@
 	 * @value bs byte[]
 	 * @value str String
 	 * @value from int
-	 * @return
+	 * @return 杩斿洖
 	 * @throws java.io.UnsupportedEncodingException
 	 */
 	public static int string2Bytes_LE(byte[] bs, String str, int from)throws Exception {
@@ -898,10 +898,10 @@
 
 	/**
 	 * 鍒ゆ柇鏁扮粍涓嬫爣鏄惁瓒婄晫
-	 * 
+	 *
 	 * @value bsLength 鏁扮粍鎬婚暱搴�
 	 * @value toSite 鏁扮粍鍋忕Щ閲�
-	 * @return
+	 * @return 杩斿洖
 	 */
 	private static boolean isOutOfArrLength(int bsLength, int toSite) {
 		if (bsLength > toSite) {
@@ -911,104 +911,104 @@
 		}
 	}
 
-	
+
 	/**
-	 * 瀛楄妭鏁扮粍杞崲鎴愬崄鍏繘鍒剁殑瀛楃涓� 
-	 * 
-	 * @param b byte[]
+	 * 瀛楄妭鏁扮粍杞崲鎴愬崄鍏繘鍒剁殑瀛楃涓�
+	 *
+	 * @param src byte[]
 	 * @param hasBlank 16杩涘埗鏄惁鐢ㄧ┖鏍煎垎闅�
-	 * @return String
+	 * @return 杩斿洖 String
 	 */
-	public static String bytes2Hex(byte[] src, boolean hasBlank){  
-	    StringBuilder stringBuilder = new StringBuilder("");  
-	    if (src == null || src.length <= 0) {  
-	        return null;  
-	    }  
-	    for (int i = 0; i < src.length; i++) {  
-	        int v = src[i] & 0xFF;  
-	        String str = Integer.toHexString(v);  
-	        if (str.length() < 2) {  
+	public static String bytes2Hex(byte[] src, boolean hasBlank){
+	    StringBuilder stringBuilder = new StringBuilder("");
+	    if (src == null || src.length <= 0) {
+	        return null;
+	    }
+	    for (int i = 0; i < src.length; i++) {
+	        int v = src[i] & 0xFF;
+	        String str = Integer.toHexString(v);
+	        if (str.length() < 2) {
 	        	str = "0" + str;
-	        }  
+	        }
 			if (hasBlank) {
 				if (i == 0) {
-					stringBuilder.append(str);  
+					stringBuilder.append(str);
 				} else {
-					stringBuilder.append(" " + str);  
+					stringBuilder.append(" " + str);
 				}
 			} else {
-				stringBuilder.append(str); 
+				stringBuilder.append(str);
 			}
-	    }  
+	    }
 	    return stringBuilder.toString().toUpperCase(Locale.US);
-	}  
+	}
 	/**
-	 * 瀛楄妭鏁扮粍杞崲鎴愬崄鍏繘鍒剁殑瀛楃涓� 
-	 * 
-	 * @param b byte[]
+	 * 瀛楄妭鏁扮粍杞崲鎴愬崄鍏繘鍒剁殑瀛楃涓�
+	 *
+	 * @param src byte[]
 	 * @param hasBlank 16杩涘埗鏄惁鐢ㄧ┖鏍煎垎闅�
-	 * @param from  
-	 * @param len 
-	 * @return String
+	 * @param from 寮�濮嬩綅
+	 * @param len 闀垮害
+	 * @return 杩斿洖 String
 	 */
-	public static String bytes2Hex(byte[] src, boolean hasBlank, int from, int len){  
-	    if (src == null || src.length <= 0 || src.length < from + len) {  
-	        return null;  
-	    }  
+	public static String bytes2Hex(byte[] src, boolean hasBlank, int from, int len){
+	    if (src == null || src.length <= 0 || src.length < from + len) {
+	        return null;
+	    }
 		byte[] bb = new byte[len];
 		for (int i = 0 ; i < len; i++) {
 			bb[i] = src[from + i];
 		}
 	    return bytes2Hex(bb, hasBlank) ;
-	}  
-	/** 
+	}
+	/**
 	 * 鍗佸叚杩涘埗杞瓧鑺傛暟缁�
-	 * @param hexString the hex string 
-	 * @return byte[] 
-	 */  
-	public static byte[] hex2Bytes(String hex) {  
-	    if (hex == null || hex.equals("")) {  
-	        return null;  
-	    }  
-	    hex = hex.toUpperCase(Locale.ENGLISH);  
-	    int length = hex.length() / 2;  
-	    char[] hexChars = hex.toCharArray();  
-	    byte[] d = new byte[length];  
-	    for (int i = 0; i < length; i++) {  
-	        int pos = i * 2;  
-	        d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));  
-	    }  
-	    return d;  
-	}  
-	/** 
+	 * @param hex the hex string
+	 * @return 杩斿洖 byte[]
+	 */
+	public static byte[] hex2Bytes(String hex) {
+	    if (hex == null || hex.equals("")) {
+	        return null;
+	    }
+	    hex = hex.toUpperCase(Locale.ENGLISH);
+	    int length = hex.length() / 2;
+	    char[] hexChars = hex.toCharArray();
+	    byte[] d = new byte[length];
+	    for (int i = 0; i < length; i++) {
+	        int pos = i * 2;
+	        d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
+	    }
+	    return d;
+	}
+	/**
 	 * 鍗佸叚杩涘埗杞瓧鑺傛暟缁�
-	 * @param hexString the hex string 
-	 * @return byte[] 
-	 */  
-	public static int hex2Bytes(String hex, byte[] bs, int fromIndex) {  
-	    if (hex == null || hex.equals("")) {  
-	        return fromIndex;  
-	    }  
-	    hex = hex.toUpperCase(Locale.ENGLISH);  
-	    int length = hex.length() / 2;  
-	    char[] hexChars = hex.toCharArray();  
-	    byte[] d = new byte[length];  
-	    for (int i = 0; i < length; i++) {  
-	        int pos = i * 2;  
-	        d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));  
+	 * @param hex the hex string
+	 * @return 杩斿洖 byte[]
+	 */
+	public static int hex2Bytes(String hex, byte[] bs, int fromIndex) {
+	    if (hex == null || hex.equals("")) {
+	        return fromIndex;
+	    }
+	    hex = hex.toUpperCase(Locale.ENGLISH);
+	    int length = hex.length() / 2;
+	    char[] hexChars = hex.toCharArray();
+	    byte[] d = new byte[length];
+	    for (int i = 0; i < length; i++) {
+	        int pos = i * 2;
+	        d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
 	    }
 	    for(int i = 0 ; i < d.length; i++){
 	    	bs[fromIndex++] = d[i] ;
 	    }
-	    return fromIndex ;  
-	} 
+	    return fromIndex ;
+	}
 
 	private static final char[] HEX_CHAR = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
 	/**
 	 * 灏哹yte[]杞崲涓�16杩涘埗瀛楃涓�
 	 *
 	 * @param bytes 寰呰浆鎹yte[]
-	 * @return 杞崲鍚庣殑瀛楃涓�
+	 * @return 杩斿洖 杞崲鍚庣殑瀛楃涓�
 	 */
 	public static String bytesToHex(byte[] bytes) {
 		//涓�涓猙yte涓�8浣嶏紝鍙敤涓や釜鍗佸叚杩涘埗浣嶆爣璇�
@@ -1032,7 +1032,7 @@
 	 * 灏�16杩涘埗瀛楃涓茶浆鎹负byte[]
 	 *
 	 * @param str 寰呰浆鎹㈠瓧绗︿覆
-	 * @return 杞崲鍚庣殑byte[]
+	 * @return 杩斿洖 杞崲鍚庣殑byte[]
 	 */
 	public static byte[] hexToBytes(String str) {
 		if (str == null || "".equals(str.trim())) {
@@ -1051,18 +1051,18 @@
 	/**
 	 * Convert char to byte
 	 * @param c char
-	 * @return byte
+	 * @return 杩斿洖 byte
 	 */
 	private static byte charToByte(char c) {
 		return (byte) "0123456789ABCDEF".indexOf(c);
-	}	 
-	 
+	}
+
 
 	/**
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * 鏁村舰杞垚BCD缂栫爜
-	 * @param l
-	 * @return
+	 * @param i
+	 * @return 杩斿洖
 	 */
 	public static byte[] int2BCD_BE(int i)throws Exception {
 		String str = "" + i;
@@ -1079,8 +1079,8 @@
 	/**
 	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
 	 * 鏁村舰杞垚BCD缂栫爜锛屽瓧鑺傞『搴忔槸鍊掔殑
-	 * @param l
-	 * @return
+	 * @param i
+	 * @return 杩斿洖
 	 */
 	public static byte[] int2BCD_LE(int i)throws Exception {
 		String str = "" + i;
@@ -1099,7 +1099,7 @@
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * 闀挎暣褰㈣浆鎴怋CD缂栫爜
 	 * @param l
-	 * @return
+	 * @return 杩斿洖
 	 */
 	public static byte[] long2BCD_BE(long l)throws Exception {
 		String str = "" + l;
@@ -1118,7 +1118,7 @@
 	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
 	 * 闀挎暣褰㈣浆鎴怋CD缂栫爜锛屽瓧鑺傞『搴忔槸鍊掔殑
 	 * @param l
-	 * @return
+	 * @return 杩斿洖
 	 */
 	public static byte[] long2BCD_LE(long l) throws Exception {
 		String str = "" + l;
@@ -1137,30 +1137,30 @@
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * 瀛楃涓插瀷鏁板瓧杞垚BCD缂栫爜
 	 * @param s
-	 * @return
-	 * @throws Exception
+	 * @return 杩斿洖
+	 * @throws Exception 寮傚父
 	 */
 	public static byte[] string2BCD_BE(String s) throws Exception {
-		byte[] b = null;
+		byte[] b ;
 		if (s.length() % 2 == 0) {
 			b = new byte[s.length() / 2];
 		} else {
 			b = new byte[(s.length() / 2) + 1];
 		}
-		
+
 		encodeBCD_BE(s, b, 0, b.length);
 
 		return b ;
 	}
-	
+
 	/**
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * 瀛楃涓茶浆鎹㈡垚byte鏁扮粍
 	 * @value bs byte[]
 	 * @value str String
 	 * @value fromIndex int
-	 * @return
-	 * @throws java.io.Exception
+	 * @return 杩斿洖
+	 * @throws Exception 寮傚父 寮傚父
 	 */
 	public static int string2BCD_BE(byte[] bs, String str, int fromIndex)throws Exception {
 		byte[] bb = string2BCD_BE(str);
@@ -1179,8 +1179,8 @@
 	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
 	 * 瀛楃涓插瀷鏁板瓧杞垚BCD缂栫爜锛屽瓧鑺傞『搴忔槸鍊掔殑
 	 * @param s
-	 * @return
-	 * @throws Exception
+	 * @return 杩斿洖
+	 * @throws Exception 寮傚父
 	 */
 	public static byte[] string2BCD_LE(String s) throws Exception {
 		byte[] b = null;
@@ -1193,15 +1193,15 @@
 
 		return b;
 	}
-	
+
 	/**
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * 瀛楃涓茶浆鎹㈡垚byte鏁扮粍
 	 * @value bs byte[]
 	 * @value str String
 	 * @value fromIndex int
-	 * @return
-	 * @throws java.io.Exception
+	 * @return 杩斿洖
+	 * @throws Exception 寮傚父 寮傚父
 	 */
 	public static int string2BCD_LE(byte[] bs, String str, int fromIndex)throws Exception {
 		byte[] bb = string2BCD_LE(str);
@@ -1221,10 +1221,8 @@
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * BCD缂栫爜杞垚鏁村瀷
 	 * @param b
-	 * @param startIndex
-	 * @param endIndex
-	 * @return
-	 * @throws Exception
+	 * @return 杩斿洖
+	 * @throws Exception 寮傚父
 	 */
 	public static int BCD2Int_BE(byte b) throws Exception {
 		String str = "";
@@ -1237,10 +1235,8 @@
 	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
 	 * BCD缂栫爜杞垚鏁村瀷锛屽瓧鑺傞『搴忔槸鍊掔殑
 	 * @param b
-	 * @param startIndex
-	 * @param endIndex
-	 * @return
-	 * @throws Exception
+	 * @return 杩斿洖
+	 * @throws Exception 寮傚父
 	 */
 	public static int BCD2Int_LE(byte b) throws Exception {
 		String str = "";
@@ -1255,8 +1251,8 @@
 	 * @param b
 	 * @param startIndex
 	 * @param endIndex
-	 * @return
-	 * @throws Exception
+	 * @return 杩斿洖
+	 * @throws Exception 寮傚父
 	 */
 	public static int BCD2Int_BE(byte[] b, int startIndex, int endIndex)throws Exception {
 		String str = "";
@@ -1271,8 +1267,8 @@
 	 * @param b
 	 * @param startIndex
 	 * @param endIndex
-	 * @return
-	 * @throws Exception
+	 * @return 杩斿洖
+	 * @throws Exception 寮傚父
 	 */
 	public static int BCD2Int_LE(byte[] b, int startIndex, int endIndex)throws Exception {
 		String str = "";
@@ -1287,8 +1283,8 @@
 	 * @param b
 	 * @param startIndex
 	 * @param endIndex
-	 * @return
-	 * @throws Exception
+	 * @return 杩斿洖
+	 * @throws Exception 寮傚父
 	 */
 	public static long BCD2Long_BE(byte[] b, int startIndex, int endIndex)throws Exception {
 		String str = "";
@@ -1304,8 +1300,8 @@
 	 * @param b
 	 * @param startIndex
 	 * @param endIndex
-	 * @return
-	 * @throws Exception
+	 * @return 杩斿洖
+	 * @throws Exception 寮傚父
 	 */
 	public static long BCD2Long_LE(byte[] b, int startIndex, int endIndex)throws Exception {
 		String str = "";
@@ -1320,8 +1316,8 @@
 	 * @param b
 	 * @param startIndex
 	 * @param endIndex
-	 * @return
-	 * @throws Exception
+	 * @return 杩斿洖
+	 * @throws Exception 寮傚父
 	 */
 	public static String BCD2String_BE(byte[] b, int startIndex, int endIndex) throws Exception {
 		return decodeBCD_BE(b, startIndex, endIndex - startIndex + 1);
@@ -1333,8 +1329,8 @@
 	 * @param b
 	 * @param startIndex
 	 * @param endIndex
-	 * @return
-	 * @throws Exception
+	 * @return 杩斿洖
+	 * @throws Exception 寮傚父
 	 */
 	public static String BCD2String_LE(byte[] b, int startIndex, int endIndex) throws Exception {
 		return decodeBCD_LE(b, startIndex, endIndex - startIndex + 1);
@@ -1342,17 +1338,17 @@
 
 	/**
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
-	 * 缂栫爜BCD锛屼緥濡�1387缂栫爜鎴�  13  87锛岄『搴忔槸姝g殑 
+	 * 缂栫爜BCD锛屼緥濡�1387缂栫爜鎴�  13  87锛岄『搴忔槸姝g殑
 	 * @param value
 	 * @param dest
 	 * @param startIndex
-	 * @param length
+	 * @param length 闀垮害
 	 */
 	private static void encodeBCD_BE(String value, byte[] dest, int startIndex, int length)throws Exception {
 		if (value == null || !value.matches("\\d*")) {
 			throw new Exception("鏁板瓧杞垚BCD缂栫爜鏃跺嚭閿欙紝涓嶆槸鍚堟硶鏁板瓧:" + value, null);
 		}
-		
+
 		int[] tmpInts = new int[2 * length];
 		int index = value.length() - 1;
 		for (int i = tmpInts.length - 1; i >= 0 && index >= 0; i--, index--) {
@@ -1362,20 +1358,20 @@
 			dest[i] = (byte) (tmpInts[2 * j] * 16 + tmpInts[2 * j + 1]);
 		}
 	}
-	
+
 	/**
 	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
-	 * 缂栫爜BCD锛屼緥濡�1387缂栫爜鎴�  87  13锛岄『搴忔槸鍊掔殑 
+	 * 缂栫爜BCD锛屼緥濡�1387缂栫爜鎴�  87  13锛岄『搴忔槸鍊掔殑
 	 * @param value
 	 * @param dest
 	 * @param startIndex
-	 * @param length
+	 * @param length 闀垮害
 	 */
 	private static void encodeBCD_LE(String value, byte[] dest, int startIndex, int length)throws Exception {
 		if (value == null || !value.matches("\\d*")) {
 			throw new Exception("鏁板瓧杞垚BCD缂栫爜鏃跺嚭閿欙紝涓嶆槸鍚堟硶鏁板瓧:" + value, null);
 		}
-		
+
 		int[] tmpInts = new int[2 * length];
 		int index = value.length() - 1;
 		for (int i = 0; i <= tmpInts.length - 1 && index >= 0; i++, index--) {
@@ -1393,8 +1389,8 @@
 	 * 瑙g爜BCD锛岄『搴忔槸姝g殑
 	 * @param src
 	 * @param startIndex
-	 * @param length
-	 * @return
+	 * @param length 闀垮害
+	 * @return 杩斿洖
 	 */
 	private static String decodeBCD_BE(byte[] src, int startIndex, int length)throws Exception {
 		StringBuilder sb = new StringBuilder();
@@ -1415,8 +1411,8 @@
  	 * 缂栫爜BCD锛岄『搴忔槸鍊掔殑
 	 * @param src
 	 * @param startIndex
-	 * @param length
-	 * @return
+	 * @param length 闀垮害
+	 * @return 杩斿洖
 	 */
 	private static String decodeBCD_LE(byte[] src, int startIndex, int length)throws Exception {
 		StringBuilder sb = new StringBuilder();
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java
index fab544b..6829b00 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java
@@ -3,6 +3,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import com.dy.aceMw.server.tasks.BusiConstantTask;
 import com.dy.common.mw.UnitInterface;
 import com.dy.common.mw.UnitStartedCallbackInterface;
 import com.dy.common.mw.channel.rmi.RmiConfigVo;
@@ -147,7 +148,14 @@
 			ServerProperties.lastUpDataTimeLive = conf.getSetAttrPlusInt(doc, "config.base", "lastUpDataTimeLive", null, 0, 5, null) * 1000L ;
 			//鏁版嵁搴撴暟鎹甶d鐢熸垚鍣ㄧ殑id鍚庣紑锛�0鏄粯璁ょ殑鍚庣紑锛屼竴鑸瑆eb绯荤粺搴旂敤锛屾暟鎹腑闂翠欢id鍚庣紑澶т簬绛変簬1
 			ServerProperties.dbDataIdSuffix = conf.getSetAttrInt(doc, "config.base", "dbDataIdSuffix", null, 1, 9, null);
-			
+			//涓婁笅琛屾暟鎹紦瀛橀槦鍒椾腑缂撳瓨鏁版嵁涓暟鐨勬姤璀﹂噺锛岃繖涓笌鐜板疄椤圭洰鎵�鎺ユ按琛ㄦ暟鐩稿叧
+			ServerProperties.cacheUpDownDataWarnCount = conf.getSetAttrPlusInt(doc, "config.base", "cacheUpDownDataWarnCount", null, 1, null, null) ;
+			//涓婁笅琛屾暟鎹紦瀛橀槦鍒椾腑缂撳瓨鏁版嵁涓暟鐨勬渶澶у�硷紝杩欎釜涓庣幇瀹為」鐩墍鎺ユ按琛ㄦ暟鐩稿叧
+			ServerProperties.cacheUpDownDataMaxCount = conf.getSetAttrPlusInt(doc, "config.base", "cacheUpDownDataMaxCount", null, 1, null, null) ;
+			if(ServerProperties.cacheUpDownDataMaxCount <= ServerProperties.cacheUpDownDataWarnCount){
+				throw new Exception("cacheUpDownDataMaxCount蹇呴』澶т簬cacheUpDownDataWarnCount") ;
+			}
+
 			//璁剧疆ID鐢熸垚鍣ㄧ殑鍚庣紑
 			IDLongGenerator.setSuffix(ServerProperties.dbDataIdSuffix.intValue());
 
@@ -175,29 +183,42 @@
 			//鏀寔妯″潡锛� springHibernate鍜� 绾跨▼姹�
 			SupportUnitConfigVo supVo = new SupportUnitConfigVo() ;
 			//鐭伐浣滄椂闀跨嚎绋嬫睜锛岀嚎绋嬭礋璐g敤鏃惰緝鐭殑宸ヤ綔浠诲姟
-			supVo.short_maxThread = conf.getSetAttrPlusInt(doc, "config.support", "short_maxThread", null, 1, 1000, null) ;//姹犱腑鏈�澶х嚎绋嬫暟涓烘墍鏈塁PU鏍告暟+1
-			supVo.short_minThread = conf.getSetAttrPlusInt(doc, "config.support", "short_minThread", null, 1, 5, null) ;//姹犱腑鏈�灏忕嚎绋嬫暟 
+			supVo.short_maxThread = conf.getSetAttrPlusInt(doc, "config.support", "short_maxThread", null, -1, 1000, null) ;//姹犱腑鏈�澶х嚎绋嬫暟涓烘墍鏈塁PU鏍告暟+1
+			if(supVo.short_maxThread < 0){
+				supVo.short_maxThread = -1 ;
+			}
+			supVo.short_minThread = conf.getSetAttrPlusInt(doc, "config.support", "short_minThread", null, -1, 100, null) ;//姹犱腑鏈�灏忕嚎绋嬫暟
+			if(supVo.short_minThread < 0){
+				supVo.short_minThread = -1 ;
+			}
 			supVo.short_freeTimeout = conf.getSetAttrPlusInt(doc, "config.support", "short_freeTimeout", null, 1, 90, null) * 1000 ;//绾跨▼鏁扮┖闂叉椂闀匡紝鑻ユ睜涓嚎绋嬫暟閲忓ぇ浜巑inThread锛屼笖鏈夌殑绾跨▼绌洪棽鏃堕暱瓒呰繃freeTimeout锛屽垯娓呴櫎璇ョ嚎绋嬶紝涓轰簡涓嶆竻闄わ紝鎶妋inThread涓巑axThread璁剧疆鐩哥瓑
 			supVo.short_busyTimeout = conf.getSetAttrPlusInt(doc, "config.support", "short_busyTimeout", null, 1, 10, null) * 1000 ;//绾跨▼涓嶉棿鏂伐浣滄椂闀匡紙鍗曚綅涓虹)瓒呮椂闄愶紝璁や负绾跨▼宸茬粡浜嗗穿婧冿紝灏嗗己鍒舵竻闄わ紝鐭伐浣滄椂闀胯缃负5绉�
+			if(supVo.short_maxThread == 0 || supVo.short_minThread == 0){
+				supVo.enableShortThreadPool = false ;
+			}else{
+				supVo.enableShortThreadPool = true ;
+			}
+
 			//闀垮伐浣滄椂闀跨嚎绋嬫睜锛岀嚎绋嬭礋璐g敤鏃惰緝闀跨殑宸ヤ綔浠诲姟
 			supVo.long_maxThread = conf.getSetAttrInt(doc, "config.support", "long_maxThread", null, -1, 1000, null)  ;//姹犱腑鏈�澶х嚎绋嬫暟,鑻ヤ负-1锛屼笉鍙楅檺鍒�
 			if(supVo.long_maxThread < 0){
 				supVo.long_maxThread = -1 ;
 			}
-			supVo.long_minThread = conf.getSetAttrPlusInt(doc, "config.support", "long_minThread", null, 0, 5, null) ;//姹犱腑鏈�灏忕嚎绋嬫暟 
+			supVo.long_minThread = conf.getSetAttrPlusInt(doc, "config.support", "long_minThread", null, -1, 100, null) ;//姹犱腑鏈�灏忕嚎绋嬫暟
+			if(supVo.long_minThread < 0){
+				supVo.long_minThread = -1 ;
+			}
 			supVo.long_freeTimeout = conf.getSetAttrPlusInt(doc, "config.support", "long_freeTimeout", null, 1, 90, null) * 1000 ;//绾跨▼鏁扮┖闂叉椂闀匡紝鑻ユ睜涓嚎绋嬫暟閲忓ぇ浜巑inThread锛屼笖鏈夌殑绾跨▼绌洪棽鏃堕暱瓒呰繃freeTimeout锛屽垯娓呴櫎璇ョ嚎绋�
 			supVo.long_busyTimeout = conf.getSetAttrInt(doc, "config.support", "long_busyTimeout", null, -1, 10, null) ;//绾跨▼涓嶉棿鏂伐浣滄椂闀匡紙鍗曚綅涓虹)瓒呮椂闄愶紝鑻ヤ负-1锛屼笉鍙楅檺鍒�
 			if(supVo.long_busyTimeout < 0){
 				supVo.long_busyTimeout = -1 ;
 			}
-			
-			supVo.enableThreadPool = conf.getSetAttrBoolean(doc, "config.support", "enableThreadPool", null, null) ;
-			
-//			supVo.enableSpringHibernate = conf.getSetAttrBoolean(doc, "config.support", "enableSpringHibernate", null, null) ;
-//			if(supVo.enableSpringHibernate){
-//				supVo.springXmlFile = conf.getSetAttrTxt(doc, "config.support", "springXmlFile", null, false, null) ;
-//			}
-			
+			if(supVo.long_maxThread == 0 || supVo.long_minThread == 0){
+				supVo.enableLongThreadPool = false ;
+			}else{
+				supVo.enableLongThreadPool = true ;
+			}
+
 			supVo.showStartInfo = showStartInfo ;
 			
 			AdapterImp_SupportUnit supAdap = new AdapterImp_SupportUnit() ;
@@ -270,14 +291,15 @@
 			CoreUnitConfigVo coreConfVo = new CoreUnitConfigVo();
 			coreConfVo.sleepBigBusy = conf.getSetAttrPlusInt(doc, "config.core", "sleepBigBusy", null, 1, 200, null).longValue() ;
 			coreConfVo.sleepSmallBusy = conf.getSetAttrPlusInt(doc, "config.core", "sleepSmallBusy", null, 2, 1000, null).longValue();
-			coreConfVo.queueWarnSize = conf.getSetAttrPlusInt(doc, "config.core", "queueWarnSize", null, 500, 1000000, null) ;
-			coreConfVo.queueMaxSize = conf.getSetAttrPlusInt(doc, "config.core", "queueMaxSize", null, 5000, 3000000, null)  ;
+			coreConfVo.queueWarnSize = ServerProperties.cacheUpDownDataWarnCount ;
+			coreConfVo.queueMaxSize = ServerProperties.cacheUpDownDataMaxCount ;
 			coreConfVo.showStartInfo = showStartInfo ;
 			AdapterImp_CoreUnit coreAdap = new AdapterImp_CoreUnit();
 			coreAdap.setConfig(coreConfVo);
 			CoreUnit coreUnit = CoreUnit.getInstance();
 			coreUnit.setAdapter(coreAdap);
 			CoreUnit.addConstantTask(new ToRtuConstantTask());
+			CoreUnit.addConstantTask(new BusiConstantTask());
 			coreUnit.start(new UnitStartedCallbackInterface(){
 				@Override
 				public void call(Object obj) {
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/ServerProperties.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/ServerProperties.java
index 84a9a42..670ef33 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/ServerProperties.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/ServerProperties.java
@@ -25,6 +25,12 @@
 	public static Long lastUpDataTimeLive = 1000L ;
 	
 	//鏁版嵁搴撴暟鎹甶d鐢熸垚鍣ㄧ殑id鍚庣紑锛�0鏄粯璁ょ殑鍚庣紑锛屼竴鑸瑆eb绯荤粺搴旂敤锛屾暟鎹腑闂翠欢id鍚庣紑澶т簬绛変簬1
-	public static Integer dbDataIdSuffix = 1 ; 
+	public static Integer dbDataIdSuffix = 1 ;
+
+	//涓婁笅琛屾暟鎹紦瀛橀槦鍒椾腑缂撳瓨鏁版嵁涓暟鐨勬姤璀﹂噺锛岃繖涓笌瀹炰綋椤圭洰鎵�鎺ユ按琛ㄦ暟鐩稿叧
+	public static Integer cacheUpDownDataWarnCount = 1000000 ;
+
+	//涓婁笅琛屾暟鎹紦瀛橀槦鍒椾腑缂撳瓨鏁版嵁涓暟鐨勬渶澶у�硷紝杩欎釜涓庡疄浣撻」鐩墍鎺ユ按琛ㄦ暟鐩稿叧
+	public static Integer cacheUpDownDataMaxCount = 1100000 ;
 
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/AboutRtuNode.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/AboutRtuNode.java
new file mode 100644
index 0000000..6bcf088
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/AboutRtuNode.java
@@ -0,0 +1,62 @@
+package com.dy.aceMw.server.busi;
+
+import com.dy.aceMw.server.busi.deal.TaskPool;
+import com.dy.aceMw.server.busi.deal.TaskSurpport;
+import com.dy.common.queue.NodeObj;
+import com.dy.common.threadPool.ThreadPool;
+import com.dy.common.threadPool.TreadPoolFactory;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class AboutRtuNode implements NodeObj {
+
+    private static final Logger log = LogManager.getLogger(AboutRtuNode.class.getName());
+
+    public Object obj ;//鏁版嵁
+
+    public AboutRtuNode(Object obj){
+        this.obj = obj ;
+    }
+    /**
+     * 鑷繁澶勭悊鑷繁
+     * @return
+     */
+    public boolean dealSelf(){
+        try {
+            ThreadPool.Pool pool = TreadPoolFactory.getThreadPoolLong() ;
+            pool.putJob(new ThreadPool.Job() {
+                public void execute() {
+                    if(obj != null){
+                        TaskSurpport t = null ;
+                        try{
+                            t = TaskPool.popTask() ;
+                            if(t != null){
+                                t.execute(obj);
+                            }else{
+                                log.error("鏈緱鍒癛TU涓诲姩涓婃姤鏁版嵁澶勭悊浠诲姟锛�");
+                            }
+                        }catch(Exception e){
+                            if(t != null){
+                                //褰撴湁寮傚父鏃讹紝try catch涓殑浠g爜鍙病鏈夋墽琛宖reeAndCleanTask
+                                TaskPool.freeAndCleanTask(t);
+                            }
+                        }
+                    }
+                }
+                @Override
+                public void destroy(){
+                }
+                @Override
+                public boolean isDestroy(){
+                    return false ;
+                }
+
+            });
+        } catch (Exception e) {
+            log.error("鍦≧tuDataNode鍐呭彂鐢熷紓甯�", e);
+        }
+        return true ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/TcpUpDataCache.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/TcpUpDataCache.java
new file mode 100644
index 0000000..d6bec2b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/TcpUpDataCache.java
@@ -0,0 +1,70 @@
+package com.dy.aceMw.server.busi;
+
+import com.dy.aceMw.server.ServerProperties;
+import com.dy.common.queue.Node;
+import com.dy.common.queue.Queue;
+
+public class TcpUpDataCache {
+
+    //TCP涓嬭鍛戒护缂撳瓨闃熷垪
+    private static Queue cacheQueue = new Queue("tcpUpDataQueue") ;
+
+    private static TcpUpDataCache instance = new TcpUpDataCache() ;
+
+    private TcpUpDataCache(){
+        cacheQueue.setLimit(ServerProperties.cacheUpDownDataWarnCount, ServerProperties.cacheUpDownDataMaxCount);
+    }
+
+    public static TcpUpDataCache getInstance(){
+        return instance ;
+    }
+
+    /**
+     * 缂撳瓨鑺傜偣
+     * @param reportOrResponse_trueOrFalse reportOrResponse_trueOrFalse
+     * @param node node
+     * @throws Exception 寮傚父
+     */
+    public static void cacheRtuUpData(boolean reportOrResponse_trueOrFalse, AboutRtuNode node) throws Exception{
+        if(node != null && node.data != null){
+            if(reportOrResponse_trueOrFalse){
+                cacheQueue.pushHead(node);
+            }else{
+                cacheQueue.pushTail(node);
+            }
+        }
+    }
+
+    /**
+     * 寰楀埌绗竴涓妭鐐�
+     * @return Node
+     */
+    public static Node getFirstQueueNode(){
+        return cacheQueue.getFirstNode() ;
+    }
+
+    /**
+     * 寰楀埌鏈�鍚庝竴涓妭鐐�
+     * @return Node
+     */
+    public static Node getLastQueueNode(){
+        return cacheQueue.getLastNode() ;
+    }
+
+    /**
+     * 绉婚櫎鑺傜偣
+     * @param node
+     */
+    public static void removeNode(Node node){
+        cacheQueue.remove(node);
+    }
+
+    /**
+     * 缂撳瓨鐨勮妭鐐规暟
+     * @Return 缂撳瓨鑺傜偣鏁�
+     */
+    public static Integer size(){
+        return cacheQueue.size() ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/Task.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/Task.java
new file mode 100644
index 0000000..9c615ee
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/Task.java
@@ -0,0 +1,46 @@
+package com.dy.aceMw.server.busi.deal;
+
+public interface Task {
+	
+	
+	/**
+	 * 浠诲姟閲囩敤瀵硅薄姹狅紝浠ヤ究閲嶇敤浠诲姟瀵硅薄锛�
+	 * 閲嶇敤鍓嶈杩涜瀵硅薄鍒濆鍖栵紝娓呴櫎涓婃鎵ц浠诲姟鏃堕仐鐣欑殑瀵硅薄灞炴�ф暟鎹�
+	 * 鍒濆鍖栨湰浠诲姟鍙婃墍鏈夊瓙浠诲姟
+	 */
+	public void cleanMeAndSubs() ;
+	
+	/**
+	 * 鎵ц鑺傜偣浠诲姟
+	 * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+	 */
+	public void execute(Object data) ;
+	
+	/**
+	 * 寰楀埌鏈换鍔¤妭鐐瑰鐞嗕骇鐢熺殑涓棿缁撴灉锛屼互渚涙湰鑺傜偣鎵�鍦ㄦ爲鏋濈殑涓嬬骇浠诲姟鑺傜偣鍙婃湰鏍戞灊鐨勫乏渚э紙鏍瑰湪涓婏級鎵�鏈夋爲鏋濈殑鑺傜偣搴旂敤鏈粨鏋�
+	 * @return
+	 */
+	public Object[] getMyResults() ;
+	
+	/**
+	 * 寰楀埌鎸囧畾浠诲姟鑺傜偣澶勭悊浜х敓鐨勪腑闂寸粨鏋滐紝浠ヤ緵鏈妭鐐规墍鍦ㄦ爲鏋濈殑涓嬬骇浠诲姟鑺傜偣鍙婃湰鏍戞灊鐨勫乏渚э紙鏍瑰湪涓婏級鎵�鏈夋爲鏋濈殑鑺傜偣搴旂敤鏈粨鏋�
+	 * @param id 鎸囧畾浠诲姟ID
+	 * @return
+	 */
+	public Object[] getTaskResults(String id);
+	
+	/**
+	 * 杞笅绾т换鍔¤妭鐐瑰鐞嗭紝棣栧厛瑕佸疄浣撳寲鎵�鏈夊瓙鑺傜偣銆�
+	 * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+	 */
+	public void toNextTasks(Object data) ;
+
+
+	/**
+	 * 杞笅绾ф煇涓换鍔¤妭鐐瑰鐞� 
+	 * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+	 * @param id 鎸囧畾浠诲姟ID
+	 */
+	public void toNextOneTask(Object data, String id);
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TaskConfig.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TaskConfig.java
new file mode 100644
index 0000000..7817954
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TaskConfig.java
@@ -0,0 +1,9 @@
+package com.dy.aceMw.server.busi.deal;
+
+
+public class TaskConfig {
+	public String id ;
+	public String name ;
+	public Boolean enable ;//鏄惁鎵ц鑺傜偣鐨勬暟鎹鐞嗕换鍔′换鍔�
+	public String clazz ;
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TaskPool.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TaskPool.java
new file mode 100644
index 0000000..8dcd7fc
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TaskPool.java
@@ -0,0 +1,115 @@
+package com.dy.aceMw.server.busi.deal;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+
+public class TaskPool {
+
+	private static Logger log = LogManager.getLogger(TaskPool.class.getName()) ;
+	
+	private static List<TaskSurpport> tasks = new ArrayList<TaskSurpport>() ;
+	
+	private static TreeConfig taskTreeConf ;
+	
+	
+	public static void setTaskTreeCofig(TreeConfig conf){
+		taskTreeConf = conf ;
+	}
+	
+	
+	/**
+	 * 寰楀埌浠诲姟
+	 * 澶氱嚎绋嬬幆澧冧笅杩愯
+	 * @return
+	 */
+	public static synchronized TaskSurpport popTask(){
+		TaskSurpport t = (tasks.size() > 0)?tasks.get(0):null ;
+		if(t != null){
+			tasks.remove(0) ;
+		}else{
+			try {
+				t = newTaskTree() ;
+			} catch (Exception e) {
+				log.error(e.getMessage() == null?"瀹炰緥鍖栦笂琛屾暟鎹鐞嗕换鍔″璞℃爲澶辫触锛�" : e.getMessage(), e);
+			} finally {
+				if(t == null){
+					log.error("瀹炰緥鍖栦笂琛屾暟鎹鐞嗕换鍔″璞″け璐ワ紒" );
+				}
+			}
+		}
+		
+		return t ;
+	}
+	
+	/**
+	 * 鏀惧洖浠诲姟
+	 * 澶氱嚎绋嬬幆澧冧笅杩愯
+	 * 杩欓噷闇�瑕佸悓姝ラ攣锛屽洜涓轰笂闈㈡柟娉曚腑鎵ц瀹宼asks.get(0)涓旀湭鎵цtasks.remove(0)鏈熼棿锛屾湰鏂规硶鎵ц骞朵笖鎵ц瀹岋紝閭d箞鍚庢湡灏变細鍑轰贡瀛�
+	 * @param t
+	 */
+	public static synchronized void freeAndCleanTask(TaskSurpport t){
+		if(t != null){
+			boolean find = false ;
+			for(TaskSurpport tin : tasks){
+				if(tin == t){
+					find = true ;
+					break ;
+				}
+			}
+			if(!find){
+				t.cleanMeAndSubs();
+				tasks.add(0, t) ;
+			}
+		}
+	}
+	
+	/**
+	 * 瀹炰緥鍖栦换鍔″璞℃爲
+	 * @return
+	 * @throws Exception
+	 */
+	private static TaskSurpport newTaskTree() throws Exception{
+		TaskSurpport t = null ;
+		if(taskTreeConf != null){
+			t = newTask(null, taskTreeConf.taskConf, taskTreeConf.subTreeConfs) ;
+		}
+		return t ;
+	}
+	
+	private static TaskSurpport newTask(TaskSurpport root, TaskConfig taskConf, TreeConfig[] subTreeConfs) throws Exception{
+		TaskSurpport t = null ;
+		if(taskConf != null){
+			t = instanceTask(taskConf.clazz) ;
+			if(t != null){
+				t.conf = taskConf ;
+				t.root = root ;
+				if(root == null){
+					root = t ;
+				}
+				newSubTask(root, t, subTreeConfs);
+			}
+		}
+		return t ;
+	}
+	private static void newSubTask(TaskSurpport root, TaskSurpport parent, TreeConfig[] treeConfs)throws Exception{
+		if(parent != null && treeConfs != null && treeConfs.length > 0){
+			parent.subTasks = new TaskSurpport[treeConfs.length] ;
+			for(int i = 0 ; i < treeConfs.length; i++){
+				parent.subTasks[i] = newTask(root, treeConfs[i].taskConf, treeConfs[i].subTreeConfs) ;
+			}
+		}
+	}
+	private static TaskSurpport instanceTask(String clazz)throws Exception{
+		Class<?> c = Class.forName(clazz);
+		if (c == null) {
+			throw new Exception("瀹炰緥鍖栦笂琛屾暟鎹鐞嗕换鍔″璞℃爲澶辫触锛佷换鍔$被涓�" + clazz + "锛�");
+		}else{
+			return (TaskSurpport)c.newInstance();
+		}
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TaskSurpport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TaskSurpport.java
new file mode 100644
index 0000000..c120db6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TaskSurpport.java
@@ -0,0 +1,132 @@
+package com.dy.aceMw.server.busi.deal;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * 閮ㄥ垎瀹炵幇Task
+ */
+public abstract class TaskSurpport implements Task {
+
+	private static final Logger log = LogManager.getLogger(TaskSurpport.class.getName()) ;
+	
+	//褰撳墠鎵�澶勭悊鐨勪笂琛屾暟鎹墍灞濺TU鐨勫湴鍧�
+	public String rtuAddr_inRootTk ;//鍙湪鏍箁oot浠诲姟瀵硅薄涓婁細浠樻鍊�
+	//鏈妭鐐归厤缃�
+	protected TaskConfig conf ;
+	//鏍逛换鍔�
+	protected TaskSurpport root ;
+	//鏈换鍔$殑瀛愪换鍔�
+	protected TaskSurpport[] subTasks ;
+	//鏈换鍔$殑澶勭悊缁撴灉
+	protected Object[] taskResult ;
+
+	/**
+	 * 鎵ц鑺傜偣浠诲姟
+	 * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+	 */
+	@Override
+	public abstract void execute(Object data) ;
+	
+	/**
+	 * 浠诲姟閲囩敤瀵硅薄姹狅紝浠ヤ究閲嶇敤浠诲姟瀵硅薄锛�
+	 * 閲嶇敤鍓嶈杩涜瀵硅薄鍒濆鍖栵紝娓呴櫎涓婃鎵ц浠诲姟鏃堕仐鐣欑殑瀵硅薄灞炴�ф暟鎹�
+	 * 鍒濆鍖栨湰浠诲姟鍙婃墍鏈夊瓙浠诲姟
+	 */
+	@Override
+	public void cleanMeAndSubs() {
+		rtuAddr_inRootTk = null ;
+		taskResult = null ;
+		if(this.subTasks != null && this.subTasks.length > 0){
+			for(int i = 0 ; i < this.subTasks.length; i++){
+				this.subTasks[i].cleanMeAndSubs() ;
+			}
+		}
+	}
+	
+	/**
+	 * 寰楀埌鏈换鍔¤妭鐐瑰鐞嗕骇鐢熺殑涓棿缁撴灉锛屼互渚涙湰鑺傜偣鎵�鍦ㄦ爲鏋濈殑涓嬬骇浠诲姟鑺傜偣鍙婃湰鏍戞灊鐨勫乏渚э紙鏍瑰湪涓婏級鎵�鏈夋爲鏋濈殑鑺傜偣搴旂敤鏈粨鏋�
+	 * @return
+	 */
+	@Override
+	public Object[] getMyResults(){
+		return taskResult ;
+	}
+	
+	/**
+	 * 寰楀埌鎸囧畾浠诲姟鑺傜偣澶勭悊浜х敓鐨勪腑闂寸粨鏋滐紝浠ヤ緵鏈妭鐐规墍鍦ㄦ爲鏋濈殑涓嬬骇浠诲姟鑺傜偣鍙婃湰鏍戞灊鐨勫乏渚э紙鏍瑰湪涓婏級鎵�鏈夋爲鏋濈殑鑺傜偣搴旂敤鏈粨鏋�
+	 * @param id 鎸囧畾浠诲姟ID
+	 * @return
+	 */
+	public Object[] getTaskResults(String id){
+		if(root != null){
+			return this.getTaskResults(root, id) ;
+		}
+		return null ;
+	}
+	private Object[] getTaskResults(TaskSurpport task, String id){ 
+		if(task != null && task.conf != null && task.conf.id != null && task.conf.id.equals(id)){
+			return task.getMyResults() ;
+		}else{
+			if(task.subTasks != null && task.subTasks.length > 0){
+				Object[] rs = null ;
+				for(int i = 0 ; i < task.subTasks.length; i++){
+					rs = getTaskResults(task.subTasks[i], id) ;
+					if(rs != null){
+						return rs ;
+					}
+				}
+			}
+		}
+		return null ;
+	}
+
+	/**
+	 * 杞笅绾т换鍔¤妭鐐瑰鐞嗭紝棣栧厛瑕佸疄浣撳寲鎵�鏈夊瓙鑺傜偣銆�
+	 * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+	 */
+	@Override
+	public void toNextTasks(Object data) {
+		try {
+			if(subTasks != null && subTasks.length > 0){
+				for(int i = 0 ; i < subTasks.length ; i++){
+					if(subTasks[i].conf.enable){
+						subTasks[i].execute(data) ;
+					}else{
+						//鏈妭鐐逛笉璧蜂綔鐢紝鐩存帴杩涘叆鏈妭鐨勫瓙鑺傜偣
+						subTasks[i].toNextTasks(data) ;
+					}
+				}
+			}
+		} catch (Exception e) {
+			log.error("鍚戜笅绾т换鍔′紶閫掑伐浣滄椂鍑洪敊锛�" , e);
+		}finally{
+		}
+	}
+
+	/**
+	 * 杞笅绾ф煇涓换鍔¤妭鐐瑰鐞� 
+	 * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+	 * @param id 鎸囧畾浠诲姟ID
+	 */
+	public void toNextOneTask(Object data, String id){
+		try {
+			if(subTasks != null && subTasks.length > 0){
+				for(int i = 0 ; i < subTasks.length ; i++){
+					if(subTasks[i].conf.id.equals(id)){
+						if(subTasks[i].conf.enable){
+							subTasks[i].execute(data) ;
+						}else{
+							//鏈妭鐐逛笉璧蜂綔鐢紝鐩存帴杩涘叆鏈妭鐨勫瓙鑺傜偣
+							subTasks[i].toNextTasks(data) ;
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			log.error("鍚戞寚瀹氬瓙浠诲姟锛�" + id + "锛変紶閫掍换鍔℃椂鍑洪敊锛�" , e);
+		}finally{
+		}
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TkReceive.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TkReceive.java
new file mode 100644
index 0000000..f932998
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TkReceive.java
@@ -0,0 +1,31 @@
+package com.dy.aceMw.server.busi.deal;
+
+import com.dy.common.mw.protocol.Data;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class TkReceive extends TaskSurpport {
+	
+	private static final Logger log = LogManager.getLogger(TkReceive.class.getName()) ;
+
+	//绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+	public static final String taskId = "TkReceive" ;
+
+	/**
+	 * 鎵ц鑺傜偣浠诲姟
+	 * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+	 */
+	@Override
+	public void execute(Object data) {
+		if(data == null){
+			log.error("涓ラ噸閿欒锛孯TU涓婅鏁版嵁涓虹┖锛�" );
+		}else{
+			if(data instanceof Data){
+				this.toNextTasks(data);
+			}else{
+				log.error("涓ラ噸閿欒锛岃鏁版嵁绫诲瀷锛�" + data.getClass().getName() + "锛夛紝鎺ユ敹鏁版嵁浠诲姟杩樻湭瀹炵幇锛�" );
+			}
+		}
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TkRtuData.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TkRtuData.java
new file mode 100644
index 0000000..1b403ca
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TkRtuData.java
@@ -0,0 +1,29 @@
+package com.dy.aceMw.server.busi.deal;
+
+import com.dy.common.mw.protocol.Data;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class TkRtuData extends TaskSurpport {
+	
+	private static Logger log = LogManager.getLogger(TkRtuData.class.getName()) ;
+
+	//绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+	public static final String taskId = "TkRtuData" ;
+
+	/**
+	 * 鎵ц鑺傜偣浠诲姟
+	 * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+	 */
+	@Override
+	public void execute(Object data) {
+		Data d = (Data)data ;
+		String rtuAddr = d.getRtuAddr() ;
+		if(rtuAddr == null){
+			log.error("涓ラ噸閿欒锛孯TU涓婅鏁版嵁涓棤RTU鍦板潃锛�" );
+		}else{
+			this.toNextTasks(data);
+		}
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/Tree.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/Tree.xml
new file mode 100644
index 0000000..51172bc
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/Tree.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE project>
+<config>
+	<!-- 
+	id:涓庡搴旂被涓殑闈欐�佹垚鍛樺彉閲弔askId涓�鑷� 
+	enable:鏍囪瘑鏈妭鐐规槸鍚︽墽琛岋紝鑻ユ湰鑺傜偣涓嶆墽琛岋紝鍒欑洿鎺ヨ繘鍏ュ叾瀛愯妭鐐�
+	-->
+	<task id="TkReceive" name="鎺ユ敹鏁版嵁" enable="true" class="com.dy.aceMw.server.busi.deal.TkReceive">
+		<task id="TkRtuData" name="鎺ユ敹RTU鏁版嵁" enable="true" class="com.dy.aceMw.server.busi.deal.TkRtuData">
+			<task id="TkFindP206V1_0_0" name="璇嗗埆P206V1_0_0鏁版嵁" enable="true" class="com.dy.aceMw.server.busi.deal.p206V1_0_0.TkFindP206V1_0_0">
+				<task id="TkPreGenObjs" name="棰勫厛鍑嗗鍚勫璞�" enable="true" class="com.dy.aceMw.server.busi.deal.p206V1_0_0.TkPreGenObjs">
+					<!-- 璇嗗埆娴佹氮鑰匯TU锛屾暟鎹簱涓病鏈夋垨鏁版嵁搴撳瓨鍦ㄤ絾鏈垎閰嶇疆渚涙按鏈烘瀯 -->
+					<task id="TkDealRtuTramp" name="璇嗗埆娴佹氮鑰匯TU" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.TkDealRtuTramp" />
+					<!-- 闈炴祦娴�匯TU锛屽繀椤绘斁鍦═kDealRtuTramp鍚庨潰 -->
+					<task id="TkDealNoRtuTramp" name="闈炴祦娴�匯TU" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.TkDealNoRtuTramp">
+						<!-- 璇嗗埆涓诲姩涓婃姤鏁版嵁 -->
+						<task id="TkFindAutoReport" name="璇嗗埆涓诲姩涓婃姤鍙婅Е鍙戜笂鎶ユ暟鎹�" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.TkFindAutoReport">
+							<!-- 妫�鏌ユ椂闂寸瓑涓嶆纭殑涓婃姤鏁版嵁 -->
+							<task id="TkCheckAutoReport" name="妫�鏌ユ椂闂寸瓑涓嶆纭殑涓婃姤鏁版嵁" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkCheckAutoReport">
+								<!-- 妫�鏌ラ噸澶嶄笂鎶ユ暟鎹� -->
+								<task id="TkCheckRepeatReport" name="妫�鏌ラ噸澶嶄笂鎶ユ暟鎹�" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkCheckRepeatReport">
+									<!-- Mn杩愮淮绯荤粺 -->
+									<task id="TkMnRtuDealAutoReportLastAlarm" name="杩愮淮RTU涓婃姤鏈�鏂版姤璀�" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkMnRtuDealAutoReportLastAlarm" /> 
+									<!-- RTU涓诲姩涓婃姤鏁版嵁蹇呴』鍦≧TU涓诲姩涓婃姤鎶ヨ浠诲姟鐨勪笅闈紝浠ュ涓诲姩涓婃姤鏁版嵁涓褰曟槸鍚︽湁鎶ヨ-->
+									<task id="TkMnRtuDealAutoReportLastData" name="杩愮淮RTU涓诲姩涓婃姤鏈�鏂版暟鎹�" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkMnRtuDealAutoReportLastData" /> 
+									<!-- RTU瀹炴椂锛堣Е鍙戯級涓婃姤鏁版嵁蹇呴』鍦≧TU涓诲姩涓婃姤鎶ヨ浠诲姟鐨勪笅闈紝浠ュ涓诲姩涓婃姤鏁版嵁涓褰曟槸鍚︽湁鎶ヨ-->
+									<task id="TkMnRtuDealRealReportLastData" name="杩愮淮RTU瀹炴椂锛堣Е鍙戯級涓婃姤鏈�鏂版暟鎹�" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkMnRtuDealRealReportLastData" /> 
+									<!-- Org渚涙按鏈烘瀯绯荤粺 -->
+									<task id="TkOrgRtuDealAutoReportLastAlarm" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤鏈�鏂版姤璀�" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkOrgRtuDealAutoReportLastAlarm">
+										<task id="TkOrgRtuDealAutoReportAlarm" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤鎶ヨ" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkOrgRtuDealAutoReportAlarm" />
+										<task id="TkOrgRtuDealReportValveOpResult" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤寮�鍏抽榾缁撴灉" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkOrgRtuDealReportValveOpResult" />
+									</task> 
+									<!-- RTU涓诲姩涓婃姤鏁版嵁蹇呴』鍦≧TU涓诲姩涓婃姤鎶ヨ浠诲姟鐨勪笅闈紝浠ュ涓诲姩涓婃姤鏁版嵁涓褰曟槸鍚︽湁鎶ヨ-->
+									<task id="TkOrgRtuDealDayAmountAlarm" name="渚涙按鏈烘瀯RTU鏃ョ粨绱娴侀噺鎶ヨ" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkOrgRtuDealDayAmountAlarm" >
+										<task id="TkOrgRtuDeal48HourNoAmount" name="渚涙按鏈烘瀯RTU48灏忔椂鏈敤姘�" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkOrgRtuDeal48HourNoAmount" >
+											<task id="TkOrgRtuDealAutoReportLastData" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤鏈�鏂版暟鎹�" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkOrgRtuDealAutoReportLastData">
+												<task id="TkOrgRtuDealAutoReportData" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤鏁版嵁" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkOrgRtuDealAutoReportData" />
+												<task id="TkOrgRtuDealCycleData" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤鍛ㄦ湡閲囬泦鏁版嵁" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkOrgRtuDealCycleData">
+													<task id="TkOrgRtuDealCycleLongSmallAmountAlarm" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤鍛ㄦ湡閲囬泦鏁版嵁闀挎祦姘村垎鏋�" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkOrgRtuDealCycleLongSmallAmountAlarm" />
+												</task>
+												<task id="TkOrgRtuDealAmountCost" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤璁$畻鏃ユ按閲忋�佹湀姘撮噺銆佸強姘磋垂" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkOrgRtuDealAmountCost" >
+													<task id="TkOrgRtuDealPayCost" name="渚涙按鏈烘瀯鐢ㄦ按鎴锋按琛ㄧ數瀛愰挶鍖呮敮浠樻按璐�" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkOrgRtuDealPayCost" />
+												</task>
+											</task> 
+										</task>
+									</task>
+									<!-- RTU瀹炴椂锛堣Е鍙戯級涓婃姤鏁版嵁蹇呴』鍦≧TU涓诲姩涓婃姤鎶ヨ浠诲姟鐨勪笅闈紝浠ュ涓诲姩涓婃姤鏁版嵁涓褰曟槸鍚︽湁鎶ヨ-->
+									<task id="TkOrgRtuDealRealReportLastData" name="渚涙按鏈烘瀯RTU瀹炴椂锛堣Е鍙戯級涓婃姤鏈�鏂版暟鎹�" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkOrgRtuDealRealReportLastData">
+										<task id="TkOrgRtuDealRealReportData" name="渚涙按鏈烘瀯RTU瀹炴椂锛堣Е鍙戯級涓婃姤鏁版嵁" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.autoReport.TkOrgRtuDealRealReportData" />
+									</task> 
+								</task>	
+							</task> 
+						</task> 
+						<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
+						<task id="TkFindComResponse" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.TkFindComResponse">
+							<task id="TkRtuDealCommandResponse" name="RTU鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.comResponse.TkRtuDealCommandResponse" >
+								<task id="TkRtuDealSetParamComResponse" name="RTU鍝嶅簲璁剧疆鍙傛暟鍛戒护鏁版嵁" enable="true" class="com.dy.busi.server.rtuData.meterV1_0.comResponse.TkRtuDealSetParamComResponse" />
+							</task>
+						</task>  
+					</task>
+				</task> 
+			</task>
+			<task id="TkFindHAC_NBhV2_5" name="璇嗗埆HAC_NBhV2_5鏁版嵁" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.TkFindHAC_NBhV2_5"> 
+				<task id="TkPipPreGenObjs" name="棰勫厛鍑嗗鍚勫璞�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.TkPipPreGenObjs"> 
+					<!-- 璇嗗埆娴佹氮鑰呯缃戞按琛紝鏁版嵁搴撲腑娌℃湁鎴栨暟鎹簱瀛樺湪浣嗘湭鍒嗛厤缃緵姘存満鏋� -->
+					<task id="TkPipDealRtuTramp" name="璇嗗埆娴佹氮鑰呯缃戞按琛�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.TkPipDealRtuTramp" />
+					<!-- 闈炴祦娴�呯缃戞按琛紝蹇呴』鏀惧湪TkDealRtuTramp鍚庨潰 -->
+					<task id="TkPipDealNoRtuTramp" name="闈炴祦娴�呯缃戞按琛�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.TkPipDealNoRtuTramp">
+						<!-- 璇嗗埆涓诲姩涓婃姤鏁版嵁 -->
+						<task id="TkPipFindAutoReport" name="璇嗗埆涓诲姩涓婃姤鍙婅Е鍙戜笂鎶ユ暟鎹�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.TkPipFindAutoReport">
+							<!-- 妫�鏌ユ椂闂寸瓑涓嶆纭殑涓婃姤鏁版嵁 -->
+							<task id="TkPipCheckAutoReport" name="妫�鏌ユ椂闂寸瓑涓嶆纭殑涓婃姤鏁版嵁" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipCheckAutoReport">
+								<task id="TkPipCheckRepeatAutoReport" name="妫�鏌ラ噸澶嶄笂鎶ユ暟鎹�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipCheckRepeatAutoReport">
+									<!-- Mn杩愮淮绯荤粺 -->
+									<task id="TkPipMnRtuDealAutoReportLastAlarm" name="杩愮淮绠$綉姘磋〃涓婃姤鏈�鏂版姤璀�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipMnRtuDealAutoReportLastAlarm" /> 
+									<!-- RTU涓诲姩涓婃姤鏁版嵁蹇呴』鍦≧TU涓诲姩涓婃姤鎶ヨ浠诲姟鐨勪笅闈紝浠ュ涓诲姩涓婃姤鏁版嵁涓褰曟槸鍚︽湁鎶ヨ-->
+									<task id="TkPipMnRtuDealAutoReportLastData" name="杩愮淮绠$綉姘磋〃涓诲姩涓婃姤鏈�鏂版暟鎹�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipMnRtuDealAutoReportLastData" /> 
+									<!-- Org渚涙按鏈烘瀯绯荤粺 -->
+									<task id="TkPipOrgRtuDealAutoReportLastAlarm" name="渚涙按鏈烘瀯绠$綉姘磋〃涓诲姩涓婃姤鏈�鏂版姤璀�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipOrgRtuDealAutoReportLastAlarm">
+										<task id="TkPipOrgRtuDealAutoReportAlarm" name="渚涙按鏈烘瀯绠$綉姘磋〃涓诲姩涓婃姤鎶ヨ" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipOrgRtuDealAutoReportAlarm" />
+									</task> 
+									<!-- RTU涓诲姩涓婃姤鏁版嵁蹇呴』鍦≧TU涓诲姩涓婃姤鎶ヨ浠诲姟鐨勪笅闈紝浠ュ涓诲姩涓婃姤鏁版嵁涓褰曟槸鍚︽湁鎶ヨ-->
+									<task id="TkPipOrgRtuDealAutoReportLastData" name="渚涙按鏈烘瀯绠$綉姘磋〃涓诲姩涓婃姤鏈�鏂版暟鎹�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipOrgRtuDealAutoReportLastData">
+										<task id="TkPipOrgRtuDealAutoReportData" name="渚涙按鏈烘瀯绠$綉姘磋〃涓诲姩涓婃姤鏁版嵁" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipOrgRtuDealAutoReportData" />
+										<task id="TkPipOrgRtuDealAmount" name="渚涙按鏈烘瀯绠$綉姘磋〃鏈堟祦閲忕粺璁�" enable="true" class="com.dy.busi.server.rtuData.HAC_NBhV2_5.autoReport.TkPipOrgRtuDealAmount" />
+									</task> 
+								</task> 
+							</task> 
+						</task> 
+					</task>
+				</task> 
+			</task>
+		</task>
+	</task>
+</config>
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TreeConfig.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TreeConfig.java
new file mode 100644
index 0000000..ce4bf6a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TreeConfig.java
@@ -0,0 +1,6 @@
+package com.dy.aceMw.server.busi.deal;
+
+public class TreeConfig {
+	public TaskConfig taskConf ;
+	public TreeConfig[] subTreeConfs ;//鎵�鏈夊瓙鑺傜偣
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TreeParse.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TreeParse.java
new file mode 100644
index 0000000..fb4e224
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/TreeParse.java
@@ -0,0 +1,172 @@
+package com.dy.aceMw.server.busi.deal;
+
+
+import java.net.URL;
+import java.util.*;
+
+import org.jdom2.Document;
+import org.jdom2.Element;
+import org.jdom2.input.SAXBuilder;
+
+
+public class TreeParse {
+	public List<String> ids ;
+	public List<String> classes ;
+	
+//	public static void main(String args[]) {
+//		TreeParse o = new TreeParse();
+//		TreeConfig conf = o.parseConfig();
+//	}
+
+	public TreeParse(){
+		ids = new ArrayList<String>() ;
+		classes = new ArrayList<String>() ;
+	}
+	
+	/**
+	 * 瑙f瀽澶勭悊鍣ㄩ厤缃�
+	 * @return
+	 */
+	protected TreeConfig parseConfig() {
+		try {
+			URL configFileURL = TreeParse.class.getResource("Tree.xml");
+			return this.parse(this.createDom(configFileURL)) ;
+		} catch (Exception e) {
+			System.out.println("绯荤粺鍚姩鏃讹紝鍒濆涓婅鏁版嵁澶勭悊浠诲姟閰嶇疆鍑洪敊 !");
+			System.out.println(e.getMessage());
+			e.printStackTrace();
+			return null;
+		}
+	}
+	
+	/**
+	 * 
+	 * @return
+	 */
+	private Document createDom(URL configFileURL) throws Exception {
+		if (configFileURL == null) {
+			throw new Exception("鏈緱鍒颁笂琛屾暟鎹鐞嗕换鍔¢厤缃枃浠�!", null);
+		}
+		Document doc = null;
+		try {
+			SAXBuilder sb = new SAXBuilder();
+			doc = sb.build(configFileURL);
+			if (doc == null) {
+				throw new Exception("鏈敓鎴愪笂琛屾暟鎹鐞嗕换鍔¢厤缃枃浠剁殑DOM瀵硅薄!", null);
+			}
+		} catch (Exception e) {
+			throw new Exception("鐢熸垚涓婅鏁版嵁澶勭悊浠诲姟閰嶇疆鏂囦欢鐨凞OM瀵硅薄澶辫触!", e);
+		}
+		return doc;
+	}
+
+	/**
+	 * 鍒嗘瀽 
+	 * @return ArrayList<String>
+	 * @throws Exception
+	 */
+	private TreeConfig parse(Document doc) throws Exception {
+		Element root = doc.getRootElement();
+		if (root == null) {
+			throw new Exception("鏈緱鍒颁笂琛屾暟鎹鐞嗕换鍔¢厤缃枃浠舵牴鍏冪礌config!");
+		}
+
+		List<Element> rootTasks = root.getChildren("task") ;
+		if(rootTasks == null || rootTasks.size() == 0){
+			throw new Exception("鏈緱鍒颁笂琛屾暟鎹鐞嗕换鍔¢厤缃枃浠舵牴浠诲姟task!");
+		}
+		if(rootTasks.size() > 1){
+			throw new Exception("鏈緱鍒颁笂琛屾暟鎹鐞嗕换鍔¢厤缃枃浠舵牴浠诲姟task蹇呴』鍙湁涓�涓�!");
+		}
+		
+		TreeConfig tree = new TreeConfig() ;
+		tree.taskConf = new TaskConfig() ;
+		
+		this.parseNode(rootTasks.get(0), tree, tree.taskConf) ;
+		return tree ;
+	}
+	
+	private void parseNode(Element taskEle, TreeConfig me, TaskConfig taskConf)throws Exception {
+//		<task id="task2.1" name="鏋勯�犳暟鎹�" enable="true" class="" /> 
+		if(taskEle == null){
+			throw new Exception("鍒嗘瀽涓婅鏁版嵁澶勭悊浠诲姟閰嶇疆鏂囦欢鍑洪敊锛�");
+		}
+		
+		String id = taskEle.getAttributeValue("id") ;
+		if(id == null || id.trim().equals("")){
+			throw new Exception("涓婅鏁版嵁澶勭悊浠诲姟閰嶇疆鏂囦欢涓璱d蹇呴』閰嶇疆锛�");
+		}
+		id = id.trim() ;
+		if(ids.contains(id)){
+			throw new Exception("涓婅鏁版嵁澶勭悊浠诲姟閰嶇疆鏂囦欢涓璱d=" + id + "閲嶅閰嶇疆锛�");
+		}
+		taskConf.id = id ;
+		ids.add(id) ;
+		
+		String name = taskEle.getAttributeValue("name") ;
+		if(name == null || name.trim().equals("")){
+			throw new Exception("涓婅鏁版嵁澶勭悊浠诲姟閰嶇疆鏂囦欢涓璶ame蹇呴』閰嶇疆锛�");
+		}
+		name = name.trim() ;
+		taskConf.name = name ;
+		
+		String enable = taskEle.getAttributeValue("enable") ;
+		if(enable == null || !(enable.trim().equals("true") || enable.trim().equals("false"))){
+			throw new Exception("涓婅鏁版嵁澶勭悊浠诲姟閰嶇疆鏂囦欢涓璭nable蹇呴』閰嶇疆锛屽苟涓斿�煎彧鑳戒负true鎴杅alse锛�");
+		}
+		if(enable.trim().equals("true")){
+			taskConf.enable = true ;
+		}
+		if(enable.trim().equals("false")){
+			taskConf.enable = false ;
+		}
+		
+		String clazz = taskEle.getAttributeValue("class") ;
+		if(clazz == null || clazz.trim().equals("")){
+			throw new Exception("涓婅鏁版嵁澶勭悊浠诲姟閰嶇疆鏂囦欢涓璫lass蹇呴』閰嶇疆锛�");
+		}
+		clazz = clazz.trim() ;
+		if(classes.contains(clazz)){
+			throw new Exception("涓婅鏁版嵁澶勭悊浠诲姟閰嶇疆鏂囦欢涓璫lass=" + clazz + "閲嶅閰嶇疆锛�");
+		}
+		taskConf.clazz = clazz ;
+		classes.add(clazz) ;
+		this.checkClass(taskConf.clazz) ;
+		
+		this.parseSubNode(taskEle, me) ;
+		
+	}
+	
+	private void parseSubNode(Element ele, TreeConfig parent)throws Exception {
+		List<?> list = ele.getChildren("task") ;
+		if(list != null && list.size() > 0){
+			parent.subTreeConfs = new TreeConfig[list.size()] ;
+			Iterator<?> it = list.iterator();
+			Element e = null;
+			int count = 0 ;
+			TreeConfig me ;
+			while(it.hasNext()){
+				e = (Element) it.next();
+				me = new TreeConfig() ;
+				me.taskConf = new TaskConfig() ;
+				parent.subTreeConfs[count++] = me ;
+				parseNode(e, me, me.taskConf) ;
+			}
+		}
+	}
+	
+	private void checkClass(String clazz)throws Exception {
+		Class<?> c = Class.forName(clazz);
+		if (c == null) {
+			throw new Exception("涓婅鏁版嵁澶勭悊浠诲姟閰嶇疆鏂囦欢涓笉鑳藉疄渚嬪寲class=" + clazz + "锛�");
+		}else{
+			Object o = c.newInstance();
+			if(o instanceof Task){
+			}else{
+				throw new Exception("涓婅鏁版嵁澶勭悊浠诲姟閰嶇疆鏂囦欢涓璫lass=" + clazz + "蹇呴』瀹炵幇Task鎺ュ彛锛�");
+			}
+		}
+	}
+}
+
+
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/p206V1_0_0/TkFindP206V1_0_0.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/p206V1_0_0/TkFindP206V1_0_0.java
new file mode 100644
index 0000000..62f9780
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/p206V1_0_0/TkFindP206V1_0_0.java
@@ -0,0 +1,27 @@
+package com.dy.aceMw.server.busi.deal.p206V1_0_0;
+
+
+import com.dy.aceMw.server.busi.deal.TaskSurpport;
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
+
+public class TkFindP206V1_0_0 extends TaskSurpport {
+	
+	//绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+	public static final String taskId = "TkFindP206V1_0_0" ;
+
+	/**
+	 * 鎵ц鑺傜偣浠诲姟
+	 * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+	 */
+	@Override
+	public void execute(Object data) {
+		Data d = (Data)data ;
+		if(d.getProtocol() != null && d.getProtocol().equals(ProtocolConstantV206V1_0_0.protocolName)){
+			this.toNextTasks(data);
+		}else{
+			//涓嶆槸鏈崗璁殑鏁版嵁
+		}
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/p206V1_0_0/TkPreGenObjs.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/p206V1_0_0/TkPreGenObjs.java
new file mode 100644
index 0000000..11ad57a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/busi/deal/p206V1_0_0/TkPreGenObjs.java
@@ -0,0 +1,82 @@
+package com.dy.aceMw.server.busi.deal.p206V1_0_0;
+
+import com.dy.aceMw.server.busi.deal.TaskSurpport;
+import com.dy.common.mw.protocol.Data;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class TkPreGenObjs extends TaskSurpport {
+	
+	private static final Logger log = LogManager.getLogger(TkPreGenObjs.class.getName()) ;
+
+	//绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+	public static final String taskId = "TkPreGenObjs" ;
+
+	/**
+	 * 鎵ц鑺傜偣浠诲姟
+	 * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+	 */
+	@Override
+	public void execute(Object data) {
+		Data d = (Data)data ;
+		String rtuAddr = d.getRtuAddr() ;
+		//寰楀埌鏈湴RTU 鏁版嵁锛屼互澶囧悗闈㈣妭鐐瑰簲鐢�
+		/*
+		BuziInterface baseBusi = BuziGeter.getBaseBusi() ;
+		BuziInterface orgBusi = null ;
+		SyRtu nbRtu = null ;
+		SyRtuTramp rtuTramp = null ;
+		if(baseBusi != null){
+			nbRtu = DbSyBuzi.getRtu(baseBusi, imei) ;
+			if(nbRtu != null){
+				//鏁版嵁搴撲腑鏌ヨ鍒癗B浜у搧锛圧TU瀹炰綋锛�
+				if(nbRtu.orgTag != null && !nbRtu.orgTag.trim().equals("")){
+					orgBusi = BuziGeter.getBusi(nbRtu.orgTag) ;
+					if(orgBusi == null){
+						log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒版爣绛句负" + nbRtu.orgTag + "鐨勪緵姘存満鏋勬暟鎹簱涓氬姟Busi");
+					}else{
+						BaMeter meter = DbOrgBuzi.getMeterByImeiAndNo(orgBusi, imei, meterNo) ;
+						//鍙兘鏈煡璇㈠埌meter锛屽嵆浠嶆槸娴佹氮鑰匯TU锛屼絾浠嶈鍚庣画澶勭悊锛氾紙1锛夈�佷粛鑳借瘑鍒嚭娴佹氮鑰匯TU锛岋紙2锛夈�佷粛瑕佽褰曞叾涓婃姤鏁版嵁
+						if(meter != null){
+							String protocol = d.getProtocol() ;
+							if(protocol != null){
+								protocol = protocol.trim();
+								if(!protocol.equals("")){
+									if(meter.protocol == null 
+											|| meter.protocol.trim().equals("")
+											|| !meter.protocol.trim().equals(protocol)){
+										//闇�瑕佹洿鏂板崗璁悕绉�
+										DbOrgBuzi.updateMeter4Protocol(orgBusi, meter.id, protocol);
+									}
+								}
+							}
+						}
+						this.taskResult = new Object[]{baseBusi, orgBusi, nbRtu, null, meter} ;	
+						this.toNextTasks(data);
+					}
+				}else{
+					//NB浜у搧锛圧TU瀹炰綋锛夋湭鍒嗛厤缁欏叿浣撶殑渚涙按鏈烘瀯
+					//娴佹氮鑰匯TU
+					rtuTramp = DbSyBuzi.getSyRtuTramp(baseBusi, imei, meterNo) ;
+					if(rtuTramp == null){
+						rtuTramp = new SyRtuTramp(imei, meterNo) ; 
+					}
+					this.taskResult = new Object[]{baseBusi, orgBusi, nbRtu, rtuTramp, null} ;
+					this.toNextOneTask(data, TkDealRtuTramp.taskId);
+				}
+			}else{
+				//鏁版嵁搴撲腑鏈煡璇㈠埌NB浜у搧锛圧TU瀹炰綋锛�
+				//娴佹氮鑰匯TU
+				rtuTramp = DbSyBuzi.getSyRtuTramp(baseBusi, imei, meterNo) ;
+				if(rtuTramp == null){
+					rtuTramp = new SyRtuTramp(imei, meterNo) ; 
+				}
+				this.taskResult = new Object[]{baseBusi, orgBusi, nbRtu, rtuTramp, null} ;
+				this.toNextOneTask(data, TkDealRtuTramp.taskId);
+			}
+		}else{
+			log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癇aseBusi瀵硅薄");
+		}
+		*/
+	}
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionFromRtu.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionFromRtu.java
index 896f2d8..fa580b0 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionFromRtu.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionFromRtu.java
@@ -1,5 +1,7 @@
 package com.dy.aceMw.server.forTcp;
 
+import com.dy.aceMw.server.busi.AboutRtuNode;
+import com.dy.aceMw.server.busi.TcpUpDataCache;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -23,33 +25,33 @@
 				//姝ゅ瀹炵幇锛屼笌浠ュ墠涓嶄竴鏍凤紝
 				//浠ュ墠瀹炵幇锛氬尮閰嶅懡浠ゆ槸浠庡悗鍚戝墠鍖归厤锛�
 				//褰撳墠瀹炵幇锛屽尮閰嶅懡浠ゆ槸浠庡墠鍚戝悗鍖归厤锛屽師鍥狅細涓句緥锛屽綋鎵归噺涓嬪彂琛ュ彫鍛戒护锛屽鏋滀粠鍚庡尮閰嶏紝鍒欏墠闈㈠懡浠や細涓嬪彂澶氭锛屽嵆涓�涓笂鎶ユ鏁版嵁浼氳ˉ鍙娆�
-				MidResultToRtu resToRtu = TcpDownCommandCach.matchFromHead(resFromRtu) ;
+				MidResultToRtu resToRtu = TcpDownCommandCache.matchFromHead(resFromRtu) ;
 				if(resToRtu != null){
 					//鍖归厤鍒颁笅鍙戠殑鍛戒护
 					resFromRtu.setCommandId(resToRtu.commandId) ;
-					this.sendResult(false, resFromRtu);
+					this.nextDeal(false, resFromRtu);
 				}else{
-					this.sendResult(false, resFromRtu);
+					this.nextDeal(false, resFromRtu);
 					//鏈尮閰嶅埌涓嬪彂鐨勫懡浠わ紝鍛戒护鍦ㄧ紦瀛樺洜瓒呮椂琚竻闄や簡
 					RtuStatusDealer.commandFail2Success(resFromRtu.rtuAddr) ;
 				}
 			}else{
 				//涓诲姩涓婃姤鏁版嵁
-				this.sendResult(true, resFromRtu);
+				this.nextDeal(true, resFromRtu);
 			}
 		}
 	}
-	private void sendResult(boolean reportOrResponse_trueOrFalse, MidResultFromRtu resFromRtu){
+
+	/**
+	 * 杩涘叆澶氱嚎绋嬬幆澧冧腑杩愯
+	 * @param reportOrResponse_trueOrFalse
+	 * @param resFromRtu
+	 */
+	private void nextDeal(boolean reportOrResponse_trueOrFalse, MidResultFromRtu resFromRtu){
 		try{
-			String json = resFromRtu.data.toJson() ;
-//			if(reportOrResponse_trueOrFalse){
-//				ToMqMessageCach.cachObj(MessageType.RtuAutoReport, json);
-//			}else{
-//				ToMqMessageCach.cachObj(MessageType.RtuCmdResponse, json);
-//			}
+			TcpUpDataCache.cacheRtuUpData(reportOrResponse_trueOrFalse, new AboutRtuNode(resFromRtu.data));
 		}catch(Exception e){
 			log.error(e.getMessage(), e);
 		}
-		
 	}
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionToRtu.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionToRtu.java
index 33e2417..e8d0d3c 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionToRtu.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionToRtu.java
@@ -15,7 +15,7 @@
 		if(result != null && result instanceof MidResultToRtu){
 			try {
 				MidResultToRtu resToRtu = (MidResultToRtu)result ;
-				TcpDownCommandCach.cachCommand(resToRtu);
+				TcpDownCommandCache.cacheCommand(resToRtu);
 				log.info("涓嬭鍛戒护(toRtu)" + resToRtu.downCode + "涓棿缁撴灉宸茬粡鏀惧叆涓嬭鍛戒护缂撳瓨涓�");
 			} catch (Exception e) {
 				log.error(e);
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpDownCommandCach.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpDownCommandCache.java
similarity index 72%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpDownCommandCach.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpDownCommandCache.java
index fcdf427..7a0cf8b 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpDownCommandCach.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpDownCommandCache.java
@@ -10,18 +10,18 @@
 /**
  * 闈炵嚎绋嬪畨鍏ㄧ殑锛屽彧鑳藉湪鍗曠嚎绋嬩腑杩愯
  */
-public class TcpDownCommandCach {
+public class TcpDownCommandCache {
 	
 	//TCP涓嬭鍛戒护缂撳瓨闃熷垪
-	private static Queue cachQueue = new Queue("tcpDownComandQueue") ;
+	private static Queue cacheQueue = new Queue("tcpDownCommandQueue") ;
 	
-	private static TcpDownCommandCach instance = new TcpDownCommandCach() ;
+	private static TcpDownCommandCache instance = new TcpDownCommandCache() ;
 	
-	private TcpDownCommandCach(){
-		cachQueue.setLimit(990000, 1000000);
+	private TcpDownCommandCache(){
+		cacheQueue.setLimit(ServerProperties.cacheUpDownDataWarnCount, ServerProperties.cacheUpDownDataMaxCount);
 	}
 	
-	public static TcpDownCommandCach getInstance(){
+	public static TcpDownCommandCache getInstance(){
 		return instance ;
 	}
 
@@ -30,16 +30,16 @@
 	 * @param result
 	 * @throws Exception
 	 */
-	public static void cachCommand(MidResultToRtu result) throws Exception{
+	public static void cacheCommand(MidResultToRtu result) throws Exception{
 		if(result != null){
 			if(result.maxSendTimes == null){
 				//璁剧疆鏈�澶у彂閫佹鏁�
 				result.maxSendTimes = ServerProperties.downComandMaxResendTimes ;
 			}
 			if(result.isSendFirst){
-				cachQueue.pushHead(new TcpDownCommandObj(result));
+				cacheQueue.pushHead(new TcpDownCommandObj(result));
 			}else{
-				cachQueue.pushTail(new TcpDownCommandObj(result));
+				cacheQueue.pushTail(new TcpDownCommandObj(result));
 			}
 		}
 	}
@@ -52,7 +52,7 @@
 	public static MidResultToRtu matchFromHead(MidResultFromRtu rsFromRtu){
 		MidResultToRtu res = null ;
 		TcpDownCommandObj obj = null ;
-		Node node = cachQueue.getFirstNode() ;
+		Node node = cacheQueue.getFirstNode() ;
 		while(node != null && node.obj != null){
 			obj = (TcpDownCommandObj)node.obj;
 			res = obj.result ;
@@ -77,7 +77,7 @@
 	public static MidResultToRtu matchFromTail(MidResultFromRtu rsFromRtu){
 		MidResultToRtu res = null ;
 		TcpDownCommandObj obj = null ;
-		Node node = cachQueue.getLastNode() ;
+		Node node = cacheQueue.getLastNode() ;
 		while(node != null && node.obj != null){
 			obj = (TcpDownCommandObj)node.obj;
 			res = obj.result ;
@@ -99,7 +99,7 @@
 	 * @return
 	 */
 	public static Node getFirstQueueNode(){
-		return cachQueue.getFirstNode() ;
+		return cacheQueue.getFirstNode() ;
 	}
 	
 	/**
@@ -107,7 +107,7 @@
 	 * @return
 	 */
 	public static Node getLastQueueNode(){
-		return cachQueue.getLastNode() ;
+		return cacheQueue.getLastNode() ;
 	}
 	
 	/**
@@ -115,15 +115,15 @@
 	 * @param node
 	 */
 	public static void removeNode(Node node){
-		cachQueue.remove(node);
+		cacheQueue.remove(node);
 	}
 
 	/**
 	 * 缂撳瓨鐨勮妭鐐规暟
-	 * @param node
+	 * @Return 缂撳瓨鑺傜偣鏁�
 	 */
 	public static Integer size(){
-		return cachQueue.size() ;
+		return cacheQueue.size() ;
 	}
 
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/BusiConstantTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/BusiConstantTask.java
new file mode 100644
index 0000000..f710dda
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/BusiConstantTask.java
@@ -0,0 +1,74 @@
+package com.dy.aceMw.server.tasks;
+
+import com.dy.aceMw.server.busi.AboutRtuNode;
+import com.dy.aceMw.server.busi.TcpUpDataCache;
+import com.dy.common.mw.core.CoreTask;
+import com.dy.common.queue.Node;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * 瀵筊TU涓婅鏁版嵁杩涜涓氬姟澶勭悊
+ */
+public class BusiConstantTask  extends CoreTask {
+    private static final Logger log = LogManager.getLogger(BusiConstantTask.class.getName());
+
+    /**
+     * 鍦ㄥ崟绾跨▼鐜涓繍琛�
+     */
+    @Override
+    public Integer excute() {
+        try{
+            return dealRtuUpdata() ;
+        }catch(Exception e){
+            log.error(e);
+        }
+        return null ;
+    }
+
+    /**
+     * 澶勭悊涓婅鏁版嵁
+     */
+    public Integer dealRtuUpdata() {
+        Node first = TcpUpDataCache.getFirstQueueNode() ;
+        if(first != null){
+            Integer count = TcpUpDataCache.size() ;
+            Node last = TcpUpDataCache.getLastQueueNode() ;
+            this.doDealRtuUpdata(first, last);
+            return count ;
+        }
+        return null ;
+    }
+
+    /**
+     * 澶勭悊缂撳瓨鐨勪笂琛屾暟鎹妭鐐�
+     * @param first 绗竴涓妭鐐�
+     * @param last 鏈�鍚庝竴涓妭鐐�
+     */
+    private void doDealRtuUpdata(Node first, Node last){
+        if(last != null){
+            //鍦╠ealNode鏂规硶涓紝鍙兘瑕佹妸last浠庨槦鍒椾腑绉婚櫎锛岃繖鏃秎ast.pre涓虹┖锛屾墍浠ユ彁鍓嶆妸last.pre鍙栧嚭鏉�
+            Node pre = last.pre ;
+            dealNode(last) ;
+            if(first != null && first != last){
+                doDealRtuUpdata(first, pre) ;
+            }else if(first != null && first == last){
+                //鍋滄
+            }else if(first == null){
+                //杩欑鎯呭喌涓嶄細瀛樺湪
+                doDealRtuUpdata(null, pre) ;
+            }
+        }
+    }
+
+    /**
+     * 澶勭悊涓�涓妭鐐�
+     * @param node 鑺傜偣
+     */
+    private void dealNode(Node node){
+        AboutRtuNode obj = (AboutRtuNode)node.obj ;
+        obj.dealSelf() ;
+        TcpUpDataCache.removeNode(node);
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuDownTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuDownTask.java
index 410f43c..7362c7a 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuDownTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuDownTask.java
@@ -34,8 +34,7 @@
 	
 	/**
 	 * 澶勭悊鍛戒护
-	 * @param webJgroupName
-	 * @param com
+	 * @param com 鍛戒护
 	 * @throws Exception
 	 */
 	private void deal(Command com) throws Exception{
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java
index 16418cf..bfa8f7f 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java
@@ -150,7 +150,7 @@
 		}else{
 			MidResult[] midRs = dri.parseData(ServerProperties.isLowPower, rtuAddrAtHead, upBuf, upHex, new DriverParserDataCallback(){
 				@Override
-				public void callback(String rtuAddrAtHead, String meterNoAtHead, String code, String upHex, Boolean reportOrResponse_trueOrFalse, boolean parseFail, String rtuAddrInData, String meterNoInData) {
+				public void callback(String rtuAddrAtHead, String code, String upHex, Boolean reportOrResponse_trueOrFalse, boolean parseFail, String rtuAddrInData) {
 					//鏇存柊缁堢鐘舵��
 					if(rtuAddrInData != null && !rtuAddrInData.equals(rtuAddrAtHead)){
 						//鏁版嵁澶翠腑鐨凴TU鍦板潃涓庢暟鎹腑鐨凴TU鍦板潃涓嶄竴鑷达紝鏇存崲鎴愭暟鎹腑鐨凴TU鍦板潃
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java
index 08721c8..d042ef3 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java
@@ -5,7 +5,7 @@
 
 import com.dy.common.queue.Node;
 import com.dy.common.mw.core.CoreTask;
-import com.dy.aceMw.server.forTcp.TcpDownCommandCach;
+import com.dy.aceMw.server.forTcp.TcpDownCommandCache;
 import com.dy.aceMw.server.forTcp.TcpDownCommandObj;
 import com.dy.aceMw.server.forTcp.TcpSessionCach;
 
@@ -40,16 +40,12 @@
 	 * 澶勭悊涓嬭鍛戒护
 	 */
 	public Integer dealDownCommand(Long now) {
-		try{
-			Node first = TcpDownCommandCach.getFirstQueueNode() ;
-			if(first != null){
-				Integer count = TcpDownCommandCach.size() ;
-				Node last = TcpDownCommandCach.getLastQueueNode() ;
-				this.doDealDownCommand(now, first, last);
-				return count ;
-			}
-		}catch(Exception e){
-			log.error(e);
+		Node first = TcpDownCommandCache.getFirstQueueNode() ;
+		if(first != null){
+			Integer count = TcpDownCommandCache.size() ;
+			Node last = TcpDownCommandCache.getLastQueueNode() ;
+			this.doDealDownCommand(now, first, last);
+			return count ;
 		}
 		return null ;
 	}
@@ -57,9 +53,9 @@
 	 * 澶勭悊缂撳瓨鐨勪笅琛屽懡浠よ妭鐐�
 	 * @param now 褰撳墠鏃跺埢
 	 * @param first 绗竴涓妭鐐�
-	 * @param last 鏄悗涓�涓妭鐐�
+	 * @param last 鏈�鍚庝竴涓妭鐐�
 	 */
-	private void doDealDownCommand(Long now, Node first, Node last){
+	private void doDealDownCommand1(Long now, Node first, Node last){
 		if(first != null){
 			//鍦╠ealNode鏂规硶涓紝鍙兘瑕佹妸first浠庨槦鍒椾腑绉婚櫎锛岃繖鏃秄irst.next涓虹┖锛屾墍浠ユ彁鍓嶆妸first.next鍙栧嚭鏉�
 			Node next = first.next ;
@@ -74,6 +70,28 @@
 			}
 		}
 	}
+
+	/**
+	 * 澶勭悊缂撳瓨鐨勪笅琛屽懡浠よ妭鐐�
+	 * @param now 褰撳墠鏃跺埢
+	 * @param first 绗竴涓妭鐐�
+	 * @param last 鏈�鍚庝竴涓妭鐐�
+	 */
+	private void doDealDownCommand(Long now, Node first, Node last){
+		if(last != null){
+			//鍦╠ealNode鏂规硶涓紝鍙兘瑕佹妸last浠庨槦鍒椾腑绉婚櫎锛岃繖鏃秎ast.pre涓虹┖锛屾墍浠ユ彁鍓嶆妸last.pre鍙栧嚭鏉�
+			Node pre = last.pre ;
+			dealNode(now, last) ;
+			if(first != null && first != last){
+				doDealDownCommand(now, first, pre) ;
+			}else if(first != null && first == last){
+				//鍋滄
+			}else if(first == null){
+				//杩欑鎯呭喌涓嶄細瀛樺湪
+				doDealDownCommand(now, null, pre) ;
+			}
+		}
+	}
 	
 	/**
 	 * 澶勭悊涓�涓妭鐐�
@@ -84,7 +102,7 @@
 		TcpDownCommandObj obj = (TcpDownCommandObj)node.obj ;
 		boolean removeNode = obj.dealSelf(now) ;
 		if(removeNode){
-			TcpDownCommandCach.removeNode(node);
+			TcpDownCommandCache.removeNode(node);
 		}
 	}
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/config.xml
index 230a69b..b7d4729 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/config.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/config.xml
@@ -14,6 +14,8 @@
 		offLineCachTimeout: 涓嶅湪绾跨紦瀛樼殑鍛戒护鏈�澶х紦瀛樻椂闀�(绉�)
 		lastUpDataTimeLive: TCP涓婅鏁版嵁鏃跺埢缂撳瓨鏃堕暱(绉�)锛屽綋杈惧埌鏃堕暱鏃讹紝TCP涓婅鏁版嵁鏃跺埢琚竻绌猴紝閲囩敤TCP涓婅鏁版嵁鏃跺埢鐩殑鏄紝闃绘涓婅鏁版嵁鍚屾椂涓嬪彂鏁版嵁锛屽洜涓篟TU澶勭悊涓嶈繃鏉�(缁忓垵娆″疄楠岋紝1绉掕繕鏄湁闂锛�2绉掓棤闂)
 		dbDataIdSuffix锛氭暟鎹簱鏁版嵁id鐢熸垚鍣ㄧ殑id鍚庣紑锛�0鏄粯璁ょ殑鍚庣紑锛屼竴鑸瑆eb绯荤粺搴旂敤锛屾暟鎹腑闂翠欢id鍚庣紑澶т簬绛変簬1 
+		cacheUpDownDataWarnCount锛氫笂涓嬭鏁版嵁缂撳瓨闃熷垪涓紦瀛樻暟鎹釜鏁扮殑鎶ヨ閲忥紝杩欎釜涓庣幇瀹為」鐩墍鎺ユ按琛ㄦ暟鐩稿叧
+		cacheUpDownDataMaxCount锛氫笂涓嬭鏁版嵁缂撳瓨闃熷垪涓紦瀛樻暟鎹釜鏁扮殑鏈�澶у�硷紝杩欎釜涓庣幇瀹為」鐩墍鎺ユ按琛ㄦ暟鐩稿叧
 		 -->
 		<base 
 			isLowPower="false"
@@ -24,6 +26,8 @@
 			offLineCachTimeout="86400"
 			lastUpDataTimeLive="1"
 			dbDataIdSuffix="1"
+			cacheUpDownDataWarnCount="100000"
+			cacheUpDownDataMaxCount="110000"
 		/>
 		
 		<!-- 
@@ -53,27 +57,28 @@
 		<!-- 
 		鏀寔妯″潡
 		鐭伐浣滄椂闀跨嚎绋嬫睜锛岀嚎绋嬭礋璐g敤鏃惰緝鐭殑宸ヤ綔浠诲姟
-		short_maxThread锛� 姹犱腑鏈�澶х嚎绋嬫暟涓烘墍鏈塁PU鏍告暟+1
-		short_minThread锛� 姹犱腑鏈�灏忕嚎绋嬫暟 
+		short_maxThread锛� 姹犱腑鏈�澶х嚎绋嬫暟涓烘墍鏈塁PU鏍告暟+1锛坰hort姹犱笌long姹犲悇鍒嗕竴鍗婏級锛岃嫢涓�-1锛屼笉鍙楅檺鍒� 锛岃缃负0锛岃〃绀轰笉鍚姩绾跨▼姹�
+		short_minThread锛� 姹犱腑鏈�灏忕嚎绋嬫暟锛岃嫢涓�-1锛屼笉鍙楅檺鍒讹紝璁剧疆涓�0锛岃〃绀轰笉鍚姩绾跨▼姹�
 		short_freeTimeout锛� 绾跨▼鏁扮┖闂叉椂闀匡紝鑻ユ睜涓嚎绋嬫暟閲忓ぇ浜巑inThread锛屼笖鏈夌殑绾跨▼绌洪棽鏃堕暱瓒呰繃freeTimeout锛屽垯娓呴櫎璇ョ嚎绋嬶紝涓轰簡涓嶆竻闄わ紝鎶妋inThread涓巑axThread璁剧疆鐩哥瓑
 		short_busyTimeout锛氱嚎绋嬩笉闂存柇宸ヤ綔鏃堕暱锛堝崟浣嶄负绉�)瓒呮椂闄愶紝璁や负绾跨▼宸茬粡浜嗗穿婧冿紝灏嗗己鍒舵竻闄わ紝鐭伐浣滄椂闀胯缃负5绉� 
-		闀垮伐浣滄椂闀跨嚎绋嬫睜锛岀嚎绋嬭礋璐g敤鏃惰緝闀跨殑宸ヤ綔浠诲姟锛屼緥濡備粠Redis涓彇缂撳瓨鐨凴TU涓婅鏁版嵁
-		long_maxThread锛� 姹犱腑鏈�澶х嚎绋嬫暟,鑻ヤ负-1锛屼笉鍙楅檺鍒�
-		long_minThread锛� 姹犱腑鏈�灏忕嚎绋嬫暟 
+		闀垮伐浣滄椂闀跨嚎绋嬫睜锛岀嚎绋嬭礋璐g敤鏃惰緝闀跨殑宸ヤ綔浠诲姟锛屼緥濡傛暟鎹簱瀛樺彇鎿嶄綔
+		long_maxThread锛� 姹犱腑鏈�澶х嚎绋嬫暟涓烘墍鏈塁PU鏍告暟+1锛坰hort姹犱笌long姹犲悇鍒嗕竴鍗婏級锛岃嫢涓�-1锛屼笉鍙楅檺鍒讹紝璁剧疆涓�0锛岃〃绀轰笉鍚姩绾跨▼姹�
+		long_minThread锛� 姹犱腑鏈�灏忕嚎绋嬫暟锛岃嫢涓�-1锛屼笉鍙楅檺鍒讹紝璁剧疆涓�0锛岃〃绀轰笉鍚姩绾跨▼姹�
 		long_freeTimeout锛� 绾跨▼鏁扮┖闂叉椂闀匡紝鑻ユ睜涓嚎绋嬫暟閲忓ぇ浜巑inThread锛屼笖鏈夌殑绾跨▼绌洪棽鏃堕暱瓒呰繃freeTimeout锛屽垯娓呴櫎璇ョ嚎绋�
 		long_busyTimeout锛氱嚎绋嬩笉闂存柇宸ヤ綔鏃堕暱锛堝崟浣嶄负绉�)瓒呮椂闄愶紝鑻ヤ负-1锛屼笉鍙楅檺鍒� 
 		enableThreadPool锛氭槸鍚﹀惎鐢ㄧ嚎绋嬫睜
 		 -->
+		<!-- 褰撳墠瀹炵幇锛屽啓rtu鏃ュ織銆丷MI鏁版嵁澶勭悊鐢ㄥ埌浜嗙煭绾跨▼姹�  -->
+		<!-- 褰撳墠瀹炵幇锛宺tu涓婅鏁版嵁澶勭悊锛堣鍐欐暟鎹級鐢ㄥ埌浜嗙绾跨▼姹�  -->
 		<support
-			short_maxThread="100"
-			short_minThread="5"
+			short_maxThread="6"
+			short_minThread="6"
 			short_freeTimeout="60"
 			short_busyTimeout="5"
-			long_maxThread="200"
-			long_minThread="0"
+			long_maxThread="6"
+			long_minThread="6"
 			long_freeTimeout="60"
 			long_busyTimeout="-1"
-			enableThreadPool="true"
 		/>
 			
 		<!-- 
@@ -105,14 +110,10 @@
 		<!--
 		sleepBigBusy锛氫富绾跨▼澶у繖鏃舵瘡娆℃墽琛岄棿闅旀椂闀匡紙姣锛�
 		sleepSmallBusy锛氫富绾跨▼灏忓繖鏃舵瘡娆℃墽琛岄棿闅旀椂闀匡紙姣锛�
-		queueWarnSize: 缂撳瓨闃熷垪鑺傜偣鏁拌鍛婃暟閲�
-		queueMaxSize: 缂撳瓨闃熷垪鑺傜偣鏁版渶澶ф暟閲�
 		 -->
 		<core
 			sleepBigBusy="100"
 			sleepSmallBusy="500"
-			queueWarnSize="100000"
-			queueMaxSize="300000"
 		/>
 		
 		<!-- 

--
Gitblit v1.8.0