package com.fgkj.bts; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.Arrays; public class BTS_CapState implements Cloneable{ private final int BYTE_LEN = 222; //原来 //private final int BYTE_LEN = 126; private final int BATTGROUP_COUNT = BTS_ComBase.BattGroupCountMax; public BTS_DateTime StartDT = new BTS_DateTime(); //启动放电的日期时间 public BTS_DateTime StopDT = new BTS_DateTime(); //终止放电的日期时间 public BTS_TestTime Test_Time = new BTS_TestTime(); //已测试时间(HMS) public int TestState; //测试状态(停止/暂停/放电) public int TestType; //测试类型(放电/充电) public int TestGroupNum; //被测试电池组编号(1~4) public int SaveDataEN; //保存数据标识 public int BackUp; //备份 public int MonomerLowCount[] = new int[BTS_ComBase.BattGroupCountMax]; //每组已到单体下限数量 public double TestCur[] = new double[BTS_ComBase.BattGroupCountMax]; public double GroupVol[] = new double[BTS_ComBase.BattGroupCountMax]; public double OnlineVol[] = new double[BTS_ComBase.BattGroupCountMax]; public double TestCapInt[] = new double[BTS_ComBase.BattGroupCountMax]; public double GroupCapInt[] = new double[BTS_ComBase.BattGroupCountMax]; public double GroupRestCapInt[] = new double[BTS_ComBase.BattGroupCountMax]; public int MonMaxNum[] = new int[BTS_ComBase.BattGroupCountMax]; public int MonMinNum[] = new int[BTS_ComBase.BattGroupCountMax]; public double MonMaxValue[] = new double[BTS_ComBase.BattGroupCountMax]; public double MonMinValue[] = new double[BTS_ComBase.BattGroupCountMax]; public int RestTest_Time[] = new int[BTS_ComBase.BattGroupCountMax]; //剩余容量可放电时间(HMS) public int CRC; public BTS_CapState clone() { BTS_CapState obj = null; try { obj = (BTS_CapState)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 = BTS_Crc16.CalCRC16(tmpbuf, BYTE_LEN-2); //if(crc0 != crc1) { System.out.println("crc0:"+crc0+"===crc1"+crc1); // return false; //} tmpbuf.position(0); StartDT.year = BTS_ComBase.changeByteToInt( tmpbuf.get()); StartDT.month = BTS_ComBase.changeByteToInt( tmpbuf.get()); StartDT.day = BTS_ComBase.changeByteToInt( tmpbuf.get()); StartDT.hour = BTS_ComBase.changeByteToInt( tmpbuf.get()); StartDT.minute = BTS_ComBase.changeByteToInt(tmpbuf.get()); StartDT.second = BTS_ComBase.changeByteToInt(tmpbuf.get()); StopDT.year = BTS_ComBase.changeByteToInt(tmpbuf.get()); StopDT.month = BTS_ComBase.changeByteToInt(tmpbuf.get()); StopDT.day = BTS_ComBase.changeByteToInt(tmpbuf.get()); StopDT.hour = BTS_ComBase.changeByteToInt(tmpbuf.get()); StopDT.minute = BTS_ComBase.changeByteToInt(tmpbuf.get()); StopDT.second = BTS_ComBase.changeByteToInt(tmpbuf.get()); Test_Time.hour = BTS_ComBase.changeByteToInt(tmpbuf.get()); Test_Time.minute = BTS_ComBase.changeByteToInt(tmpbuf.get()); Test_Time.second = BTS_ComBase.changeByteToInt(tmpbuf.get()); TestState = BTS_ComBase.changeByteToInt(tmpbuf.get()); TestType = BTS_ComBase.changeByteToInt(tmpbuf.get()); TestGroupNum = BTS_ComBase.changeByteToInt(tmpbuf.get()); SaveDataEN = BTS_ComBase.changeByteToInt(tmpbuf.get()); BackUp = BTS_ComBase.changeByteToInt(tmpbuf.get()); for(int n=0; n