private void WriteQuantum(EmulQuant quant) { #region Тип Delphi // TQuant = packed record // ModuleID: Byte; 1 байт // ChannelID: Byte; 1 байт // DataType: Byte; 1 байт // Data: array[0..255] of Byte; 256 байт // end; // Итого: 259 #endregion writer.Write(quant.ModuleID); writer.Write(quant.ChannelID); writer.Write((byte)quant.DataType); writer.Write(quant.Data); }
private bool ReadQuantum(out EmulQuant quant) { #region Тип Delphi // TQuant = packed record // ModuleID: Byte; 1 байт // ChannelID: Byte; 1 байт // DataType: Byte; 1 байт // Data: array[0..255] of Byte; 256 байт // end; // Итого: 259 #endregion quant = new EmulQuant(); byte[] data = new byte[259]; bool result = reader.Read(data, 0, 259) == 259; if (result) { quant.ModuleID = data[0]; quant.ChannelID = data[1]; quant.DataType = (DataType)data[2]; quant.Data = new byte[256]; Array.Copy(data, 3, quant.Data, 0, 256); } return result; }