package com.whyc.charge;
|
|
import com.whyc.dto.Fbs5100ComBase;
|
import com.whyc.dto.Fbs5100Crc16;
|
|
import java.nio.ByteBuffer;
|
import java.nio.ByteOrder;
|
|
|
public class Fbs5100TestParam {
|
public static final int BYTE_LEN = 44;
|
//private final int BYTE_LEN = 45;
|
|
|
public int HourRate = 0; //小时率
|
public float DisCurr = 0; //放电电流A(1~50)
|
public float DisCap = 0; //放电容量AH(10~9999)
|
public int DisTime = 0; //放电时长Min(1~9999)
|
public float GroupVol_LOW = 0; //组端下限(0.1V 18~28.8)
|
public float MonomerVol_LOW = 0; //单体电压下限
|
public int MonomerLowCount = 0; //单体下限数量
|
public int BattGroupNum = 0; //组号 [0-全组一起测试 1~4分别代表单组放电]
|
public int OnlineVolLowAction = 0; //在线电压低处理
|
public int StaticTime = 0; //静置时间
|
public int DisTestCount = 0; //放电测试次数
|
|
public float DCVolHighLimit = 0; //升压上限(0.1V 48.0~54.0)
|
|
public float ChargeCurrSet = 0; //充电电流(1~50A)
|
public int DisTestType = 0; //放电测试类型
|
public float MonomerTmp_High = 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 Fbs5100TestParam clone()
|
{
|
Fbs5100TestParam obj = null;
|
try
|
{
|
obj = (Fbs5100TestParam)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;
|
DisTestType = 0;
|
MonomerTmp_High = 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 = Fbs5100Crc16.CalCRC16(tmpbuf, BYTE_LEN-2);
|
if(crc0 != crc1){
|
System.out.println("Fbs5100TestParam:" + crc0 + "===" + crc1);
|
return false;
|
}
|
|
tmpbuf.position(0);
|
HourRate = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
DisCurr = (float)Fbs5100ComBase.changeShortToDouble(tmpbuf.getShort());
|
DisCap = (float)Fbs5100ComBase.changeShortToDouble(tmpbuf.getShort());
|
DisTime = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
GroupVol_LOW = (float)Fbs5100ComBase.changeShortToDouble(tmpbuf.getShort())/10;
|
MonomerVol_LOW = (float)Fbs5100ComBase.changeShortToDouble(tmpbuf.getShort())/1000;
|
MonomerLowCount = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
BattGroupNum = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
OnlineVolLowAction = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
StaticTime = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
DisTestCount = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
DCVolHighLimit = (float)Fbs5100ComBase.changeShortToDouble(tmpbuf.getShort())/10;
|
|
ChargeCurrSet = (float)Fbs5100ComBase.changeShortToDouble(tmpbuf.getShort());
|
DisTestType = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
MonomerTmp_High = (float)Fbs5100ComBase.changeShortToDouble(tmpbuf.getShort())/10;
|
bakeup5 = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
bakeup6 = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
bakeup7 = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
bakeup8 = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
bakeup9 = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
bakeup10 = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
|
CRC = Fbs5100ComBase.changeShortToInt(tmpbuf.getShort());
|
|
tmpbuf.compact();
|
tmpbuf.flip();
|
|
//System.out.println(this);
|
return true;
|
}
|
|
public ByteBuffer getByteBuffer()
|
{
|
System.out.println(this);
|
|
ByteBuffer bytebuffer = ByteBuffer.allocate(BYTE_LEN);
|
bytebuffer.order(ByteOrder.LITTLE_ENDIAN);
|
bytebuffer.putShort(Fbs5100ComBase.changeIntToShort(HourRate));
|
bytebuffer.putShort(Fbs5100ComBase.changeDoubleToShort(DisCurr));
|
bytebuffer.putShort(Fbs5100ComBase.changeDoubleToShort(DisCap));
|
bytebuffer.putShort(Fbs5100ComBase.changeIntToShort(DisTime));
|
//bytebuffer.putShort(Fbs5100ComBase.changeDoubleToShort((GroupVol_LOW+0.000001)*10));
|
bytebuffer.putShort(Fbs5100ComBase.changeFloatToShort((GroupVol_LOW)*10));
|
bytebuffer.putShort(Fbs5100ComBase.changeFloatToShort((MonomerVol_LOW)*1000));
|
bytebuffer.putShort(Fbs5100ComBase.changeIntToShort(MonomerLowCount));
|
bytebuffer.putShort(Fbs5100ComBase.changeIntToShort(BattGroupNum));
|
bytebuffer.putShort(Fbs5100ComBase.changeIntToShort(OnlineVolLowAction));
|
bytebuffer.putShort(Fbs5100ComBase.changeIntToShort(StaticTime));
|
|
bytebuffer.putShort(Fbs5100ComBase.changeIntToShort(DisTestCount));
|
bytebuffer.putShort(Fbs5100ComBase.changeFloatToShort((DCVolHighLimit)*10));
|
|
bytebuffer.putShort(Fbs5100ComBase.changeDoubleToShort(ChargeCurrSet));
|
bytebuffer.putShort(Fbs5100ComBase.changeDoubleToShort(DisTestType));
|
bytebuffer.putShort(Fbs5100ComBase.changeFloatToShort((MonomerTmp_High)*10));
|
bytebuffer.putShort(Fbs5100ComBase.changeDoubleToShort(bakeup5));
|
bytebuffer.putShort(Fbs5100ComBase.changeDoubleToShort(bakeup6));
|
bytebuffer.putShort(Fbs5100ComBase.changeDoubleToShort(bakeup7));
|
bytebuffer.putShort(Fbs5100ComBase.changeDoubleToShort(bakeup8));
|
bytebuffer.putShort(Fbs5100ComBase.changeDoubleToShort(bakeup9));
|
bytebuffer.putShort(Fbs5100ComBase.changeDoubleToShort(bakeup10));
|
|
CRC = Fbs5100Crc16.CalCRC16(bytebuffer, bytebuffer.position());
|
bytebuffer.putShort(Fbs5100ComBase.changeIntToShort(CRC));
|
//System.out.println(this+"$$$$$$$$$$$$$$$$$$$$$$$$$");
|
bytebuffer.flip();
|
|
return bytebuffer;
|
}
|
|
|
|
@Override
|
public String toString() {
|
return "Fbs5100TestParam [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
|
+ ", DisTestType=" + DisTestType + ", MonomerTmp_High=" + MonomerTmp_High + "]";
|
}
|
|
public static void main(String[] args) {
|
double d = 56.6;
|
float f = (float)d;
|
|
float ff = (56.6f)*10;
|
|
System.err.println(f);
|
|
double dd = 56.6;
|
System.out.println("dd:"+dd);
|
Fbs5100ComBase.changeDoubleToShort((dd)*10);
|
System.out.println((int)ff);
|
}
|
}
|