package com.fgkj.fbs5100; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.Arrays; public class FBS5100_ChargeState { private final int BYTE_LEN = 120; private final int BATTGROUP_COUNT = FBS5100_ComBase.BattGroupCountMax; public FBS5100_DateTime StartDT = new FBS5100_DateTime(); //启动放电的日期时间 public FBS5100_DateTime StopDT = new FBS5100_DateTime(); //终止放电的日期时间 public FBS5100_TestTime Test_Time = new FBS5100_TestTime(); //已测试时间(HMS) public int TestState; //测试状态(停止/暂停/放电) public int TestType; //测试类型(放电/充电) public int TestGroupNum; //被测试电池组编号(1~4) public int SaveDataEN; //保存数据标识 public int ChargeEN; //开始充电标识 public int ChargeOverTime; //充电过流超时 public int LastCapTestAlarmRes; //上次容量放电测试结果 public double TestCur[] = new double[FBS5100_ComBase.BattGroupCountMax]; public double GroupVol[] = new double[FBS5100_ComBase.BattGroupCountMax]; public double OnlineVol[] = new double[FBS5100_ComBase.BattGroupCountMax]; public double TestCapInt[] = new double[FBS5100_ComBase.BattGroupCountMax]; public int MonMaxNum[] = new int[FBS5100_ComBase.BattGroupCountMax]; public int MonMinNum[] = new int[FBS5100_ComBase.BattGroupCountMax]; public double MonMaxValue[] = new double[FBS5100_ComBase.BattGroupCountMax]; public double MonMinValue[] = new double[FBS5100_ComBase.BattGroupCountMax]; public double TestCap[] = new double[FBS5100_ComBase.BattGroupCountMax]; //每组已测试容量 public int CRC; public FBS5100_ChargeState clone() { FBS5100_ChargeState obj = null; try { obj = (FBS5100_ChargeState)super.clone(); } catch(CloneNotSupportedException e) { e.printStackTrace(); } return obj; } public boolean putByteBuffer(final ByteBuffer bf) { if(bf.limit() < BYTE_LEN) return false; ByteBuffer tmpbuf = bf; int crc0 = tmpbuf.getShort(BYTE_LEN-2) & 0xFFFF; int crc1 = FBS5100_Crc16.CalCRC16(tmpbuf, BYTE_LEN-2); if(crc0 != crc1) { System.err.println("FBS5100_ChargeState:"+crc0+"=="+crc1); //return false; } tmpbuf.position(0); StartDT.year = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); StartDT.month = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); StartDT.day = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); StartDT.hour = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); StartDT.minute = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); StartDT.second = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); StopDT.year = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); StopDT.month = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); StopDT.day = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); StopDT.hour = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); StopDT.minute = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); StopDT.second = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); Test_Time.hour = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); Test_Time.minute = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); Test_Time.second = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); TestState = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); TestType = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); TestGroupNum = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); SaveDataEN = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); ChargeEN = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); ChargeOverTime = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); LastCapTestAlarmRes = FBS5100_ComBase.changeByteToInt(tmpbuf.get()); for(int n=0; n