package com.dev.fbs9100;
|
|
import java.nio.ByteBuffer;
|
import java.nio.ByteOrder;
|
import java.util.Arrays;
|
|
public class FBS9100_CapState implements Cloneable
|
{
|
private final int BYTE_LEN = 222; //ÔÀ´
|
//private final int BYTE_LEN = 126;
|
private final int BATTGROUP_COUNT = FBS9100_ComBase.BattGroupCountMax;
|
|
public FBS9100_DateTime StartDT = new FBS9100_DateTime(); //Æô¶¯·ÅµçµÄÈÕÆÚʱ¼ä
|
public FBS9100_DateTime StopDT = new FBS9100_DateTime(); //ÖÕÖ¹·ÅµçµÄÈÕÆÚʱ¼ä
|
public FBS9100_TestTime Test_Time = new FBS9100_TestTime(); //ÒѲâÊÔʱ¼ä(HMS)
|
|
public int TestState; //²âÊÔ״̬(Í£Ö¹/ÔÝÍ£/·Åµç)
|
public int TestType; //²âÊÔÀàÐÍ(·Åµç/³äµç)
|
public int TestGroupNum; //±»²âÊÔµç³Ø×é±àºÅ(1~4)
|
public int SaveDataEN; //±£´æÊý¾Ý±êʶ
|
public int BackUp; //±¸·Ý
|
public int MonomerLowCount[] = new int[FBS9100_ComBase.BattGroupCountMax]; //ÿ×éÒѵ½µ¥ÌåÏÂÏÞÊýÁ¿
|
|
public double TestCur[] = new double[FBS9100_ComBase.BattGroupCountMax];
|
public double GroupVol[] = new double[FBS9100_ComBase.BattGroupCountMax];
|
public double OnlineVol[] = new double[FBS9100_ComBase.BattGroupCountMax];
|
public double TestCapInt[] = new double[FBS9100_ComBase.BattGroupCountMax];
|
public double GroupCapInt[] = new double[FBS9100_ComBase.BattGroupCountMax];
|
public double GroupRestCapInt[] = new double[FBS9100_ComBase.BattGroupCountMax];
|
public int MonMaxNum[] = new int[FBS9100_ComBase.BattGroupCountMax];
|
public int MonMinNum[] = new int[FBS9100_ComBase.BattGroupCountMax];
|
public double MonMaxValue[] = new double[FBS9100_ComBase.BattGroupCountMax];
|
public double MonMinValue[] = new double[FBS9100_ComBase.BattGroupCountMax];
|
|
public int RestTest_Time[] = new int[FBS9100_ComBase.BattGroupCountMax]; //Ê£ÓàÈÝÁ¿¿É·Åµçʱ¼ä(HMS)
|
|
public int CRC;
|
|
public FBS9100_CapState clone()
|
{
|
FBS9100_CapState obj = null;
|
try
|
{
|
obj = (FBS9100_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 = FBS9100_Crc16.CalCRC16(tmpbuf, BYTE_LEN-2);
|
if(crc0 != crc1)
|
return false;
|
|
tmpbuf.position(0);
|
StartDT.year = FBS9100_ComBase.changeByteToInt( tmpbuf.get());
|
StartDT.month = FBS9100_ComBase.changeByteToInt( tmpbuf.get());
|
StartDT.day = FBS9100_ComBase.changeByteToInt( tmpbuf.get());
|
StartDT.hour = FBS9100_ComBase.changeByteToInt( tmpbuf.get());
|
StartDT.minute = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
StartDT.second = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
|
StopDT.year = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
StopDT.month = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
StopDT.day = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
StopDT.hour = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
StopDT.minute = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
StopDT.second = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
|
Test_Time.hour = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
Test_Time.minute = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
Test_Time.second = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
|
TestState = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
TestType = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
TestGroupNum = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
SaveDataEN = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
BackUp = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
MonomerLowCount[n] = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort());
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
TestCur[n] = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort()) / 10;
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
GroupVol[n] = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort()) / 10;
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
OnlineVol[n] = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort()) / 10;
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
TestCapInt[n] = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort());
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
GroupCapInt[n] = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort());
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
GroupRestCapInt[n] = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort());
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
MonMaxNum[n] = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort());
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
MonMinNum[n] = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort());
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
MonMaxValue[n] = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort()) / 1000;
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
MonMinValue[n] = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort()) / 1000;
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
RestTest_Time[n] = tmpbuf.getInt();
|
|
tmpbuf.compact();
|
tmpbuf.flip();
|
|
return true;
|
}
|
|
public ByteBuffer getByteBuffer()
|
{
|
ByteBuffer bytebuffer = ByteBuffer.allocate(BYTE_LEN);
|
bytebuffer.order(ByteOrder.LITTLE_ENDIAN);
|
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(StartDT.year));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(StartDT.month));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(StartDT.day));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(StartDT.hour));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(StartDT.minute));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(StartDT.second));
|
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(StopDT.year));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(StopDT.month));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(StopDT.day));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(StopDT.hour));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(StopDT.minute));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(StopDT.second));
|
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(Test_Time.hour));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(Test_Time.minute));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(Test_Time.second));
|
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(TestState));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(TestType));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(TestGroupNum));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(SaveDataEN));
|
bytebuffer.put(FBS9100_ComBase.changeIntToByte(BackUp));
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(MonomerLowCount[n]));
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(TestCur[n]*10));
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(GroupVol[n]*10));
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(OnlineVol[n]*10));
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(TestCapInt[n]));
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(GroupCapInt[n]));
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(GroupRestCapInt[n]));
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(MonMaxNum[n]));
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(MonMinNum[n]));
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(MonMaxValue[n]*1000));
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(MonMinValue[n]*1000));
|
|
for(int n=0; n<BATTGROUP_COUNT; n++)
|
bytebuffer.putInt(RestTest_Time[n]);
|
|
CRC = FBS9100_Crc16.CalCRC16(bytebuffer, bytebuffer.capacity()-2);
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(CRC));
|
bytebuffer.flip();
|
//System.out.println(bytebuffer.limit()+"&&&&&&&&&&&&&&&&");
|
return bytebuffer;
|
}
|
|
@Override
|
public String toString() {
|
return "FBS9100_CapState [BYTE_LEN=" + BYTE_LEN + ", BATTGROUP_COUNT=" + BATTGROUP_COUNT + ", StartDT="
|
+ StartDT + ", StopDT=" + StopDT + ", Test_Time=" + Test_Time + ", TestState=" + TestState
|
+ ", TestType=" + TestType + ", TestGroupNum=" + TestGroupNum + ", SaveDataEN=" + SaveDataEN
|
+ ", BackUp=" + BackUp + ", 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) + ", CRC=" + CRC + "]";
|
}
|
|
public static void main(String[] args) {
|
System.out.println(new FBS9100_CapState().putByteBuffer(new FBS9100_CapState().getByteBuffer()));
|
}
|
|
}
|
/***************************************************************************************
|
****************************** end of file (FBS_CapState) ******************************
|
***************************************************************************************/
|