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