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

namespace NIDAQmx.Internal
{
    internal class COCreate
    {
        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        ///counter: char*
        ///nameToAssignToChannel: char*
        ///units: int32->int
        ///idleState: int32->int
        ///initialDelay: float64->double
        ///freq: float64->double
        ///dutyCycle: float64->double
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCOPulseChanFreq(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, PulseFreqUnits units, AnalogActiveEdge idleState, double initialDelay, double freq, double dutyCycle);


        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        ///counter: char*
        ///nameToAssignToChannel: char*
        ///units: int32->int
        ///idleState: int32->int
        ///initialDelay: float64->double
        ///lowTime: float64->double
        ///highTime: float64->double
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCOPulseChanTime(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, PulseTimeUnits units, AnalogActiveEdge idleState, double initialDelay, double lowTime, double highTime);


        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        ///counter: char*
        ///nameToAssignToChannel: char*
        ///sourceTerminal: char*
        ///idleState: int32->int
        ///initialDelay: int32->int
        ///lowTicks: int32->int
        ///highTicks: int32->int
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateCOPulseChanTicks(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, AnalogActiveEdge idleState, int initialDelay, int lowTicks, int highTicks);


    }
}
