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