예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
        }