public double[] ReadData(int offset, int length, SpectrumWindow windowType) { var bufferSize = SpectrumLength * Marshal.SizeOf <double>(); var bufferPtr = Marshal.AllocHGlobal(bufferSize); try { SdkError.ThrowIfError(SpectrumDoubleChannel_read_data(_anyChannel.ChannelPtr, (IntPtr)offset, (IntPtr)length, bufferPtr, (IntPtr)bufferSize, out var dataRead, windowType)); return(new NativeArrayMarshaler <double>().MarshalArray(bufferPtr, dataRead)); } finally { Marshal.FreeHGlobal(bufferPtr); } }
private static extern int SpectrumDoubleChannel_read_data(IntPtr channelPtr, IntPtr offset, IntPtr length, IntPtr outBuffer, IntPtr bufferSize, out IntPtr samplesRead, SpectrumWindow windowType);