以下代码注释是封装思路,根据自定义协议封装
public class PackageData {
private byte SFR[] = {(byte) 0xAA,0x55}; //同步帧
private byte length; //数据包长度,变长
private byte[] crc; //crc校验
private byte[] DID; // 设备ID;
public byte type; //操作类型;
public byte[] data;
public PackageData(){
}
public PackageData(byte type){
this.type = type;
}
/**
* 封装
* @return
*/
public byte[] pack(){//其中有封包顺序
if (type == 0)
throw new RuntimeException("Please set up the type");
if (data == null) {
data = new byte[0];
}
byte[] d = combine(); //合并数据区(设备ID、操作类型、数据)
crc = CRCUtils.GetCRC(d,d.length); //获取crc验证
length = (byte) d.length; //获取数据包长度
byte[] data = new byte[d