package com.dev.fbs9100; import java.nio.ByteBuffer; import java.nio.ByteOrder; public class FBS9100_ParamCharge implements Cloneable { private final int BYTE_LEN = 44; public int HourRate = 0; public double ChargeCurr = 0; public double ChargeCap = 0; public int ChargeTime = 0; public double GroupVol_High = 0; public double MonomerVol_High = 0; public int MonomerHighCount = 0; public int BattGroupNum = 0; public int OnlineVolLowAction = 0; public int StaticTime = 0; public int ChargeTestCount = 0; public int bakeup1 = 0; public int bakeup2 = 0; public int bakeup3 = 0; public int bakeup4 = 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 FBS9100_ParamCharge clone() { FBS9100_ParamCharge obj = null; try { obj = (FBS9100_ParamCharge)super.clone(); } catch(CloneNotSupportedException e) { e.printStackTrace(); } return obj; } public void clear() { HourRate = 0; ChargeCurr = 0; ChargeCap = 0; ChargeTime = 0; GroupVol_High = 0; MonomerVol_High = 0; MonomerHighCount = 0; BattGroupNum = 0; OnlineVolLowAction = 0; StaticTime = 0; ChargeTestCount = 0; bakeup1 = 0; bakeup2 = 0; bakeup3 = 0; bakeup4 = 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 = FBS9100_Crc16.CalCRC16(tmpbuf, BYTE_LEN-2); if(crc0 != crc1) return false; tmpbuf.position(0); HourRate = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); ChargeCurr = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort()); ChargeCap = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort()); ChargeTime = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); GroupVol_High = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/10; MonomerVol_High = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/1000; MonomerHighCount = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); BattGroupNum = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); OnlineVolLowAction = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); StaticTime = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); ChargeTestCount = FBS9100_ComBase.changeShortToInt(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.changeIntToShort(HourRate)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(ChargeCurr)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(ChargeCap)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(ChargeTime)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(GroupVol_High*10)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(MonomerVol_High*1000)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(MonomerHighCount)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(BattGroupNum)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(OnlineVolLowAction)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(StaticTime)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(ChargeTestCount)); 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; } @Override public String toString() { return "FBS9100_ParamCharge [BYTE_LEN=" + BYTE_LEN + ", HourRate=" + HourRate + ", ChargeCurr=" + ChargeCurr + ", ChargeCap=" + ChargeCap + ", ChargeTime=" + ChargeTime + ", GroupVol_High=" + GroupVol_High + ", MonomerVol_High=" + MonomerVol_High + ", MonomerHighCount=" + MonomerHighCount + ", BattGroupNum=" + BattGroupNum + ", OnlineVolLowAction=" + OnlineVolLowAction + ", StaticTime=" + StaticTime + ", ChargeTestCount=" + ChargeTestCount + ", bakeup1=" + bakeup1 + ", bakeup2=" + bakeup2 + ", bakeup3=" + bakeup3 + ", bakeup4=" + bakeup4 + ", bakeup5=" + bakeup5 + ", bakeup6=" + bakeup6 + ", bakeup7=" + bakeup7 + ", bakeup8=" + bakeup8 + ", bakeup9=" + bakeup9 + ", bakeup10=" + bakeup10 + ", CRC=" + CRC + "]"; } } /*************************************************************************************** **************************** end of file (FBS_ChargeParam) ***************************** ***************************************************************************************/