/***************************************************************************************
|
**************************** end of file (FBS_ResCapData) ******************************
|
***************************************************************************************/
|
package com.dev_concentrator.data;
|
|
import java.nio.ByteBuffer;
|
import java.nio.ByteOrder;
|
import java.util.Arrays;
|
|
import com.dev.btse.data.FBS9100_ComBase;
|
|
public class Concentrator_ResCapData
|
{
|
public int CRC;
|
public double m_Curr;
|
public int m_GroupNum;
|
public int m_BattCount;
|
public int m_DataType;
|
public double m_DATA[] = new double[FBS9100_ComBase.MonomerCountMax];
|
|
public Concentrator_ResCapData clone()
|
{
|
Concentrator_ResCapData obj = new Concentrator_ResCapData();
|
|
obj.CRC = CRC;
|
obj.m_Curr = m_Curr;
|
obj.m_BattCount = m_BattCount;
|
obj.m_DataType = m_DataType;
|
obj.m_DATA = m_DATA.clone();
|
|
return obj;
|
}
|
|
public void clear()
|
{
|
m_Curr = 0.0;
|
for(int n=0; n<m_DATA.length; n++)
|
{
|
m_DATA[n] = 0.0;
|
}
|
CRC = 0;
|
}
|
|
public boolean putByteBuffer(final ByteBuffer bf, int cmd)
|
{
|
ByteBuffer tmpbuf = bf;
|
tmpbuf.position(0);
|
|
double range = 1;
|
double offset = 0;
|
m_DataType = FBS9100_ComBase.DataType_MonCap;
|
if(FBS9100_ComBase.CMD_GetMonomerRES == cmd ) {
|
range = 1000;
|
m_DataType = FBS9100_ComBase.DataType_MonRes;
|
} else if (FBS9100_ComBase.CMD_GetMonomerTMP == cmd) {
|
range = 10;
|
offset = -10;
|
m_DataType = FBS9100_ComBase.DataType_MonTmp;
|
} else if (FBS9100_ComBase.CMD_GetMonomerJHcurr == cmd) {
|
range = 1;
|
m_DataType = FBS9100_ComBase.DataType_MonJHcurr;
|
} else if(FBS9100_ComBase.CMD_GetMonomerFODJHcurr == cmd) {
|
range = 1000;
|
m_DataType = FBS9100_ComBase.DataType_MonFodJHcurr;
|
} else if(FBS9100_ComBase.DataType_MonVol == cmd) {
|
range = 1000;
|
m_DataType = FBS9100_ComBase.DataType_MonVol;
|
}
|
|
m_BattCount = tmpbuf.limit()/2;
|
if(m_BattCount > 480)
|
m_BattCount = 480;
|
|
for(int n=0; n<m_BattCount; n++)
|
{
|
m_DATA[n] = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/range + offset;
|
}
|
return true;
|
}
|
|
public ByteBuffer getByteBuffer()
|
{
|
ByteBuffer bytebuffer = ByteBuffer.allocate(1000);
|
bytebuffer.order(ByteOrder.LITTLE_ENDIAN);
|
double range = 1;
|
if(m_DataType == FBS9100_ComBase.DataType_MonRes){
|
range = 100;
|
}else if(m_DataType == FBS9100_ComBase.DataType_MonTmp){
|
range = 10;
|
}
|
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(CRC));
|
bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(m_Curr*10));
|
for(int i=0;i < m_DATA.length;i++){
|
bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(m_DATA[i]*range));
|
}
|
bytebuffer.flip();
|
//System.out.println("bytebuffer limit"+bytebuffer.limit());
|
return bytebuffer;
|
}
|
|
@Override
|
public String toString() {
|
return "FBS9100_ResCapData [CRC=" + CRC + ", m_Curr=" + m_Curr + ", m_GroupNum=" + m_GroupNum + ", m_BattCount="
|
+ m_BattCount + ", m_DataType=" + m_DataType + ", m_DATA=" + Arrays.toString(m_DATA) + "]";
|
}
|
|
}
|
/***************************************************************************************
|
**************************** end of file (FBS_ResCapData) ******************************
|
***************************************************************************************/
|