package com.whyc.abe;
|
|
import com.whyc.constant.ComBase;
|
|
import java.nio.ByteBuffer;
|
import java.nio.ByteOrder;
|
import java.util.Arrays;
|
|
public class ABEVolCurrData {
|
public static final int BATT_MONOMER_COUNT_MAX = 500;
|
public static final int BATT_GROUP_COUNT_MAX = 4;
|
|
public static final int GROUP_BYTE_LEN = 80;
|
|
public float onlinevol[]; //无用
|
public float groupvol[]; //电池电压 x/1000 V
|
public int battstate[]; //无用
|
public float battcurr[]; //测试电流 x/10 A
|
public float battcap[]; //测试容量 x AH
|
public float batttemp[]; //无用
|
public int monMAX_num[]; //无用
|
public int monMIN_num[]; //无用
|
public float monvolMAX[]; //无用
|
public float monvolMIN[]; //无用
|
|
|
public ABEVolCurrData(int battGroupCount) {
|
if(battGroupCount > BATT_GROUP_COUNT_MAX) {
|
battGroupCount = BATT_GROUP_COUNT_MAX;
|
}else if(battGroupCount < 1) {
|
battGroupCount = 1;
|
}
|
|
onlinevol = new float[BATT_GROUP_COUNT_MAX]; //无用
|
groupvol = new float[BATT_GROUP_COUNT_MAX]; //电池电压 x/1000 V
|
battstate = new int[BATT_GROUP_COUNT_MAX]; //无用
|
battcurr = new float[BATT_GROUP_COUNT_MAX]; //测试电流 x/10 A
|
battcap = new float[BATT_GROUP_COUNT_MAX]; //测试容量 x AH
|
batttemp = new float[BATT_GROUP_COUNT_MAX]; //无用
|
monMAX_num = new int[BATT_GROUP_COUNT_MAX]; //无用
|
monMIN_num = new int[BATT_GROUP_COUNT_MAX]; //无用
|
monvolMAX = new float[BATT_GROUP_COUNT_MAX]; //无用
|
monvolMIN = new float[BATT_GROUP_COUNT_MAX]; //无用
|
}
|
|
public class ABEMonData{
|
public static final int MON_BYTE_LEN = 2;
|
|
public float vol[];
|
|
public ABEMonData(int monCount) {
|
if(monCount > BATT_MONOMER_COUNT_MAX) {
|
monCount = BATT_MONOMER_COUNT_MAX;
|
}else if(monCount < 1) {
|
monCount = 1;
|
}
|
vol = new float[monCount];
|
}
|
|
public boolean putByteBuffer(ByteBuffer bf) {
|
ByteBuffer buf = ByteBuffer.allocate(bf.limit());
|
buf.order(ByteOrder.LITTLE_ENDIAN);
|
buf.put(bf);
|
buf.position(0);
|
//System.out.println(buf.capacity()+"########");
|
if(buf.capacity() < (MON_BYTE_LEN * vol.length)) {
|
return false;
|
}
|
for(int i = 0;i < vol.length;i++) {
|
vol[i] = ComBase.changeShortToFloat(buf.getShort())/1000;
|
}
|
//System.out.println(this);
|
return true;
|
}
|
|
@Override
|
public String toString() {
|
return "ABEMonData [vol=" + Arrays.toString(vol) + "]";
|
}
|
|
}
|
|
public boolean putByteBuffer(ByteBuffer buf) {
|
buf.position(0);
|
//System.out.println(buf.capacity()+"====");
|
if(buf.capacity() < GROUP_BYTE_LEN) {
|
return false;
|
}
|
|
for(int i=0;i<BATT_GROUP_COUNT_MAX;i++) {
|
onlinevol[i] = ComBase.changeShortToFloat(buf.getShort()); //无用
|
}
|
for(int i=0;i<BATT_GROUP_COUNT_MAX;i++) {
|
groupvol[i] = ComBase.changeShortToFloat(buf.getShort())/1000; //电池电压 x/1000 V
|
}
|
for(int i=0;i<BATT_GROUP_COUNT_MAX;i++) {
|
battstate[i] = ComBase.changeShortToInt(buf.getShort()); //无用
|
}
|
for(int i=0;i<BATT_GROUP_COUNT_MAX;i++) {
|
battcurr[i] = ComBase.changeShortToFloat(buf.getShort())/10; //测试电流 x/10 A
|
}
|
for(int i=0;i<BATT_GROUP_COUNT_MAX;i++) {
|
battcap[i] = ComBase.changeShortToFloat(buf.getShort()); //测试容量 x AH
|
}
|
for(int i=0;i<BATT_GROUP_COUNT_MAX;i++) {
|
batttemp[i] = ComBase.changeShortToFloat(buf.getShort()); //无用
|
}
|
for(int i=0;i<BATT_GROUP_COUNT_MAX;i++) {
|
monMAX_num[i] = ComBase.changeShortToInt(buf.getShort()); //无用
|
}
|
for(int i=0;i<BATT_GROUP_COUNT_MAX;i++) {
|
monMIN_num[i] = ComBase.changeShortToInt(buf.getShort()); //无用
|
}
|
for(int i=0;i<BATT_GROUP_COUNT_MAX;i++) {
|
monvolMAX[i] = ComBase.changeShortToFloat(buf.getShort()); //无用
|
}
|
for(int i=0;i<BATT_GROUP_COUNT_MAX;i++) {
|
monvolMIN[i] = ComBase.changeShortToFloat(buf.getShort()); //无用
|
}
|
buf.compact();
|
buf.flip();
|
//System.out.println(this);
|
return true;
|
}
|
|
@Override
|
public String toString() {
|
return "ABEVolCurrData [onlinevol=" + Arrays.toString(onlinevol) + ", groupvol=" + Arrays.toString(groupvol)
|
+ ", battstate=" + Arrays.toString(battstate) + ", battcurr=" + Arrays.toString(battcurr) + ", battcap="
|
+ Arrays.toString(battcap) + ", batttemp=" + Arrays.toString(batttemp) + ", monMAX_num="
|
+ Arrays.toString(monMAX_num) + ", monMIN_num=" + Arrays.toString(monMIN_num) + ", monvolMAX="
|
+ Arrays.toString(monvolMAX) + ", monvolMIN=" + Arrays.toString(monvolMIN) + "]";
|
}
|
|
}
|