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_12_UP.java | 45 +++++++++++++++++++++++++++++----------------
1 files changed, 29 insertions(+), 16 deletions(-)
diff --git a/zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/AGV_12_UP.java b/zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/AGV_12_UP.java
index c4fc817..766b6bb 100644
--- a/zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/AGV_12_UP.java
+++ b/zy-acs-common/src/main/java/com/zy/acs/common/domain/protocol/AGV_12_UP.java
@@ -1,7 +1,7 @@
package com.zy.acs.common.domain.protocol;
import com.zy.acs.framework.common.RadixTools;
-import com.zy.acs.common.constant.CommonConstant;
+import com.zy.acs.common.utils.QrCodeCodecSupport;
import com.zy.acs.common.utils.Utils;
import lombok.Data;
@@ -24,35 +24,48 @@
@Override
public void readFromBytes(byte[] bytes) {
+ int qrCodeBytes = QrCodeCodecSupport.qrCodeBytes();
+ int offsetXPos = qrCodeBytes;
+ int offsetYPos = offsetXPos + 2;
+ int groundCodeOffsetPos = offsetYPos + 2;
+ int statusPos = groundCodeOffsetPos + 4;
+ int straightDirectionPos = statusPos + 1;
+ int currentAnglePos = straightDirectionPos + 4;
+ int gyroAnglePos = currentAnglePos + 4;
+ int encoderAnglePos = gyroAnglePos + 4;
+ int currentAltitudePos = encoderAnglePos + 4;
+ int forkLengthPos = currentAltitudePos + 2;
+ int loaderThetaPos = forkLengthPos + 2;
+ int sensorStatusPos = loaderThetaPos + 2;
//鍦伴潰鐮両D
- this.qrCode = Utils.zeroFill(String.valueOf(RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 0, 4))), CommonConstant.QR_CODE_LEN);;
+ this.qrCode = QrCodeCodecSupport.decode(bytes, 0);
//鍦伴潰鐮佸亸绉粁
- this.offsetX = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, 4 , 2));
+ this.offsetX = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, offsetXPos , 2));
//鍦伴潰鐮佸亸绉粂
- this.offsetY = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, 6, 2));
+ this.offsetY = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, offsetYPos, 2));
//鍦伴潰鐮佸亸绉晃�
- this.groundCodeOffset0 = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 8, 4));
+ this.groundCodeOffset0 = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, groundCodeOffsetPos, 4));
//褰撳墠鐘舵��
- this.status = Utils.slice(bytes, 12, 1)[0];
+ this.status = Utils.slice(bytes, statusPos, 1)[0];
//鐩磋鏂瑰悜鍧愭爣
- this.straightDirectionPosition = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 13, 4));
+ this.straightDirectionPosition = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, straightDirectionPos, 4));
//AGV褰撳墠瑙掑害
-// this.AGVCurrentAngle = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 17, 4));
- this.AGVCurrentAngle = ByteBuffer.wrap(Utils.sliceWithReverse(bytes, 17, 4)).getFloat();
+// this.AGVCurrentAngle = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, currentAnglePos, 4));
+ this.AGVCurrentAngle = ByteBuffer.wrap(Utils.sliceWithReverse(bytes, currentAnglePos, 4)).getFloat();
//闄�铻轰华瑙掑害
- this.gyroAngle = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 21, 4));
+ this.gyroAngle = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, gyroAnglePos, 4));
//缂栫爜鍣ㄨ搴�
- this.encoderAngle = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 25, 4));
+ this.encoderAngle = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, encoderAnglePos, 4));
//褰撳墠楂樺害
- this.currentAltitude = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, 29, 2));
+ this.currentAltitude = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, currentAltitudePos, 2));
//璐у弶浼稿嚭璺濈
- this.forkLength = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, 31, 2));
+ this.forkLength = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, forkLengthPos, 2));
//杞借揣鍙版棆杞搴�
- this.loaderTheta = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, 33, 2));
+ this.loaderTheta = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, loaderThetaPos, 2));
//浼犳劅鍣ㄧ姸鎬佹爣蹇�
-// this.sensorStatusFlags = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 35, 4));
+// this.sensorStatusFlags = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, sensorStatusPos, 4));
- byte[] sensorStatusBytes = Utils.slice(bytes, 35, 4);
+ byte[] sensorStatusBytes = Utils.slice(bytes, sensorStatusPos, 4);
parseSensorStatue(sensorStatusBytes);
}
--
Gitblit v1.9.1