package com.whyc.abe;
|
|
import com.whyc.constant.ComBase;
|
import com.whyc.constant.Crc16;
|
|
import java.nio.ByteBuffer;
|
|
/**
|
* 放电数据的数据头
|
* @author LiJun
|
*
|
*/
|
public class ABEDisDataHeadStart implements ABEDataHeadStart{
|
public static final int BYTE_LEN = 44;
|
|
public int hourRate; //小时率 固定为10
|
public float disCurr; //放电电流参数 x/10 A
|
public int disCap; //测试容量 x AH
|
public int disTime; //测试时间
|
public float groupVol_LOW; //放电下限 x/1000 V
|
public float monomerVol_LOW; //放电下限 x/1000 V
|
public int monomerLowCount; //下限个数 固定为1
|
public int battGroupNum; //电池组数 固定为1
|
public int onlineVolLowAction; //无用
|
public int staticTime; //无用
|
public int disTestCount; //无用
|
public int dCVolHighLimit; //无用
|
|
public int battNum; //电池编号
|
public int battVolStyle; //无用
|
public int std_CAP; //标称容量 x AH
|
|
public int testcap; //已测容量 x AH 同 DisCap
|
public int bakeup6;
|
public int bakeup7;
|
public int bakeup8;
|
public int bakeup9;
|
public int bakeup10;
|
|
public int CRC;
|
|
@Override
|
public boolean setDataInf(ByteBuffer bf) {
|
//System.out.println("头部数据长度异常"+bf.remaining());
|
if(bf.limit() < BYTE_LEN) {
|
return false;
|
}
|
int crc0 = bf.getShort(BYTE_LEN-2) & 0xFFFF;
|
int crc1 = Crc16.CalCRC16(bf, BYTE_LEN-2);
|
if(crc0 != crc1) {
|
//校验CRC
|
//System.out.println(crc0 + "==" + crc1);
|
return false;
|
}
|
|
bf.position(0);
|
|
this.hourRate = ComBase.changeShortToInt(bf.getShort()); //小时率 固定为10
|
this.disCurr = ComBase.changeShortToFloat(bf.getShort())/10; //放电电流参数 x/10 A
|
this.disCap = ComBase.changeShortToInt(bf.getShort()); //测试容量 x AH
|
this.disTime = ComBase.changeShortToInt(bf.getShort()); //测试时间
|
this.groupVol_LOW = ComBase.changeShortToFloat(bf.getShort())/1000; //放电下限 x/1000 V
|
this.monomerVol_LOW = ComBase.changeShortToFloat(bf.getShort())/1000; //放电下限 x/1000 V
|
this.monomerLowCount = ComBase.changeShortToInt(bf.getShort()); //下限个数 固定为1
|
this.battGroupNum = ComBase.changeShortToInt(bf.getShort()); //电池组数 固定为1
|
this.onlineVolLowAction = ComBase.changeShortToInt(bf.getShort()); //无用
|
this.staticTime = ComBase.changeShortToInt(bf.getShort()); //无用
|
this.disTestCount = ComBase.changeShortToInt(bf.getShort()); //无用
|
this.dCVolHighLimit = ComBase.changeShortToInt(bf.getShort()); //无用
|
|
this.battNum = ComBase.changeShortToInt(bf.getShort()); //电池编号
|
this.battVolStyle = ComBase.changeShortToInt(bf.getShort()); //无用
|
this.std_CAP = ComBase.changeShortToInt(bf.getShort()); //标称容量 x AH
|
|
this.testcap = ComBase.changeShortToInt(bf.getShort()); //已测容量 x AH 同 DisCap
|
this.bakeup6 = ComBase.changeShortToInt(bf.getShort());
|
this.bakeup7 = ComBase.changeShortToInt(bf.getShort());
|
this.bakeup8 = ComBase.changeShortToInt(bf.getShort());
|
this.bakeup9 = ComBase.changeShortToInt(bf.getShort());
|
this.bakeup10 = ComBase.changeShortToInt(bf.getShort());
|
|
this.CRC = ComBase.changeShortToInt(bf.getShort());
|
|
//System.out.println(this);
|
|
bf.compact();
|
bf.flip();
|
return true;
|
}
|
|
@Override
|
public int getBattGroupNum() {
|
return this.battGroupNum;
|
}
|
|
@Override
|
public String toString() {
|
return "ABEDisDataHeadStart [HourRate=" + hourRate + ", DisCurr=" + disCurr + ", DisCap=" + disCap
|
+ ", DisTime=" + disTime + ", GroupVol_LOW=" + groupVol_LOW + ", MonomerVol_LOW=" + monomerVol_LOW
|
+ ", MonomerLowCount=" + monomerLowCount + ", BattGroupNum=" + battGroupNum + ", OnlineVolLowAction="
|
+ onlineVolLowAction + ", StaticTime=" + staticTime + ", DisTestCount=" + disTestCount
|
+ ", DCVolHighLimit=" + dCVolHighLimit + ", BattNum=" + battNum + ", BattVolStyle=" + battVolStyle
|
+ ", STD_CAP=" + std_CAP + ", testcap=" + testcap + ", bakeup6=" + bakeup6 + ", bakeup7=" + bakeup7
|
+ ", bakeup8=" + bakeup8 + ", bakeup9=" + bakeup9 + ", bakeup10=" + bakeup10 + ", CRC=" + CRC + "]";
|
}
|
|
|
}
|