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.enums.AgvCompleteType; import com.zy.acs.common.utils.Utils; import lombok.Data; import lombok.extern.slf4j.Slf4j; import java.io.Serializable; /** * 动作完成数据包 * * Created by vincent on 2023/3/21 */ @Data @Slf4j public class AGV_11_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; // 料箱二维码 private String boxCode; }