From 7fd3ff6715939467e3850763206d37fac8564e41 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 02 十二月 2024 11:15:26 +0800
Subject: [PATCH] 修改升级协议中的bug,未在下行数据中放入帧长度

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1603_Down.java         |    2 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/global/GlCreate.java      |   10 ++++++++++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1602_Down.java         |    2 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1600_Down.java         |    2 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1601_Down.java         |    2 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1602_Down.java         |    2 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlCreate.java |   11 +++++++++++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1601_Down.java    |    2 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1600_Down.java    |    2 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1603_Down.java         |    2 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1600_Down.java         |    5 +++--
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1603_Down.java    |    2 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1601_Down.java         |    4 +++-
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1602_Down.java    |    2 ++
 14 files changed, 47 insertions(+), 3 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1600_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1600_Down.java
index 55f2527..641d16c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1600_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1600_Down.java
@@ -71,6 +71,8 @@
         index += 2 ;
         GlCreate.createRtuAddr4PUg(para.rtuAddr, preBytes, index);
 
+        GlCreate.createLen4PUg(preBytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
         byte[] bsTail = GlCreate.createCrcTail4Ug(preBytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
 
         return ByteUtil.bytesMerge(preBytes, bsTail) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1601_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1601_Down.java
index 845a90a..26549ff 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1601_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1601_Down.java
@@ -99,6 +99,8 @@
         ByteUtil.hex2Bytes(vo.softStartAddr, bs, 0) ;
         bytes = ByteUtil.bytesMerge(bytes, bs) ;
 
+        GlCreate.createLen4PUg(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
         byte[] bsTail = GlCreate.createCrcTail4Ug(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
 
         return ByteUtil.bytesMerge(bytes, bsTail) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1602_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1602_Down.java
index 8c90752..6e7a932 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1602_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1602_Down.java
@@ -82,6 +82,8 @@
 
         bytes = ByteUtil.bytesMerge(bytes, (byte[])para.attachment) ;
 
+        GlCreate.createLen4PUg(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
         byte[] bsTail = GlCreate.createCrcTail4Ug(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
 
         return ByteUtil.bytesMerge(bytes, bsTail) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1603_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1603_Down.java
index 672e40c..1e4a715 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1603_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_1603_Down.java
@@ -71,6 +71,8 @@
         index += 2 ;
         GlCreate.createRtuAddr4PUg(para.rtuAddr, preBytes, index);
 
+        GlCreate.createLen4PUg(preBytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
         byte[] bsTail = GlCreate.createCrcTail4Ug(preBytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
 
         return ByteUtil.bytesMerge(preBytes, bsTail) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1600_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1600_Down.java
index 13d6504..321f0c2 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1600_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1600_Down.java
@@ -1,11 +1,10 @@
 package com.dy.common.mw.protocol.p206V2.parse;
 
 import com.dy.common.mw.protocol.*;
-import com.dy.common.mw.protocol.p206V1.ProtocolConstantV206V1;
 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.util.ByteUtil;
 
 /**
@@ -71,6 +70,8 @@
         index += 2 ;
         GlCreate.createRtuAddr4PUg(para.rtuAddr, preBytes, index);
 
+        GlCreate.createLen4PUg(preBytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
         byte[] bsTail = GlCreate.createCrcTail4Ug(preBytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
 
         return ByteUtil.bytesMerge(preBytes, bsTail) ;
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 6b701e3..dcb32aa 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,7 @@
 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;
 
@@ -99,6 +99,8 @@
         ByteUtil.hex2Bytes(vo.softStartAddr, bs, 0) ;
         bytes = ByteUtil.bytesMerge(bytes, bs) ;
 
+        GlCreate.createLen4PUg(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
         byte[] bsTail = GlCreate.createCrcTail4Ug(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
 
         return ByteUtil.bytesMerge(bytes, bsTail) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1602_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1602_Down.java
index 941a836..4a72d61 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1602_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1602_Down.java
@@ -81,6 +81,8 @@
 
         bytes = ByteUtil.bytesMerge(bytes, (byte[])para.attachment) ;
 
+        GlCreate.createLen4PUg(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
         byte[] bsTail = GlCreate.createCrcTail4Ug(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
 
         return ByteUtil.bytesMerge(bytes, bsTail) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1603_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1603_Down.java
index f9ad376..5b6b9f9 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1603_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_1603_Down.java
@@ -71,6 +71,8 @@
         index += 2 ;
         GlCreate.createRtuAddr4PUg(para.rtuAddr, preBytes, index);
 
+        GlCreate.createLen4PUg(preBytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
         byte[] bsTail = GlCreate.createCrcTail4Ug(preBytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
 
         return ByteUtil.bytesMerge(preBytes, bsTail) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/global/GlCreate.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/global/GlCreate.java
index 9875718..cd7bcee 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/global/GlCreate.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/global/GlCreate.java
@@ -54,6 +54,16 @@
         bsNoTail[ProtocolConstantV206V2.dataLenIndex] = (byte)len ;
     }
 
+    public static void createLen4PUg(byte[] bytes) throws Exception {
+        int len = bytes.length - 4;
+        byte[] bs = ByteUtil.int2BCD_LE(len) ;
+        if(bs != null && bs.length == 1){
+            bytes[1] = bs[0] ;
+        }else if(bs != null && bs.length > 1){
+            bytes[1] = bs[0] ;
+            bytes[2] = bs[1] ;
+        }
+    }
 
     /**
      * 鐢熸垚IC鍗$紪鐮�
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1600_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1600_Down.java
index c73a6d2..dab5bad 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1600_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1600_Down.java
@@ -70,6 +70,8 @@
         index += 2 ;
         GlCreate.createRtuAddr4PUg(para.rtuAddr, preBytes, index);
 
+        GlCreate.createLen4PUg(preBytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
         byte[] bsTail = GlCreate.createCrcTail4Ug(preBytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
 
         return ByteUtil.bytesMerge(preBytes, bsTail) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1601_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1601_Down.java
index 31d9552..5c03b60 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1601_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1601_Down.java
@@ -99,6 +99,8 @@
         ByteUtil.hex2Bytes(vo.softStartAddr, bs, 0) ;
         bytes = ByteUtil.bytesMerge(bytes, bs) ;
 
+        GlCreate.createLen4PUg(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
         byte[] bsTail = GlCreate.createCrcTail4Ug(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
 
         return ByteUtil.bytesMerge(bytes, bsTail) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1602_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1602_Down.java
index 5281b89..cb39f83 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1602_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1602_Down.java
@@ -81,6 +81,8 @@
 
         bytes = ByteUtil.bytesMerge(bytes, (byte[])para.attachment) ;
 
+        GlCreate.createLen4PUg(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
         byte[] bsTail = GlCreate.createCrcTail4Ug(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
 
         return ByteUtil.bytesMerge(bytes, bsTail) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1603_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1603_Down.java
index b708300..a9a9d24 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1603_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_1603_Down.java
@@ -71,6 +71,8 @@
         index += 2 ;
         GlCreate.createRtuAddr4PUg(para.rtuAddr, preBytes, index);
 
+        GlCreate.createLen4PUg(preBytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
         byte[] bsTail = GlCreate.createCrcTail4Ug(preBytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
 
         return ByteUtil.bytesMerge(preBytes, bsTail) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlCreate.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlCreate.java
index 432a0bf..d638f18 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlCreate.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlCreate.java
@@ -146,6 +146,17 @@
         bsNoTail[ProtocolConstantV206V1.dataLenIndex] = (byte)len ;
     }
 
+    public static void createLen4PUg(byte[] bytes) throws Exception {
+        int len = bytes.length - 4;
+        byte[] bs = ByteUtil.int2BCD_LE(len) ;
+        if(bs != null && bs.length == 1){
+            bytes[1] = bs[0] ;
+        }else if(bs != null && bs.length > 1){
+            bytes[1] = bs[0] ;
+            bytes[2] = bs[1] ;
+        }
+    }
+
     public static byte[] createCrcTail(byte[] bsNoTail) throws Exception {
         int crc = new CRC8_for_2_0().CRC8(bsNoTail, ProtocolConstantV206V1.ctrlIndex, bsNoTail.length -1) ;
         byte[] bytes = new byte[ProtocolConstantV206V1.lenTail] ;

--
Gitblit v1.8.0