From 18f9dc6d0f15cad4a74e68fcf87b1a9aa83b5e66 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 18 七月 2024 14:28:28 +0800 Subject: [PATCH] 实现协议中各种命令结果日志数据库永久更新保存功能 --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Down.java | 34 ++++++++++++++++++++++++++++++---- 1 files changed, 30 insertions(+), 4 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Down.java index 5a6cb09..445c5f7 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Down.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_02_Down.java @@ -3,6 +3,7 @@ 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.GlCreate; +import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd02Vo; import com.dy.common.util.ByteUtil; @AnnotationCodeDown(ifAny={ @@ -19,7 +20,7 @@ MidResultToRtu midRs = new MidResultToRtu() ; midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О - midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃锛堢數淇″钩鍙拌澶嘔MEI锛� + midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃 midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉 midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�; midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁 @@ -56,7 +57,7 @@ bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; index++ ; - bsHead[index] = commonV1_0_1.createCtrl((byte)0) ; + bsHead[index] = commonV1_0_1.createCtrl((byte)0, (byte)0) ; index++ ; GlCreate.createRtuAddr(para.rtuAddr, bsHead, index); @@ -65,16 +66,41 @@ ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ; byte[] bs = new byte[7] ; - bs[0] = (byte)0xF2 ;//鏁版嵁鍩燂細 1 涓瓧鑺傦紝F0 鐧诲綍锛� F1 閫�鍑虹櫥褰曪紝F2 鍦ㄧ嚎淇濇寔銆� + + Integer loginFlag = 0xF2 ; + if(para.param != null && para.param instanceof DataCd02Vo){ + DataCd02Vo vo = (DataCd02Vo)para.param ; + if(vo != null && vo.status != null){ + loginFlag = Integer.parseInt(vo.status, 16); + } + } + bs[0] = loginFlag.byteValue() ;//鏁版嵁鍩燂細 1 涓瓧鑺傦紝F0 鐧诲綍锛� F1 閫�鍑虹櫥褰曪紝F2 鍦ㄧ嚎淇濇寔銆� GlCreate.createTp(bs, 1); bytes = ByteUtil.bytesMerge(bsHead, bs) ; GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑 - bytes = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓� + byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓� + + bytes = ByteUtil.bytesMerge(bytes, bsTail) ; return bytes ; } + public static void main(String[] args) throws Exception{ + ParseParamsForDownV1_0_1 p = new ParseParamsForDownV1_0_1() ; + p.commandCode = "02" ; + p.rtuAddr = "9672950001"; + + Cd_02_Down obj = new Cd_02_Down() ; + byte[] bs = obj.doParse(p) ; + + String hex1 = ByteUtil.bytes2Hex(bs,true) ; + String hex2 = ByteUtil.bytes2Hex(bs,false) ; + + System.out.println(hex1); + System.out.println(hex2); + } + } -- Gitblit v1.8.0