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

namespace NIDAQmx.Internal
{
    internal class CICreate
    {/// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///minVal: float64->double
    ///maxVal: float64->double
    ///units: int32->int
    ///edge: int32->int
    ///measMethod: int32->int
    ///measTime: float64->double
    ///divisor: uInt32->unsigned int
    ///customScaleName: char*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCIFreqChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, double minVal, double maxVal, CIFreqUnits units, AnalogActiveEdge edge, CIMeasMeth measMethod, double measTime, uint divisor, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string customScaleName);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///minVal: float64->double
    ///maxVal: float64->double
    ///units: int32->int
    ///edge: int32->int
    ///measMethod: int32->int
    ///measTime: float64->double
    ///divisor: uInt32->unsigned int
    ///customScaleName: char*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCIPeriodChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, double minVal, double maxVal, CIPeriodUnits units, AnalogActiveEdge edge, CIMeasMeth measMethod, double measTime, uint divisor, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string customScaleName);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///edge: int32->int
    ///initialCount: uInt32->unsigned int
    ///countDirection: int32->int
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCICountEdgesChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, AnalogActiveEdge edge, uint initialCount, CICountEdgesDir countDirection);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///minFreq: float64->double
    ///maxFreq: float64->double
    ///edge: int32->int
    ///customScaleName: char*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCIDutyCycleChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, double minFreq, double maxFreq, AnalogActiveEdge edge, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string customScaleName);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///minVal: float64->double
    ///maxVal: float64->double
    ///units: int32->int
    ///startingEdge: int32->int
    ///customScaleName: char*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCIPulseWidthChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, double minVal, double maxVal, CIPeriodUnits units, AnalogActiveEdge startingEdge, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string customScaleName);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///minVal: float64->double
    ///maxVal: float64->double
    ///units: int32->int
    ///customScaleName: char*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCISemiPeriodChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, double minVal, double maxVal, CIPeriodUnits units, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string customScaleName);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///minVal: float64->double
    ///maxVal: float64->double
    ///units: int32->int
    ///firstEdge: int32->int
    ///secondEdge: int32->int
    ///customScaleName: char*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCITwoEdgeSepChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, double minVal, double maxVal, CIPeriodUnits units, AnalogActiveEdge firstEdge, AnalogActiveEdge secondEdge, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string customScaleName);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///minVal: float64->double
    ///maxVal: float64->double
    ///units: int32->int
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCIPulseChanFreq(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, double minVal, double maxVal, PulseFreqUnits units);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///minVal: float64->double
    ///maxVal: float64->double
    ///units: int32->int
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCIPulseChanTime(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, double minVal, double maxVal, PulseTimeUnits units);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///sourceTerminal: char*
    ///minVal: float64->double
    ///maxVal: float64->double
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCIPulseChanTicks(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string sourceTerminal, double minVal, double maxVal);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///decodingType: int32->int
    ///ZidxEnable: bool32->uInt32->unsigned int
    ///ZidxVal: float64->double
    ///ZidxPhase: int32->int
    ///units: int32->int
    ///distPerPulse: float64->double
    ///initialPos: float64->double
    ///customScaleName: char*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCILinEncoderChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, DecodingType decodingType, bool ZidxEnable, double ZidxVal, CIZIndexPhase ZidxPhase, CILinEncoderUnits units, double distPerPulse, double initialPos, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string customScaleName);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///decodingType: int32->int
    ///ZidxEnable: bool32->uInt32->unsigned int
    ///ZidxVal: float64->double
    ///ZidxPhase: int32->int
    ///units: int32->int
    ///pulsesPerRev: uInt32->unsigned int
    ///initialAngle: float64->double
    ///customScaleName: char*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCIAngEncoderChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, DecodingType decodingType, bool ZidxEnable, double ZidxVal, CIZIndexPhase ZidxPhase, CIAngEncoderUnits units, uint pulsesPerRev, double initialAngle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string customScaleName);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///minVal: float64->double
    ///maxVal: float64->double
    ///decodingType: int32->int
    ///units: int32->int
    ///distPerPulse: float64->double
    ///customScaleName: char*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCILinVelocityChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, double minVal, double maxVal, DecodingType decodingType, VelocityUnits units, double distPerPulse, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string customScaleName);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///minVal: float64->double
    ///maxVal: float64->double
    ///decodingType: int32->int
    ///units: int32->int
    ///pulsesPerRev: uInt32->unsigned int
    ///customScaleName: char*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCIAngVelocityChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, double minVal, double maxVal, DecodingType decodingType, VelocityAngEncoderUnits units, uint pulsesPerRev, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string customScaleName);


    /// Return Type: int32->int
    ///taskHandle: TaskHandle->void*
    ///counter: char*
    ///nameToAssignToChannel: char*
    ///units: int32->int
    ///syncMethod: int32->int
    ///customScaleName: char*
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCIGPSTimestampChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string counter, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, TimestampUnits units, GPSSyncMethod syncMethod, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string customScaleName);

    }
}
