From c936441a1288fa252520d1e7639d607caf7ba7b6 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期三, 08 五月 2024 10:28:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3Vo.java | 101 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Down.java | 86 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd16Vo.java | 29
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd30Vo.java | 29
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Up.java | 72 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java | 3
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java | 120 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd93_A3Vo.java | 11
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Up.java | 74 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java | 112 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd15Vo.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd16Vo.java | 4
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Up.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Down.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Up.java | 74 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java | 93 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Down.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Up.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Down.java | 118 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Up.java | 74 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Down.java | 68 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Up.java | 81 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java | 108 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Down.java | 76 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Up.java | 4
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Down.java | 76 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd92_A2Vo.java | 40
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd68Vo.java | 33
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd99Vo.java | 29
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java | 56
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd21Vo.java | 12
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd30Vo.java | 9
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd86Vo.java | 37
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Down.java | 85 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Up.java | 74 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Down.java | 107 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd9AVo.java | 29
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Up.java | 64 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd92_A2Vo.java | 15
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd23Vo.java | 29
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java | 44
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Down.java | 75 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd26Vo.java | 29
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd26Vo.java | 11
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Up.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd21Vo.java | 29
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd86Vo.java | 10
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd87Vo.java | 10
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Up.java | 4
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Up.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Up.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Down.java | 68 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd22Vo.java | 29
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Up.java | 81 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd23Vo.java | 12
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Up.java | 73 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd22Vo.java | 12
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Up.java | 74 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java | 203 +++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Down.java | 122 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java | 133 ++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Down.java | 85 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Up.java | 82 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Up.java | 6
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd85Vo.java | 4
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd9AVo.java | 9
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd99Vo.java | 9
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd83Vo.java | 56
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd87Vo.java | 37
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Up.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Up.java | 74 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Down.java | 69 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Up.java | 74 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd68Vo.java | 9
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Down.java | 125 ++
77 files changed, 3,681 insertions(+), 31 deletions(-)
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd15Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd15Vo.java
index e453294..54f2c5c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd15Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd15Vo.java
@@ -7,7 +7,7 @@
public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
public String icCardAddr ;//IC鍗″湴鍧�(8浣嶆暟瀛楁垨瀛楁瘝)
- public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�16浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+ public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
public Double chargeMoney ;//鍗曚綅:鍏� 2浣嶅皬鏁扮偣(鏈�澶у�� 99999999.99)
public Double chargeWater ;//鍗曚綅:m3 2浣嶅皬鏁扮偣(鏈�澶у�� 99999999.99)
public String flowNo ;//娴佹按鍙凤紙12浣嶆暟瀛楋級
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd16Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd16Vo.java
index 325814f..a7105c2 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd16Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd16Vo.java
@@ -6,6 +6,6 @@
public class ComCd16Vo {
public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
- public Integer waterAlarm ;//鍓╀綑姘撮噺鎶ヨ鍊�,鍗曚綅:m3銆傛暣鏁帮紝鍙栧�艰寖鍥�0~65535
- public Integer moneyAlarm ;//鍓╀綑閲戦鎶ヨ鍊�,鍗曚綅:鍏冦�傛暣鏁帮紝鍙栧�艰寖鍥�0~65535
+ public Integer waterAlarm ;//鍓╀綑姘撮噺鎶ヨ鍊�,鍗曚綅:m3銆傛暣鏁帮紝鍙栧�艰寖鍥�0~9999
+ public Integer moneyAlarm ;//鍓╀綑閲戦鎶ヨ鍊�,鍗曚綅:鍏冦�傛暣鏁帮紝鍙栧�艰寖鍥�0~9999
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd21Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd21Vo.java
new file mode 100644
index 0000000..015fe88
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd21Vo.java
@@ -0,0 +1,12 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd21Vo {
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+ public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+ public String ip ;//IP锛堜緥濡� 125.235.35.89锛�
+ public Integer port ;//绔彛鍙凤紙0~65536锛�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd22Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd22Vo.java
new file mode 100644
index 0000000..ff1e0d5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd22Vo.java
@@ -0,0 +1,12 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd22Vo {
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+ public Integer maxAmountYear ;//鏈轰簳骞存渶澶х敤姘撮噺鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
+ public Double limitLevel ;//姘翠綅涓嬮檺 鍗曚綅锛歮 鍙栧�艰寖鍥�:0~9999.99
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd23Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd23Vo.java
new file mode 100644
index 0000000..3c6c962
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd23Vo.java
@@ -0,0 +1,12 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd23Vo {
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+ public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+ public String domain ;//鍩熷悕锛堜緥濡� dayuyanjiuyuan.to锛夛紝鏈�澶ч暱搴�42瀛楃
+ public Integer port ;//绔彛鍙凤紙0~65536锛�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd26Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd26Vo.java
new file mode 100644
index 0000000..6662a05
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd26Vo.java
@@ -0,0 +1,11 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd26Vo {
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+ public Integer ipChannel ;//IP閫氶亾鍙� 0x01:1閫氶亾 0x02:2閫氶亾.
+ public Integer maxAmountYear ;//璁惧缁堢骞寸敤姘撮噺 鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd30Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd30Vo.java
new file mode 100644
index 0000000..588e9b1
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd30Vo.java
@@ -0,0 +1,9 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd30Vo {
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd68Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd68Vo.java
new file mode 100644
index 0000000..efee8e1
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd68Vo.java
@@ -0,0 +1,9 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd68Vo {
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd86Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd86Vo.java
new file mode 100644
index 0000000..e6dc649
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd86Vo.java
@@ -0,0 +1,10 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd86Vo {
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+ public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd87Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd87Vo.java
new file mode 100644
index 0000000..dbd0dff
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd87Vo.java
@@ -0,0 +1,10 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd87Vo {
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+ public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd92_A2Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd92_A2Vo.java
new file mode 100644
index 0000000..fd7c258
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd92_A2Vo.java
@@ -0,0 +1,15 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd92_A2Vo {
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+ public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+ public Double waterRemain ;//鐢ㄦ埛鍓╀綑姘撮噺, 涓や釜灏忔暟鐐�, 鍗曚綅m3, 0~99999999.99
+ public Double moneyRemain ;//鐢ㄦ埛鍓╀綑閲戦, 涓や釜灏忔暟鐐�, 鍗曚綅鍏�, 0~999999.99
+ public Double waterPrice ;//姘撮噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣
+ public Double elePrice ;//鐢甸噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣
+ public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd93_A3Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd93_A3Vo.java
new file mode 100644
index 0000000..d1d6369
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd93_A3Vo.java
@@ -0,0 +1,11 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd93_A3Vo {
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+ public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+ public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd99Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd99Vo.java
new file mode 100644
index 0000000..fe36263
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd99Vo.java
@@ -0,0 +1,9 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd99Vo {
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd9AVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd9AVo.java
new file mode 100644
index 0000000..39d5dfc
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd9AVo.java
@@ -0,0 +1,9 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd9AVo {
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Down.java
index 8cd9aa2..0837b57 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Down.java
@@ -64,7 +64,7 @@
index += 8 ;
GlCreate.createPw(bs, index);
- index ++ ;
+ index += 2 ;
GlCreate.createS2D(bs, index) ;
index += 4 ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Up.java
index c3158a6..b584926 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Up.java
@@ -60,7 +60,7 @@
cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
index++ ;
- cdData.projectNo = 0 + bs[index];
+ cdData.projectNo = (int)bs[index];
index++ ;
cdData.rtuNewAddr = new CommonV202404().parseRtuAddr(bs, index) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Down.java
index a853664..b1054dd 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Down.java
@@ -122,7 +122,7 @@
index += 6 ;
GlCreate.createPw(bs, index);
- index ++ ;
+ index += 2 ;
GlCreate.createS2D(bs, index) ;
index += 4 ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Up.java
index 0ff2a95..6843b57 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Up.java
@@ -61,7 +61,7 @@
cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
index++ ;
- cdData.projectNo = 0 + bs[index];
+ cdData.projectNo = (int)bs[index];
index++ ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java
index 4dc4781..9d08509 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java
@@ -53,13 +53,12 @@
if(cvo == null){
throw new Exception("json杞珻omCd16Vo涓簄ull") ;
}
- if(cvo.moneyAlarm < 0 || cvo.moneyAlarm > 65535){
- throw new Exception("鍓╀綑閲戦鎶ヨ鍊煎繀椤绘槸0~65535鑼冨洿鍐呯殑鏁存暟") ;
+ if(cvo.moneyAlarm < 0 || cvo.moneyAlarm > 9999){
+ throw new Exception("鍓╀綑閲戦鎶ヨ鍊煎繀椤绘槸0~9999鑼冨洿鍐呯殑鏁存暟") ;
}
- if(cvo.waterAlarm < 0 || cvo.waterAlarm > 65535){
- throw new Exception("鍓╀綑姘撮噺鎶ヨ鍊煎繀椤绘槸0~65535鑼冨洿鍐呯殑鏁存暟") ;
+ if(cvo.waterAlarm < 0 || cvo.waterAlarm > 9999){
+ throw new Exception("鍓╀綑姘撮噺鎶ヨ鍊煎繀椤绘槸0~9999鑼冨洿鍐呯殑鏁存暟") ;
}
-
byte[] bs = new byte[13] ;
int index = 0 ;
@@ -68,16 +67,43 @@
index ++ ;
bs[index] = cvo.projectNo.byteValue() ;
- index ++ ;
- ByteUtilUnsigned.short2Bytes_BE(bs, cvo.waterAlarm, index);
index ++ ;
- ByteUtilUnsigned.short2Bytes_BE(bs, cvo.moneyAlarm, index);
+ String strTemp = "" + cvo.waterAlarm ;
+ byte[] bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+ int bTempLen = bTemp.length ;
+ int count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 2){
+ break ;
+ }
+ }
+ for(; count < 2; count++){
+ bs[index++] = 0 ;
+ }
+
+ index += 4 ;
+ strTemp = "" + cvo.moneyAlarm ;
+ bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+ bTempLen = bTemp.length ;
+ count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 2){
+ break ;
+ }
+ }
+ for(; count < 2; count++){
+ bs[index++] = 0 ;
+ }
index ++ ;
GlCreate.createPw(bs, index);
- index ++ ;
+ index += 2 ;
GlCreate.createS2D(bs, index) ;
index += 4 ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Up.java
new file mode 100644
index 0000000..9f1be21
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Up.java
@@ -0,0 +1,74 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd16Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd99Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_16
+})
+@SuppressWarnings("unused")
+public class Cd_16_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_16_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd16Vo cdData = new DataCd16Vo() ;
+ dV1.subData = cdData ;
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index++ ;
+ byte result = bs[index];
+ if(result == 1){
+ cdData.success = true ;
+ }else{
+ cdData.success = false ;
+ }
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Down.java
new file mode 100644
index 0000000..9e72ed9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Down.java
@@ -0,0 +1,118 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd21Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+import java.nio.charset.StandardCharsets;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_21
+})
+public class Cd_21_Down implements CodeParse {
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ String json = (String)para.param;
+ ComCd21Vo cvo = JSON.parseObject(json, ComCd21Vo.class) ;
+ if(cvo == null){
+ throw new Exception("json杞珻omCd21Vo涓簄ull") ;
+ }
+ if(cvo.channel == null){
+ throw new Exception("IP閫氶亾鍙蜂笉鑳戒负绌�") ;
+ }
+ if(cvo.channel != 1 && cvo.channel != 2){
+ throw new Exception("IP閫氶亾鍙峰彧鑳芥槸1鎴�2") ;
+ }
+ if(cvo.ip == null || cvo.ip.equals("")){
+ throw new Exception("IP涓嶈兘涓虹┖") ;
+ }
+ if(cvo.ip.length() > 15){
+ throw new Exception("IP鏈�澶ч暱搴︽槸15涓瓧绗�") ;
+ }
+ if(cvo.port < 0 || cvo.port > 65535){
+ throw new Exception("绔彛鍙峰繀椤绘槸0~65535鑼冨洿鍐呯殑鏁存暟") ;
+ }
+
+ byte[] ipBs = cvo.ip.getBytes(StandardCharsets.UTF_8) ;
+ byte[] portBs = ("" + cvo.port).getBytes(StandardCharsets.UTF_8) ;
+
+ byte[] bs = new byte[4] ;
+ int index = 0 ;
+ bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+ index ++ ;
+ bs[index] = cvo.projectNo.byteValue() ;
+
+ index ++ ;
+ bs[index] = cvo.channel.byteValue() ;
+
+ index ++ ;
+ bs[index] = (byte)((ipBs.length << 4) + portBs.length) ;
+
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+ bytes = ByteUtil.bytesMerge(bytes, ipBs) ;
+ bytes = ByteUtil.bytesMerge(bytes, portBs) ;
+
+
+ byte[] bs1 = new byte[7] ;
+ index ++ ;
+ GlCreate.createPw(bs1, index);
+
+ index += 2 ;
+ GlCreate.createS2D(bs1, index) ;
+
+ index += 4 ;
+ bs1[index] = 0 ; //鏃跺欢
+ bytes = ByteUtil.bytesMerge(bytes, bs1) ;
+
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Up.java
new file mode 100644
index 0000000..ecf2a7d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Up.java
@@ -0,0 +1,74 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd21Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd22Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_21
+})
+@SuppressWarnings("unused")
+public class Cd_21_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_21_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd21Vo cdData = new DataCd21Vo() ;
+ dV1.subData = cdData ;
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index++ ;
+ byte result = bs[index];
+ if(result == 1){
+ cdData.success = true ;
+ }else{
+ cdData.success = false ;
+ }
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Down.java
new file mode 100644
index 0000000..84fa421
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Down.java
@@ -0,0 +1,125 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd16Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd22Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_22
+})
+public class Cd_22_Down implements CodeParse {
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ String json = (String)para.param;
+ ComCd22Vo cvo = JSON.parseObject(json, ComCd22Vo.class) ;
+ if(cvo == null){
+ throw new Exception("json杞珻omCd22Vo涓簄ull") ;
+ }
+ if(cvo.maxAmountYear < 0 || cvo.maxAmountYear > 99999999){
+ throw new Exception("鏈轰簳骞存渶澶х敤姘撮噺蹇呴』鏄�0~99999999鑼冨洿鍐呯殑鏁存暟") ;
+ }
+ if(cvo.limitLevel < 0 || cvo.limitLevel > 9999.99){
+ throw new Exception("姘翠綅涓嬮檺鍊煎繀椤绘槸0~9999.99鑼冨洿鍐呯殑鏁存暟") ;
+ }
+
+ byte[] bs = new byte[17] ;
+ int index = 0 ;
+ bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+ index ++ ;
+ bs[index] = cvo.projectNo.byteValue() ;
+
+ index ++ ;
+ String strTemp = "" + cvo.maxAmountYear ;
+ byte[] bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+ int bTempLen = bTemp.length ;
+ int count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 4){
+ break ;
+ }
+ }
+ for(; count < 4; count++){
+ bs[index++] = 0 ;
+ }
+
+ index += 4 ;
+ strTemp = "" + (Double.valueOf(cvo.limitLevel * 100)).longValue() ;
+ bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+ bTempLen = bTemp.length ;
+ count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 3){
+ break ;
+ }
+ }
+ for(; count < 3; count++){
+ bs[index++] = 0 ;
+ }
+
+ index ++ ;
+ GlCreate.createPw(bs, index);
+
+ index += 2 ;
+ GlCreate.createS2D(bs, index) ;
+
+ index += 4 ;
+ bs[index] = 0 ; //鏃跺欢
+
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Up.java
new file mode 100644
index 0000000..240bb44
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Up.java
@@ -0,0 +1,74 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd16Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd22Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_22
+})
+@SuppressWarnings("unused")
+public class Cd_22_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_22_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd22Vo cdData = new DataCd22Vo() ;
+ dV1.subData = cdData ;
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index++ ;
+ byte result = bs[index];
+ if(result == 1){
+ cdData.success = true ;
+ }else{
+ cdData.success = false ;
+ }
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Down.java
new file mode 100644
index 0000000..2f858eb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Down.java
@@ -0,0 +1,122 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd21Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd23Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+import java.nio.charset.StandardCharsets;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_23
+})
+public class Cd_23_Down implements CodeParse {
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ String json = (String)para.param;
+ ComCd23Vo cvo = JSON.parseObject(json, ComCd23Vo.class) ;
+ if(cvo == null){
+ throw new Exception("json杞珻omCd21Vo涓簄ull") ;
+ }
+ if(cvo.channel == null){
+ throw new Exception("IP閫氶亾鍙蜂笉鑳戒负绌�") ;
+ }
+ if(cvo.channel != 1 && cvo.channel != 2){
+ throw new Exception("IP閫氶亾鍙峰彧鑳芥槸1鎴�2") ;
+ }
+ if(cvo.domain == null || cvo.domain.equals("")){
+ throw new Exception("鍩熷悕涓嶈兘涓虹┖") ;
+ }
+ if(cvo.domain.length() > 42){
+ throw new Exception("鍩熷悕鏈�澶ч暱搴︽槸42涓瓧绗�") ;
+ }
+ if(cvo.port < 0 || cvo.port > 65535){
+ throw new Exception("绔彛鍙峰繀椤绘槸0~65535鑼冨洿鍐呯殑鏁存暟") ;
+ }
+
+ byte[] domainBs = cvo.domain.getBytes(StandardCharsets.UTF_8) ;
+ byte[] portBs = ("" + cvo.port).getBytes(StandardCharsets.UTF_8) ;
+
+ byte[] bs = new byte[5] ;
+ int index = 0 ;
+ bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+ index ++ ;
+ bs[index] = cvo.projectNo.byteValue() ;
+
+ index ++ ;
+ bs[index] = cvo.channel.byteValue() ;
+
+ index ++ ;
+ bs[index] = (byte)(domainBs.length) ;
+
+ index ++ ;
+ bs[index] = (byte)(portBs.length) ;
+
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+ bytes = ByteUtil.bytesMerge(bytes, domainBs) ;
+ bytes = ByteUtil.bytesMerge(bytes, portBs) ;
+
+
+ byte[] bs1 = new byte[7] ;
+ index ++ ;
+ GlCreate.createPw(bs1, index);
+
+ index += 2 ;
+ GlCreate.createS2D(bs1, index) ;
+
+ index += 4 ;
+ bs1[index] = 0 ; //鏃跺欢
+ bytes = ByteUtil.bytesMerge(bytes, bs1) ;
+
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Up.java
new file mode 100644
index 0000000..bc55aa7
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Up.java
@@ -0,0 +1,74 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd21Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd23Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_23
+})
+@SuppressWarnings("unused")
+public class Cd_23_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_23_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd23Vo cdData = new DataCd23Vo() ;
+ dV1.subData = cdData ;
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index++ ;
+ byte result = bs[index];
+ if(result == 1){
+ cdData.success = true ;
+ }else{
+ cdData.success = false ;
+ }
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java
new file mode 100644
index 0000000..18cc778
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java
@@ -0,0 +1,112 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd22Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd26Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_26
+})
+public class Cd_26_Down implements CodeParse {
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ String json = (String)para.param;
+ ComCd26Vo cvo = JSON.parseObject(json, ComCd26Vo.class) ;
+ if(cvo == null){
+ throw new Exception("json杞珻omCd22Vo涓簄ull") ;
+ }
+ if(cvo.ipChannel != 1 && cvo.ipChannel !=2){
+ throw new Exception("IP閫氶亾鍙峰彧鑳芥槸1鎴�2") ;
+ }
+
+ if(cvo.maxAmountYear < 0 || cvo.maxAmountYear > 99999999){
+ throw new Exception("璁惧缁堢骞寸敤姘撮噺蹇呴』鏄�0~99999999鑼冨洿鍐呯殑鏁存暟") ;
+ }
+
+ byte[] bs = new byte[15] ;
+ int index = 0 ;
+ bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+ index ++ ;
+ bs[index] = cvo.projectNo.byteValue() ;
+
+ index ++ ;
+ bs[index] = cvo.ipChannel.byteValue() ;
+
+ index ++ ;
+ String strTemp = "" + cvo.maxAmountYear ;
+ byte[] bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+ int bTempLen = bTemp.length ;
+ int count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 4){
+ break ;
+ }
+ }
+ for(; count < 4; count++){
+ bs[index++] = 0 ;
+ }
+
+ index ++ ;
+ GlCreate.createPw(bs, index);
+
+ index += 2 ;
+ GlCreate.createS2D(bs, index) ;
+
+ index += 4 ;
+ bs[index] = 0 ; //鏃跺欢
+
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Up.java
new file mode 100644
index 0000000..e523f34
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Up.java
@@ -0,0 +1,74 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd22Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd26Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_26
+})
+@SuppressWarnings("unused")
+public class Cd_26_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_26_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd26Vo cdData = new DataCd26Vo() ;
+ dV1.subData = cdData ;
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index++ ;
+ byte result = bs[index];
+ if(result == 1){
+ cdData.success = true ;
+ }else{
+ cdData.success = false ;
+ }
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Down.java
new file mode 100644
index 0000000..aeca6dc
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Down.java
@@ -0,0 +1,85 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd22Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd30Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_16
+})
+public class Cd_30_Down implements CodeParse {
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ String json = (String)para.param;
+ ComCd30Vo cvo = JSON.parseObject(json, ComCd30Vo.class) ;
+ if(cvo == null){
+ throw new Exception("json杞珻omCd30Vo涓簄ull") ;
+ }
+ byte[] bs = new byte[9] ;
+ int index = 0 ;
+ bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+ index ++ ;
+ bs[index] = cvo.projectNo.byteValue() ;
+
+ index ++ ;
+ GlCreate.createPw(bs, index);
+
+ index += 2 ;
+ GlCreate.createS2D(bs, index) ;
+
+ index += 4 ;
+ bs[index] = 0 ; //鏃跺欢
+
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Up.java
new file mode 100644
index 0000000..fc39ba9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Up.java
@@ -0,0 +1,74 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd22Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd30Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_30
+})
+@SuppressWarnings("unused")
+public class Cd_30_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_30_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd30Vo cdData = new DataCd30Vo() ;
+ dV1.subData = cdData ;
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index++ ;
+ byte result = bs[index];
+ if(result == 1){
+ cdData.success = true ;
+ }else{
+ cdData.success = false ;
+ }
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Up.java
index dc88816..096cf4c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Up.java
@@ -60,7 +60,7 @@
cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
index++ ;
- cdData.projectNo = 0 + bs[index];
+ cdData.projectNo = (int)bs[index];
index++ ;
cdData.rtuAddr = new CommonV202404().parseRtuAddr(bs, index) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Up.java
index 19a8adb..cd0a99b 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Up.java
@@ -63,7 +63,7 @@
String controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
index++ ;
- Integer projectNo = 0 + bs[index];
+ Integer projectNo = (int)bs[index];
index++ ;
byte hasRecord = bs[index];
@@ -72,7 +72,7 @@
List<DataCd55Vo> list = new ArrayList<>() ;
DataCd55Vo vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
while(vo != null){
- index += 39 ;
+ index += 35 ;
list.add(vo) ;
vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Up.java
index 7054446..0117757 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Up.java
@@ -62,13 +62,13 @@
cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
index++ ;
- cdData.projectNo = 0 + bs[index];
+ cdData.projectNo = (int)bs[index];
index++ ;
- cdData.waterAlarm = ByteUtilUnsigned.bytes2Short_BE(bs, index) ;
+ cdData.waterAlarm = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
index += 2 ;
- cdData.moneyAlarm = ByteUtilUnsigned.bytes2Short_BE(bs, index) ;
+ cdData.moneyAlarm = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
}
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Up.java
index 8f0dfc1..359696b 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Up.java
@@ -63,7 +63,7 @@
String controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
index++ ;
- Integer projectNo = 0 + bs[index];
+ Integer projectNo = (int)bs[index];
index++ ;
byte hasRecord = bs[index];
@@ -72,7 +72,7 @@
List<DataCd5CVo> list = new ArrayList<>() ;
DataCd5CVo vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
while(vo != null){
- index += 39 ;
+ index += 16 ;
list.add(vo) ;
vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Up.java
index b0ca292..1f5f933 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Up.java
@@ -64,7 +64,7 @@
String controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
index++ ;
- Integer projectNo = 0 + bs[index];
+ Integer projectNo = (int)bs[index];
index++ ;
byte hasRecord = bs[index];
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Down.java
new file mode 100644
index 0000000..89554ef
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Down.java
@@ -0,0 +1,76 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd56Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd68Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_68
+})
+public class Cd_68_Down implements CodeParse {
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ String json = (String)para.param;
+ ComCd68Vo cvo = JSON.parseObject(json, ComCd68Vo.class) ;
+ if(cvo == null){
+ throw new Exception("json杞珻omCd68Vo涓簄ull") ;
+ }
+ byte[] bs = new byte[2] ;
+ int index = 0 ;
+ bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+ index ++ ;
+ bs[index] = cvo.projectNo.byteValue() ;
+
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Up.java
new file mode 100644
index 0000000..190f7fa
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Up.java
@@ -0,0 +1,72 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd68Vo;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_68
+})
+@SuppressWarnings("unused")
+public class Cd_68_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_68_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;//涓诲姩涓婃姤
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd68Vo cdData = new DataCd68Vo() ;
+ dV1.subData = cdData ;
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index++ ;
+ cdData.maxAmountYear = ByteUtil.BCD2Int_LE(bs, index, index + 3) ;
+
+ index += 4 ;
+ cdData.limitLevel = ByteUtil.BCD2Int_LE(bs, index, index + 2)/100.0D ;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java
index 7fe4dd2..458f204 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java
@@ -92,7 +92,7 @@
cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
index++ ;
- cdData.projectNo = 0 + bs[index];
+ cdData.projectNo = (int)bs[index];
index++ ;
GlParse.parseAlarmAndState(bs, index, cdData) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Down.java
new file mode 100644
index 0000000..79ecfb0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Down.java
@@ -0,0 +1,69 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd02Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd83Vo;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_83
+})
+public class Cd_83_Down implements CodeParse {
+
+ //private static Logger log = LogManager.getLogger(Cd_02_Down.class);
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = true ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ DataCd83Vo cdData = (DataCd83Vo)para.param ;
+ byte[] bs = new byte[3] ;
+ bs[0] = (byte)(Integer.parseInt(cdData.controllerType, 16));
+ bs[1] = cdData.projectNo.byteValue() ;
+ bs[2] = 0x01 ;
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java
new file mode 100644
index 0000000..b966bca
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java
@@ -0,0 +1,120 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd83Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_83
+})
+@SuppressWarnings("unused")
+public class Cd_83_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_83_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = true ;
+
+ String confirmComCode = para.upCode ;
+ ParseParamsForDownV202404 downCpParams = new ParseParamsForDownV202404() ;
+ downCpParams.setValue(
+ null,
+ ProtocolConstantV206V202404.protocolName,
+ para.rtuAddr,
+ Command.defaultId,
+ confirmComCode,
+ para.data.subData==null?null:(((DataV202404)para.data.subData).subData),
+ null);
+ //鏋勯�犲簲绛�
+ byte[] data = new Cd_83_Down().doParse(downCpParams) ;
+
+ MidResultToRtu confirmCommand = new MidResultToRtu() ;
+ confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ confirmCommand.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ confirmCommand.commandId = Command.defaultId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ confirmCommand.downCode = confirmComCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ confirmCommand.downBuffer = data ;//涓嬭鍛戒护鏁版嵁
+ confirmCommand.downBufHex = ByteUtil.bytes2Hex(data, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ confirmCommand.hasResponse = false ;//鏄惁鏈夊簲绛�
+ confirmCommand.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�2娆�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
+
+ confirmCommand.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ confirmCommand.isQuickSend = true ;
+ }
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs, confirmCommand} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd83Vo cdData = new DataCd83Vo() ;
+ dV1.subData = cdData ;
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index ++ ;
+ cdData.waterTotalAmountYear = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ;
+
+ index += 5 ;
+ cdData.waterTotalAmountMeter = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ;
+
+ index += 5 ;
+ cdData.eleTotalAmountYear = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ;
+
+ index += 5 ;
+ cdData.eleTotalAmountMeter = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ;
+
+ index += 5 ;
+ cdData.waterTotalAmountDay = ByteUtil.BCD2Int_BE(bs, index, index + 3)/100.0D ;
+
+ index += 4 ;
+ cdData.waterUserTotalAmountDay = ByteUtil.BCD2Int_BE(bs, index, index + 3)/100.0D ;
+
+ index += 4 ;
+ cdData.lossTotalAmountDay = ByteUtil.BCD2Int_BE(bs, index, index + 3)/100.0D ;
+
+ index += 4 ;
+ cdData.batteryVolt = ByteUtil.BCD2Int_BE(bs, index, index + 1)/100.0D ;
+
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Down.java
new file mode 100644
index 0000000..ab2b970
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Down.java
@@ -0,0 +1,68 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd83Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_84
+})
+public class Cd_84_Down implements CodeParse {
+
+ //private static Logger log = LogManager.getLogger(Cd_02_Down.class);
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = true ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ DataCd84Vo cdData = (DataCd84Vo)para.param ;
+ byte[] bs = new byte[2] ;
+ bs[0] = (byte)(Integer.parseInt(cdData.controllerType, 16));
+ bs[1] = cdData.projectNo.byteValue() ;
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java
new file mode 100644
index 0000000..e58fbf9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java
@@ -0,0 +1,133 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd83Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_84
+})
+@SuppressWarnings("unused")
+public class Cd_84_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_84_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = true ;
+
+ String confirmComCode = para.upCode ;
+ ParseParamsForDownV202404 downCpParams = new ParseParamsForDownV202404() ;
+ downCpParams.setValue(
+ null,
+ ProtocolConstantV206V202404.protocolName,
+ para.rtuAddr,
+ Command.defaultId,
+ confirmComCode,
+ para.data.subData==null?null:(((DataV202404)para.data.subData).subData),
+ null);
+ //鏋勯�犲簲绛�
+ byte[] data = new Cd_84_Down().doParse(downCpParams) ;
+
+ MidResultToRtu confirmCommand = new MidResultToRtu() ;
+ confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ confirmCommand.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ confirmCommand.commandId = Command.defaultId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ confirmCommand.downCode = confirmComCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ confirmCommand.downBuffer = data ;//涓嬭鍛戒护鏁版嵁
+ confirmCommand.downBufHex = ByteUtil.bytes2Hex(data, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ confirmCommand.hasResponse = false ;//鏄惁鏈夊簲绛�
+ confirmCommand.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�2娆�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
+
+ confirmCommand.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ confirmCommand.isQuickSend = true ;
+ }
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs, confirmCommand} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd84Vo cdData = new DataCd84Vo() ;
+ dV1.subData = cdData ;
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index ++ ;//姘存车/闃� 0xf0:闃�闂� 0x00:姘存车
+
+ index ++ ;//褰撳墠鐢ㄦ按鏂瑰紡 1涓狧EX 0x00:姝e父鍒峰崱寮�娉�/闃�鐢ㄦ按
+
+ index++ ;
+ cdData.icCardAddr = ByteUtil.bytes2Hex(bs, false, index, 4) ;
+
+ index += 8 ;
+ cdData.icCardNo = GlParse.parseIcCardNo(bs, index, 6, 2) ;
+
+ index += 8 ;
+ cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 7) ;
+
+ index ++ ;
+ String mm = ByteUtil.BCD2String_LE(bs, index, index) ;
+ index ++ ;
+ String HH = ByteUtil.BCD2String_LE(bs, index, index) ;
+ index ++ ;
+ String dd = ByteUtil.BCD2String_LE(bs, index, index) ;
+ index ++ ;
+ String MM = ByteUtil.BCD2String_LE(bs, index, index) ;
+ cdData.opDt = MM + "鏈�" + dd + "鏃�" + HH + "鏃�" + mm + "鍒�" ;
+
+ index ++ ;
+ cdData.waterTotalAmount = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ;
+
+ index += 5 ;
+ cdData.eleTotalAmount = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ;
+
+ index += 5 ;
+ cdData.moneyRemainUser = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ;
+
+ index += 5 ;
+ cdData.waterRemainUser = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ;
+
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Down.java
new file mode 100644
index 0000000..a19ddae
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Down.java
@@ -0,0 +1,68 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_85
+})
+public class Cd_85_Down implements CodeParse {
+
+ //private static Logger log = LogManager.getLogger(Cd_02_Down.class);
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = true ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ DataCd85Vo cdData = (DataCd85Vo)para.param ;
+ byte[] bs = new byte[2] ;
+ bs[0] = (byte)(Integer.parseInt(cdData.controllerType, 16));
+ bs[1] = cdData.projectNo.byteValue() ;
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java
new file mode 100644
index 0000000..b041c07
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java
@@ -0,0 +1,93 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_85
+})
+@SuppressWarnings("unused")
+public class Cd_85_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_85_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = true ;
+
+ String confirmComCode = para.upCode ;
+ ParseParamsForDownV202404 downCpParams = new ParseParamsForDownV202404() ;
+ downCpParams.setValue(
+ null,
+ ProtocolConstantV206V202404.protocolName,
+ para.rtuAddr,
+ Command.defaultId,
+ confirmComCode,
+ para.data.subData==null?null:(((DataV202404)para.data.subData).subData),
+ null);
+ //鏋勯�犲簲绛�
+ byte[] data = new Cd_85_Down().doParse(downCpParams) ;
+
+ MidResultToRtu confirmCommand = new MidResultToRtu() ;
+ confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ confirmCommand.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ confirmCommand.commandId = Command.defaultId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ confirmCommand.downCode = confirmComCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ confirmCommand.downBuffer = data ;//涓嬭鍛戒护鏁版嵁
+ confirmCommand.downBufHex = ByteUtil.bytes2Hex(data, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ confirmCommand.hasResponse = false ;//鏄惁鏈夊簲绛�
+ confirmCommand.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�2娆�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
+
+ confirmCommand.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ confirmCommand.isQuickSend = true ;
+ }
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs, confirmCommand} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd85Vo cdData = new DataCd85Vo() ;
+ dV1.subData = cdData ;
+
+ GlParse.parseCd93A3And85(bs, cdData) ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Down.java
new file mode 100644
index 0000000..d688c82
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Down.java
@@ -0,0 +1,86 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd21Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd86Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_86
+})
+public class Cd_86_Down implements CodeParse {
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ String json = (String)para.param;
+ ComCd86Vo cvo = JSON.parseObject(json, ComCd86Vo.class) ;
+ if(cvo == null){
+ throw new Exception("json杞珻omCd21Vo涓簄ull") ;
+ }
+ if(cvo.channel == null){
+ throw new Exception("IP閫氶亾鍙蜂笉鑳戒负绌�") ;
+ }
+ if(cvo.channel != 1 && cvo.channel != 2){
+ throw new Exception("IP閫氶亾鍙峰彧鑳芥槸1鎴�2") ;
+ }
+
+ byte[] bs = new byte[3] ;
+ int index = 0 ;
+ bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+ index ++ ;
+ bs[index] = cvo.projectNo.byteValue() ;
+
+ index ++ ;
+ bs[index] = cvo.channel.byteValue() ;
+
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Up.java
new file mode 100644
index 0000000..f97cfb3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Up.java
@@ -0,0 +1,81 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd21Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd86Vo;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_86
+})
+@SuppressWarnings("unused")
+public class Cd_86_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_86_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd86Vo cdData = new DataCd86Vo() ;
+ dV1.subData = cdData ;
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index++ ;
+ cdData.channel = (int)bs[index];
+
+ index++ ;
+ short totalLen = ByteUtilUnsigned.byte2Byte(bs, index) ;
+ int ipLen = (totalLen & 0xF0) >> 4 ;
+ int portLen = totalLen & 0x0F ;
+
+ index++ ;
+ cdData.ip = ByteUtil.bytes2String_BE(bs, index, index + ipLen - 1) ;
+
+ index += ipLen ;
+ cdData.port = Integer.parseInt(ByteUtil.bytes2String_BE(bs, index, index + portLen - 1)) ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Down.java
new file mode 100644
index 0000000..69f68c2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Down.java
@@ -0,0 +1,85 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd87Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_87
+})
+public class Cd_87_Down implements CodeParse {
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ String json = (String)para.param;
+ ComCd87Vo cvo = JSON.parseObject(json, ComCd87Vo.class) ;
+ if(cvo == null){
+ throw new Exception("json杞珻omCd21Vo涓簄ull") ;
+ }
+ if(cvo.channel == null){
+ throw new Exception("IP閫氶亾鍙蜂笉鑳戒负绌�") ;
+ }
+ if(cvo.channel != 1 && cvo.channel != 2){
+ throw new Exception("IP閫氶亾鍙峰彧鑳芥槸1鎴�2") ;
+ }
+
+ byte[] bs = new byte[3] ;
+ int index = 0 ;
+ bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+ index ++ ;
+ bs[index] = cvo.projectNo.byteValue() ;
+
+ index ++ ;
+ bs[index] = cvo.channel.byteValue() ;
+
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Up.java
new file mode 100644
index 0000000..055966a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Up.java
@@ -0,0 +1,82 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd86Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd87Vo;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_87
+})
+@SuppressWarnings("unused")
+public class Cd_87_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_87_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd87Vo cdData = new DataCd87Vo() ;
+ dV1.subData = cdData ;
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index++ ;
+ cdData.channel = (int)bs[index];
+
+ index++ ;
+ short domainLen = ByteUtilUnsigned.byte2Byte(bs, index) ;
+
+ index++ ;
+ short portLen = ByteUtilUnsigned.byte2Byte(bs, index) ;
+
+ index++ ;
+ cdData.domain = ByteUtil.bytes2String_BE(bs, index, index + domainLen - 1) ;
+
+ index += domainLen ;
+ cdData.port = Integer.parseInt(ByteUtil.bytes2String_BE(bs, index, index + portLen - 1)) ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java
index e3196a5..4f5c820 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java
@@ -89,7 +89,7 @@
cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
index++ ;
- cdData.projectNo = 0 + bs[index];
+ cdData.projectNo = (int)bs[index];
index++ ;
int lng = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java
new file mode 100644
index 0000000..d6051ea
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java
@@ -0,0 +1,203 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd22Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd92_A2Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.NumUtil;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_92,
+ CodeV202404.cd_A2
+})
+public class Cd_92_A2_Down implements CodeParse {
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ String json = (String)para.param;
+ ComCd92_A2Vo cvo = JSON.parseObject(json, ComCd92_A2Vo.class) ;
+ if(cvo == null){
+ throw new Exception("json杞珻omCd92_A2Vo涓簄ull") ;
+ }
+ if(cvo.waterRemain != null){
+ if(cvo.waterRemain < 0 || cvo.waterRemain > 99999999.99){
+ throw new Exception("鐢ㄦ埛鍓╀綑姘撮噺蹇呴』鏄�0~99999999.99鑼冨洿鍐呯殑鏁版嵁") ;
+ }
+ }
+ if(cvo.moneyRemain != null){
+ if(cvo.moneyRemain < 0 || cvo.moneyRemain > 999999.99){
+ throw new Exception("鐢ㄦ埛鍓╀綑閲戦蹇呴』鏄�0~999999.99鑼冨洿鍐呯殑鏁版嵁") ;
+ }
+ }
+ if(cvo.waterPrice != null){
+ if(cvo.waterPrice < 0 || cvo.waterPrice > 99.99){
+ throw new Exception("姘撮噺鍗曚环蹇呴』鏄�0~99.99鑼冨洿鍐呯殑鏁版嵁") ;
+ }
+ }
+ if(cvo.elePrice != null){
+ if(cvo.elePrice < 0 || cvo.elePrice > 99.99){
+ throw new Exception("鐢甸噺鍗曚环蹇呴』鏄�0~99.99鑼冨洿鍐呯殑鏁版嵁") ;
+ }
+ }
+ if(!NumUtil.isPlusIntNumber(cvo.orderNo)){
+ throw new Exception("璁㈠崟鍙峰繀椤绘槸16浣嶆暟瀛�") ;
+ }
+ if(cvo.orderNo.length() != 12){
+ throw new Exception("璁㈠崟鍙峰繀椤绘槸16浣嶆暟瀛�") ;
+ }
+
+
+ byte[] bs = new byte[39] ;
+ int index = 0 ;
+ bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+ index ++ ;
+ bs[index] = cvo.projectNo.byteValue() ;
+
+ index ++ ;
+ if(cvo.controllerType.equals("01")){
+ bs[index] = (byte)0xF0 ;
+ }else{
+ bs[index] = (byte)0x00 ;
+ }
+
+ index ++ ;
+ GlCreate.createIcCardNo(cvo.icCardNo, bs, index);
+
+ index += 8 ;
+ if(cvo.waterRemain != null){
+ cvo.waterRemain = 0.0 ;
+ }
+ String strTemp = "" + Double.valueOf(cvo.waterRemain * 100).intValue() ;
+ byte[] bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+ int bTempLen = bTemp.length ;
+ int count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 4){
+ break ;
+ }
+ }
+ for(; count < 4; count++){
+ bs[index++] = 0 ;
+ }
+
+ if(cvo.moneyRemain != null){
+ cvo.moneyRemain = 0.0 ;
+ }
+ strTemp = "" + (Double.valueOf(cvo.moneyRemain * 100)).intValue() ;
+ bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+ bTempLen = bTemp.length ;
+ count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 4){
+ break ;
+ }
+ }
+ for(; count < 4; count++){
+ bs[index++] = 0 ;
+ }
+
+
+ if(cvo.waterPrice != null){
+ cvo.waterPrice = 0.0 ;
+ }
+ strTemp = "" + (Double.valueOf(cvo.waterPrice * 100)).intValue() ;
+ bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+ bTempLen = bTemp.length ;
+ count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 2){
+ break ;
+ }
+ }
+ for(; count < 2; count++){
+ bs[index++] = 0 ;
+ }
+
+
+ if(cvo.elePrice != null){
+ cvo.elePrice = 0.0 ;
+ }
+ strTemp = "" + (Double.valueOf(cvo.elePrice * 100)).intValue() ;
+ bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+ bTempLen = bTemp.length ;
+ count = 0 ;
+ for(int i = 0 ; i < bTempLen; i++){
+ bs[index++] = bTemp[i] ;
+ count ++ ;
+ if(count >= 2){
+ break ;
+ }
+ }
+ for(; count < 2; count++){
+ bs[index++] = 0 ;
+ }
+
+
+ ByteUtil.string2BCD_BE(bs, cvo.orderNo, index) ;
+
+ index += 8 ;
+ GlCreate.createPw(bs, index);
+
+ index += 2 ;
+ GlCreate.createS2D(bs, index) ;
+
+ index += 4 ;
+ bs[index] = 0 ; //鏃跺欢
+
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Up.java
new file mode 100644
index 0000000..ba6fd38
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Up.java
@@ -0,0 +1,81 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd92_A2Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd92_A2Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_92,
+ CodeV202404.cd_A2
+})
+@SuppressWarnings("unused")
+public class Cd_92_A2_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_92_A2_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd92_A2Vo cdData = new DataCd92_A2Vo() ;
+ dV1.subData = cdData ;
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index++ ;
+ cdData.icCardNo = GlParse.parseIcCardNo(bs, index, 6, 2) ;
+
+ index += 8 ;
+ cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 7) ;
+
+ index += 8 ;
+ cdData.opType = bs[index];
+
+ index ++ ;
+ cdData.opResult = bs[index];
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Down.java
new file mode 100644
index 0000000..e7ef090
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Down.java
@@ -0,0 +1,107 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd92_A2Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd93_A3Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.NumUtil;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_93,
+ CodeV202404.cd_A3
+})
+public class Cd_93_A3_Down implements CodeParse {
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ String json = (String)para.param;
+ ComCd93_A3Vo cvo = JSON.parseObject(json, ComCd93_A3Vo.class) ;
+ if(cvo == null){
+ throw new Exception("json杞珻omCd93_A3Vo涓簄ull") ;
+ }
+ if(!NumUtil.isPlusIntNumber(cvo.orderNo)){
+ throw new Exception("璁㈠崟鍙峰繀椤绘槸16浣嶆暟瀛�") ;
+ }
+ if(cvo.orderNo.length() != 12){
+ throw new Exception("璁㈠崟鍙峰繀椤绘槸16浣嶆暟瀛�") ;
+ }
+
+ byte[] bs = new byte[26] ;
+ int index = 0 ;
+ bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+ index ++ ;
+ bs[index] = cvo.projectNo.byteValue() ;
+
+ index ++ ;
+ if(cvo.controllerType.equals("01")){
+ bs[index] = (byte)0xF0 ;
+ }else{
+ bs[index] = (byte)0x00 ;
+ }
+
+ index ++ ;
+ GlCreate.createIcCardNo(cvo.icCardNo, bs, index);
+
+ index += 8 ;
+ ByteUtil.string2BCD_BE(bs, cvo.orderNo, index) ;
+
+ index += 8 ;
+ GlCreate.createPw(bs, index);
+
+ index += 2 ;
+ GlCreate.createS2D(bs, index) ;
+
+ index += 4 ;
+ bs[index] = 0 ; //鏃跺欢
+
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Up.java
new file mode 100644
index 0000000..04d371d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Up.java
@@ -0,0 +1,64 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd93_A3Vo;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_93,
+ CodeV202404.cd_A3
+})
+@SuppressWarnings("unused")
+public class Cd_93_A3_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_93_A3_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd93_A3Vo cdData = new DataCd93_A3Vo() ;
+ dV1.subData = cdData ;
+
+ GlParse.parseCd93A3And85(bs, cdData) ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Up.java
index 9f276fb..219570a 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Up.java
@@ -66,7 +66,7 @@
cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
index++ ;
- cdData.projectNo = 0 + bs[index];
+ cdData.projectNo = (int)bs[index];
index++ ;
byte result = bs[index];
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Up.java
index eae5f1a..17201a5 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Up.java
@@ -60,7 +60,7 @@
cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
index++ ;
- cdData.projectNo = 0 + bs[index];
+ cdData.projectNo = (int)bs[index];
index++ ;
byte result = bs[index];
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Down.java
new file mode 100644
index 0000000..abcc0b4
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Down.java
@@ -0,0 +1,75 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd99Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_99
+})
+public class Cd_99_Down implements CodeParse {
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ String json = (String)para.param;
+ ComCd99Vo cvo = JSON.parseObject(json, ComCd99Vo.class) ;
+ if(cvo == null){
+ throw new Exception("json杞珻omCd99Vo涓簄ull") ;
+ }
+ byte[] bs = new byte[2] ;
+ int index = 0 ;
+ bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+ index ++ ;
+ bs[index] = cvo.projectNo.byteValue() ;
+
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Up.java
new file mode 100644
index 0000000..50e6d66
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd99Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_99
+})
+@SuppressWarnings("unused")
+public class Cd_99_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_99_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd99Vo cdData = new DataCd99Vo() ;
+ dV1.subData = cdData ;
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index++ ;
+ byte result = bs[index];
+ if(result == 1){
+ cdData.success = true ;
+ }else{
+ cdData.success = false ;
+ }
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Down.java
new file mode 100644
index 0000000..b846185
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Down.java
@@ -0,0 +1,76 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd99Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd9AVo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+ CodeV202404.cd_9A
+})
+public class Cd_9A_Down implements CodeParse {
+
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+ ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+ byte[] bs = this.doParse(para) ;
+
+ MidResultToRtu midRs = new MidResultToRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+ midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+ midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+ midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+ midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+ midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+ midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+ if(isLowPower != null && isLowPower.booleanValue()){
+ //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+ midRs.isQuickSend = true ;
+ }
+
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鏋勯�犱笅琛屾暟鎹�
+ * @param para 鍙傛暟
+ * @return 瀛楄妭鏁扮粍
+ * @throws Exception 寮傚父
+ */
+ public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+ byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+ if(para.param != null){
+ String json = (String)para.param;
+ ComCd9AVo cvo = JSON.parseObject(json, ComCd9AVo.class) ;
+ if(cvo == null){
+ throw new Exception("json杞珻omCd99Vo涓簄ull") ;
+ }
+ byte[] bs = new byte[2] ;
+ int index = 0 ;
+ bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+ index ++ ;
+ bs[index] = cvo.projectNo.byteValue() ;
+
+ bytes = ByteUtil.bytesMerge(bytes, bs) ;
+ }else{
+ throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+ }
+ GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+ byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+ bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+ return bytes ;
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Up.java
new file mode 100644
index 0000000..ef4a701
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Up.java
@@ -0,0 +1,74 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd99Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd9AVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+ CodeV202404.cd_9A
+})
+@SuppressWarnings("unused")
+public class Cd_9A_Up implements CodeParse{
+
+ private static final Logger log = LogManager.getLogger(Cd_9A_Up.class);
+
+ /**
+ * 鍒嗘瀽涓婅鏁版嵁
+ */
+ @Override
+ public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+ ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+ int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+ if(bsLen > 0){
+ this.doParse(para.upBuffer,
+ bsLen,
+ para.upCode,
+ para.data) ;
+ }
+ log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+ MidResultFromRtu midRs = new MidResultFromRtu() ;
+ midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+ midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+ midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+ midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+ midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+ midRs.reportOrResponse_trueOrFalse = false ;
+
+ callback.callback(midRs.reportOrResponse_trueOrFalse);
+ return new MidResult[]{midRs} ;
+ }
+ /**
+ * 鎵ц鍒嗘瀽
+ * @param bs 瀛楄妭鏁扮粍
+ * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+ * @param dataCode 鍔熻兘鐮�
+ * @param data 鏁版嵁
+ * @throws Exception 寮傚父
+ */
+ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+ DataV202404 dV1 = (DataV202404)data.getSubData() ;
+ DataCd9AVo cdData = new DataCd9AVo() ;
+ dV1.subData = cdData ;
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index++ ;
+ byte result = bs[index];
+ if(result == 1){
+ cdData.success = true ;
+ }else{
+ cdData.success = false ;
+ }
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java
index 982ed69..c5f6360 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java
@@ -3,6 +3,7 @@
import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404;
import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80Vo;
import com.dy.common.mw.protocol.p206V202404.upVos.DataCd81Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd93_A3Vo;
import com.dy.common.util.ByteUtil;
import com.dy.common.util.ByteUtilUnsigned;
import org.apache.logging.log4j.LogManager;
@@ -105,6 +106,33 @@
vo.alarmEleLowVolt = (byte)(b & 0x20) ;
vo.stateIcEnable = (byte)(b & 0x40) ;
}
+ /**
+ * 鍒嗘瀽鐘舵�佷笌鎶ヨ
+ * @param bs
+ * @param index
+ * @return
+ */
+ public static void parseAlarmAndState(byte[] bs, int index, DataCd93_A3Vo vo){
+ byte b = bs[index] ;
+ vo.statePump = (byte)(b & 0x1) ;
+ vo.alarmWaterRemain = (byte)(b & 0x2) ;
+ vo.alarm0WaterRemain = (byte)(b & 0x4) ;
+ vo.alarmExceedYear = (byte)(b & 0x8) ;
+ vo.alarmWaterMeterFault = (byte)(b & 0x10) ;
+ vo.alarmSteal = (byte)(b & 0x20) ;
+ vo.alarmWaterMeterBreak = (byte)(b & 0x40) ;
+ vo.alarmEleMeterFault = (byte)(b & 0x80) ;
+
+ index++ ;
+ b = bs[index] ;
+ vo.alarm0MoneyRemain = (byte)(b & 0x1) ;
+ vo.alarmInnerDoor = (byte)(b & 0x2) ;
+ vo.alarmOuterDoor = (byte)(b & 0x4) ;
+ vo.alarmEleMiss = (byte)(b & 0x8) ;
+ vo.alarmEleExceed = (byte)(b & 0x10) ;
+ vo.alarmEleLowVolt = (byte)(b & 0x20) ;
+ vo.stateIcEnable = (byte)(b & 0x40) ;
+ }
public static String parseTp(byte[] bs, short index){
String dt = "" ;
@@ -134,12 +162,11 @@
* @throws Exception
*/
public static void parseCd80And5B(byte[] bs, DataCd80Vo cdData) throws Exception{
-
int index = ProtocolConstantV206V202404.dataIndex ;
cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
index++ ;
- cdData.projectNo = 0 + bs[index];
+ cdData.projectNo = (int)bs[index];
index++ ;
cdData.useWaterType = bs[index];
@@ -250,4 +277,81 @@
cdData.csq = ByteUtil.BCD2Int_BE(bs, index, index) ;
}
+
+
+ /**
+ * 鍒嗘瀽鍔熻兘93銆丄3鍜�85鏁版嵁
+ * @param bs
+ * @param cdData
+ * @throws Exception
+ */
+ public static void parseCd93A3And85(byte[] bs, DataCd93_A3Vo cdData) throws Exception {
+ int index = ProtocolConstantV206V202404.dataIndex ;
+ cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+ index++ ;
+ cdData.projectNo = (int)bs[index];
+
+ index ++ ;
+ cdData.opResult = bs[index];
+
+ index ++ ;
+ cdData.opType = bs[index];
+
+ index++ ;
+ cdData.icCardAddr = ByteUtil.bytes2Hex(bs, false, index, 4) ;
+
+ index += 8 ;
+ cdData.icCardNo = GlParse.parseIcCardNo(bs, index, 6, 2) ;
+
+ index += 8 ;
+ cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 7) ;
+
+ index ++ ;
+ String mm = ByteUtil.BCD2String_LE(bs, index, index) ;
+ index ++ ;
+ String HH = ByteUtil.BCD2String_LE(bs, index, index) ;
+ index ++ ;
+ String dd = ByteUtil.BCD2String_LE(bs, index, index) ;
+ index ++ ;
+ String MM = ByteUtil.BCD2String_LE(bs, index, index) ;
+ cdData.startDt = MM + "鏈�" + dd + "鏃�" + HH + "鏃�" + mm + "鍒�" ;
+
+ index ++ ;
+ mm = ByteUtil.BCD2String_LE(bs, index, index) ;
+ index ++ ;
+ HH = ByteUtil.BCD2String_LE(bs, index, index) ;
+ index ++ ;
+ dd = ByteUtil.BCD2String_LE(bs, index, index) ;
+ index ++ ;
+ MM = ByteUtil.BCD2String_LE(bs, index, index) ;
+ cdData.endDt = MM + "鏈�" + dd + "鏃�" + HH + "鏃�" + mm + "鍒�" ;
+
+ index ++ ;
+ cdData.waterTotalAmount = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ;
+
+ index += 5 ;
+ cdData.eleTotalAmount = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ;
+
+ index += 5 ;
+ cdData.moneyRemain = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ;
+
+ index += 5 ;
+ cdData.waterRemain = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ;
+
+ index += 5 ;
+ cdData.thisEle = ByteUtil.BCD2Int_BE(bs, index, index + 3)/100.0D ;
+
+ index += 4 ;
+ cdData.thisWater = ByteUtil.BCD2Int_BE(bs, index, index + 3)/100.0D ;
+
+ index += 4 ;
+ cdData.thisMoney = ByteUtil.BCD2Int_BE(bs, index, index + 3)/100.0D ;
+
+ index += 4 ;
+ cdData.thisDuration = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+
+ index += 2 ;
+ GlParse.parseAlarmAndState(bs, index, cdData) ;
+ }
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd16Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd16Vo.java
new file mode 100644
index 0000000..787e4b0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd16Vo.java
@@ -0,0 +1,29 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//璁剧疆璁惧缁堢鍓╀綑姘撮噺鍜屽墿浣欓噾棰濇姤璀﹀��
+@Data
+public class DataCd16Vo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨�: 01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+ public Integer projectNo ;//椤圭洰缂栧彿:
+ public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 璁剧疆璁惧缁堢鍓╀綑姘撮噺鍜屽墿浣欓噾棰濇姤璀﹀�� : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" 鍛戒护缁撴灉 : ") ;
+ sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
+ sb.append("\n") ;
+
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd21Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd21Vo.java
new file mode 100644
index 0000000..93f2bb5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd21Vo.java
@@ -0,0 +1,29 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//璁剧疆IP鍦板潃
+@Data
+public class DataCd21Vo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨�: 01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+ public Integer projectNo ;//椤圭洰缂栧彿:
+ public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 璁剧疆IP鍦板潃 : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" 鍛戒护缁撴灉 : ") ;
+ sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
+ sb.append("\n") ;
+
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd22Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd22Vo.java
new file mode 100644
index 0000000..4e76549
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd22Vo.java
@@ -0,0 +1,29 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//璁剧疆鏈轰簳骞存渶澶у紑閲囬噺鍜屾按浣嶄笅闄�
+@Data
+public class DataCd22Vo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨�: 01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+ public Integer projectNo ;//椤圭洰缂栧彿:
+ public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 璁剧疆鏈轰簳骞存渶澶у紑閲囬噺鍜屾按浣嶄笅闄� : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" 鍛戒护缁撴灉 : ") ;
+ sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
+ sb.append("\n") ;
+
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd23Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd23Vo.java
new file mode 100644
index 0000000..4bba03d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd23Vo.java
@@ -0,0 +1,29 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//璁剧疆鍩熷悕
+@Data
+public class DataCd23Vo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨�: 01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+ public Integer projectNo ;//椤圭洰缂栧彿:
+ public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 璁剧疆鍩熷悕 : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" 鍛戒护缁撴灉 : ") ;
+ sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
+ sb.append("\n") ;
+
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd26Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd26Vo.java
new file mode 100644
index 0000000..93314ff
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd26Vo.java
@@ -0,0 +1,29 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//璁剧疆璁惧缁堢骞寸敤姘撮噺
+@Data
+public class DataCd26Vo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨�: 01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+ public Integer projectNo ;//椤圭洰缂栧彿:
+ public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 璁剧疆璁惧缁堢骞寸敤姘撮噺 : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" 鍛戒护缁撴灉 : ") ;
+ sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
+ sb.append("\n") ;
+
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd30Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd30Vo.java
new file mode 100644
index 0000000..a6298e4
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd30Vo.java
@@ -0,0 +1,29 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//璁剧疆璁惧缁堢鐢ㄦ按鏈夋晥
+@Data
+public class DataCd30Vo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨�: 01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+ public Integer projectNo ;//椤圭洰缂栧彿:
+ public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 璁剧疆璁惧缁堢鐢ㄦ按鏈夋晥 : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" 鍛戒护缁撴灉 : ") ;
+ sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
+ sb.append("\n") ;
+
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java
index 6ee2945..0173230 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java
@@ -24,6 +24,9 @@
sb.append(" 鍓╀綑姘撮噺鎶ヨ鍊� : ") ;
sb.append(moneyAlarm == null?"鏈煡":moneyAlarm) ;
sb.append("\n") ;
+ sb.append(" 鍓╀綑姘撮噺鎶ヨ鍊� : ") ;
+ sb.append(waterAlarm == null?"鏈煡":waterAlarm) ;
+ sb.append("\n") ;
return sb.toString() ;
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd68Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd68Vo.java
new file mode 100644
index 0000000..3362b7b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd68Vo.java
@@ -0,0 +1,33 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鏌ヨ鏈轰簳骞存渶澶у紑閲囬噺鍜屾按浣嶄笅闄�
+@Data
+public class DataCd68Vo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+ public Integer maxAmountYear ;//鏈轰簳骞存渶澶х敤姘撮噺 鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
+ public Double limitLevel ;//姘翠綅涓嬮檺 鍗曚綅锛歮 鍙栧�艰寖鍥�:0~9999.99
+
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 鏌ヨ鏈轰簳骞存渶澶у紑閲囬噺鍜屾按浣嶄笅闄� : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" 鏈轰簳骞存渶澶х敤姘撮噺 : ") ;
+ sb.append(maxAmountYear == null?"鏈煡":maxAmountYear) ;
+ sb.append("\n") ;
+ sb.append(" 姘翠綅涓嬮檺 : ") ;
+ sb.append(limitLevel == null?"鏈煡":limitLevel) ;
+ sb.append("\n") ;
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd83Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd83Vo.java
new file mode 100644
index 0000000..4b52f90
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd83Vo.java
@@ -0,0 +1,56 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鏈轰簳瀹氱偣涓婃姤, 姣忓ぉ12鐐逛笂鎶ユ暟鎹�
+@Data
+public class DataCd83Vo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+ public Double waterTotalAmountYear ;//鏈勾绱娴侀噺
+ public Double waterTotalAmountMeter ;//姘磋〃绱娴侀噺
+ public Double eleTotalAmountYear ;//鏈勾绱鐢甸噺
+ public Double eleTotalAmountMeter ;//鐢佃〃绱鐢甸噺
+ public Double waterTotalAmountDay ;//褰撴棩姘磋〃鍑�娴侀噺
+ public Double waterUserTotalAmountDay ;// 褰撴棩鐢ㄦ埛鐢ㄦ按閲�
+ public Double lossTotalAmountDay ;// 婕忔崯姘撮噺
+ public Double batteryVolt ;//鍚庡鐢垫睜鐢靛帇
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 鏈轰簳瀹氱偣涓婃姤(姣忓ぉ12鐐逛笂鎶�) : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" 鏈勾绱娴侀噺 : ") ;
+ sb.append(waterTotalAmountYear == null?"鏈煡":waterTotalAmountYear) ;
+ sb.append("\n") ;
+ sb.append(" 姘磋〃绱娴侀噺 : ") ;
+ sb.append(waterTotalAmountMeter == null?"鏈煡":waterTotalAmountMeter) ;
+ sb.append("\n") ;
+ sb.append(" 鏈勾绱鐢甸噺 : ") ;
+ sb.append(eleTotalAmountYear == null?"鏈煡":eleTotalAmountYear) ;
+ sb.append("\n") ;
+ sb.append(" 鐢佃〃绱鐢甸噺 : ") ;
+ sb.append(eleTotalAmountMeter == null?"鏈煡":eleTotalAmountMeter) ;
+ sb.append("\n") ;
+ sb.append(" 褰撴棩姘磋〃鍑�娴侀噺 : ") ;
+ sb.append(waterTotalAmountDay == null?"鏈煡":waterTotalAmountDay) ;
+ sb.append("\n") ;
+ sb.append(" 褰撴棩鐢ㄦ埛鐢ㄦ按閲� : ") ;
+ sb.append(waterUserTotalAmountDay == null?"鏈煡":waterUserTotalAmountDay) ;
+ sb.append("\n") ;
+ sb.append(" 婕忔崯姘撮噺 : ") ;
+ sb.append(lossTotalAmountDay == null?"鏈煡":lossTotalAmountDay) ;
+ sb.append("\n") ;
+ sb.append(" 鍚庡鐢垫睜鐢靛帇 : ") ;
+ sb.append(batteryVolt == null?"鏈煡":batteryVolt) ;
+ sb.append("\n") ;
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java
new file mode 100644
index 0000000..551f49d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java
@@ -0,0 +1,56 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鍒峰崱寮�娉�/闃�涓婃姤
+@Data
+public class DataCd84Vo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+ public String icCardAddr ;//IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
+ public String icCardNo ;//IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
+ public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+ public String opDt ;//寮�娉�/闃�鏃堕棿(鍒嗘椂鏃ユ湀)
+ public Double waterTotalAmount ;//姘磋〃绱姘撮噺锛屽崟浣�0.01绔嬫柟绫�
+ public Double eleTotalAmount ;//鐢佃〃绱鐢甸噺锛屽崟浣�0.01搴�
+ public Double moneyRemainUser ;//鐢ㄦ埛鍓╀綑閲戦锛� 鍗曚綅0.01鍏�
+ public Double waterRemainUser ;//鐢ㄦ埛鍓╀綑姘撮噺锛� 鍗曚綅0.01m3
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 鏈轰簳瀹氱偣涓婃姤(姣忓ぉ12鐐逛笂鎶�) : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" IC鍗″湴鍧� : ") ;
+ sb.append(icCardAddr == null?"鏈煡":icCardAddr) ;
+ sb.append("\n") ;
+ sb.append(" IC鍗$紪鍙� : ") ;
+ sb.append(icCardNo == null?"鏈煡":icCardNo) ;
+ sb.append("\n") ;
+ sb.append(" 璁㈠崟鍙� : ") ;
+ sb.append(orderNo == null?"鏈煡":orderNo) ;
+ sb.append("\n") ;
+ sb.append(" 寮�娉�/闃�鏃堕棿 : ") ;
+ sb.append(opDt == null?"鏈煡":opDt) ;
+ sb.append("\n") ;
+ sb.append(" 姘磋〃绱姘撮噺 : ") ;
+ sb.append(waterTotalAmount == null?"鏈煡":waterTotalAmount) ;
+ sb.append("\n") ;
+ sb.append(" 鐢佃〃绱鐢甸噺 : ") ;
+ sb.append(eleTotalAmount == null?"鏈煡":eleTotalAmount) ;
+ sb.append("\n") ;
+ sb.append(" 鐢ㄦ埛鍓╀綑閲戦 : ") ;
+ sb.append(moneyRemainUser == null?"鏈煡":moneyRemainUser) ;
+ sb.append("\n") ;
+ sb.append(" 鐢ㄦ埛鍓╀綑姘撮噺 : ") ;
+ sb.append(waterRemainUser == null?"鏈煡":waterRemainUser) ;
+ sb.append("\n") ;
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd85Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd85Vo.java
new file mode 100644
index 0000000..5c4589c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd85Vo.java
@@ -0,0 +1,4 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+public class DataCd85Vo extends DataCd93_A3Vo{
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd86Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd86Vo.java
new file mode 100644
index 0000000..a5ec86c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd86Vo.java
@@ -0,0 +1,37 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鏌ヨ鎺у埗鍣↖P鍦板潃
+@Data
+public class DataCd86Vo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨�: 01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+ public Integer projectNo ;//椤圭洰缂栧彿:
+ public Integer channel ;//IP閫氶亾鍙�
+ public String ip ;//IP
+ public Integer port ;//绔彛鍙�
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 鏌ヨ鎺у埗鍣↖P鍦板潃 : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" IP閫氶亾鍙� : ") ;
+ sb.append(channel == null?"鏈煡":channel) ;
+ sb.append("\n") ;
+ sb.append(" ip : ") ;
+ sb.append(ip == null?"鏈煡":ip) ;
+ sb.append("\n") ;
+ sb.append(" 绔彛鍙� : ") ;
+ sb.append(port == null?"鏈煡":port) ;
+ sb.append("\n") ;
+
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd87Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd87Vo.java
new file mode 100644
index 0000000..f0b07e7
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd87Vo.java
@@ -0,0 +1,37 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鏌ヨ鎺у埗鍣ㄥ煙鍚�
+@Data
+public class DataCd87Vo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨�: 01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+ public Integer projectNo ;//椤圭洰缂栧彿:
+ public Integer channel ;//IP閫氶亾鍙�
+ public String domain ;//鍩熷悕
+ public Integer port ;//绔彛鍙�
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 鏌ヨ鎺у埗鍣ㄥ煙鍚� : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" IP閫氶亾鍙� : ") ;
+ sb.append(channel == null?"鏈煡":channel) ;
+ sb.append("\n") ;
+ sb.append(" 鍩熷悕 : ") ;
+ sb.append(domain == null?"鏈煡":domain) ;
+ sb.append("\n") ;
+ sb.append(" 绔彛鍙� : ") ;
+ sb.append(port == null?"鏈煡":port) ;
+ sb.append("\n") ;
+
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd92_A2Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd92_A2Vo.java
new file mode 100644
index 0000000..0877502
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd92_A2Vo.java
@@ -0,0 +1,40 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�
+@Data
+public class DataCd92_A2Vo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+ public String icCardNo ;//IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
+ public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+ public Byte opType ;//寮�闃�绫诲瀷: 01:骞冲彴寮�娉�/闃� 02:鐢ㄦ埛寮�娉�/闃�
+ public Byte opResult ;//寮�鍚车/闃�缁撴灉: 0x00:鎴愬姛 0x81:澶辫触
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂� : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" IC鍗$紪鍙� : ") ;
+ sb.append(icCardNo == null?"鏈煡":icCardNo) ;
+ sb.append("\n") ;
+ sb.append(" 璁㈠崟鍙� : ") ;
+ sb.append(orderNo == null?"鏈煡":orderNo) ;
+ sb.append("\n") ;
+ sb.append(" 寮�鍚车/闃�绫诲瀷 : ") ;
+ sb.append(opType == null?"鏈煡":(opType.byteValue() == 0x01 ? "骞冲彴":"鐢ㄦ埛")) ;
+ sb.append("\n") ;
+ sb.append(" 寮�鍚车/闃�缁撴灉 : ") ;
+ sb.append(opResult == null?"鏈煡":(opResult.byteValue() == 0x00 ? "鎴愬姛":"澶辫触")) ;
+ sb.append("\n") ;
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3Vo.java
new file mode 100644
index 0000000..a6ede90
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3Vo.java
@@ -0,0 +1,101 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�
+@Data
+public class DataCd93_A3Vo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+ public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+ public Byte opResult ;//鍏虫车/闃�缁撴灉: 0x00:鎴愬姛 0x81:澶辫触
+ public Byte opType ;//鍏虫车/闃�鏂瑰紡: 0x00:鍒峰崱闂� 0x01:骞冲彴鍏� 0x02:APP鍏� 0x03:闈炴硶鍗″叧 0x04:姘磋〃寮傚父鍏� 0x05:鐢佃〃寮傚父鍏� 0x06:鍓╀綑姘撮噺涓嶈冻鍏� 0x07:鍓╀綑閲戦涓嶈冻鍏� 0x08:寮�娉�/闃�鍚庣閬撴病鏈夋祦閲忓叧 0x09:鎺夌數鍐嶄笂鐢点��
+ public String icCardAddr ;//IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
+ public String icCardNo ;//IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
+ public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+ public String startDt ;//寮�濮嬫椂闂�(鍒嗘椂鏃ユ湀)
+ public String endDt ;//缁撴潫鏃堕棿(鍒嗘椂鏃ユ湀)
+ public Double waterTotalAmount ;//姘磋〃绱娴侀噺
+ public Double eleTotalAmount ;//鐢佃〃绱鐢甸噺
+ public Double moneyRemain ;//鐢ㄦ埛鍓╀綑閲戦锛屽崟浣�0.01鍏�
+ public Double waterRemain ;//鐢ㄦ埛鍓╀綑姘撮噺锛屼繚鐣� 榛樿 00 00 00 00 00
+ public Double thisEle ;//鏈浣跨敤鐢甸噺, 鍗曚綅0.01搴�
+ public Double thisWater ;//鏈浣跨敤姘撮噺, 鍗曚綅0.01绔嬫柟绫�
+ public Double thisMoney ;//鏈浣跨敤閲戦, 鍗曚綅0.01鍏�
+ public Integer thisDuration;//鏈浣跨敤鏃堕棿闀�, 鍗曚綅锛氬垎閽�
+
+
+ public Byte statePump ; //娉�/闃�鐘舵�� (1锛氬紑娉�/闃�锛�0锛氬叧娉�/闃�)
+ public Byte alarmWaterRemain ; //鍓╀綑姘撮噺鎶ヨ (1锛氬皬浜庢姤璀︿笂闄愭姤璀� 0锛氭甯�)
+ public Byte alarm0WaterRemain ; //鍓╀綑姘撮噺涓�0鍏虫车/闃� (1锛氬墿浣欐按閲忎负0鍏虫车 0锛氭甯�)
+ public Byte alarmExceedYear ; //骞村害瓒呴噰鎶ヨ (1锛氬勾鐢ㄦ按閲忓ぇ浜庨檺鍒舵按閲忔姤璀� 0锛氭甯�)
+ public Byte alarmWaterMeterFault ; //澶栭儴娴侀噺璁℃晠闅� (1锛氭祦閲忚鏁呴殰鎶ヨ 0锛氭甯�)
+ public Byte alarmSteal ; //鍋锋按鎶ヨ (1锛氱粫寮�鎺у埗鍣ㄧ敤姘存姤璀� 0锛氭甯�)
+ public Byte alarmWaterMeterBreak ; //娴侀噺璁℃崯鍧忔姤璀� (1锛氭甯搁�氳浣嗙灛鏃朵负0鎶ヨ 0锛氭甯�)
+ public Byte alarmEleMeterFault ; //鐢佃〃鏁呴殰鎶ヨ (1锛氬拰鐢佃〃閫氳鏂垨鏁版嵁涓嶆甯� 0锛氭甯�)
+ public Byte alarm0MoneyRemain ; //鍓╀綑閲戦涓�0鍏虫车/闃� (1锛氬墿浣欓噾棰濅负0鎶ヨ 0锛氭甯�)
+ public Byte alarmInnerDoor ; //鎺у埗鍣ㄥ唴闂ㄦ姤璀� (1锛氬唴闂ㄦ墦寮�鎶ヨ 0锛氭甯�)
+ public Byte alarmOuterDoor ; //鎺у埗鍣ㄥ闂ㄦ姤璀� (1锛氬闂ㄦ墦寮�鎶ヨ 0锛氭甯�)
+ public Byte alarmEleMiss ; //浜ゆ祦缂洪」鎶ヨ (1锛氫笁鐩哥己椤规姤璀� 0锛氭甯�)
+ public Byte alarmEleExceed ; //浜ゆ祦杩囨祦鎶ヨ (1锛氫氦娴佽繃娴佹姤璀� 0锛氭甯�)
+ public Byte alarmEleLowVolt ; //涓夌浉鐢垫瑺鍘嬫姤璀� (1锛氭瑺鍘嬫姤璀� 0锛氭甯�)
+ public Byte stateIcEnable ; //IC鍗′娇鑳� (1銆両C鏈夊埛鍗℃敮鎸� 0锛氫笉鏀寔)
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂� : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" 鍏虫车/闃�绫诲瀷 : ") ;
+ sb.append(opType == null?"鏈煡":(opType.byteValue() == 0x00 ? "鍒峰崱":(opType.byteValue() == 0x01 ? "骞冲彴":(opType.byteValue() == 0x02 ? "APP":(opType.byteValue() == 0x03 ? "闈炴硶鍗�":(opType.byteValue() == 0x04 ? "姘磋〃寮傚父":(opType.byteValue() == 0x05 ? "鐢佃〃寮傚父":(opType.byteValue() == 0x06 ? "鍓╀綑姘撮噺涓嶈冻":(opType.byteValue() == 0x07 ? "鍓╀綑閲戦涓嶈冻":(opType.byteValue() == 0x08 ? "鏃犳祦閲�":(opType.byteValue() == 0x09 ? "鎺夌數鍐嶄笂鐢�":"鏈煡"))))))))))) ;
+ sb.append("\n") ;
+ sb.append(" 鍏冲惎娉�/闃�缁撴灉 : ") ;
+ sb.append(opResult == null?"鏈煡":(opResult.byteValue() == 0x00 ? "鎴愬姛":"澶辫触")) ;
+ sb.append("\n") ;
+ sb.append(" IC鍗″湴鍧� : ") ;
+ sb.append(icCardAddr == null?"鏈煡":icCardAddr) ;
+ sb.append("\n") ;
+ sb.append(" IC鍗$紪鍙� : ") ;
+ sb.append(icCardNo == null?"鏈煡":icCardNo) ;
+ sb.append("\n") ;
+ sb.append(" 璁㈠崟鍙� : ") ;
+ sb.append(orderNo == null?"鏈煡":orderNo) ;
+ sb.append("\n") ;
+ sb.append(" 寮�濮嬫椂闂� : ") ;
+ sb.append(startDt == null?"鏈煡":startDt) ;
+ sb.append("\n") ;
+ sb.append(" 缁撴潫鏃堕棿 : ") ;
+ sb.append(endDt == null?"鏈煡":endDt) ;
+ sb.append("\n") ;
+ sb.append(" 姘磋〃绱娴侀噺 : ") ;
+ sb.append(waterTotalAmount == null?"鏈煡":waterTotalAmount) ;
+ sb.append("\n") ;
+ sb.append(" 鐢佃〃绱鐢甸噺 : ") ;
+ sb.append(eleTotalAmount == null?"鏈煡":eleTotalAmount) ;
+ sb.append("\n") ;
+ sb.append(" 鐢ㄦ埛鍓╀綑閲戦 : ") ;
+ sb.append(moneyRemain == null?"鏈煡":moneyRemain) ;
+ sb.append("\n") ;
+ sb.append(" 鐢ㄦ埛鍓╀綑姘撮噺 : ") ;
+ sb.append(waterRemain == null?"鏈煡":waterRemain) ;
+ sb.append("\n") ;
+ sb.append(" 鏈浣跨敤鐢甸噺 : ") ;
+ sb.append(thisEle == null?"鏈煡":thisEle) ;
+ sb.append("\n") ;
+ sb.append(" 鏈浣跨敤姘撮噺 : ") ;
+ sb.append(thisWater == null?"鏈煡":thisWater) ;
+ sb.append("\n") ;
+ sb.append(" 鏈浣跨敤閲戦 : ") ;
+ sb.append(thisMoney == null?"鏈煡":thisMoney) ;
+ sb.append("\n") ;
+ sb.append(" 鏈浣跨敤鏃堕棿闀� : ") ;
+ sb.append(thisDuration == null?"鏈煡": thisDuration) ;
+ sb.append("\n") ;
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd99Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd99Vo.java
new file mode 100644
index 0000000..5a2060b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd99Vo.java
@@ -0,0 +1,29 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//娓呯┖璁惧缁堢鏃ヨ褰�
+@Data
+public class DataCd99Vo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨�: 01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+ public Integer projectNo ;//椤圭洰缂栧彿:
+ public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 娓呯┖璁惧缁堢鏃ヨ褰� : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" 鍛戒护缁撴灉 : ") ;
+ sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
+ sb.append("\n") ;
+
+ return sb.toString() ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd9AVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd9AVo.java
new file mode 100644
index 0000000..9c4b06d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd9AVo.java
@@ -0,0 +1,29 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//娓呯┖璁惧缁堢鏃ヨ褰�
+@Data
+public class DataCd9AVo {
+
+ public String controllerType;//鎺у埗鍣ㄧ被鍨�: 01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+ public Integer projectNo ;//椤圭洰缂栧彿:
+ public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+
+ public String toString(){
+ StringBuffer sb = new StringBuffer() ;
+ sb.append(" 娓呯┖璁惧缁堢鏃ヨ褰� : \n") ;
+ sb.append(" 鎺у埗鍣ㄧ被鍨� : ") ;
+ sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+ sb.append("\n") ;
+ sb.append(" 椤圭洰缂栧彿 : ") ;
+ sb.append(projectNo == null?"鏈煡":projectNo) ;
+ sb.append("\n") ;
+ sb.append(" 鍛戒护缁撴灉 : ") ;
+ sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
+ sb.append("\n") ;
+
+ return sb.toString() ;
+ }
+
+}
--
Gitblit v1.8.0