From 8980782bebfd40b2a56169e4fb53686882e87a97 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期五, 26 十二月 2025 14:20:44 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/SiemensDevpThread.java |   51 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 38 insertions(+), 13 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..2dc0858 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -84,7 +84,7 @@
         add(2022);add(2024);
         add(2028);add(2030);
         add(2025);add(2027);
-        add(2031);add(2033);
+        add(2031);add(2032);add(2033);
         add(2034);add(2035);add(2037);
 //        add(2041);add(2042);add(2043);add(2044);
 //        add(2045);add(2046);add(2047);add(2048);
@@ -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("");
                             }
@@ -623,7 +613,9 @@
                     boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result.Content, offset + offset3 - 4, 3);
                     boolean[] statusErr = siemensS7Net.getByteTransform().TransBool(result.Content, offset + offset3 - 8, 3);
                     boolean[] statusSign = siemensS7Net.getByteTransform().TransBool(resultErr.Content, offsetSign, 3);
+                    if(siteId == 2032){
 
+                    }
                     boolean loading = false;
                     if(!status1[0])
                     {
@@ -1071,6 +1063,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