From d97742662f28a693e325ce163c5ebf57802efb63 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期五, 05 十二月 2025 12:56:41 +0800
Subject: [PATCH] #读超长条码BUG修复
---
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 47 +++++++++++++++++++++++++++++++++++------------
1 files changed, 35 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 11c8aa7..0114b65 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -538,23 +538,13 @@
} else if(siteId<4000){
if (siteId == 2110) {
if (resultArm5.IsSuccess) {
- // 杞崲涓哄瓧绗︿覆
- String resultString = siemensS7Net.getByteTransform().TransString(resultArm5.Content, 2, 254,"UTF-8");
- // 鍘婚櫎鍙兘鐨勭┖瀛楃
-// resultString = resultString.TrimEnd('\0');
-// System.out.println("2110Barcode:"+resultString);
- staProtocol.setBarcode(resultString);
+ staProtocol.setBarcode(parseS7String(resultArm5));
} else {
staProtocol.setBarcode("");
}
} else if (siteId == 2120){
if (resultArm6.IsSuccess) {
- // 杞崲涓哄瓧绗︿覆
- String resultString = siemensS7Net.getByteTransform().TransString(resultArm6.Content, 2, 254,"UTF-8");
- // 鍘婚櫎鍙兘鐨勭┖瀛楃
-// resultString = resultString.TrimEnd('\0');
-// System.out.println("2120Barcode:"+resultString);
- staProtocol.setBarcode(resultString);
+ staProtocol.setBarcode(parseS7String(resultArm6));
} else {
staProtocol.setBarcode("");
}
@@ -1071,6 +1061,39 @@
}
}
+ private String parseS7String(OperateResultExOne<byte[]> result) {
+
+ if (result == null || !result.IsSuccess || result.Content == null) {
+ return "";
+ }
+
+ byte[] buf = result.Content;
+
+ if (buf.length < 2) {
+ return "";
+ }
+
+ // S7 瀛楃涓叉牸寮忥細
+ // buf[0] = 鏈�澶ч暱搴�
+ // buf[1] = 褰撳墠鐪熷疄闀垮害
+ int realLen = buf[1] & 0xFF;
+
+ if (realLen <= 0) {
+ return "";
+ }
+
+ // 闃叉 PLC 鍐欓敊闀垮害瀵艰嚧瓒婄晫
+ if (realLen > buf.length - 2) {
+ realLen = buf.length - 2;
+ }
+
+ String value = siemensS7Net.getByteTransform()
+ .TransString(buf, 2, realLen, "UTF-8");
+
+ return value == null ? "" : value.trim();
+ }
+
+
/**
* 璁剧疆鍏ュ簱鏍囪
*/
--
Gitblit v1.9.1