package com.dev.bts.data;
|
|
import java.nio.ByteBuffer;
|
import java.nio.ByteOrder;
|
import java.util.Arrays;
|
|
public class FBS9100S_SystemControl implements Cloneable{
|
|
public static final int BYTE_LEN = 48;
|
|
public int HostType;
|
public int IsEnableHost; //Ö÷´Ó¿ØÖÆ
|
public int IsEnableDry; //ÊÇ·ñÆôÓà ¸É½Óµã
|
public int YHState;
|
public int IsEnableNBCMode; //Æô¶¯Äæ±ä³äµç״̬
|
public int IsEnableAntiState; //Æô¶¯·ÀÀׯ÷״̬
|
public int IsEnableTwoInfo; //ÆôÓÃÁ½×鹨ÁªÐÅÏ¢
|
public int IsEnableDCML; //ÆôÓÃĸÁª¹¤×÷
|
public int IsEnableAes; //ÊÇ·ñʹÓüÓÃÜ
|
public int IsEnableJHMode; //ÊÇ·ñʹÓþùºâ(¾ùºâÆôÓÃ)
|
public int IsEnableLouYeMode; //ÊÇ·ñʹÓéҺ¹¦ÄÜ
|
public int back[] = new int[12];
|
public int CRC;
|
|
|
public FBS9100S_SystemControl clone()
|
{
|
FBS9100S_SystemControl obj = null;
|
try
|
{
|
obj = (FBS9100S_SystemControl)super.clone();
|
}
|
catch(CloneNotSupportedException e)
|
{
|
e.printStackTrace();
|
}
|
return obj;
|
}
|
|
public void clear()
|
{
|
this.HostType = 0; //Ö÷´Ó»úÀàÐÍ£º0-Ö÷»úģʽ 1-´Ó»úģʽ
|
this.IsEnableHost = 0; //Ö÷´Ó¿ØÖÆ
|
this.IsEnableDry = 0; //·ñÆôÓà ¸É½Óµã
|
this.YHState = 0;
|
this.IsEnableNBCMode = 0; //Æô¶¯Äæ±ä³äµç״̬
|
this.IsEnableAntiState = 0; //Æô¶¯·ÀÀׯ÷״̬
|
this.IsEnableTwoInfo = 0; //ÆôÓÃÁ½×鹨ÁªÐÅÏ¢
|
this.IsEnableDCML = 0; //ÆôÓÃĸÁª¹¤×÷
|
this.IsEnableAes = 0; //ÊÇ·ñʹÓüÓÃÜ
|
this.IsEnableJHMode = 0; //ÊÇ·ñʹÓþùºâ(¾ùºâÆôÓÃ)
|
this.IsEnableLouYeMode = 0; //ÊÇ·ñʹÓéҺ¹¦ÄÜ
|
for(int i =0;i<back.length;i++) {
|
this.back[i] = 0;
|
}
|
this.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);
|
|
//System.err.println(crc0 +"!="+ crc1);
|
if(crc0 != crc1) {
|
System.err.println("FBS9100S_SystemControl.putByteBuffer():"+crc0 +"!="+ crc1);
|
return false;
|
}
|
tmpbuf.position(0);
|
|
this.HostType = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //Ö÷´Ó»úÀàÐÍ£º0-Ö÷»úģʽ 1-´Ó»úģʽ
|
this.IsEnableHost = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //Ö÷´Ó¿ØÖÆ
|
this.IsEnableDry = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //ÊÇ·ñÆôÓà ¸É½Óµã
|
this.YHState = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort());
|
this.IsEnableNBCMode = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //Æô¶¯Äæ±ä³äµç״̬
|
this.IsEnableAntiState = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //Æô¶¯·ÀÀׯ÷״̬
|
this.IsEnableTwoInfo = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //ÆôÓÃÁ½×鹨ÁªÐÅÏ¢
|
this.IsEnableDCML = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //ÆôÓÃĸÁª¹¤×÷
|
this.IsEnableAes = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //ÊÇ·ñʹÓüÓÃÜ
|
this.IsEnableJHMode = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //ÊÇ·ñʹÓþùºâ(¾ùºâÆôÓÃ)
|
this.IsEnableLouYeMode = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //ÊÇ·ñʹÓéҺ¹¦ÄÜ
|
|
for(int i =0;i<back.length;i++) {
|
back[i] = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort());
|
}
|
|
this.CRC = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort());
|
|
System.out.println(this);
|
|
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(this.HostType)); //Ö÷´Ó»úÀàÐÍ£º0-Ö÷»úģʽ 1-´Ó»úģʽ
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(this.IsEnableHost)); //Ö÷´Ó¿ØÖÆ
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(this.IsEnableDry)); //ÊÇ·ñÆôÓà ¸É½Óµã
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(this.YHState));
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(this.IsEnableNBCMode)); //Æô¶¯Äæ±ä³äµç״̬
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(this.IsEnableAntiState)); //Æô¶¯·ÀÀׯ÷״̬
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(this.IsEnableTwoInfo)); //ÆôÓÃÁ½×鹨ÁªÐÅÏ¢
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(this.IsEnableDCML)); //ÆôÓÃĸÁª¹¤×÷
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(this.IsEnableAes)); //ÊÇ·ñʹÓüÓÃÜ
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(this.IsEnableJHMode)); //ÊÇ·ñʹÓþùºâ(¾ùºâÆôÓÃ)
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(this.IsEnableLouYeMode)); //ÊÇ·ñʹÓéҺ¹¦ÄÜ
|
|
|
for(int n=0; n<back.length; n++)
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(this.back[n]));
|
|
CRC = FBS9100_Crc16.CalCRC16(bytebuffer, bytebuffer.position());
|
bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(CRC));
|
|
bytebuffer.flip();
|
|
return bytebuffer;
|
}
|
|
@Override
|
public String toString() {
|
return "FBS9100S_SystemControl [HostType=" + HostType + ", IsEnableHost=" + IsEnableHost + ", IsEnableDry="
|
+ IsEnableDry + ", YHState=" + YHState + ", IsEnableNBCMode=" + IsEnableNBCMode + ", IsEnableAntiState="
|
+ IsEnableAntiState + ", IsEnableTwoInfo=" + IsEnableTwoInfo + ", IsEnableDCML=" + IsEnableDCML
|
+ ", IsEnableAes=" + IsEnableAes + ", IsEnableJHMode=" + IsEnableJHMode + ", IsEnableLouYeMode="
|
+ IsEnableLouYeMode + ", back=" + Arrays.toString(back) + ", CRC=" + CRC + "]";
|
}
|
|
|
}
|