ExtendData.java 7.85 KB
package com.bsth.entity;
import com.bsth.socket.protocol.Message0280;
import org.springframework.beans.BeanUtils;

public class ExtendData extends Data{

    /**
     * 信息类型
     * 默认应该为0x80
     */
    private byte infoType;

    /**
     * 自定义数据长度 1-65531
     * 默认34
     */
    private short customDataLen;

    /**
     * 蓄电池电压 0-32
     * 分辨率0.5v/bit
     * 0xfe 异常
     * 0xff 无效
     */
    private byte storageBatteryVoltage;

    /**
     * 左前轮胎压力 0-250
     * 分辨率 4kPa
     * 0xfe 异常
     * 0xff 无效
     */
    private byte lfTirePressure;

    /**
     * 左前轮胎温度 0-250
     * 分辨率 1℃
     * 0xfe 异常
     * 0xff 无效
     */
    private byte lfTireTemp;

    /**
     * 右前轮胎压力 0-250
     * 分辨率 4kPa
     * 0xfe 异常
     * 0xff 无效
     */
    private byte rfTirePressure;

    /**
     * 右前轮胎温度 0-250
     * 分辨率 1℃
     * 0xfe 异常
     * 0xff 无效
     */
    private byte rfTireTemp;

    /**
     * 左后轮胎1压力 0-250
     * 分辨率 4kPa
     * 0xfe 异常
     * 0xff 无效
     */
    private byte lrTirePressure1;

    /**
     * 左后轮胎1温度 0-250
     * 分辨率 1℃
     * 0xfe 异常
     * 0xff 无效
     */
    private byte lrTireTemp1;

    /**
     * 左后轮胎2压力 0-250
     * 分辨率 4kPa
     * 0xfe 异常
     * 0xff 无效
     */
    private byte lrTirePressure2;

    /**
     * 左后轮胎2温度 0-250
     * 分辨率 1℃
     * 0xfe 异常
     * 0xff 无效
     */
    private byte lrTireTemp2;

    /**
     * 右后轮胎1压力 0-250
     * 分辨率 4kPa
     * 0xfe 异常
     * 0xff 无效
     */
    private byte rrTirePressure1;

    /**
     * 右后轮胎1温度 0-250
     * 分辨率 1℃
     * 0xfe 异常
     * 0xff 无效
     */
    private byte rrTireTemp1;

    /**
     * 右后轮胎2压力 0-250
     * 分辨率 4kPa
     * 0xfe 异常
     * 0xff 无效
     */
    private byte rrTirePressure2;

    /**
     * 右后轮胎2温度 0-250
     * 分辨率 1℃
     * 0xfe 异常
     * 0xff 无效
     */
    private byte rrTireTemp2;

    /**
     * 无法定义
     * 用了其中2,3位作为手刹状态
     * 0无信号 1有信号 2异常 3无效
     */


    private byte unknown;


    public ExtendData(Message0280 message0280){
        BeanUtils.copyProperties(message0280, this);

        this.infoType &= (short) 0xFF;

        // 自定义数据长度,默认34
        this.customDataLen &= (short) 0xFF;

        // 蓄电池电压
        this.storageBatteryVoltage &= (short) 0xFF;

        // 左前轮胎压力
        this.lfTirePressure &= (short) 0xFF;

        // 左前轮胎温度
        this.lfTireTemp &= (short) 0xFF;
        this.lfTireTemp -=40;

        // 右前轮胎压力
        this.rfTirePressure &= (short) 0xFF;

        // 右前轮胎温度
        this.rfTireTemp &= (short) 0xFF;
        this.rfTireTemp -=40;

        // 左后轮胎1压力
        this.lrTirePressure1 &= (short) 0xFF;

        // 左后轮胎1温度
        this.lrTireTemp1 = message0280.getLrTireTemp1();
        this.lrTireTemp1 -=40;

        // 左后轮胎2压力
        this.lrTirePressure2 = message0280.getLrTirePressure2();

        // 左后轮胎2温度
        this.lrTireTemp2 = message0280.getLrTireTemp2();
        this.lrTireTemp2 -=40;

        // 右后轮胎1压力
        this.rrTirePressure1 = message0280.getRrTirePressure1();

        // 右后轮胎1温度
        this.rrTireTemp1 = message0280.getRrTireTemp1();
        this.rrTireTemp1 -=40;

        // 右后轮胎2压力
        this.rrTirePressure2 = message0280.getRrTirePressure2();

        // 右后轮胎2温度
        this.rrTireTemp2 = message0280.getRrTireTemp2();
        this.rrTireTemp2 -=40;





    }

