public static ViSpeakStruct DeSerializer(byte[] buffer) { ViSpeakStruct viSpeakStruct = new ViSpeakStruct(); viSpeakStruct.Channels = BitConverter.ToInt32(buffer, 0); viSpeakStruct.Frequency = BitConverter.ToInt32(buffer, 4); viSpeakStruct.SamplesLength = BitConverter.ToInt32(buffer, 8); viSpeakStruct.DataLength = BitConverter.ToInt32(buffer, 12); viSpeakStruct.Data = new byte[viSpeakStruct.DataLength]; Buffer.BlockCopy(buffer, 16, viSpeakStruct.Data, 0, viSpeakStruct.DataLength); // return(viSpeakStruct); }
public static byte[] Serializer(ViSpeakStruct viSpeakStruct) { byte[] buffer = new byte[12 + viSpeakStruct.Data.Length]; byte[] channelsBuffer = BitConverter.GetBytes(viSpeakStruct.Channels); Buffer.BlockCopy(channelsBuffer, 0, buffer, 0, 4); // byte[] frequencyBuffer = BitConverter.GetBytes(viSpeakStruct.Frequency); Buffer.BlockCopy(frequencyBuffer, 0, buffer, 4, 4); // byte[] samplesLengthBuffer = BitConverter.GetBytes(viSpeakStruct.SamplesLength); Buffer.BlockCopy(samplesLengthBuffer, 0, buffer, 8, 4); // byte[] dataLengthBuffer = BitConverter.GetBytes(viSpeakStruct.DataLength); Buffer.BlockCopy(dataLengthBuffer, 0, buffer, 12, 4); // for (int iter = 0; iter < viSpeakStruct.Data.Length; ++iter) { buffer[16 + iter] = viSpeakStruct.Data[iter]; } // return(buffer); }