ExtendData.java 5.04 KB
package com.bsth.entity;
import com.bsth.socket.protocol.Message0280;
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){

        this.infoType = message0280.getInfoType() != 0xFF ? message0280.getInfoType() : (byte) 0x80;

        // 自定义数据长度,默认34
        this.customDataLen = message0280.getCustomDataLen() != 0xFF ? message0280.getCustomDataLen() : (short) 34;

        // 蓄电池电压
        this.storageBatteryVoltage = message0280.getStorageBatteryVoltage();

        // 左前轮胎压力
        this.lfTirePressure = message0280.getLfTirePressure();

        // 左前轮胎温度
        this.lfTireTemp = message0280.getLfTireTemp();

        // 右前轮胎压力
        this.rfTirePressure = message0280.getRfTirePressure();

        // 右前轮胎温度
        this.rfTireTemp = message0280.getRfTireTemp();

        // 左后轮胎1压力
        this.lrTirePressure1 = message0280.getLrTirePressure1();

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

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

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

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

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

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

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





    }



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