package com.fbs9100;
|
|
import android.util.Log;
|
|
import java.nio.ByteBuffer;
|
import java.nio.ByteOrder;
|
|
public class FBS_ParamDischarge implements Cloneable
|
{
|
|
public static final String TAG = "FBS_ParamDischarge";
|
private final int BYTE_LEN = 44;
|
|
public int HourRate = 0; //小时率
|
public double DisCurr = 0; //放电电流
|
public double DisCap = 0; //放电容量
|
public int DisTime = 0; //放电时长
|
public double GroupVol_LOW = 0; //组端下限阀值
|
public double MonomerVol_LOW = 0; //单体下限阀值
|
public int MonomerLowCount = 0; //单体下限数量
|
public int BattGroupNum = 0; //被测电池组号
|
public int OnlineVolLowAction = 0; //在线电压低处理
|
public int StaticTime = 0;
|
public int DisTestCount = 0;
|
|
public double DCVolHighLimit = 0; //升压上限
|
|
public double ChargeCurrSet = 0; //充电电流
|
|
public int bakeup3 = 0;
|
public double bakeup4 = 0; //温度上限
|
|
public int bakeup5 = 0;
|
public int bakeup6 = 0;
|
public int bakeup7 = 0;
|
public int bakeup8 = 0;
|
public int bakeup9 = 0;
|
public int bakeup10 = 0;
|
|
public int CRC = 0;
|
|
public FBS_ParamDischarge clone()
|
{
|
FBS_ParamDischarge obj = null;
|
try
|
{
|
obj = (FBS_ParamDischarge)super.clone();
|
}
|
catch(CloneNotSupportedException e)
|
{
|
e.printStackTrace();
|
}
|
return obj;
|
}
|
|
public void clear()
|
{
|
HourRate = 0;
|
DisCurr = 0;
|
DisCap = 0;
|
DisTime = 0;
|
GroupVol_LOW = 0;
|
MonomerVol_LOW = 0;
|
MonomerLowCount = 0;
|
BattGroupNum = 0;
|
OnlineVolLowAction = 0;
|
StaticTime = 0;
|
DisTestCount = 0;
|
|
DCVolHighLimit = 0;
|
ChargeCurrSet = 0;
|
|
bakeup3 = 0;
|
bakeup4 = 0;
|
|
bakeup5 = 0;
|
bakeup6 = 0;
|
bakeup7 = 0;
|
bakeup8 = 0;
|
bakeup9 = 0;
|
bakeup10 = 0;
|
|
CRC = 0;
|
}
|
|
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 = FBS_Crc16.CalCRC16(tmpbuf, BYTE_LEN-2);
|
|
if(crc0 != crc1) {
|
return false;
|
}
|
tmpbuf.position(0);
|
HourRate = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
|
DisCurr = FBS_ComBase.changeShortToDouble(tmpbuf.getShort());
|
DisCap = FBS_ComBase.changeShortToDouble(tmpbuf.getShort());
|
DisTime = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
|
GroupVol_LOW = FBS_ComBase.changeShortToDouble(tmpbuf.getShort())/10;
|
MonomerVol_LOW = FBS_ComBase.changeShortToDouble(tmpbuf.getShort())/1000;
|
MonomerLowCount = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
|
BattGroupNum = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
|
OnlineVolLowAction = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
|
StaticTime = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
|
DisTestCount = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
|
DCVolHighLimit = FBS_ComBase.changeShortToDouble(tmpbuf.getShort())/10;
|
ChargeCurrSet = FBS_ComBase.changeShortToDouble(tmpbuf.getShort());
|
|
bakeup3 = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
|
bakeup4 = FBS_ComBase.changeShortToDouble(tmpbuf.getShort())/10;
|
bakeup5 = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
|
bakeup6 = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
|
bakeup7 = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
|
bakeup8 = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
|
bakeup9 = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
|
bakeup10 = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
|
|
tmpbuf.compact();
|
tmpbuf.flip();
|
Log.e(TAG, "putByteBuffer: "+this);
|
return true;
|
}
|
|
public ByteBuffer getByteBuffer()
|
{
|
ByteBuffer bytebuffer = ByteBuffer.allocate(BYTE_LEN);
|
bytebuffer.order(ByteOrder.LITTLE_ENDIAN);
|
bytebuffer.putShort(FBS_ComBase.changeIntToShort(HourRate));
|
bytebuffer.putShort(FBS_ComBase.changeDoubleToShort(DisCurr));
|
bytebuffer.putShort(FBS_ComBase.changeDoubleToShort(DisCap));
|
bytebuffer.putShort(FBS_ComBase.changeIntToShort(DisTime));
|
bytebuffer.putShort(FBS_ComBase.changeDoubleToShort(GroupVol_LOW*10));
|
bytebuffer.putShort(FBS_ComBase.changeDoubleToShort(MonomerVol_LOW*1000));
|
bytebuffer.putShort(FBS_ComBase.changeIntToShort(MonomerLowCount));
|
bytebuffer.putShort(FBS_ComBase.changeIntToShort(BattGroupNum));
|
bytebuffer.putShort(FBS_ComBase.changeIntToShort(OnlineVolLowAction));
|
bytebuffer.putShort(FBS_ComBase.changeIntToShort(StaticTime));
|
|
bytebuffer.putShort(FBS_ComBase.changeIntToShort(DisTestCount));
|
bytebuffer.putShort(FBS_ComBase.changeDoubleToShort((DCVolHighLimit+0.000001)*10));
|
|
bytebuffer.putShort(FBS_ComBase.changeDoubleToShort(ChargeCurrSet));
|
bytebuffer.putShort(FBS_ComBase.changeDoubleToShort(bakeup3));
|
bytebuffer.putShort(FBS_ComBase.changeDoubleToShort(bakeup4*10));
|
bytebuffer.putShort(FBS_ComBase.changeDoubleToShort(bakeup5));
|
bytebuffer.putShort(FBS_ComBase.changeDoubleToShort(bakeup6));
|
bytebuffer.putShort(FBS_ComBase.changeDoubleToShort(bakeup7));
|
bytebuffer.putShort(FBS_ComBase.changeDoubleToShort(bakeup8));
|
bytebuffer.putShort(FBS_ComBase.changeDoubleToShort(bakeup9));
|
bytebuffer.putShort(FBS_ComBase.changeDoubleToShort(bakeup10));
|
|
CRC = FBS_Crc16.CalCRC16(bytebuffer, bytebuffer.position());
|
bytebuffer.putShort(FBS_ComBase.changeIntToShort(CRC));
|
|
bytebuffer.flip();
|
|
return bytebuffer;
|
}
|
|
@Override
|
public String toString() {
|
return "FBS_ParamDischarge{" +
|
"BYTE_LEN=" + BYTE_LEN +
|
", HourRate=" + HourRate +
|
", DisCurr=" + DisCurr +
|
", DisCap=" + DisCap +
|
", DisTime=" + DisTime +
|
", GroupVol_LOW=" + GroupVol_LOW +
|
", MonomerVol_LOW=" + MonomerVol_LOW +
|
", MonomerLowCount=" + MonomerLowCount +
|
", BattGroupNum=" + BattGroupNum +
|
", OnlineVolLowAction=" + OnlineVolLowAction +
|
", StaticTime=" + StaticTime +
|
", DisTestCount=" + DisTestCount +
|
", DCVolHighLimit=" + DCVolHighLimit +
|
", ChargeCurrSet=" + ChargeCurrSet +
|
", bakeup3=" + bakeup3 +
|
", bakeup4=" + bakeup4 +
|
", bakeup5=" + bakeup5 +
|
", bakeup6=" + bakeup6 +
|
", bakeup7=" + bakeup7 +
|
", bakeup8=" + bakeup8 +
|
", bakeup9=" + bakeup9 +
|
", bakeup10=" + bakeup10 +
|
", CRC=" + CRC +
|
'}';
|
}
|
}
|
/***************************************************************************************
|
****************************** end of file (FBS_TestParam) *****************************
|
***************************************************************************************/
|