Beispiel #1
0
        public static string GenerateWave(string sourceDevice = "Dev1", double freq = 100, double amp = 2,
                                          string waveType     = "sine")
        {
            waveType = waveType.ToLower();
            AOFunctionGenerationType type = AOFunctionGenerationType.Sine;  //default value

            if (waveType.Equals("square"))
            {
                type = AOFunctionGenerationType.Square;
            }
            else if (waveType.Equals("triangle"))
            {
                type = AOFunctionGenerationType.Triangle;
            }
            NationalInstruments.DAQmx.Task myTask = new NationalInstruments.DAQmx.Task();
            try
            {
                if (amp < 0)
                {
                    amp *= -1;
                }
                if (amp > 5)
                {
                    amp = 5;
                }
                myTask.AOChannels.CreateFunctionGenerationChannel(sourceDevice + "/fgen",
                                                                  "fgen",
                                                                  type,
                                                                  freq,        //freq
                                                                  amp);        //amplitude

                // verify the task before doing the waveform calculations
                myTask.Control(TaskAction.Verify);


                myTask.Stop();
                myTask.AOChannels[0].FunctionGenerationType      = type;
                myTask.AOChannels[0].FunctionGenerationFrequency = freq;
                myTask.AOChannels[0].FunctionGenerationAmplitude = amp;


                myTask.Start();
            }
            catch (DaqException err)
            {
                myTask.Dispose();
                return("Fail" + err.Message);
            }
            myTask.Dispose();
            return("OK");
        }
Beispiel #2
0
        public void GenerateWave(string device = "Dev1", double freq = 100, double amp = 2,
                                 AOFunctionGenerationType type = AOFunctionGenerationType.Sine)
        {
            try
            {
                if (myTask == null)
                {
                    myTask = new NationalInstruments.DAQmx.Task();
                    if (amp < 0)
                    {
                        amp *= -1;
                    }
                    if (amp > 5)
                    {
                        amp = 5;
                    }
                    myTask.AOChannels.CreateFunctionGenerationChannel(device + "/fgen",
                                                                      "fgen",
                                                                      type,
                                                                      freq,    //freq
                                                                      amp);    //amplitude

                    // verify the task before doing the waveform calculations
                    myTask.Control(TaskAction.Verify);
                }
                else
                {
                    myTask.Stop();
                    myTask.AOChannels[0].FunctionGenerationType      = type;
                    myTask.AOChannels[0].FunctionGenerationFrequency = freq;
                    myTask.AOChannels[0].FunctionGenerationAmplitude = amp;
                }

                myTask.Start();
            }
            catch (DaqException err)
            {
                MessageBox.Show(err.Message);
                myTask.Dispose();
                myTask = null;
            }
        }