using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NIDAQmx.Internal
{
    internal class DataWrite
    {
    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///numSampsPerChan: int32->int
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///dataLayout: bool32->uInt32->unsigned int
    ///writeArray: float64*
    ///sampsPerChanWritten: int32*
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteAnalogF64(System.IntPtr taskHandle, int numSampsPerChan, bool autoStart, double timeout, bool dataLayout, ref double writeArray, ref int sampsPerChanWritten,IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///value: float64->double
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteAnalogScalarF64(System.IntPtr taskHandle, bool autoStart, double timeout, double value, IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///numSampsPerChan: int32->int
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///dataLayout: bool32->uInt32->unsigned int
    ///writeArray: int16*
    ///sampsPerChanWritten: int32*
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteBinaryI16(System.IntPtr taskHandle, int numSampsPerChan, bool autoStart, double timeout, bool dataLayout, ref short writeArray, ref int sampsPerChanWritten, IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///numSampsPerChan: int32->int
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///dataLayout: bool32->uInt32->unsigned int
    ///writeArray: uInt16*
    ///sampsPerChanWritten: int32*
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteBinaryU16(System.IntPtr taskHandle, int numSampsPerChan, bool autoStart, double timeout, bool dataLayout, ref ushort writeArray, ref int sampsPerChanWritten,IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///numSampsPerChan: int32->int
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///dataLayout: bool32->uInt32->unsigned int
    ///writeArray: int32*
    ///sampsPerChanWritten: int32*
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteBinaryI32(System.IntPtr taskHandle, int numSampsPerChan, bool autoStart, double timeout, bool dataLayout, ref int writeArray, ref int sampsPerChanWritten, IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///numSampsPerChan: int32->int
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///dataLayout: bool32->uInt32->unsigned int
    ///writeArray: uInt32*
    ///sampsPerChanWritten: int32*
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteBinaryU32(System.IntPtr taskHandle, int numSampsPerChan, bool autoStart, double timeout, bool dataLayout, ref uint writeArray, ref int sampsPerChanWritten, IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///numSampsPerChan: int32->int
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///dataLayout: bool32->uInt32->unsigned int
    ///writeArray: uInt8*
    ///sampsPerChanWritten: int32*
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteDigitalU8(System.IntPtr taskHandle, int numSampsPerChan, bool autoStart, double timeout, bool dataLayout,ref byte writeArray, ref int sampsPerChanWritten, IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///numSampsPerChan: int32->int
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///dataLayout: bool32->uInt32->unsigned int
    ///writeArray: uInt16*
    ///sampsPerChanWritten: int32*
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteDigitalU16(System.IntPtr taskHandle, int numSampsPerChan, bool autoStart, double timeout, bool dataLayout, ref ushort writeArray, ref int sampsPerChanWritten, IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///numSampsPerChan: int32->int
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///dataLayout: bool32->uInt32->unsigned int
    ///writeArray: uInt32*
    ///sampsPerChanWritten: int32*
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteDigitalU32(System.IntPtr taskHandle, int numSampsPerChan, bool autoStart, double timeout, bool dataLayout, ref uint writeArray, ref int sampsPerChanWritten, IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///value: uInt32->unsigned int
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteDigitalScalarU32(System.IntPtr taskHandle, bool autoStart, double timeout, uint value, IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///numSampsPerChan: int32->int
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///dataLayout: bool32->uInt32->unsigned int
    ///writeArray: uInt8*
    ///sampsPerChanWritten: int32*
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteDigitalLines(System.IntPtr taskHandle, int numSampsPerChan, bool autoStart, double timeout, bool dataLayout,ref byte writeArray, ref int sampsPerChanWritten, IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///numSampsPerChan: int32->int
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///dataLayout: bool32->uInt32->unsigned int
    ///frequency: float64*
    ///dutyCycle: float64*
    ///numSampsPerChanWritten: int32*
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteCtrFreq(System.IntPtr taskHandle, int numSampsPerChan, bool autoStart, double timeout, bool dataLayout, ref double frequency, ref double dutyCycle, ref int numSampsPerChanWritten, IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///frequency: float64->double
    ///dutyCycle: float64->double
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteCtrFreqScalar(System.IntPtr taskHandle, bool autoStart, double timeout, double frequency, double dutyCycle, IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///numSampsPerChan: int32->int
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///dataLayout: bool32->uInt32->unsigned int
    ///highTime: float64*
    ///lowTime: float64*
    ///numSampsPerChanWritten: int32*
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteCtrTime(System.IntPtr taskHandle, int numSampsPerChan, bool autoStart, double timeout, bool dataLayout, ref double highTime, ref double lowTime, ref int numSampsPerChanWritten,IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///highTime: float64->double
    ///lowTime: float64->double
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteCtrTimeScalar(System.IntPtr taskHandle, bool autoStart, double timeout, double highTime, double lowTime, IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///numSampsPerChan: int32->int
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///dataLayout: bool32->uInt32->unsigned int
    ///highTicks: uInt32*
    ///lowTicks: uInt32*
    ///numSampsPerChanWritten: int32*
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteCtrTicks(System.IntPtr taskHandle, int numSampsPerChan, bool autoStart, double timeout, bool dataLayout, ref uint highTicks, ref uint lowTicks, ref int numSampsPerChanWritten, IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///highTicks: uInt32->unsigned int
    ///lowTicks: uInt32->unsigned int
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteCtrTicksScalar(System.IntPtr taskHandle, bool autoStart, double timeout, uint highTicks, uint lowTicks, IntPtr reserved);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///numSamps: int32->int
    ///autoStart: bool32->uInt32->unsigned int
    ///timeout: float64->double
    ///writeArray: void*
    ///sampsPerChanWritten: int32*
    ///reserved: bool32*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxWriteRaw(System.IntPtr taskHandle, int numSamps, bool autoStart, double timeout, ref byte writeArray, ref int sampsPerChanWritten, IntPtr reserved);

    }
}
