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"); }
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; } }