package com.zy.acs.common.domain.protocol; 
 | 
  
 | 
import com.zy.acs.framework.common.RadixTools; 
 | 
import com.zy.acs.common.utils.Utils; 
 | 
import lombok.Data; 
 | 
  
 | 
import java.io.Serializable; 
 | 
  
 | 
/** 
 | 
 * 心跳包 
 | 
 * Created by vincent on 2023/3/16 
 | 
 */ 
 | 
@Data 
 | 
public class AGV_03_UP implements IMessageBody, Serializable { 
 | 
  
 | 
    private static final long serialVersionUID = -8758441350794873082L; 
 | 
  
 | 
    @Override 
 | 
    public byte[] writeToBytes() { 
 | 
        return new byte[0]; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void readFromBytes(byte[] bytes) { 
 | 
        //电压 
 | 
        this.voltage = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, 0, 2)); 
 | 
        //剩余电量 
 | 
        this.soc = Utils.slice(bytes, 2, 1)[0]; 
 | 
        //寿命 
 | 
        this.soh = Utils.slice(bytes, 3, 1)[0]; 
 | 
        //电池故障标志 
 | 
        this.batterFailSign = Utils.slice(bytes, 4, 1)[0]; 
 | 
        //电池温度 
 | 
        this.batteryTempe = Utils.slice(bytes, 5, 1)[0]; 
 | 
        //环境温度 
 | 
        this.envirTempe = Utils.slice(bytes, 6, 1)[0]; 
 | 
        //左轮电机温度 
 | 
        this.leftMotorTempe = Utils.slice(bytes, 7, 1)[0]; 
 | 
        //右轮电机温度 
 | 
        this.rightMotorTempe = Utils.slice(bytes, 8, 1)[0]; 
 | 
        //升降电机温度 
 | 
        this.raiseMotorTempe = Utils.slice(bytes, 9, 1)[0]; 
 | 
        //伸缩电机温度 
 | 
        this.telescopicMotorTempe = Utils.slice(bytes, 10, 1)[0]; 
 | 
        //旋转电机温度 
 | 
        this.rotatingMotorTempe = Utils.slice(bytes, 11, 1)[0]; 
 | 
        //开机时间 
 | 
        this.bootTime = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 12, 4)); 
 | 
        //左电机故障标志 
 | 
        this.leftMotorFailSign = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, 16, 2)); 
 | 
        //右电机故障标志 
 | 
        this.leftMotorFailSign = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, 18, 2)); 
 | 
        //升降电机故障标志 
 | 
        this.raiseMotorFailSign = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, 20, 2)); 
 | 
        //伸缩电机故障标志 
 | 
        this.telescopicMotorFailSign = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, 22, 2)); 
 | 
        //旋转电机故障标志 
 | 
        this.rotatingMotorFailSign = RadixTools.byteToShort(Utils.sliceWithReverse(bytes, 24, 2)); 
 | 
        //故障标志位 
 | 
        this.failSign = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 26, 4)); 
 | 
        //预留字段 
 | 
        this.reservedField = RadixTools.bytesToInt(Utils.sliceWithReverse(bytes, 30, 4)); 
 | 
    } 
 | 
  
 | 
    private int voltage; // 电压 
 | 
  
 | 
    private int soc;     // 剩余电量 
 | 
  
 | 
    private int soh;     // 寿命 
 | 
  
 | 
    private int batterFailSign; // 电池故障标志 
 | 
  
 | 
    //电池温度 
 | 
    private int batteryTempe; 
 | 
  
 | 
    // 环境温度 
 | 
    private int envirTempe; 
 | 
  
 | 
    //左轮电机温度 
 | 
    private int leftMotorTempe; 
 | 
  
 | 
    //右轮电机温度 
 | 
    private int rightMotorTempe; 
 | 
  
 | 
    //升降电机温度 
 | 
    private int raiseMotorTempe; 
 | 
  
 | 
    //伸缩电机温度 
 | 
    private int telescopicMotorTempe; 
 | 
  
 | 
    //旋转电机温度 
 | 
    private int rotatingMotorTempe; 
 | 
  
 | 
    //开机时间 
 | 
    private int bootTime; 
 | 
  
 | 
    //左电机故障标志 
 | 
    private int leftMotorFailSign; 
 | 
  
 | 
    //右电机故障标志 
 | 
    private int rightMotorFailSign; 
 | 
  
 | 
    //升降电机故障标志 
 | 
    private int raiseMotorFailSign; 
 | 
  
 | 
    //伸缩电机故障标志 
 | 
    private int telescopicMotorFailSign; 
 | 
  
 | 
    //旋转电机故障标志 
 | 
    private int rotatingMotorFailSign; 
 | 
  
 | 
    //故障标志位 
 | 
    private int failSign; 
 | 
  
 | 
    //预留字段 
 | 
    private int reservedField; 
 | 
  
 | 
  
 | 
} 
 |