| | |
| | | package com.zy.acs.common.domain.protocol; |
| | | |
| | | import com.zy.acs.common.constant.CommonConstant; |
| | | import com.zy.acs.framework.common.RadixTools; |
| | | import com.zy.acs.common.utils.Utils; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * 故障数据包 |
| | | */ |
| | | @Data |
| | | public class AGV_04_UP implements IMessageBody, Serializable { |
| | | |
| | |
| | | |
| | | @Override |
| | | public byte[] writeToBytes() { |
| | | |
| | | return Utils.merge( |
| | | Utils.reverse(RadixTools.shortToByte((short) this.faultId)) |
| | | , Utils.reverse(RadixTools.hexStringToBytes(this.hexFaultId)) |
| | |
| | | , (byte) this.faultLevel |
| | | , Utils.reverse(RadixTools.intToBytes(this.data1)) |
| | | , Utils.reverse(RadixTools.intToBytes(this.data2)) |
| | | , Utils.reverse(RadixTools.intToBytes(this.flag)) |
| | | , Utils.reverse(RadixTools.intToBytes(Integer.parseInt(this.qrCode))) |
| | | ); |
| | | } |
| | | |
| | | @Override |
| | | public void readFromBytes(byte[] messageBodyBytes) { |
| | | public void readFromBytes(byte[] bytes) { |
| | | //故障ID |
| | | this.faultId = RadixTools.byteToShort(Utils.sliceWithReverse(messageBodyBytes, 0, 2)); |
| | | this.hexFaultId = RadixTools.bytesToHexStr(Utils.sliceWithReverse(messageBodyBytes, 0, 2)); |
| | | this.faultId = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, 0, 2)); |
| | | this.hexFaultId = RadixTools.bytesToHexStr(Utils.sliceWithReverse(bytes, 0, 2)); |
| | | //故障状态 |
| | | this.faultStatus = Utils.slice(messageBodyBytes, 2, 1)[0]; |
| | | this.faultStatus = Utils.slice(bytes, 2, 1)[0]; |
| | | //故障等级 |
| | | this.faultLevel = Utils.slice(messageBodyBytes, 3, 1)[0]; |
| | | this.faultLevel = Utils.slice(bytes, 3, 1)[0]; |
| | | //故障数据1 |
| | | this.data1 = RadixTools.bytesToInt(Utils.sliceWithReverse(messageBodyBytes, 4, 4)); |
| | | this.data1 = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 4, 4)); |
| | | //故障数据2 |
| | | this.data2 = RadixTools.bytesToInt(Utils.sliceWithReverse(messageBodyBytes, 8, 4)); |
| | | //故障标志位 |
| | | this.flag = RadixTools.bytesToInt(Utils.sliceWithReverse(messageBodyBytes, 12, 4)); |
| | | this.data2 = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 8, 4)); |
| | | // //故障标志位 |
| | | // this.flag = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 12, 4)); |
| | | //地面码ID |
| | | this.qrCode = Utils.zeroFill(String.valueOf(RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 12, 4))), CommonConstant.QR_CODE_LEN);; |
| | | |
| | | } |
| | | |
| | | //故障ID |
| | |
| | | //故障数据2 |
| | | private int data2; |
| | | |
| | | //故障标志位 |
| | | private int flag; |
| | | //地面码ID |
| | | private String qrCode; |
| | | |
| | | } |