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

namespace NIDAQmx.Internal
{
    internal class AOCreate
    { /// Return Type: int32->int
      ///taskHandle: TaskHandle->void*
      ///physicalChannel: 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 DAQmxCreateAOVoltageChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string physicalChannel, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, double minVal, double maxVal, AOVoltageUnits units, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string customScaleName);


        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        ///physicalChannel: 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 DAQmxCreateAOCurrentChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string physicalChannel, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, double minVal, double maxVal, AnalogCurrentUnit units, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string customScaleName);


        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        ///physicalChannel: char*
        ///nameToAssignToChannel: char*
        ///type: int32->int
        ///freq: float64->double
        ///amplitude: float64->double
        ///offset: float64->double
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxCreateAOFuncGenChan(System.IntPtr taskHandle, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string physicalChannel, [System.Runtime.InteropServices.InAttribute()][System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string nameToAssignToChannel, AOFuncGenType type, double freq, double amplitude, double offset);

    }
}