    public byte getInfoType() {
        return infoType;
    }

    public void setInfoType(byte infoType) {
        this.infoType = infoType;
    }

    public short getCustomDataLen() {
        return customDataLen;
    }

    public void setCustomDataLen(short customDataLen) {
        this.customDataLen = customDataLen;
    }

    public byte getStorageBatteryVoltage() {
        return storageBatteryVoltage;
    }

    public void setStorageBatteryVoltage(byte storageBatteryVoltage) {
        this.storageBatteryVoltage = storageBatteryVoltage;
    }

    public byte getLfTirePressure() {
        return lfTirePressure;
    }

    public void setLfTirePressure(byte lfTirePressure) {
        this.lfTirePressure = lfTirePressure;
    }

    public byte getLfTireTemp() {
        return lfTireTemp;
    }

    public void setLfTireTemp(byte lfTireTemp) {
        this.lfTireTemp = lfTireTemp;
    }

    public byte getRfTirePressure() {
        return rfTirePressure;
    }

    public void setRfTirePressure(byte rfTirePressure) {
        this.rfTirePressure = rfTirePressure;
    }

    public byte getRfTireTemp() {
        return rfTireTemp;
    }

    public void setRfTireTemp(byte rfTireTemp) {
        this.rfTireTemp = rfTireTemp;
    }

    public byte getLrTirePressure1() {
        return lrTirePressure1;
    }

    public void setLrTirePressure1(byte lrTirePressure1) {
        this.lrTirePressure1 = lrTirePressure1;
    }

    public byte getLrTireTemp1() {
        return lrTireTemp1;
    }

    public void setLrTireTemp1(byte lrTireTemp1) {
        this.lrTireTemp1 = lrTireTemp1;
    }

    public byte getLrTirePressure2() {
        return lrTirePressure2;
    }

    public void setLrTirePressure2(byte lrTirePressure2) {
        this.lrTirePressure2 = lrTirePressure2;
    }

    public byte getLrTireTemp2() {
        return lrTireTemp2;
    }

    public void setLrTireTemp2(byte lrTireTemp2) {
        this.lrTireTemp2 = lrTireTemp2;
    }

    public byte getRrTirePressure1() {
        return rrTirePressure1;
    }

    public void setRrTirePressure1(byte rrTirePressure1) {
        this.rrTirePressure1 = rrTirePressure1;
    }

    public byte getRrTireTemp1() {
        return rrTireTemp1;
    }

    public void setRrTireTemp1(byte rrTireTemp1) {
        this.rrTireTemp1 = rrTireTemp1;
    }

    public byte getRrTirePressure2() {
        return rrTirePressure2;
    }

    public void setRrTirePressure2(byte rrTirePressure2) {
        this.rrTirePressure2 = rrTirePressure2;
    }

    public byte getRrTireTemp2() {
        return rrTireTemp2;
    }

    public void setRrTireTemp2(byte rrTireTemp2) {
        this.rrTireTemp2 = rrTireTemp2;
    }

    public byte getUnknown() {
        return unknown;
    }

    public void setUnknown(byte unknown) {
        this.unknown = unknown;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(" 信息类型: ").append(String.format("%02x", infoType))
                .append(" 自定义数据长度: ").append(customDataLen)
                .append(" 蓄电池电压: ").append(storageBatteryVoltage)
                .append(" 左前轮压力: ").append(lfTirePressure)
                .append(" 左前轮温度: ").append(lfTireTemp)
                .append(" 右前轮压力: ").append(rfTirePressure)
                .append(" 右前轮温度: ").append(rfTireTemp)
                .append(" 左后轮1压力: ").append(lrTirePressure1)
                .append(" 左后轮1温度: ").append(lrTireTemp1)
                .append(" 左后轮2压力: ").append(lrTirePressure2)
                .append(" 左后轮2温度: ").append(lrTireTemp2)
                .append(" 右后轮1压力: ").append(rrTirePressure1)
                .append(" 右后轮1温度: ").append(rrTireTemp1)
                .append(" 右后轮2压力: ").append(rrTirePressure2)
                .append(" 右后轮2温度: ").append(rrTireTemp2)
                .append(" 手刹状态: ").append(unknown);

        return sb.toString();
    }
    @Override
    public String getType() {

        return "Extend_data";
    }
}