Message0204.java 1.89 KB
package com.bsth.socket.protocol;

import com.bsth.util.ConvertUtil;

/**
 * @author Hill
 * 发动机数据
 */
public class Message0204 implements IMessageBody02 {

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

	/**
	 * 发动机状态
	 * 0x01 启动
	 * 0x02 关闭
	 * 0xfe 异常
	 * 0xff 无效
	 */
	private byte engineState;

	/**
	 * 发动机曲轴转速 0-60000
	 * 分辨率1r/min
	 * 0xff 0xfe 异常
	 * 0xff 0xff 无效
	 */
	private short engineSpeed;

	/**
	 * 燃料消耗率 0-60000
	 * 分辨率0.01L/100km
	 * 0xff 0xfe 异常
	 * 0xff 0xff 无效
	 */
	private short fuelConsumeRate;

	@Override
	public void read(byte[] bytes, int idx) {
		// TODO Auto-generated method stub
		infoType = bytes[idx]; idx++;
		engineState = bytes[idx]; idx++;
		engineSpeed = (short) ConvertUtil.bytes2int(bytes, idx, 2); idx += 2;
		fuelConsumeRate = (short) ConvertUtil.bytes2int(bytes, idx, 2); idx += 2;
	}

	@Override
	public int getByteLen() {
		return 6;
	}

	public byte getInfoType() {
		return infoType;
	}

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

	public byte getEngineState() {
		return engineState;
	}

	public void setEngineState(byte engineState) {
		this.engineState = engineState;
	}

	public short getEngineSpeed() {
		return engineSpeed;
	}

	public void setEngineSpeed(short engineSpeed) {
		this.engineSpeed = engineSpeed;
	}

	public short getFuelConsumeRate() {
		return fuelConsumeRate;
	}

	public void setFuelConsumeRate(short fuelConsumeRate) {
		this.fuelConsumeRate = fuelConsumeRate;
	}

	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append(" 信息类型: ").append(String.format("%02x", infoType))
		.append(" 发动机状态: ").append(engineState)
		.append(" 发动机曲轴转速: ").append(engineSpeed)
		.append(" 燃料消耗率: ").append(fuelConsumeRate);

		return sb.toString();
	}
}