package com.fgkj.fbs5100;
|
|
import java.nio.ByteBuffer;
|
import java.util.Arrays;
|
|
import com.fgkj.data.ComFn;
|
|
public class FBS5100_CapState {
|
public static final int BYTE_LEN = 214; //常规BTS长度
|
|
|
public FBS5100_DateTime StartDT; //启动放电的日期时间
|
public FBS5100_DateTime StopDT; //终止放电的日期时间
|
public FBS5100_TestTime Test_Time; //已测试时间(HMS)
|
public int TestState; //测试状态(停止/暂停/放电)
|
public int TestType; //测试类型(放电/充电)
|
public int TestGroupNum; //被测试电池组编号(1~4)
|
public int SaveDataEN; //保存数据标识
|
public int NT_DCDC_State; //备用,DCDC模块工作状态
|
|
public int MonomerLowCount[] = new int[FBS5100_ComBase.BattGroupCountMax]; //每组已到单体下限数量
|
public float TestCur[] = new float[FBS5100_ComBase.BattGroupCountMax];
|
public float GroupVol[] = new float[FBS5100_ComBase.BattGroupCountMax];
|
public float OnlineVol[] = new float[FBS5100_ComBase.BattGroupCountMax];
|
public int TestCapInt[] = new int[FBS5100_ComBase.BattGroupCountMax];
|
public int GroupCapInt[] = new int[FBS5100_ComBase.BattGroupCountMax];
|
public int GroupRestCapInt[] = new int[FBS5100_ComBase.BattGroupCountMax];
|
public int MonMaxNum[] = new int[FBS5100_ComBase.BattGroupCountMax];
|
public int MonMinNum[] = new int[FBS5100_ComBase.BattGroupCountMax];
|
public float MonMaxValue[] = new float[FBS5100_ComBase.BattGroupCountMax];
|
public float MonMinValue[] = new float[FBS5100_ComBase.BattGroupCountMax];
|
public int RestTest_Time[] = new int[FBS5100_ComBase.BattGroupCountMax]; //剩余容量可放电时间(HMS)
|
public double TestCap[] = new double[FBS5100_ComBase.BattGroupCountMax]; //每组已测试容量
|
public double GroupCap[] = new double[FBS5100_ComBase.BattGroupCountMax]; //每组实际容量
|
public double GroupRestCap[] = new double[FBS5100_ComBase.BattGroupCountMax]; //每组剩余容量
|
|
public int CRC;
|
|
public FBS5100_CapState() {
|
StartDT = new FBS5100_DateTime();
|
StopDT = new FBS5100_DateTime();
|
Test_Time = new FBS5100_TestTime();
|
}
|
|
|
public boolean putByteBuffer(final ByteBuffer bf)
|
{
|
if(bf.limit() < BYTE_LEN) {
|
System.out.println("长度错误");
|
return false;
|
}
|
//System.err.println(ComFn.bytesToHexString(bf.array(), bf.array().length));
|
|
ByteBuffer tmpbuf = bf;
|
int crc0 = tmpbuf.getShort(BYTE_LEN-2) & 0xFFFF;
|
int crc1 = FBS5100_Crc16.CalCRC16(tmpbuf, BYTE_LEN-2);
|
if(crc0 != crc1) {
|
System.out.println("FBS5100_CapState" + crc0 + "Crc 错误" + crc1);
|
//return false;
|
}
|
tmpbuf.position(0);
|
|
StartDT.putByteBuffer(tmpbuf); //启动放电的日期时间
|
StopDT.putByteBuffer(tmpbuf); //终止放电的日期时间
|
Test_Time.putByteBuffer(tmpbuf); //已测试时间(HMS)
|
|
TestState = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); //测试状态(停止/暂停/放电)
|
TestType = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); //测试类型(放电/充电)
|
TestGroupNum = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); //被测试电池组编号(1~4)
|
SaveDataEN = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); //保存数据标识
|
NT_DCDC_State = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); //备用,DCDC模块工作状态
|
|
for(int i =0;i<MonomerLowCount.length;i++) {
|
MonomerLowCount[i] = FBS5100_ComBase.changeShortToInt(tmpbuf.getShort()); //每组已到单体下限数量
|
}
|
|
for(int i =0;i<TestCur.length;i++) {
|
TestCur[i] = (float)FBS5100_ComBase.changeShortToFloat(tmpbuf.getShort());
|
}
|
|
for(int i =0;i<OnlineVol.length;i++) {
|
OnlineVol[i] = (float)FBS5100_ComBase.changeShortToFloat(tmpbuf.getShort());
|
}
|
|
for(int i =0;i<TestCapInt.length;i++) {
|
TestCapInt[i] = FBS5100_ComBase.changeShortToInt(tmpbuf.getShort());
|
}
|
|
for(int i =0;i<GroupCapInt.length;i++) {
|
GroupCapInt[i] = FBS5100_ComBase.changeShortToInt(tmpbuf.getShort());
|
}
|
|
for(int i =0;i<GroupRestCapInt.length;i++) {
|
GroupRestCapInt[i] = FBS5100_ComBase.changeShortToInt(tmpbuf.getShort());
|
}
|
|
for(int i =0;i<MonMaxNum.length;i++) {
|
MonMaxNum[i] = FBS5100_ComBase.changeShortToInt(tmpbuf.getShort());
|
}
|
|
for(int i =0;i<MonMinNum.length;i++) {
|
MonMinNum[i] = FBS5100_ComBase.changeShortToInt(tmpbuf.getShort());
|
}
|
|
for(int i =0;i<MonMaxValue.length;i++) {
|
MonMaxValue[i] = FBS5100_ComBase.changeShortToFloat(tmpbuf.getShort());
|
}
|
|
for(int i =0;i<MonMinValue.length;i++) {
|
MonMinValue[i] = FBS5100_ComBase.changeShortToFloat(tmpbuf.getShort());
|
}
|
|
for(int i =0;i<RestTest_Time.length;i++) {
|
//RestTest_Time[i] = FBS5100_ComBase.changeShortToInt(tmpbuf.getShort()); //剩余容量可放电时间(HMS)
|
RestTest_Time[i] = tmpbuf.getInt(); //剩余容量可放电时间(HMS)
|
}
|
|
for(int i =0;i<TestCap.length;i++) {
|
//TestCap[i] = FBS5100_ComBase.changeShortToFloat(tmpbuf.getShort()); //每组已测试容量
|
TestCap[i] = tmpbuf.getDouble(); //每组已测试容量
|
}
|
|
for(int i =0;i<GroupCap.length;i++) {
|
//GroupCap[i] = FBS5100_ComBase.changeShortToFloat(tmpbuf.getShort()); //每组实际容量
|
GroupCap[i] = tmpbuf.getDouble(); //每组实际容量
|
}
|
|
for(int i =0;i<GroupRestCap.length;i++) {
|
//GroupRestCap[i] = FBS5100_ComBase.changeShortToFloat(tmpbuf.getShort()); //每组剩余容量
|
GroupRestCap[i] = tmpbuf.getDouble(); //每组剩余容量
|
}
|
|
CRC = FBS5100_ComBase.changeShortToInt(tmpbuf.getShort());
|
//System.out.println("position:"+tmpbuf.position()+"====" + CRC);
|
|
tmpbuf.compact();
|
tmpbuf.flip();
|
|
return true;
|
}
|
|
|
@Override
|
public String toString() {
|
return "FBS5100_CapState [StartDT=" + StartDT + ", StopDT=" + StopDT + ", Test_Time=" + Test_Time
|
+ ", TestState=" + TestState + ", TestType=" + TestType + ", TestGroupNum=" + TestGroupNum
|
+ ", SaveDataEN=" + SaveDataEN + ", NT_DCDC_State=" + NT_DCDC_State + ", MonomerLowCount="
|
+ Arrays.toString(MonomerLowCount) + ", TestCur=" + Arrays.toString(TestCur) + ", GroupVol="
|
+ Arrays.toString(GroupVol) + ", OnlineVol=" + Arrays.toString(OnlineVol) + ", TestCapInt="
|
+ Arrays.toString(TestCapInt) + ", GroupCapInt=" + Arrays.toString(GroupCapInt) + ", GroupRestCapInt="
|
+ Arrays.toString(GroupRestCapInt) + ", MonMaxNum=" + Arrays.toString(MonMaxNum) + ", MonMinNum="
|
+ Arrays.toString(MonMinNum) + ", MonMaxValue=" + Arrays.toString(MonMaxValue) + ", MonMinValue="
|
+ Arrays.toString(MonMinValue) + ", RestTest_Time=" + Arrays.toString(RestTest_Time) + ", TestCap="
|
+ Arrays.toString(TestCap) + ", GroupCap=" + Arrays.toString(GroupCap) + ", GroupRestCap="
|
+ Arrays.toString(GroupRestCap) + "]";
|
}
|
}
|