CRC16 crc = new CRC16();
crc.Reset();
crc.Crc(buf,0,DataPack.NextPackDataByteCount - 2);
crc.Crc(0);
crc.Crc(0);
buf[DataPack.NextPackDataByteCount - 2] = (byte)((crc.Value >> 8) & 0xff);
buf[DataPack.NextPackDataByteCount - 1] = (byte)((crc.Value & 0xff));
crc.Reset();
crc.Crc(buf,0,DataPack.NextPackDataByteCount - 2);
crc.Crc(0);
crc.Crc(0);
buf[DataPack.NextPackDataByteCount - 2] = (byte)((crc.Value >> 8) & 0xff);
buf[DataPack.NextPackDataByteCount - 1] = (byte)((crc.Value & 0xff));