From 5c3ba107b6fe756c5eab6cc83bb18ad0c8c5d9ec Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期二, 07 五月 2024 21:10:52 +0800 Subject: [PATCH] 实现王江海制定的协议实现到3.30节(功能码0x87) --- 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