From 2743d98b983b7ecd049093931749db749b4b2fe4 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 30 四月 2026 10:54:27 +0800
Subject: [PATCH] #

---
 zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/AGV_11_UP.java |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/AGV_11_UP.java b/zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/AGV_11_UP.java
index 30eaef1..915122a 100644
--- a/zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/AGV_11_UP.java
+++ b/zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/AGV_11_UP.java
@@ -3,6 +3,7 @@
 import com.zy.acs.framework.common.RadixTools;
 import com.zy.acs.common.constant.CommonConstant;
 import com.zy.acs.common.enums.AgvCompleteType;
+import com.zy.acs.common.utils.QrCodeCodecSupport;
 import com.zy.acs.common.utils.Utils;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
@@ -27,6 +28,11 @@
 
     @Override
     public void readFromBytes(byte[] bytes) {
+        int qrCodeBytes = QrCodeCodecSupport.qrCodeBytes();
+        int qrCodePos = 17;
+        int directionPos = qrCodePos + qrCodeBytes;
+        int locCodePos = directionPos + 2;
+        int boxCodePos = locCodePos + 16;
 //        try {
             this.serialNo = new String(Utils.sliceWithReverse(bytes, 0, 16));
 //        } catch (UnsupportedEncodingException e) {
@@ -34,12 +40,12 @@
 //        }
         this.completeCode = Utils.slice(bytes, 16, 1)[0];
         this.completeType = AgvCompleteType.query(this.completeCode);
-        this.qrCode = Utils.zeroFill(String.valueOf(RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 17, 4))), CommonConstant.QR_CODE_LEN);
-        this.direction = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, 21,2));
+        this.qrCode = QrCodeCodecSupport.decode(bytes, qrCodePos);
+        this.direction = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, directionPos, 2));
 //        this.locCode = new String(Utils.sliceWithReverse(bytes, 23, 16)).replaceAll("\\u0000", "");
 //        this.boxCode = new String(Utils.sliceWithReverse(bytes, 39, 16)).replaceAll("\\u0000", "");
-        this.locCode = Utils.zeroFill(String.valueOf(RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 23, 4))), CommonConstant.QR_CODE_LEN);
-        this.boxCode = Utils.zeroFill(String.valueOf(RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 39, 4))), CommonConstant.QR_CODE_LEN);
+        this.locCode = Utils.zeroFill(String.valueOf(RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, locCodePos, 4))), CommonConstant.QR_CODE_LEN);
+        this.boxCode = Utils.zeroFill(String.valueOf(RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, boxCodePos, 4))), CommonConstant.QR_CODE_LEN);
     }
 
     private String serialNo;

--
Gitblit v1.9.1