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