From a27fab527ce7d4aa8c9c8f0645cb8c2520590407 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期一, 01 七月 2024 14:20:51 +0800 Subject: [PATCH] 1、靳总协议解析与构造修改完善; 2、靳总协议上行数据处理修改完善; 3、增加UserTokenFilter非过滤(放行)URL功能实现。 --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_21_Down.java | 88 ++++++++++++++++++++++++++------------------ 1 files changed, 52 insertions(+), 36 deletions(-) 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 3e518e0..4cf5ecc 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 @@ -1,11 +1,15 @@ package com.dy.common.mw.protocol.p206V1_0_0.parse; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; 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.downVos.Com21Vo; import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate; +import com.dy.common.mw.protocol.p206V202404.downVos.ComCd21Vo; import com.dy.common.util.ByteUtil; import com.dy.common.util.ByteUtilUnsigned; @@ -52,57 +56,69 @@ * @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) ; - - /* - 鍙傛暟鏍煎紡锛� ip1,ip2,ip3,ip4,port - */ - if(para.param == null){ - throw new Exception("鏈彁渚涘懡浠ゅ弬鏁版暟鎹紝涓嶈兘鏋勯�犲姛鑳界爜涓�" + para.commandCode + "鐨勪笅琛屽懡浠�") ; + if(para.param == null) { + throw new Exception("鍛戒护鍙傛暟涓簄ull") ; }else{ + JSONObject obj = (JSONObject) para.param; + String json = obj.toJSONString(); + Com21Vo cvo = JSON.parseObject(json, Com21Vo.class); + if(cvo == null){ + throw new Exception("json杞珻om21Vo涓簄ull") ; + } + 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鑼冨洿鍐呯殑鏁存暟") ; + } + 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) ; + index = 0 ; byte[] bs = new byte[13] ; - String ipPort = (String)para.param ; - String[] ipPorts = ipPort.split(",") ; + String[] ipPorts = cvo.ip.split(".") ; ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[0]), index++); ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[1]), index++); ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[2]), index++); ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[3]), index++); - ByteUtilUnsigned.short2Bytes_LE(bs, Integer.parseInt(ipPorts[4]), index); + ByteUtilUnsigned.short2Bytes_LE(bs, cvo.port, index); index += 2 ; GlCreate.createPw(bs, index); index += 2 ; GlCreate.createTp(bs, index); bytes = ByteUtil.bytesMerge(bsHead, bs) ; + + GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑 + + byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓� + + bytes = ByteUtil.bytesMerge(bytes, bsTail) ; + + return bytes ; } - GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑 - - byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓� - - bytes = ByteUtil.bytesMerge(bytes, bsTail) ; - - return bytes ; } } -- Gitblit v1.8.0