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 COChannelFactory : ChannelFactory
    {
        internal COChannelFactory(DAQmx daqmx) : base(daqmx)
        {
        }
        public COChannel CreatePulseFreq(string counter, string nameToAssignToChannel, PulseFreqUnits units, AnalogActiveEdge idleState, double initialDelay, double freq, double dutyCycle)
        {
            return Exc<COChannel>(p=>p.CreatePulseFreq, counter, nameToAssignToChannel, units, idleState, initialDelay, freq, dutyCycle);
        }
        public COChannel CreatePulseTime(string counter, string nameToAssignToChannel, PulseTimeUnits units, AnalogActiveEdge idleState, double initialDelay, double lowTime, double highTime)
        {
            return Exc<COChannel>(p=>p.CreatePulseTime, counter, nameToAssignToChannel, units,idleState, initialDelay, lowTime, highTime);
        }
        public COChannel CreateCOPulseChanTicks(string counter, string nameToAssignToChannel, string sourceTerminal, AnalogActiveEdge idleState, int initialDelay, int lowTicks, int highTicks)
        {
            return Exc<COChannel>(p=>p.CreateCOPulseChanTicks, counter, nameToAssignToChannel, sourceTerminal, idleState, initialDelay,lowTicks, highTicks);
        }
    }
}
