package com.example.agvcontroller.protocol; import com.example.agvcontroller.action.AgvCompleteType; import com.example.agvcontroller.action.CommonConstant; import com.example.agvcontroller.socket.RadixTools; import java.io.Serializable; /** * 动作完成数据包 * * Created by vincent on 2023/3/21 */ public class AGV_02_UP implements IMessageBody, Serializable { private static final long serialVersionUID = 8403019742104020004L; @Override public byte[] writeToBytes() { return new byte[0]; } @Override public void readFromBytes(byte[] bytes) { // try { this.serialNo = new String(Utils.sliceWithReverse(bytes, 0, 16)); // } catch (UnsupportedEncodingException e) { // e.printStackTrace(); // } 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.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); } private String serialNo; // 完成动作码 private int completeCode; private AgvCompleteType completeType; // 地面码 - 8位 private String qrCode; // 车头朝向 private short direction; // 货位二维码 private String locCode; public String getSerialNo() { return serialNo; } public void setSerialNo(String serialNo) { this.serialNo = serialNo; } public int getCompleteCode() { return completeCode; } public void setCompleteCode(int completeCode) { this.completeCode = completeCode; } public AgvCompleteType getCompleteType() { return completeType; } public void setCompleteType(AgvCompleteType completeType) { this.completeType = completeType; } public String getQrCode() { return qrCode; } public void setQrCode(String qrCode) { this.qrCode = qrCode; } public short getDirection() { return direction; } public void setDirection(short direction) { this.direction = direction; } public String getLocCode() { return locCode; } public void setLocCode(String locCode) { this.locCode = locCode; } public String getBoxCode() { return boxCode; } public void setBoxCode(String boxCode) { this.boxCode = boxCode; } // 料箱二维码 private String boxCode; }