From ec67f42b0c95e1967def5ce9c86f9ca10df53505 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期三, 22 一月 2025 13:46:23 +0800 Subject: [PATCH] 通信中间件,下行命令增加一倒计次属性,以实现延迟发送命令。 --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1601_Down.java | 37 ++++++++++++++++++++++++++++++++++--- 1 files changed, 34 insertions(+), 3 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1601_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1601_Down.java index 6d38fa7..3b5864f 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1601_Down.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1601_Down.java @@ -4,7 +4,8 @@ import com.dy.common.mw.protocol.p206V2.CodeV2; import com.dy.common.mw.protocol.p206V2.ParseParamsForDownV2; import com.dy.common.mw.protocol.p206V2.ProtocolConstantV206V2; -import com.dy.common.mw.protocol.p206V2.parse.global.GlCreate; +import com.dy.common.mw.protocol.p206V1.parse.global.GlCreate; +import com.dy.common.softUpgrade.Com1601Vo; import com.dy.common.util.ByteUtil; /** @@ -32,9 +33,12 @@ midRs.downCodeName = CodeV2.getCodeName(para.commandCode) ;//涓嬭鍛戒护鍔熻兘鐮佸悕绉�; midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁 midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡 - midRs.hasResponse = true ;//鏄惁鏈夊簲绛� + midRs.hasResponse = false ;//鏄惁鏈夊簲绛� midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆 midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue + + midRs.isFastCom = true ;//閫熷彂鍛戒护锛屼笅鍙戞暟鎹椂闂撮棿闅斿彈灏忓�硷紙閰嶇疆鏂囦欢涓璮astCommandSendInterval锛夐檺鍒� + midRs.countdown4Send = 1 ;//鍊掕鏃讹紝褰撴鍊间负灏忎簬绛変簬0鏃舵墠浼氫笅鍙戯紝鍚﹀垯閫愭鍑�1 if(isLowPower != null && isLowPower.booleanValue()){ //浣庡姛鑰楁椂锛屽敖蹇彂閫� @@ -71,7 +75,34 @@ index += 2 ; GlCreate.createRtuAddr4PUg(para.rtuAddr, preBytes, index); - byte[] bytes = ByteUtil.bytesMerge(preBytes, (byte[])para.attachment) ; + if(para.param == null){ + throw new Exception("鍙傛暟涓虹┖") ; + } + if(!(para.param instanceof Com1601Vo)){ + throw new Exception("鍙傛暟绫诲瀷闈濩om1601Vo") ; + } + Com1601Vo vo = (Com1601Vo) para.param ; + byte[] bs = new byte[4] ; + ByteUtil.hex2Bytes(vo.softStoreAddr, bs, 0) ; + byte[] bytes = ByteUtil.bytesMerge(preBytes, bs) ; + + bs = new byte[4] ; + ByteUtil.int2Bytes_BE(bs, vo.totalByte, 0); + bytes = ByteUtil.bytesMerge(bytes, bs) ; + + bs = new byte[2] ; + ByteUtil.short2Bytes_BE(bs, (short)vo.softCrc, 0); + bytes = ByteUtil.bytesMerge(bytes, bs) ; + + bs = new byte[2] ; + ByteUtil.short2Bytes_BE(bs, (short)vo.softCrc, 0); + bytes = ByteUtil.bytesMerge(bytes, bs) ; + + bs = new byte[4] ; + ByteUtil.hex2Bytes(vo.softStartAddr, bs, 0) ; + bytes = ByteUtil.bytesMerge(bytes, bs) ; + + GlCreate.createLen4PUg(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑 byte[] bsTail = GlCreate.createCrcTail4Ug(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓� -- Gitblit v1.8.0