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