package com.mode;
|
|
import android.util.Log;
|
|
import com.util.FBS_ComBase;
|
|
import java.io.UnsupportedEncodingException;
|
import java.nio.ByteBuffer;
|
import java.nio.ByteOrder;
|
import java.util.Arrays;
|
|
public class BattTestParam {
|
private final int BYTE_LEN = 52;
|
|
public String battName = ""; //电池组名称
|
public byte[] byteName; //电池组名称字节数组
|
|
public int param_index; //预置索引号
|
//public int testMode; //测试模式 0:离线 1:在线
|
//public int powerOffAction; //市电中断处理 0:继续放电 1:停止放电
|
|
public int battStdCap; //电池组标称容量
|
public int hourState; //放电小时率 1、2、3、4、5、6、7、8、9、10、20
|
public double disChargeCurr; //放电电流(0.1A)
|
public int disChargeCap; //放电容量(1AH)
|
public int disTime; //放电时长(min)
|
public double monVolLow; //单体下限(0.01V)
|
public double groupVolLow; //组端下限(0.1V)
|
public int monCount; //每组单体数(每组电池节数)0~240
|
public int groupCount; //电池组组数(1~4)
|
public int monVolLowCount; //单体下限数量(0~240)
|
//public int saveInterval; //数据保存间隔min
|
public double dcVolHighLimit; //升压上限(0.1V)
|
//public double chargeCurr; //充电电压(在线阈值)A
|
public int testType; //测试类型(0:恒电流 1:恒功率 2:恒电阻)
|
public double dischargePower; //预放功率(0.1kw)
|
|
public double chargeCurr; //充电电流(0.1A)
|
public double chargeVol; //充电电压(0.1V)
|
public double floatVol; //浮充电压(0.1V)
|
//public double chargeCap; //充电容量
|
public int chargeTime; //充电时长(min)
|
public int floatTime; //浮充时长(min)
|
public double chargeStopCurr; //截止电流(0.1A)
|
public double groupHighVol; //组端上限(0.1V)
|
public double monHighVol; //单体上限(0.01V)
|
public int monHighVolCount; //单体上限数量
|
//public double chargeHighTmp; //充电过温
|
//public double dischargeHighTmp; //放电过温
|
|
public int cycleStart; //活化起点 0放电 ,1充电
|
public int cycleTimes; //活化次数 1-50次
|
public int waitdisTime; //充完静置 0-500分钟
|
public int waitchrTime; //放完静置 0-500分钟
|
|
public boolean putByteBuffer(ByteBuffer bf) {
|
if(bf.limit()<BYTE_LEN) {
|
Log.e("BattTestParam", bf.limit()+"putByteBuffer: "+BYTE_LEN);
|
return false;
|
}
|
ByteBuffer tmpbuf = bf;
|
tmpbuf.position(0);
|
|
battStdCap = FBS_ComBase.changeShortToInt(bf.getShort()); //标称容量
|
hourState = FBS_ComBase.changeShortToInt(bf.getShort()); //小时率
|
disChargeCurr = FBS_ComBase.changeShortToDouble(bf.getShort())/10; //放电电流
|
disChargeCap = FBS_ComBase.changeShortToInt(bf.getShort()); //放电容量
|
disTime = FBS_ComBase.changeShortToInt(bf.getShort()); //放电时长
|
monVolLow = FBS_ComBase.changeShortToDouble(bf.getShort())/100; //单体下限阀值
|
groupVolLow = FBS_ComBase.changeShortToDouble(bf.getShort())/10; //组端下限
|
monCount = FBS_ComBase.changeShortToInt(bf.getShort()); //每组单体数量
|
groupCount = FBS_ComBase.changeShortToInt(bf.getShort()); //电池组组数
|
monVolLowCount = FBS_ComBase.changeShortToInt(bf.getShort()); //单体下限数量
|
dcVolHighLimit = FBS_ComBase.changeShortToDouble(bf.getShort())/10; //升压上限
|
testType = FBS_ComBase.changeShortToInt(bf.getShort()); //测试类型
|
dischargePower = FBS_ComBase.changeShortToDouble(bf.getShort())/10; //预放功率
|
|
chargeCurr = FBS_ComBase.changeShortToDouble(bf.getShort())/10; //充电电流
|
chargeVol = FBS_ComBase.changeShortToDouble(bf.getShort())/10; //充电电压
|
floatVol = FBS_ComBase.changeShortToDouble(bf.getShort())/10; //浮充电压
|
chargeTime = FBS_ComBase.changeShortToInt(bf.getShort()); //充电时长
|
floatTime = FBS_ComBase.changeShortToInt(bf.getShort()); //浮充时长
|
chargeStopCurr = FBS_ComBase.changeShortToDouble(bf.getShort())/10; //截止电流
|
groupHighVol = FBS_ComBase.changeShortToDouble(bf.getShort())/10; //组端上限
|
monHighVol = FBS_ComBase.changeShortToDouble(bf.getShort())/100; //单体上限
|
monHighVolCount = FBS_ComBase.changeShortToInt(bf.getShort()); //单体上限数量
|
|
cycleStart = FBS_ComBase.changeShortToInt(bf.getShort()); //活化起点
|
cycleTimes = FBS_ComBase.changeShortToInt(bf.getShort()); //活化次数
|
waitdisTime = FBS_ComBase.changeShortToInt(bf.getShort()); //充完静置
|
waitchrTime = FBS_ComBase.changeShortToInt(bf.getShort()); //放完静置
|
|
return true;
|
}
|
|
/**
|
* 获取新建电池组的数据
|
* @return
|
*/
|
public ByteBuffer getNewBattByteBuffer() {
|
|
byte[] b = null;
|
try {
|
b = battName.getBytes("utf-8");
|
} catch (UnsupportedEncodingException e) {
|
e.printStackTrace();
|
}
|
int byteCount = b.length<20?b.length:20;
|
ByteBuffer tmpbuf = ByteBuffer.allocate(byteCount);
|
tmpbuf.order(ByteOrder.LITTLE_ENDIAN);
|
|
tmpbuf.position(0);
|
for(int i = 0;i<b.length && i<20;i++) {
|
tmpbuf.put(FBS_ComBase.changeIntToByte(b[i]));
|
}
|
//System.out.println(ComFn.bytesToHexString(b, b.length));;
|
return tmpbuf;
|
}
|
|
public ByteBuffer getByteBuffer() {
|
ByteBuffer tmpbuf = ByteBuffer.allocate(BYTE_LEN);
|
tmpbuf.order(ByteOrder.LITTLE_ENDIAN);
|
|
tmpbuf.position(0);
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(battStdCap)); //标称容量
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(hourState)); //小时率
|
tmpbuf.putShort(FBS_ComBase.changeDoubleToShort(disChargeCurr*10)); //放电电流
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(disChargeCap)); //放电容量
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(disTime)); //放电时长
|
tmpbuf.putShort(FBS_ComBase.changeDoubleToShort(monVolLow*100)); //单体下限阀值
|
tmpbuf.putShort(FBS_ComBase.changeDoubleToShort(groupVolLow*10)); //组端下限
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(monCount)); //每组单体数量
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(groupCount)); //电池组组数
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(monVolLowCount)); //单体下限数量
|
tmpbuf.putShort(FBS_ComBase.changeDoubleToShort(dcVolHighLimit*10)); //升压上限
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(testType)); //测试类型
|
tmpbuf.putShort(FBS_ComBase.changeDoubleToShort(dischargePower*10)); //预放功率
|
|
|
tmpbuf.putShort(FBS_ComBase.changeDoubleToShort(chargeCurr*10)); //充电电流
|
tmpbuf.putShort(FBS_ComBase.changeDoubleToShort(chargeVol*10)); //充电电压
|
tmpbuf.putShort(FBS_ComBase.changeDoubleToShort(floatVol*10)); //浮充电压
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(chargeTime)); //充电时长
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(floatTime)); //浮充时长
|
tmpbuf.putShort(FBS_ComBase.changeDoubleToShort(chargeStopCurr*10)); //截止电流
|
tmpbuf.putShort(FBS_ComBase.changeDoubleToShort(groupHighVol*10)); //组端上限
|
tmpbuf.putShort(FBS_ComBase.changeDoubleToShort(monHighVol*100)); //单体上限
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(monHighVolCount)); //单体上限数量
|
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(cycleStart)); //活化起点
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(cycleTimes)); //活化次数
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(waitdisTime)); //充完静置
|
tmpbuf.putShort(FBS_ComBase.changeIntToShort(waitchrTime)); //放完静置
|
tmpbuf.flip();
|
return tmpbuf;
|
}
|
|
@Override
|
public String toString() {
|
return "DischargeParam [battName=" + battName + ", byteName=" + Arrays.toString(byteName) + ", param_index="
|
+ param_index + ", battStdCap=" + battStdCap + ", hourState=" + hourState + ", disChargeCurr="
|
+ disChargeCurr + ", disChargeCap=" + disChargeCap + ", disTime=" + disTime + ", monVolLow=" + monVolLow
|
+ ", groupVolLow=" + groupVolLow + ", monCount=" + monCount + ", groupCount=" + groupCount
|
+ ", monVolLowCount=" + monVolLowCount + ", dcVolHighLimit=" + dcVolHighLimit + ", testType=" + testType
|
+ ", dischargePower=" + dischargePower + ", chargeCurr=" + chargeCurr + ", chargeVol=" + chargeVol
|
+ ", floatVol=" + floatVol + ", chargeTime=" + chargeTime + ", floatTime=" + floatTime
|
+ ", chargeStopCurr=" + chargeStopCurr + ", groupHighVol=" + groupHighVol + ", monHighVol=" + monHighVol
|
+ ", monHighVolCount=" + monHighVolCount + ", cycleStart=" + cycleStart + ", cycleTimes=" + cycleTimes
|
+ ", waitdisTime=" + waitdisTime + ", waitchrTime=" + waitchrTime + "]";
|
}
|
}
|