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