void FetchData(IAgilentNAMeasurement Ch1xx, out double[] data, out double[] freq) { int i, points; // Read and output data data = Ch1xx.FetchFormatted(); freq = Ch1xx.FetchX(); points = data.Length; Console.WriteLine("First 5 of {0} points, Imaginary Data (Frequency, Magnitude):", points); for (i = 0; i < 5; i++) { Console.WriteLine(" {0}\t{1}", freq[i], data[i]); } // Check instrument for errors int errorNum = -1; string errorMsg = null; Console.WriteLine(); while (errorNum != 0) { m_driver.Utility.ErrorQuery(ref errorNum, ref errorMsg); Console.WriteLine("ErrorQuery: {0}, {1}", errorNum, errorMsg); } }
public void MeasureS21(out double[] data, out double[] freq) { IAgilentNAMeasurement Ch1xx = Ch1.Measurements.get_Item("Measurement1"); Ch1xx.Create(2, 1); m_driver.Trigger.Source = AgilentNATriggerSourceEnum.AgilentNATriggerSourceManual; Ch1.TriggerMode = AgilentNATriggerModeEnum.AgilentNATriggerModeContinuous; Ch1xx.Format = AgilentNAMeasurementFormatEnum.AgilentNAMeasurementLogMag; Console.WriteLine("Measuring Channel1 S21 Data..."); Ch1.TriggerSweep(2000); // Take sweep and wait up to 2 seconds for sweep to complete Ch1xx.Trace.AutoScale(); FetchData(Ch1xx, out data, out freq); }