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

namespace NIDAQmx
{
    public class AOChannelFactory : ChannelFactory
    {
        internal AOChannelFactory(DAQmx daqmx) : base(daqmx)
        {
        }
        public AOChannel CreateVoltage(string physicalChannel, string nameToAssignToChannel, double minVal, double maxVal, AOVoltageUnits units, string customScaleName = "")
        {
            return Exc<AOChannel>(p => p.CreateVoltage, physicalChannel, nameToAssignToChannel, minVal, maxVal, units, customScaleName);
        }
        public AOChannel CreateCurrent(string physicalChannel, string nameToAssignToChannel, double minVal, double maxVal, AnalogCurrentUnit units, string customScaleName = "")
        {
            return Exc<AOChannel>(p=>p.CreateCurrent, physicalChannel,nameToAssignToChannel,minVal,maxVal, units,customScaleName);
        }
        public AOChannel CreateFuncGen(string physicalChannel, string nameToAssignToChannel, AOFuncGenType type, double freq, double amplitude, double offset)
        {
            return Exc<AOChannel>(p=>p.CreateFuncGen, physicalChannel,nameToAssignToChannel,type,freq,amplitude,offset);
        }
    }
}
