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;
|
|
}
|