package com.dev.bts.data; import java.nio.ByteBuffer; import java.nio.ByteOrder; public class FBS9100_ParamAlarm implements Cloneable { private final int BYTE_LEN = 42; public double GroupVol_H = 56.4; public double GroupVol_L = 51.0; public double CHRG_CURR_H = 60.0; public double DISC_CURR_H = 65.0; public double MonomerVol_H = 2.300; public double MonomerVol_L = 2.100; public double Tmpe_H = 30.0; public double Tmpe_L = 18.0; public double Batt_RES = 1.0; public double Batt_CAP = 460.0; public double bakeup1 = 0.0; public double bakeup2 = 0.0; public double bakeup3 = 0.0; public double bakeup4 = 0.0; public double bakeup5 = 0.0; public double bakeup6 = 0.0; public double bakeup7 = 0.0; public double bakeup8 = 0.0; public double bakeup9 = 0.0; public double bakeup10 = 0.0; public int CRC = 0; public FBS9100_ParamAlarm clone() { FBS9100_ParamAlarm obj = null; try { obj = (FBS9100_ParamAlarm)super.clone(); } catch(CloneNotSupportedException e) { e.printStackTrace(); } return obj; } public void clear() { GroupVol_H = 0; GroupVol_L = 0; CHRG_CURR_H = 0; DISC_CURR_H = 0; MonomerVol_H = 0; MonomerVol_L = 0; Tmpe_H = 0; Tmpe_L = 0; Batt_RES = 0; Batt_CAP = 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 = FBS9100_Crc16.CalCRC16(tmpbuf, BYTE_LEN-2); if(crc0 != crc1) return false; tmpbuf.position(0); GroupVol_H = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/10; GroupVol_L = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/10; CHRG_CURR_H = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort())/10; DISC_CURR_H = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort())/10; MonomerVol_H = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/1000; MonomerVol_L = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/1000; Tmpe_H = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/10; Tmpe_L = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/10; Batt_RES = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; Batt_CAP = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort()); bakeup1 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup2 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup3 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup4 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup5 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup6 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup7 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup8 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup9 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup10 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); tmpbuf.compact(); tmpbuf.flip(); return true; } public ByteBuffer getByteBuffer() { ByteBuffer bytebuffer = ByteBuffer.allocate(BYTE_LEN); bytebuffer.order(ByteOrder.LITTLE_ENDIAN); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(GroupVol_H*10)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(GroupVol_L*10)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(CHRG_CURR_H*10)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(DISC_CURR_H*10)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(MonomerVol_H*1000)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(MonomerVol_L*1000)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(Tmpe_H*10)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(Tmpe_L*10)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(Batt_RES*10)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(Batt_CAP)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup1)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup2)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup3)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup4)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup5)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup6)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup7)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup8)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup9)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup10)); CRC = FBS9100_Crc16.CalCRC16(bytebuffer, bytebuffer.position()); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(CRC)); bytebuffer.flip(); return bytebuffer; } } /*************************************************************************************** ****************************** end of file (FBS_AlarmParam) **************************** ***************************************************************************************/