From 823cbaa8e120a6fc2e72a4e62c06d375cc821562 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期一, 15 一月 2024 17:24:02 +0800 Subject: [PATCH] 1、增加流浪控制器实体(和数据库表); 2、修改部分通信协议实现; 3、增加部分通信协议实现; 4、增加通信中间件RTU上行数据处理任务树部分节点。 --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83CloseVo.java | 6 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd97Vo.java | 27 + pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd98Vo.java | 27 + pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Up.java | 71 +++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerTrampMapper.xml | 98 ++++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java | 4 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_65_Down.java | 88 +++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Down.java | 111 ++++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java | 6 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrControllerTramp.java | 64 ++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Up.java | 71 +++ pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindReport.java | 42 + pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd81Vo.java | 23 + pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java | 2 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_92_Down.java | 18 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java | 37 + pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java | 16 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd65Vo.java | 21 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_93_Down.java | 18 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml | 15 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java | 64 ++ pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TkRtuData.java | 9 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java | 79 -- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java | 3 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Down.java | 97 ++++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java | 10 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83OpenVo.java | 6 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_C0_Up.java | 2 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Down.java | 89 +++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerTrampMapper.java | 65 ++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java | 8 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ProtocolConstantV206V1_0_0.java | 3 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_65_Up.java | 75 +++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Up.java | 99 ++++ 34 files changed, 1,269 insertions(+), 105 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java index b633bba..1669ec7 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java @@ -6,12 +6,16 @@ public static final String cd_10 = "10" ;//璁剧疆閬ユ祴绔欑粓绔湴鍧� public static final String cd_21 = "21" ;//璁剧疆鏈嶅姟绔疘P鍜岀鍙� public static final String cd_50 = "50" ;//鏌ヨ閬ユ祴绔欑粓绔湴鍧� + public static final String cd_65 = "65" ;//鏌ヨIP鍜岀鍙� public static final String cd_66 = "66" ;//鏌ヨ闃�闂ㄧ姸鎬�(闈虫�绘妸璇ュ懡浠よ璁℃垚鍙祴83鍔熻兘鐮佹暟鎹殑鍛戒护浜嗭紝鍥犱负杩欎釜鍛戒护鍥炴墽娌℃湁闃�闂ㄧ姸鎬佹暟鎹煙锛屾墍浠ヨ繖涓懡浠ゅ彧鑳戒綔涓哄彫娴嬪懡浠ょ敤浜�) public static final String cd_71 = "71" ;//璁剧疆宸ヤ綔妯″紡锛堟潕澶╄祼鍒跺畾鐨勫崗璁紝褰撳墠鏈疄鐜帮級 + public static final String cd_81 = "81" ;//闅忔満鑷姤鎶� public static final String cd_83 = "83" ;//閬ユ祴绔欏紑鍏抽榾鑷姤 public static final String cd_84 = "84" ;//寮�闃�宸ヤ綔鎶� public static final String cd_92 = "92" ;//閬ユ帶鍚姩闃�闂� public static final String cd_93 = "93" ;//閬ユ帶鍏抽棴闃�闂� + public static final String cd_97 = "97" ;//APP杩滅▼寮�闃� + public static final String cd_98 = "98" ;//APP杩滅▼鍏抽榾 public static final String cd_C0 = "C0" ;//閬ユ祴绔欒嚜鎶ュ疄鏃舵暟鎹� public static String getCodeName(String code) { @@ -19,14 +23,18 @@ (code.equals(cd_10) ? "璁剧疆閬ユ祴绔欑粓绔湴鍧�" : (code.equals(cd_21) ? "璁剧疆IP鍜岀鍙�" : (code.equals(cd_50) ? "鏌ヨ閬ユ祴绔欑粓绔湴鍧�" : + (code.equals(cd_65) ? "鏌ヨIP鍜岀鍙�" : (code.equals(cd_66) ? "鏌ヨ闃�闂ㄧ姸鎬�" : (code.equals(cd_71) ? "璁剧疆宸ヤ綔妯″紡" : + (code.equals(cd_81) ? "闅忔満鑷姤" : (code.equals(cd_83) ? "寮�鍏抽榾鑷姤" : (code.equals(cd_84) ? "寮�闃�宸ヤ綔鎶�" : (code.equals(cd_92) ? "閬ユ帶鍚姩闃�闂�" : (code.equals(cd_93) ? "閬ユ帶鍏抽棴闃�闂�" : + (code.equals(cd_97) ? "APP杩滅▼寮�闃�" : + (code.equals(cd_98) ? "PP杩滅▼鍏抽榾" : (code.equals(cd_C0) ? "鑷姤瀹炴椂鏁版嵁" : - ""))))))))))) ; + ""))))))))))))))) ; return name ; } diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java index a80528a..e9677bb 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CommonV1_0_1.java @@ -82,7 +82,7 @@ public String parseRtuAddr(byte[] bs)throws Exception{ String rtuAddrBCD = "" + ByteUtil.BCD2Long_BE(bs, ProtocolConstantV206V1_0_0.rtuAddr1Index_start, ProtocolConstantV206V1_0_0.rtuAddr1Index_end) ; String rtuAddrStr = "" + ByteUtilUnsigned.bytes2Short_BE(bs, ProtocolConstantV206V1_0_0.rtuAddr2Index_start) ; - while(rtuAddrStr.length() < 4){ + while(rtuAddrStr.length() < 5){ rtuAddrStr = "0" + rtuAddrStr ; } return rtuAddrBCD + rtuAddrStr ; @@ -99,7 +99,7 @@ public String parseRtuAddr(byte[] bs, int index)throws Exception{ String rtuAddrBCD = "" + ByteUtil.BCD2Long_BE(bs, index, index + 2) ; String rtuAddrStr = "" + ByteUtilUnsigned.bytes2Short_BE(bs, index + 3) ; - while(rtuAddrStr.length() < 4){ + while(rtuAddrStr.length() < 5){ rtuAddrStr = "0" + rtuAddrStr ; } return rtuAddrBCD + rtuAddrStr ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd65Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd65Vo.java new file mode 100644 index 0000000..5bda8fd --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd65Vo.java @@ -0,0 +1,21 @@ +package com.dy.common.mw.protocol.p206V1_0_0; + +import lombok.Data; + +@Data +public class DataCd65Vo { + public String ip ;//IP鍦板潃 + public Integer port ;//绔彛鍙� + + public String toString(){ + StringBuilder sb = new StringBuilder() ; + sb.append(" 鏌ヨIP鍦板潃鍜岀鍙�:\n"); + sb.append(" IP鍦板潃锛�"); + sb.append(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/p206V1_0_0/DataCd81Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd81Vo.java new file mode 100644 index 0000000..4f95034 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd81Vo.java @@ -0,0 +1,23 @@ +package com.dy.common.mw.protocol.p206V1_0_0; + +import lombok.Data; + +@Data +public class DataCd81Vo { + public DataAlarmVo alarmVo ;//鎶ヨ + public DataStateVo stateVo ;//鐘舵�� + public String toString(){ + StringBuilder sb = new StringBuilder() ; + sb.append(" 缁堢闅忔満鑷姤鏁版嵁:\n"); + if(alarmVo != null){ + sb.append(alarmVo.toString()); + sb.append("\n"); + } + if(stateVo != null){ + sb.append(stateVo.toString()); + sb.append("\n"); + } + return sb.toString() ; + } + +} diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83CloseVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83CloseVo.java index 5d93ebd..da14235 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83CloseVo.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83CloseVo.java @@ -9,7 +9,7 @@ // 6銆佹祦閲忚鏁呴殰鍏抽榾锛�7銆佺揣鎬ュ叧闃�锛�8銆佺敤鎴疯繙绋嬪紑闃�锛�9銆佺敤鎴疯繙绋嬪叧闃�锛� public Byte type ; public Double totalAmount; //绱娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3銆� - public String clientNum ;//鍐滄埛缂栧彿 + public String cardNo ;//IC鍗$紪鍙� public String icAddr ;//ic鍗″湴鍧� public Double remainMoney ;//鍓╀綑閲戦锛氱敤鎴蜂綑棰�4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏� public String openDt ;//鐢ㄦ按鎴风敤姘村紑濮嬫椂闂达細6瀛楄妭BCD鐮侊紝椤哄簭鏄勾鏈堟棩鏃跺垎绉掞紝鍏朵腑鍏厓骞�=2000+骞淬�� @@ -28,8 +28,8 @@ sb.append(" 绱娴侀噺锛�"); sb.append(totalAmount==null?"":totalAmount); sb.append("\n"); - sb.append(" 鍐滄埛缂栧彿锛�"); - sb.append(clientNum); + sb.append(" IC鍗$紪鍙凤細"); + sb.append(cardNo); sb.append("\n"); sb.append(" ic鍗″湴鍧�锛�"); sb.append(icAddr); diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83OpenVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83OpenVo.java index fdfadb7..8accb71 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83OpenVo.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd83OpenVo.java @@ -11,7 +11,7 @@ // 16锛岀敤鎴峰紑闃�鍚庣閬撳唴娌℃湁姘达紝鑷姩鍏抽榾銆傜閬撲笉鍑烘按鑷姩鍏抽榾 public Byte type ; public Double totalAmount; //绱娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3銆� - public String clientNum ;//鍐滄埛缂栧彿 + public String cardNo ;//IC鍗$紪鍙� public String icAddr ;//ic鍗″湴鍧� public Double remainMoney;//鍓╀綑閲戦锛氱敤鎴蜂綑棰�4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏� public String openDt ;//鐢ㄦ按鎴峰紑闃�鏃堕棿锛�6瀛楄妭BCD鐮侊紝椤哄簭鏄勾鏈堟棩鏃跺垎绉掞紝鍏朵腑鍏厓骞�=2000+骞淬�� @@ -26,8 +26,8 @@ sb.append(" 绱娴侀噺锛�"); sb.append(totalAmount==null?"":totalAmount); sb.append("\n"); - sb.append(" 鍐滄埛缂栧彿锛�"); - sb.append(clientNum); + sb.append(" IC鍗$紪鍙凤細"); + sb.append(cardNo); sb.append("\n"); sb.append(" ic鍗″湴鍧�锛�"); sb.append(icAddr); diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java index 789350f..c178f88 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd84Vo.java @@ -4,7 +4,7 @@ @Data public class DataCd84Vo { - public String clientNum ;//鍐滄埛缂栧彿 + public String cardNo ;//IC鍗$紪鍙� public Double remainMoney ;//鍓╀綑閲戦锛氱敤鎴蜂綑棰�4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏� public Double totalAmount; //绱娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3銆� public Double instantAmount; //鐬椂娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999.999锛屽崟浣嶄负m3/h銆� @@ -13,8 +13,8 @@ public String toString(){ StringBuilder sb = new StringBuilder() ; sb.append(" 缁堢寮�闃�宸ヤ綔鎶�:\n"); - sb.append(" 鍐滄埛缂栧彿锛�"); - sb.append(clientNum); + sb.append(" IC鍗$紪鍙凤細"); + sb.append(cardNo); sb.append("\n"); sb.append(" 鍓╀綑閲戦锛堝厓锛夛細"); sb.append(remainMoney==null?"":remainMoney); diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd97Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd97Vo.java new file mode 100644 index 0000000..73bd0e6 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd97Vo.java @@ -0,0 +1,27 @@ +package com.dy.common.mw.protocol.p206V1_0_0; + +import lombok.Data; + +/** + * @Author liurunyu + * @Date 2024/01/13 10:08 + * @LastEditTime 2024/01/13 10:08 + * @Description + */ +@Data +public class DataCd97Vo { + public String cardNo ;//铏氭嫙鍗″彿 + public boolean success; + + public String toString(){ + StringBuilder sb = new StringBuilder() ; + sb.append(" APP杩滅▼寮�闃�搴旂瓟:\n"); + sb.append(" 铏氭嫙鍗″彿锛�"); + sb.append(cardNo); + sb.append(" 缁撴灉锛�"); + sb.append(success?"鎵ц":"澶辫触"); + sb.append("\n"); + + return sb.toString() ; + } +} diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd98Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd98Vo.java new file mode 100644 index 0000000..f50967d --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataCd98Vo.java @@ -0,0 +1,27 @@ +package com.dy.common.mw.protocol.p206V1_0_0; + +import lombok.Data; + +/** + * @Author liurunyu + * @Date 2024/01/13 10:08 + * @LastEditTime 2024/01/13 10:08 + * @Description + */ +@Data +public class DataCd98Vo { + public String cardNo ;//铏氭嫙鍗″彿 + public boolean success; + + public String toString(){ + StringBuilder sb = new StringBuilder() ; + sb.append(" APP杩滅▼寮�闃�搴旂瓟:\n"); + sb.append(" 铏氭嫙鍗″彿锛�"); + sb.append(cardNo); + sb.append(" 缁撴灉锛�"); + sb.append(success?"鎵ц":"澶辫触"); + sb.append("\n"); + + return sb.toString() ; + } +} diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java index 05e5b1c..8e028cb 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java @@ -12,12 +12,16 @@ public DataCd02Vo dataCd02Vo;//閾捐矾妫�娴� public DataCd10Vo dataCd10Vo;//璁剧疆RTU鍦板潃 public DataCd21Vo dataCd21Vo;//璁剧疆IP鍦板潃 + public DataCd65Vo dataCd65Vo;//鏌ヨIP鍦板潃鍜岀鍙� public DataCd71Vo dataCd71Vo;//鏌ヨ闃�闂ㄧ姸鎬� + public DataCd81Vo dataCd81Vo;//闅忔満鑷姤鎶� public DataCd83OpenVo dataCd83OpenVo;//寮�闃�鑷姤 public DataCd83CloseVo dataCd83CloseVo;//鍏抽榾鑷姤 public DataCd84Vo dataCd84Vo;//寮�闃�宸ヤ綔鎶� public DataCd92Vo dataCd92Vo;//寮�闃�搴旂瓟 public DataCd93Vo dataCd93Vo;//鍏抽榾搴旂瓟 + public DataCd97Vo dataCd97Vo;//APP杩滅▼寮�闃�搴旂瓟 + public DataCd98Vo dataCd98Vo;//APP杩滅▼鍏抽榾搴旂瓟 public DataCdC0Vo dataCdC0Vo;//缁堢鑷姤瀹炴椂鏁版嵁 public String dt ;//閫氫俊涓棿浠朵骇鐢熷彂鎶ユ椂闂�(yyyy-MM-dd hh:mm:ss) @@ -35,8 +39,14 @@ if(dataCd21Vo != null){ sb.append(dataCd21Vo.toString()) ; } + if(dataCd65Vo != null){ + sb.append(dataCd65Vo.toString()) ; + } if(dataCd71Vo != null){ sb.append(dataCd71Vo.toString()) ; + } + if(dataCd81Vo != null){ + sb.append(dataCd81Vo.toString()) ; } if(dataCd83OpenVo != null){ sb.append(dataCd83OpenVo.toString()) ; @@ -53,6 +63,12 @@ if(dataCd93Vo != null){ sb.append(dataCd93Vo.toString()) ; } + if(dataCd97Vo != null){ + sb.append(dataCd97Vo.toString()) ; + } + if(dataCd98Vo != null){ + sb.append(dataCd98Vo.toString()) ; + } if(dataCdC0Vo != null){ sb.append(dataCdC0Vo.toString()) ; } diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ProtocolConstantV206V1_0_0.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ProtocolConstantV206V1_0_0.java index 3ff2c20..d08a4de 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ProtocolConstantV206V1_0_0.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/ProtocolConstantV206V1_0_0.java @@ -28,7 +28,8 @@ public static final byte P_Head_Byte = (byte)0x68 ; public static final byte P_Tail_Byte = (byte)0x16 ; - public static final byte P_Default_mode = (byte)0x0F ;//榛樿宸ヤ綔妯″紡 + //00H鏃堕仴娴嬬粓绔湪鍏煎宸ヤ綔鐘舵�侊紱01H鏃堕仴娴嬬粓绔湪鑷姤宸ヤ綔鐘舵�侊紱02H鏃堕仴娴嬬粓绔湪鏌ヨ/搴旂瓟宸ヤ綔鐘舵�侊紱03H鏃堕仴娴嬬粓绔湪璋冭瘯/缁翠慨鐘舵�併�� + public static final byte P_Default_mode = (byte)0x00 ;//榛樿宸ヤ綔妯″紡 public static final String P_Head_Hex = "68" ; public static final String P_Tail_Hex = "16" ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java index 6abb786..bead542 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java @@ -73,6 +73,9 @@ ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ; + /* + 鍙傛暟鏍煎紡锛� ip1,ip2,ip3,ip4,port + */ if(para.param == null){ throw new Exception("鏈彁渚涘懡浠ゅ弬鏁版暟鎹紝涓嶈兘鏋勯�犲姛鑳界爜涓�" + CodeV1_0_1.cd_21 + "鐨勪笅琛屽懡浠�") ; }else{ diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_65_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_65_Down.java new file mode 100644 index 0000000..a9e4b03 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_65_Down.java @@ -0,0 +1,88 @@ +package com.dy.common.mw.protocol.p206V1_0_0.parse; + +import com.dy.common.mw.protocol.*; +import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1; +import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1; +import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1; +import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0; +import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate; +import com.dy.common.util.ByteUtil; + +/** + * @Author liurunyu + * @Date 2024/01/13 10:47 + * @LastEditTime 2024/01/13 10:47 + * @Description + */ +@AnnotationCodeDown(ifAny={ + CodeV1_0_1.cd_65 +}) +public class Cd_65_Down implements CodeParse { + + //private static Logger log = LogManager.getLogger(Cd_66_Down.class); + + @Override + public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception { + ParseParamsForDownV1_0_1 para = (ParseParamsForDownV1_0_1) params ; + byte[] bs = this.doParse(para) ; + + MidResultToRtu midRs = new MidResultToRtu() ; + midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL + midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О + midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛� + 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 + + if(isLowPower != null && isLowPower.booleanValue()){ + //浣庡姛鑰楁椂锛屽敖蹇彂閫� + midRs.isQuickSend = true ; + } + + return new MidResult[]{midRs} ; + } + + /** + * 鏋勯�犱笅琛屾暟鎹� + * @param para 鍙傛暟 + * @return 瀛楄妭鏁扮粍 + * @throws Exception 寮傚父 + */ + public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception { + CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ; + byte[] bytes ; + byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ; + byte index = 0 ; + bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; + + index++ ; + bsHead[index] = 0 ;//甯ч暱搴� + + index++ ; + bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; + + index++ ; + bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ; + + index++ ; + GlCreate.createRtuAddr(para.rtuAddr, bsHead, index); + index += 5 ; + + ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ; + + bytes = bsHead ; + + 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/p206V1_0_0/parse/Cd_65_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_65_Up.java new file mode 100644 index 0000000..b90809d --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_65_Up.java @@ -0,0 +1,75 @@ +package com.dy.common.mw.protocol.p206V1_0_0.parse; + +import com.dy.common.mw.protocol.*; +import com.dy.common.mw.protocol.p206V1_0_0.*; +import com.dy.common.util.ByteUtilUnsigned; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * @Author liurunyu + * @Date 2024/01/13 10:40 + * @LastEditTime 2024/01/13 10:40 + * @Description + */ +@AnnotationCodeUp(ifAny={ + CodeV1_0_1.cd_65 +}) +@SuppressWarnings("unused") +public class Cd_65_Up implements CodeParse { + + private static final Logger log = LogManager.getLogger(Cd_65_Up.class); + + /** + * 鍒嗘瀽涓婅鏁版嵁 + */ + @Override + public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception { + ParseParamsForUpV1_0_1 para = (ParseParamsForUpV1_0_1)params ; + int bsLen = new CommonV1_0_1().parseDataLen(para.upBuffer) ; + if(bsLen > 0){ + this.doParse(para.upBuffer, + bsLen, + para.upCode, + para.data) ; + } + log.info("鍒嗘瀽鍛戒护搴旂瓟鏁版嵁<" + CodeV1_0_1.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString()); + + MidResultFromRtu midRs = new MidResultFromRtu() ; + midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О + midRs.rtuAddr = para.rtuAddr ;//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 { + DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ; + DataCd65Vo cdData = new DataCd65Vo() ; + dV1.dataCd65Vo = cdData ; + short index = ProtocolConstantV206V1_0_0.dataIndex ; + String ip1 = "" + ByteUtilUnsigned.byte2Byte(bs, index++) ; + String ip2 = "" +ByteUtilUnsigned.byte2Byte(bs, index++) ; + String ip3 = "" +ByteUtilUnsigned.byte2Byte(bs, index++) ; + String ip4 = "" +ByteUtilUnsigned.byte2Byte(bs, index++) ; + + cdData.ip = ip1 + "." + ip2 + "." + ip3 + "." + ip4 ; + + String port = "" +ByteUtilUnsigned.bytes2Short_LE(bs, index++) ; + cdData.port = Integer.parseInt(port) ; + } + +} diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Down.java new file mode 100644 index 0000000..d60cfc3 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Down.java @@ -0,0 +1,89 @@ +package com.dy.common.mw.protocol.p206V1_0_0.parse; + +import com.dy.common.mw.protocol.*; +import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1; +import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1; +import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1; +import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0; +import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate; +import com.dy.common.util.ByteUtil; + +@AnnotationCodeDown(ifAny={ + CodeV1_0_1.cd_81 +}) +public class Cd_81_Down implements CodeParse { + + //private static Logger log = LogManager.getLogger(Cd_C0_Down.class); + + @Override + public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception { + ParseParamsForDownV1_0_1 para = (ParseParamsForDownV1_0_1) params ; + byte[] bs = this.doParse(para) ; + + MidResultToRtu midRs = new MidResultToRtu() ; + midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL + midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О + midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛� + 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(ParseParamsForDownV1_0_1 para) throws Exception { + CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ; + byte[] bytes ; + byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ; + byte index = 0 ; + bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; + + index++ ; + bsHead[index] = 0 ;//甯ч暱搴� + + index++ ; + bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; + + index++ ; + bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ; + + index++ ; + GlCreate.createRtuAddr(para.rtuAddr, bsHead, index); + index += 5 ; + + ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ; + + byte[] bs = new byte[1] ; + //纭甯х殑鏁版嵁鍩熺敤浜庨仴娴嬬粓绔伐浣滄ā寮忕殑纭鎴栬浆鎹€�傛暟鎹负 1 涓瓧鑺� HEX锛�00H 鏃堕仴娴嬬粓 + //绔湪鍏煎宸ヤ綔鐘舵�侊紱 01H 鏃堕仴娴嬬粓绔湪鑷姤宸ヤ綔鐘舵�侊紱 02H 鏃堕仴娴嬬粓绔湪鏌ヨ/搴旂瓟宸ヤ綔 + //鐘舵�侊紱 03H 鏃堕仴娴嬬粓绔湪璋冭瘯/缁翠慨鐘舵�併�� + bs[0] = ProtocolConstantV206V1_0_0.P_Default_mode;//鏁版嵁鍩� + + bytes = ByteUtil.bytesMerge(bsHead, bs) ; + + 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/p206V1_0_0/parse/Cd_81_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Up.java new file mode 100644 index 0000000..f8533c2 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_81_Up.java @@ -0,0 +1,99 @@ +package com.dy.common.mw.protocol.p206V1_0_0.parse; + +import com.dy.common.mw.protocol.*; +import com.dy.common.mw.protocol.p206V1_0_0.*; +import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlParse; +import com.dy.common.util.ByteUtil; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +@AnnotationCodeUp(ifAny={ + CodeV1_0_1.cd_81 +}) +@SuppressWarnings("unused") +public class Cd_81_Up implements CodeParse { + + private static final Logger log = LogManager.getLogger(Cd_81_Up.class); + + /** + * 鍒嗘瀽涓婅鏁版嵁 + */ + @Override + public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception { + ParseParamsForUpV1_0_1 para = (ParseParamsForUpV1_0_1)params ; + int bsLen = new CommonV1_0_1().parseDataLen(para.upBuffer) ; + if(bsLen > 0){ + this.doParse(para.upBuffer, + bsLen, + para.upCode, + para.data) ; + } + log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV1_0_1.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString()); + + MidResultFromRtu midRs = new MidResultFromRtu() ; + midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О + midRs.rtuAddr = para.rtuAddr ;//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 ; + ParseParamsForDownV1_0_1 downCpParams = new ParseParamsForDownV1_0_1() ; + downCpParams.setValue( + null, + ProtocolConstantV206V1_0_0.protocolName, + para.rtuAddr, + Command.defaultId, + confirmComCode, + null, + null); + //鏋勯�犲簲绛� + byte[] data = new Cd_81_Down().doParse(downCpParams) ; + + MidResultToRtu confirmCommand = new MidResultToRtu() ; + confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О + confirmCommand.rtuAddr = para.rtuAddr ;//Rtu鍦板潃 + confirmCommand.commandId = Command.defaultId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉 + confirmCommand.downCode = confirmComCode ;//涓嬭鍛戒护鍔熻兘鐮�; + confirmCommand.downBuffer = data ;//涓嬭鍛戒护鏁版嵁 + confirmCommand.downBufHex = ByteUtil.bytes2Hex(data, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡 + confirmCommand.hasResponse = false ;//鏄惁鏈夊簲绛� + confirmCommand.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�2娆�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆 + confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨 + + confirmCommand.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫� + if(isLowPower != null && isLowPower.booleanValue()){ + //浣庡姛鑰楁椂锛屽敖蹇彂閫� + confirmCommand.isQuickSend = true ; + } + + callback.callback(midRs.reportOrResponse_trueOrFalse); + return new MidResult[]{midRs, confirmCommand} ; + } + /** + * 鎵ц鍒嗘瀽 + * @param bs 瀛楄妭鏁扮粍 + * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級 + * @param dataCode 鍔熻兘鐮� + * @param data 鏁版嵁 + * @throws Exception 寮傚父 + */ + protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception { + DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ; + DataCd81Vo cdData = new DataCd81Vo() ; + dV1.dataCd81Vo = cdData ; + + short index = ProtocolConstantV206V1_0_0.dataIndex ; + + //鎶ヨ鏁版嵁 + cdData.alarmVo = GlParse.parseAlarm(bs, index) ; + index += 2 ; + //鐘舵�佹暟鎹� + cdData.stateVo = GlParse.parseState(bs, index) ; + index += 2 ; + + } +} diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java index 59b9b98..381487d 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java @@ -116,11 +116,11 @@ cdData.totalAmount += tpInt * 100000000.0 ; //鐢ㄦ按鎴峰彿鏁版嵁鏍煎紡锛�5瀛楄妭BCD鐮佷綆浣嶅湪鍓嶉珮浣嶅湪鍚庛�� - cdData.clientNum = ByteUtil.BCD2String_LE(bs, index, index + 4) ; + cdData.cardNo = ByteUtil.BCD2String_LE(bs, index, index + 4) ; index += 5 ; //IC鍗″彿鏍煎紡锛�4瀛楄妭HEX鐮佷綆浣嶅湪鍓嶉珮浣嶅湪鍚庛�� - cdData.clientNum = ByteUtil.bytesToHex(bs, index, index + 3) ; + cdData.cardNo = ByteUtil.bytesToHex(bs, index, index + 3) ; index += 4 ; //鐢ㄦ按鎴蜂綑棰濓細鐢ㄦ埛浣欓4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏冦�� @@ -174,11 +174,11 @@ cdData.totalAmount += tpInt * 100000000.0 ; //鐢ㄦ按鎴峰彿鏁版嵁鏍煎紡锛�5瀛楄妭BCD鐮佷綆浣嶅湪鍓嶉珮浣嶅湪鍚庛�� - cdData.clientNum = ByteUtil.BCD2String_LE(bs, index, index + 4) ; + cdData.cardNo = ByteUtil.BCD2String_LE(bs, index, index + 4) ; index += 5 ; //IC鍗″彿鏍煎紡锛�4瀛楄妭HEX鐮佷綆浣嶅湪鍓嶉珮浣嶅湪鍚庛�� - cdData.clientNum = ByteUtil.bytesToHex(bs, index, index + 3) ; + cdData.cardNo = ByteUtil.bytesToHex(bs, index, index + 3) ; index += 4 ; //鐢ㄦ按鎴蜂綑棰濓細鐢ㄦ埛浣欓4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏冦�� diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java index 6d36ca9..015cbac 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java @@ -88,7 +88,7 @@ short index = ProtocolConstantV206V1_0_0.dataIndex ; //鐢ㄦ按鎴峰彿鏁版嵁鏍煎紡锛�5瀛楄妭BCD鐮佷綆浣嶅湪鍓嶉珮浣嶅湪鍚庛�� - cdData.clientNum = ByteUtil.BCD2String_LE(bs, index, index + 4) ; + cdData.cardNo = ByteUtil.BCD2String_LE(bs, index, index + 4) ; index += 5 ; //鐢ㄦ按鎴蜂綑棰濓細鐢ㄦ埛浣欓4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏冦�� diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_92_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_92_Down.java index 73b0961..5bf918b 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_92_Down.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_92_Down.java @@ -72,18 +72,14 @@ ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ; - if(para.param == null){ - throw new Exception("鏈彁渚涘懡浠ゅ弬鏁版暟鎹紝涓嶈兘鏋勯�犲姛鑳界爜涓�" + CodeV1_0_1.cd_92 + "鐨勪笅琛屽懡浠�") ; - }else{ - index = 0 ; - byte[] bs = new byte[9] ; - bs[index++] = (byte)0xF0 ; - GlCreate.createPw(bs, index); - index += 2 ; - GlCreate.createTp(bs, index); + byte index1 = 0 ; + byte[] bs = new byte[9] ; + bs[index1++] = (byte)0xF0 ; + GlCreate.createPw(bs, index1); + index1 += 2 ; + GlCreate.createTp(bs, index1); - bytes = ByteUtil.bytesMerge(bsHead, bs) ; - } + bytes = ByteUtil.bytesMerge(bsHead, bs) ; GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑 diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_93_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_93_Down.java index 40dbd6c..7437c05 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_93_Down.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_93_Down.java @@ -72,18 +72,14 @@ ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ; - if(para.param == null){ - throw new Exception("鏈彁渚涘懡浠ゅ弬鏁版暟鎹紝涓嶈兘鏋勯�犲姛鑳界爜涓�" + CodeV1_0_1.cd_93 + "鐨勪笅琛屽懡浠�") ; - }else{ - index = 0 ; - byte[] bs = new byte[9] ; - bs[index++] = (byte)0xF0 ; - GlCreate.createPw(bs, index); - index += 2 ; - GlCreate.createTp(bs, index); + byte index1 = 0 ; + byte[] bs = new byte[9] ; + bs[index1++] = (byte)0xF0 ; + GlCreate.createPw(bs, index1); + index1 += 2 ; + GlCreate.createTp(bs, index1); - bytes = ByteUtil.bytesMerge(bsHead, bs) ; - } + bytes = ByteUtil.bytesMerge(bsHead, bs) ; GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑 diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Down.java new file mode 100644 index 0000000..636e274 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Down.java @@ -0,0 +1,111 @@ +package com.dy.common.mw.protocol.p206V1_0_0.parse; + +import com.dy.common.mw.protocol.*; +import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1; +import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1; +import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1; +import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0; +import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate; +import com.dy.common.util.ByteUtil; +import com.dy.common.util.ByteUtilUnsigned; + +/** + * @Author liurunyu + * @Date 2024/01/12 14:49 + * @LastEditTime 2024/01/12 14:49 + * @Description + */ +@AnnotationCodeDown(ifAny={ + CodeV1_0_1.cd_97 +}) +public class Cd_97_Down implements CodeParse { + + @Override + public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception { + ParseParamsForDownV1_0_1 para = (ParseParamsForDownV1_0_1) params ; + byte[] bs = this.doParse(para) ; + + MidResultToRtu midRs = new MidResultToRtu() ; + midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL + midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О + midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛� + 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 + + if(isLowPower != null && isLowPower.booleanValue()){ + //浣庡姛鑰楁椂锛屽敖蹇彂閫� + midRs.isQuickSend = true ; + } + + return new MidResult[]{midRs} ; + } + + /** + * 鏋勯�犱笅琛屾暟鎹� + * @param para 鍙傛暟 + * @return 瀛楄妭鏁扮粍 + * @throws Exception 寮傚父 + */ + public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception { + CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ; + byte[] bytes ; + byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ; + byte index = 0 ; + bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; + + index++ ; + bsHead[index] = 0 ;//甯ч暱搴� + + index++ ; + bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; + + index++ ; + bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ; + + index++ ; + GlCreate.createRtuAddr(para.rtuAddr, bsHead, index); + index += 5 ; + + ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ; + + /* + 鍙傛暟鏍煎紡锛� 铏氭嫙鍗″彿,鐢靛瓙閽卞寘浣欓,姘翠环 + */ + String param = (String)para.param ; + if(param == null || param.trim().equals("")){ + throw new Exception("鏈彁渚涘懡浠ゅ弬鏁版暟鎹紝涓嶈兘鏋勯�犲姛鑳界爜涓�" + CodeV1_0_1.cd_97 + "鐨勪笅琛屽懡浠�") ; + }else{ + String[] params = ((String)para.param).split(",") ; + if(params == null || params.length != 3){ + throw new Exception("鍛戒护鍙傛暟鏁版嵁涓嶆纭紝涓嶈兘鏋勯�犲姛鑳界爜涓�" + CodeV1_0_1.cd_97 + "鐨勪笅琛屽懡浠�") ; + }else{ + byte index1 = 0 ; + byte[] bs = new byte[11] ; + ByteUtil.string2BCD_LE(bs, params[0], 0) ; + + Integer money = (Double.valueOf(Double.parseDouble(params[1]) * 100)).intValue() ; + ByteUtilUnsigned.int2Bytes_LE(bs, money, 4); + + Short price = (Double.valueOf(Double.parseDouble(params[2]) * 100)).shortValue() ; + ByteUtilUnsigned.short2Bytes_LE(bs, price, 8); + + bytes = ByteUtil.bytesMerge(bsHead, bs) ; + } + } + + 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/p206V1_0_0/parse/Cd_97_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Up.java new file mode 100644 index 0000000..b2ccb2b --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_97_Up.java @@ -0,0 +1,71 @@ +package com.dy.common.mw.protocol.p206V1_0_0.parse; + +import com.dy.common.mw.protocol.*; +import com.dy.common.mw.protocol.p206V1_0_0.*; +import com.dy.common.util.ByteUtil; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * @Author liurunyu + * @Date 2024/01/13 8:49 + * @LastEditTime 2024/01/13 8:49 + * @Description + */ +@AnnotationCodeUp(ifAny={ + CodeV1_0_1.cd_97 +}) +@SuppressWarnings("unused") +public class Cd_97_Up implements CodeParse { + + private static final Logger log = LogManager.getLogger(Cd_97_Up.class); + + /** + * 鍒嗘瀽涓婅鏁版嵁 + */ + @Override + public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception { + ParseParamsForUpV1_0_1 para = (ParseParamsForUpV1_0_1)params ; + int bsLen = new CommonV1_0_1().parseDataLen(para.upBuffer) ; + if(bsLen > 0){ + this.doParse(para.upBuffer, + bsLen, + para.upCode, + para.data) ; + } + log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV1_0_1.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString()); + + MidResultFromRtu midRs = new MidResultFromRtu() ; + midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О + midRs.rtuAddr = para.rtuAddr ;//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 { + DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ; + DataCd97Vo cdData = new DataCd97Vo() ; + dV1.dataCd97Vo = cdData ; + //铏氭嫙鍗″彿 + cdData.cardNo = ByteUtil.BCD2String_LE(bs, ProtocolConstantV206V1_0_0.dataIndex, ProtocolConstantV206V1_0_0.dataIndex+4) ; + if(bs[ProtocolConstantV206V1_0_0.dataIndex + 5] == (byte)0xAA){ + cdData.success = true ; + }else{ + cdData.success = false ; + } + } +} diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Down.java new file mode 100644 index 0000000..9221960 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Down.java @@ -0,0 +1,97 @@ +package com.dy.common.mw.protocol.p206V1_0_0.parse; + +import com.dy.common.mw.protocol.*; +import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1; +import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1; +import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1; +import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0; +import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate; +import com.dy.common.util.ByteUtil; +import com.dy.common.util.ByteUtilUnsigned; + +/** + * @Author liurunyu + * @Date 2024/01/12 14:49 + * @LastEditTime 2024/01/12 14:49 + * @Description + */ +@AnnotationCodeDown(ifAny={ + CodeV1_0_1.cd_98 +}) +public class Cd_98_Down implements CodeParse { + + @Override + public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception { + ParseParamsForDownV1_0_1 para = (ParseParamsForDownV1_0_1) params ; + byte[] bs = this.doParse(para) ; + + MidResultToRtu midRs = new MidResultToRtu() ; + midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;//rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL + midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О + midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛� + 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 + + if(isLowPower != null && isLowPower.booleanValue()){ + //浣庡姛鑰楁椂锛屽敖蹇彂閫� + midRs.isQuickSend = true ; + } + + return new MidResult[]{midRs} ; + } + + /** + * 鏋勯�犱笅琛屾暟鎹� + * @param para 鍙傛暟 + * @return 瀛楄妭鏁扮粍 + * @throws Exception 寮傚父 + */ + public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception { + CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ; + byte[] bytes ; + byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ; + byte index = 0 ; + bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; + + index++ ; + bsHead[index] = 0 ;//甯ч暱搴� + + index++ ; + bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; + + index++ ; + bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ; + + index++ ; + GlCreate.createRtuAddr(para.rtuAddr, bsHead, index); + index += 5 ; + + ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ; + + /* + 鍙傛暟鏍煎紡锛� 铏氭嫙鍗″彿 + */ + if(para.param == null ||((String)para.param).trim().equals("")){ + throw new Exception("鏈彁渚涘懡浠ゅ弬鏁版暟鎹紝涓嶈兘鏋勯�犲姛鑳界爜涓�" + CodeV1_0_1.cd_98 + "鐨勪笅琛屽懡浠�") ; + }else{ + byte[] bs = new byte[5] ; + ByteUtil.string2BCD_LE(bs, ((String)para.param).trim(), 0) ; + bytes = ByteUtil.bytesMerge(bsHead, bs) ; + } + + 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/p206V1_0_0/parse/Cd_98_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Up.java new file mode 100644 index 0000000..8d578ba --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_98_Up.java @@ -0,0 +1,71 @@ +package com.dy.common.mw.protocol.p206V1_0_0.parse; + +import com.dy.common.mw.protocol.*; +import com.dy.common.mw.protocol.p206V1_0_0.*; +import com.dy.common.util.ByteUtil; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * @Author liurunyu + * @Date 2024/01/13 8:49 + * @LastEditTime 2024/01/13 8:49 + * @Description + */ +@AnnotationCodeUp(ifAny={ + CodeV1_0_1.cd_98 +}) +@SuppressWarnings("unused") +public class Cd_98_Up implements CodeParse { + + private static final Logger log = LogManager.getLogger(Cd_98_Up.class); + + /** + * 鍒嗘瀽涓婅鏁版嵁 + */ + @Override + public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception { + ParseParamsForUpV1_0_1 para = (ParseParamsForUpV1_0_1)params ; + int bsLen = new CommonV1_0_1().parseDataLen(para.upBuffer) ; + if(bsLen > 0){ + this.doParse(para.upBuffer, + bsLen, + para.upCode, + para.data) ; + } + log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV1_0_1.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString()); + + MidResultFromRtu midRs = new MidResultFromRtu() ; + midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О + midRs.rtuAddr = para.rtuAddr ;//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 { + DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ; + DataCd98Vo cdData = new DataCd98Vo() ; + dV1.dataCd98Vo = cdData ; + //铏氭嫙鍗″彿 + cdData.cardNo = ByteUtil.BCD2String_LE(bs, ProtocolConstantV206V1_0_0.dataIndex, ProtocolConstantV206V1_0_0.dataIndex+4) ; + if(bs[ProtocolConstantV206V1_0_0.dataIndex + 5] == (byte)0xAA){ + cdData.success = true ; + }else{ + cdData.success = false ; + } + } +} diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_C0_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_C0_Up.java index c4ae4d4..80a0238 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_C0_Up.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_C0_Up.java @@ -51,7 +51,7 @@ null, null); //鏋勯�犲簲绛� - byte[] data = new Cd_02_Down().doParse(downCpParams) ; + byte[] data = new Cd_C0_Down().doParse(downCpParams) ; MidResultToRtu confirmCommand = new MidResultToRtu() ; confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerTrampMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerTrampMapper.java new file mode 100644 index 0000000..9e86073 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerTrampMapper.java @@ -0,0 +1,65 @@ +package com.dy.pipIrrGlobal.daoPr; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @Author liurunyu + * @Date 2024/1/15 15:27 + * @LastEditTime 2024/1/15 15:27 + * @Description + */ +@Mapper +public interface PrControllerTrampMapper extends BaseMapper<PrControllerTramp> { + /** + * delete by primary key + * @param id primaryKey + * @return deleteCount + */ + int deleteByPrimaryKey(Long id); + + /** + * insert record to table + * @param record the record + * @return insert count + */ + int insert(PrControllerTramp record); + + /** + * insert record to table selective + * @param record the record + * @return insert count + */ + int insertSelective(PrControllerTramp record); + + /** + * select by primary key + * @param id primary key + * @return object by primary key + */ + PrControllerTramp selectByPrimaryKey(Long id); + + /** + * select by RtuAddr + * @param rutAddr 鎺у埗鍣ㄥ湴鍧� + * @return object by 鎺у埗鍣ㄥ湴鍧� + */ + List<PrControllerTramp> selectPrControllerTrampByRtuAddr(String rutAddr); + + /** + * update record selective + * @param record the updated record + * @return update count + */ + int updateByPrimaryKeySelective(PrControllerTramp record); + + /** + * update record + * @param record the updated record + * @return update count + */ + int updateByPrimaryKey(PrControllerTramp record); +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrControllerTramp.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrControllerTramp.java new file mode 100644 index 0000000..05ac965 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrControllerTramp.java @@ -0,0 +1,64 @@ +package com.dy.pipIrrGlobal.pojoPr; + +/** + * @Author liurunyu + * @Date 2024/1/15 15:00 + * @LastEditTime 2024/1/15 15:00 + * @Description + */ + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.dy.common.po.BaseEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import lombok.*; +import org.hibernate.validator.constraints.Length; + +/** + * 娴佹氮鎺у埗鍣� + */ +@TableName(value="pr_controller_tramp", autoResultMap = true) +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "娴佹氮鎺у埗鍣�") +public class PrControllerTramp implements BaseEntity { + public static final long serialVersionUID = 2024011502001L; + /** + * 涓婚敭 + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + @TableId(type = IdType.INPUT) + @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + public Long id; + + /** + * 閫氳鍗忚 + */ + @Schema(description = "鎺у埗鍣ㄥ湴鍧�", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "鎺у埗鍣ㄥ湴鍧�涓嶈兘涓虹┖") + @Length(message = "鎺у埗鍣ㄥ湴鍧�蹇呴』{max}浣�",min = 11, max = 11) + public String rtuAddr; + + /** + * 閫氳鍗忚 + */ + @Schema(description = "閫氳鍗忚", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "閫氳鍗忚涓嶈兘涓虹┖") + @Length(message = "閫氳鍗忚涓嶅ぇ浜巤max}瀛�",max = 25) + public String protocol; + + /** + * 閫氳鍗忚 + */ + @Schema(description = "鍙戠幇鏃堕棿", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "鍙戠幇鏃堕棿涓嶈兘涓虹┖") + public String findDt;//鍙戠幇鏃堕棿锛� yyyy-mm-dd HH:MM:SS锛� + +} diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerTrampMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerTrampMapper.xml new file mode 100644 index 0000000..029d01a --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerTrampMapper.xml @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.dy.pipIrrGlobal.daoPr.PrControllerTrampMapper"> + <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrControllerTramp"> + <!--@mbg.generated--> + <!--@Table pr_controller_tramp--> + <id column="id" jdbcType="BIGINT" property="id" /> + <result column="rtuAddr" jdbcType="VARCHAR" property="rtuAddr" /> + <result column="protocol" jdbcType="VARCHAR" property="protocol" /> + <result column="findDt" jdbcType="VARCHAR" property="findDt" /> + </resultMap> + <sql id="Base_Column_List"> + <!--@mbg.generated--> + id, rtuAddr, protocol, findDt + </sql> + <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> + <!--@mbg.generated--> + select + <include refid="Base_Column_List" /> + from pr_controller_tramp + where id = #{id,jdbcType=BIGINT} + </select> + <select id="selectPrControllerTrampByRtuAddr" parameterType="java.lang.String" resultMap="BaseResultMap"> + <!--@mbg.generated--> + select + <include refid="Base_Column_List" /> + from pr_controller_tramp + where rtuAddr = #{rtuAddr,jdbcType=VARCHAR} + </select> + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> + <!--@mbg.generated--> + delete from pr_controller_tramp + where id = #{id,jdbcType=BIGINT} + </delete> + <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrControllerTramp"> + <!--@mbg.generated--> + insert into pr_controller_tramp (id, rtuAddr, protocol, + findDt) + values (#{id,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR}, + #{findDt,jdbcType=VARCHAR}) + </insert> + <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrControllerTramp"> + <!--@mbg.generated--> + insert into pr_controller_tramp + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="rtuAddr != null"> + rtuAddr, + </if> + <if test="protocol != null"> + protocol, + </if> + <if test="findDt != null"> + findDt, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=BIGINT}, + </if> + <if test="rtuAddr != null"> + #{rtuAddr,jdbcType=VARCHAR}, + </if> + <if test="protocol != null"> + #{protocol,jdbcType=VARCHAR}, + </if> + <if test="findDt != null"> + #{findDt,jdbcType=VARCHAR}, + </if> + </trim> + </insert> + <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrControllerTramp"> + <!--@mbg.generated--> + update pr_controller_tramp + <set> + <if test="rtuAddr != null"> + rtuAddr = #{rtuAddr,jdbcType=VARCHAR}, + </if> + <if test="protocol != null"> + protocol = #{protocol,jdbcType=VARCHAR}, + </if> + <if test="findDt != null"> + findDt = #{findDt,jdbcType=VARCHAR}, + </if> + </set> + where id = #{id,jdbcType=BIGINT} + </update> + <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrControllerTramp"> + <!--@mbg.generated--> + update pr_controller_tramp + set rtuAddr = #{rtuAddr,jdbcType=VARCHAR}, + protocol = #{protocol,jdbcType=VARCHAR}, + findDt = #{findDt,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + </update> +</mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TkRtuData.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TkRtuData.java index 23f334c..ca9c35c 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TkRtuData.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TkRtuData.java @@ -19,10 +19,15 @@ public void execute(Object data) { Data d = (Data)data ; String rtuAddr = d.getRtuAddr() ; - if(rtuAddr == null){ + if(rtuAddr == null || rtuAddr.trim().equals("")){ log.error("涓ラ噸閿欒锛孯TU涓婅鏁版嵁涓棤RTU鍦板潃锛�" ); }else{ - this.toNextTasks(data); + String protocol = d.getProtocol() ; + if(protocol == null || protocol.trim().equals("")){ + log.error("涓ラ噸閿欒锛孯TU涓婅鏁版嵁涓棤鍗忚鍚嶇О锛�" ); + }else{ + this.toNextTasks(data); + } } } diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java new file mode 100644 index 0000000..c645532 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java @@ -0,0 +1,64 @@ +package com.dy.aceMw.server.rtuData.dbSv; + +import com.dy.pipIrrGlobal.daoPr.PrControllerMapper; +import com.dy.pipIrrGlobal.daoPr.PrControllerTrampMapper; +import com.dy.pipIrrGlobal.pojoPr.PrController; +import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author liurunyu + * @Date 2024/1/13 10:57 + * @LastEditTime 2024/1/13 10:57 + * @Description + */ +@Service() +public class DbSv { + @Autowired + private PrControllerTrampMapper prControllerTrampMapperDao;//娴佹氮鎺у埗鍣―AO + @Autowired + private PrControllerMapper prControllerMapperDao ;//鎺у埗鍣―AO + + @Autowired + @Lazy + private DbSv sv ; + + /** + * 閫氳繃鎺у埗鍣ㄥ湴鍧�浠庢暟鎹簱琛ㄤ腑鏌ヨ鎺у埗鍣� + * @param rtuAddr 鎺у埗鍣ㄥ湴鍧� + * @return 鎺у埗鍣� + */ + public PrController getPrControllerByRtuAddr(String rtuAddr){ + List<PrController> list = this.prControllerMapperDao.selectPrControllerByRtuAddr(rtuAddr) ; + if(list != null && list.size() > 0){ + return list.get(0) ; + } + return null ; + } + /** + * 閫氳繃鎺у埗鍣ㄥ湴鍧�浠庢暟鎹簱琛ㄤ腑鏌ヨ娴佹氮鎺у埗鍣� + * @param rtuAddr 鎺у埗鍣ㄥ湴鍧� + * @return 娴佹氮鎺у埗鍣� + */ + public PrControllerTramp getPrControllerTrampByRtuAddr(String rtuAddr){ + List<PrControllerTramp> list = this.prControllerTrampMapperDao.selectPrControllerTrampByRtuAddr(rtuAddr) ; + if(list != null && list.size() > 0){ + return list.get(0) ; + } + return null ; + } + + + /** + * 淇濆瓨娴佹氮鎺у埗鍣� + * @param po + */ + public void savePrConctrollerTramp(PrControllerTramp po){ + this.prControllerTrampMapperDao.insert(po) ; + } + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java new file mode 100644 index 0000000..06c31c3 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java @@ -0,0 +1,37 @@ +package com.dy.aceMw.server.rtuData.p206V1_0_0; + +import com.dy.aceMw.server.rtuData.TaskSurpport; +import com.dy.aceMw.server.rtuData.dbSv.DbSv; +import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * @Author liurunyu + * @Date 2024/1/15 16:29 + * @LastEditTime 2024/1/15 16:29 + * @Description + */ + +/** + * 澶勭悊娴佹氮鎺у埗鍣� + */ +public class TkDealControllerTramp extends TaskSurpport { + + private static final Logger log = LogManager.getLogger(TkDealControllerTramp.class.getName()) ; + + //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷� + public static final String taskId = "TkDealControllerTramp" ; + + /** + * 鎵ц鑺傜偣浠诲姟 + * @param data 闇�瑕佸鐞嗙殑鏁版嵁 + */ + @Override + public void execute(Object data) { + Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ; + DbSv sv = (DbSv)objs[0] ; + PrControllerTramp rtuTramp = (PrControllerTramp)objs[2] ; + sv.savePrConctrollerTramp(rtuTramp); + } +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindReport.java new file mode 100644 index 0000000..6255791 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindReport.java @@ -0,0 +1,42 @@ +package com.dy.aceMw.server.rtuData.p206V1_0_0; + +import com.dy.aceMw.server.rtuData.TaskSurpport; +import com.dy.common.mw.protocol.Data; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * @Author liurunyu + * @Date 2024/1/15 17:15 + * @LastEditTime 2024/1/15 17:15 + * @Description + */ + +/** + * 璇嗗埆闈炲懡浠ゅ簲绛� + */ +public class TkFindReport extends TaskSurpport { + + private static final Logger log = LogManager.getLogger(TkFindReport.class.getName()) ; + + //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷� + public static final String taskId = "TkFindReport" ; + + /** + * 鎵ц鑺傜偣浠诲姟 + * @param data 闇�瑕佸鐞嗙殑鏁版嵁 + */ + @Override + public void execute(Object data) { + if(data instanceof Data){ + Data d = (Data)data ; + if(d.getCommandId() == null || d.getCommandId().trim().equals("")){ + //鏃犲懡浠D + this.toNextTasks(data); + } + } + //Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ; + //DbSv sv = (DbSv)objs[0] ; + //PrController controller = (PrController)objs[1] ; + } +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java index 66048c2..a4771a6 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java @@ -1,9 +1,12 @@ package com.dy.aceMw.server.rtuData.p206V1_0_0; import com.dy.aceMw.server.rtuData.TaskSurpport; -import com.dy.aceMw.server.rtuData.dbSv.RtuSv; +import com.dy.aceMw.server.rtuData.dbSv.DbSv; import com.dy.common.mw.protocol.Data; import com.dy.common.springUtil.SpringContextUtil; +import com.dy.common.util.DateTime; +import com.dy.pipIrrGlobal.pojoPr.PrController; +import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -21,69 +24,25 @@ @Override public void execute(Object data) { Data d = (Data)data ; - String rtuAddr = d.getRtuAddr() ; - log.info("RTU" + rtuAddr + "鏁版嵁鍒版锛岃繘琛屾暟鎹簱瀛樺偍娴嬭瘯"); - - RtuSv sv = (RtuSv)SpringContextUtil.getBean(RtuSv.class) ; - sv.save(d) ; - - //寰楀埌鏈湴RTU 鏁版嵁锛屼互澶囧悗闈㈣妭鐐瑰簲鐢� - /* - BuziInterface baseBusi = BuziGeter.getBaseBusi() ; - BuziInterface orgBusi = null ; - SyRtu nbRtu = null ; - SyRtuTramp rtuTramp = null ; - if(baseBusi != null){ - nbRtu = DbSyBuzi.getRtu(baseBusi, imei) ; - if(nbRtu != null){ - //鏁版嵁搴撲腑鏌ヨ鍒癗B浜у搧锛圧TU瀹炰綋锛� - if(nbRtu.orgTag != null && !nbRtu.orgTag.trim().equals("")){ - orgBusi = BuziGeter.getBusi(nbRtu.orgTag) ; - if(orgBusi == null){ - log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒版爣绛句负" + nbRtu.orgTag + "鐨勪緵姘存満鏋勬暟鎹簱涓氬姟Busi"); - }else{ - BaMeter meter = DbOrgBuzi.getMeterByImeiAndNo(orgBusi, imei, rtuAddr) ; - //鍙兘鏈煡璇㈠埌meter锛屽嵆浠嶆槸娴佹氮鑰匯TU锛屼絾浠嶈鍚庣画澶勭悊锛氾紙1锛夈�佷粛鑳借瘑鍒嚭娴佹氮鑰匯TU锛岋紙2锛夈�佷粛瑕佽褰曞叾涓婃姤鏁版嵁 - if(meter != null){ - String protocol = d.getProtocol() ; - if(protocol != null){ - protocol = protocol.trim(); - if(!protocol.equals("")){ - if(meter.protocol == null - || meter.protocol.trim().equals("") - || !meter.protocol.trim().equals(protocol)){ - //闇�瑕佹洿鏂板崗璁悕绉� - DbOrgBuzi.updateMeter4Protocol(orgBusi, meter.id, protocol); - } - } - } - } - this.taskResult = new Object[]{baseBusi, orgBusi, nbRtu, null, meter} ; - this.toNextTasks(data); - } - }else{ - //NB浜у搧锛圧TU瀹炰綋锛夋湭鍒嗛厤缁欏叿浣撶殑渚涙按鏈烘瀯 - //娴佹氮鑰匯TU - rtuTramp = DbSyBuzi.getSyRtuTramp(baseBusi, imei, rtuAddr) ; - if(rtuTramp == null){ - rtuTramp = new SyRtuTramp(imei, rtuAddr) ; - } - this.taskResult = new Object[]{baseBusi, orgBusi, nbRtu, rtuTramp, null} ; - this.toNextOneTask(data, TkDealRtuTramp.taskId); - } - }else{ - //鏁版嵁搴撲腑鏈煡璇㈠埌NB浜у搧锛圧TU瀹炰綋锛� - //娴佹氮鑰匯TU - rtuTramp = DbSyBuzi.getSyRtuTramp(baseBusi, imei, rtuAddr) ; + String rtuAddr = d.getRtuAddr() ;//TkRtuData閲屽垽鏂簡rtuAddr涓虹┖ + DbSv sv = (DbSv)SpringContextUtil.getBean(DbSv.class) ; + if(sv != null){ + PrController controller = sv.getPrControllerByRtuAddr(rtuAddr) ; + if(controller == null){ + //鏁版嵁搴撲腑鏈煡璇㈠埌鎺у埗鍣紙RTU瀹炰綋锛� + //娴佹氮鑰呮帶鍒跺櫒 + PrControllerTramp rtuTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr); if(rtuTramp == null){ - rtuTramp = new SyRtuTramp(imei, rtuAddr) ; + rtuTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), DateTime.yyyy_MM_dd_HH_mm_ss()) ; + this.taskResult = new Object[]{sv, null, rtuTramp} ; + this.toNextOneTask(data, TkDealControllerTramp.taskId); } - this.taskResult = new Object[]{baseBusi, orgBusi, nbRtu, rtuTramp, null} ; - this.toNextOneTask(data, TkDealRtuTramp.taskId); } + //涓嶈鏄惁涓烘祦娴帶鍒跺櫒锛圧TU瀹炰綋锛夛紝閮借杩涜涓嬫宸ヤ綔 + this.taskResult = new Object[]{sv, controller, null} ; + this.toNextTasks(data); }else{ - log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癇aseBusi瀵硅薄"); + log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癉bSv瀵硅薄"); } - */ } } diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml index 8a89412..75a82be 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml @@ -8,9 +8,20 @@ <task id="TkReceive" name="鎺ユ敹鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.TkReceive"> <task id="TkRtuData" name="鎺ユ敹RTU鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.TkRtuData"> <task id="TkFindP206V1_0_0" name="璇嗗埆P206V1_0_0鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindP206V1_0_0"> - <task id="TkPreGenObjs" name="棰勫厛鍑嗗鍚勫璞�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkPreGenObjs"> + <task id="TkPreGenObjs" name="棰勫厛鍑嗗鍚勫璞″苟璇嗗埆娴佹氮鎺у埗鍣�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkPreGenObjs"> + <!-- 澶勭悊娴佹氮鎺у埗鍣� --> + <task id="TkDealControllerTramp" name="澶勭悊娴佹氮鎺у埗鍣�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealControllerTramp" /> + <!-- 闈炴祦娴�匯TU锛屽繀椤绘斁鍦═kDealControllerTramp鍚庨潰 --> + <!-- 璇嗗埆涓诲姩涓婃姤鏁版嵁 --> + <task id="TkFindReport" name="璇嗗埆涓婃姤鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindReport"> + + </task> + <!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 --> + <task id="TkFindComResponse" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindComResponse"> + <task id="TkRtuDealCommandResponse" name="RTU鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkRtuDealCommandResponse" > + </task> + </task> </task> - </task> </task> </task> </project> \ No newline at end of file -- Gitblit v1.8.0