package com.dev.fbs9100; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.Arrays; public class FBS9100_ParamSystem implements Cloneable { private final int BYTE_LEN = 44; public byte IPADDR[] = new byte[4]; public byte SubIPADDR[] = new byte[4]; public byte NetGateADDR[] = new byte[4]; public int GroupVolRange = 0; public int GroupVolSorce = 0; public int CurrentRange = 0; public int CurrentTyte = 0; public int MonomerOrder = 0; public int BackLightTime = 0; public byte MACADDR[] = new byte[6]; public int LoaderCount = 0; public int DtCardCount = 0; public int bakeup7 = 0; public int bakeup8 = 0; public int bakeup9 = 0; public int bakeup10 = 0; public int CRC = 0; public FBS9100_ParamSystem clone() { FBS9100_ParamSystem obj = null; try { obj = (FBS9100_ParamSystem)super.clone(); } catch(CloneNotSupportedException e) { e.printStackTrace(); } return obj; } public void clear() { for(int n=0; n<4; n++) IPADDR[n] = 0; for(int n=0; n<4; n++) SubIPADDR[n] = 0; for(int n=0; n<4; n++) NetGateADDR[n] = 0; GroupVolRange = 0; GroupVolSorce = 0; CurrentRange = 0; CurrentTyte = 0; MonomerOrder = 0; BackLightTime = 0; for(int n=0; n<6; n++) MACADDR[n] = 0; LoaderCount = 0; DtCardCount = 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); for(int n=0; n<4; n++) IPADDR[n] = tmpbuf.get(); for(int n=0; n<4; n++) SubIPADDR[n] = tmpbuf.get(); for(int n=0; n<4; n++) NetGateADDR[n] = tmpbuf.get(); GroupVolRange = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); GroupVolSorce = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); CurrentRange = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); CurrentTyte = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); MonomerOrder = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); BackLightTime = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); for(int n=0; n<6; n++) MACADDR[n] = tmpbuf.get(); LoaderCount = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); DtCardCount = 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); for(int n=0; n<4; n++) bytebuffer.put(IPADDR[n]); for(int n=0; n<4; n++) bytebuffer.put(SubIPADDR[n]); for(int n=0; n<4; n++) bytebuffer.put(NetGateADDR[n]); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(GroupVolRange)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(GroupVolSorce)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(CurrentRange)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(CurrentTyte)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(MonomerOrder)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(BackLightTime)); for(int n=0; n<6; n++) bytebuffer.put(MACADDR[n]); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(LoaderCount)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(DtCardCount)); 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_ParamSystem [BYTE_LEN=" + BYTE_LEN + ", IPADDR=" + Arrays.toString(IPADDR) + ", SubIPADDR=" + Arrays.toString(SubIPADDR) + ", NetGateADDR=" + Arrays.toString(NetGateADDR) + ", GroupVolRange=" + GroupVolRange + ", GroupVolSorce=" + GroupVolSorce + ", CurrentRange=" + CurrentRange + ", CurrentTyte=" + CurrentTyte + ", MonomerOrder=" + MonomerOrder + ", BackLightTime=" + BackLightTime + ", MACADDR=" + Arrays.toString(MACADDR) + ", LoaderCount=" + LoaderCount + ", DtCardCount=" + DtCardCount + ", bakeup7=" + bakeup7 + ", bakeup8=" + bakeup8 + ", bakeup9=" + bakeup9 + ", bakeup10=" + bakeup10 + ", CRC=" + CRC + "]"; } } /*************************************************************************************** **************************** end of file (FBS_SystemParam) ***************************** ***************************************************************************************/