예제 #1
0
        public override void Run()
        {
            MyInst.ScpiCommand("DISPlay:WINDow:STATE ON");
            MyInst.ScpiCommand("CALCulate:PARameter:DEFine:EXT 'MyMeas1',S11");
            MyInst.ScpiCommand("CALCulate:PARameter:DEFine:EXT 'MyMeas2',S12");
            MyInst.ScpiCommand("CALCulate:PARameter:DEFine:EXT 'MyMeas3',S21");
            MyInst.ScpiCommand("CALCulate:PARameter:DEFine:EXT 'MyMeas4',S22");
            MyInst.ScpiCommand("DISPlay:WINDow:TRACe1:FEED 'MyMeas1'");
            //MyInst.ScpiCommand("DISPlay:WINDow:TRACe2:FEED 'MyMeas2'");
            //MyInst.ScpiCommand("DISPlay:WINDow:TRACe3:FEED 'MyMeas3'");
            //MyInst.ScpiCommand("DISPlay:WINDow:TRACe4:FEED 'MyMeas4'");
            //MyInst.ScpiCommand("DISPlay:WINDow:Y:AUTO");
            MyInst.ScpiQuery <bool>("*OPC?");

            Log.Info("Selected Start Frequency : " + StartFrequency.ToString());
            Log.Info("Selected Stop Frequency : " + StopFrequency.ToString());
            Log.Info("Selected IF Bandwidth : " + IFBandwidth.ToString());
            Log.Info("Selected Power Level : " + SweepPoints.ToString());

            MyInst.IoTimeout = 5000;

            MyMeas measurement = MyMeas.MyMeas1;

            if (S_Parameters == S_Parameters.S11)
            {
                measurement = MyMeas.MyMeas1;
            }
            if (S_Parameters == S_Parameters.S12)
            {
                measurement = MyMeas.MyMeas2;
            }
            if (S_Parameters == S_Parameters.S21)
            {
                measurement = MyMeas.MyMeas3;
            }
            if (S_Parameters == S_Parameters.S22)
            {
                measurement = MyMeas.MyMeas4;
            }

            MyInst.ScpiCommand(":CALCulate1:PARameter:SELect '{0}'", measurement);
            MyInst.ScpiCommand(":SENSe:BANDwidth:RESolution {0}", IFBandwidth);
            MyInst.ScpiCommand(":SENSe:FREQuency:STARt {0}", StartFrequency);
            MyInst.ScpiCommand(":SENSe:FREQuency:STOP {0}", StopFrequency);
            MyInst.ScpiCommand(":SENSe:SWEep:POINts {0}", SweepPoints);
            MyInst.ScpiCommand(":SENSe:SWEep:GENeration {0}", SweepType);
            MyInst.ScpiCommand(":SENSe:SWEep:TIME:AUTO 1");


            StaticClass.Time = MyInst.ScpiQuery <System.Double>(Scpi.Format(":SENSe:SWEep:TIME?"), true);

            UpgradeVerdict(Verdict.Pass);
        }
예제 #2
0
 /// <summary>
 /// Positions the current sweep point before the first point in the collection.
 /// Call <see cref="SweepStep{T}.MoveToNextPoint"/> before operating on the first sweep point.
 /// </summary>
 public void Reset()
 {
     sweepPointsEnumerator = SweepPoints.GetEnumerator();
 }