예제 #1
0
        private void VnaSweepRun_Click(object sender, EventArgs e)
        {
            if (running)
            {
                vna.stop();
                running          = false;
                vnaSweepRun.Text = "Run";
                return;
            }

            absA = new PlotTrace();
            logA = new PlotTrace();
            phiA = new PlotTrace();
            for (int j = 0; j < channels; j++)
            {
                absB[j]  = new PlotTrace();
                absBA[j] = new PlotTrace();
                phiBA[j] = new PlotTrace();
                logB[j]  = new PlotTrace();
                logBA[j] = new PlotTrace();
                phiB[j]  = new PlotTrace();
            }

            vnaScreen.addTraces(absA, absB, absBA, phiBA, logA, logB, logBA, phiA, phiB);
            // vna.runSweep(sweepFMin, sweepFMax, sweepLog, sweepPoints, loopDelay / 1000, (int)Math.Floor(periods + 0.5));
            vna.runSweep();
            running          = vna.running;
            vnaSweepRun.Text = "Stop";
        }
예제 #2
0
        public void addTraces(
            PlotTrace _absA,
            PlotTrace[] _absB,
            PlotTrace[] _absBA,
            PlotTrace[] _phiBA,
            PlotTrace _logA,
            PlotTrace[] _logB,
            PlotTrace[] _logBA,
            PlotTrace _phiA,
            PlotTrace[] _phiB)
        {
            PlotSet t = new PlotSet();

            t.name  = DateTime.Now.ToLongDateString();
            t.absA  = _absA;
            t.absB  = (PlotTrace[])_absB.Clone();
            t.absBA = (PlotTrace[])_absBA.Clone();
            t.phiBA = (PlotTrace[])_phiBA.Clone();
            t.logA  = _logA;
            t.logB  = (PlotTrace[])_logB.Clone();
            t.logBA = (PlotTrace[])_logBA.Clone();
            t.phiA  = _phiA;
            t.phiB  = (PlotTrace[])_phiB.Clone();

            current = t;
            for (int i = 0; i < _absB.Length; i++)
            {
                current.absB[i].color.color  = getTraceColor(i);
                current.absBA[i].color.color = getTraceColor(i);
                current.phiBA[i].color.color = getTraceColor(i);
                current.logB[i].color.color  = getTraceColor(i);
                current.logBA[i].color.color = getTraceColor(i);
            }

            updatePlot1();
            updatePlot2();

            Invalidate();
        }
예제 #3
0
        public void initVNA(VNA _vna)
        {
            vna            = _vna;
            timer          = new Timer();
            timer.Interval = 100; // ms
            timer.Tick    += Timer_Tick;

            channels = vna.channels;
            absB     = new PlotTrace[channels];
            absBA    = new PlotTrace[channels];
            phiBA    = new PlotTrace[channels];
            logB     = new PlotTrace[channels];
            logBA    = new PlotTrace[channels];
            phiB     = new PlotTrace[channels];

            running = false;

            /*
             * sweepFMin = 100;
             * sweepFMax = 10000;
             * sweepLog = true;
             * sweepPoints = 61;
             * loopDelay = 700;
             * periods = 40;
             */

            timer.Enabled = true;
            CanClose      = false;
            initialized   = true;
            blockRangeSet = true;


            // Setup Screen
            vnaScreen.x.logScale = vna.config.displayLogF;
            vnaScreen.x.newRange(vna.config.displayFMin, vna.config.displayFMax);
            vnaScreen.changePlot(vna.config.displayDual, vna.config.displayPlotY1, vna.config.displayPlotY2);
            vnaScreen.y1.newRange(vna.config.displayY1Min, vna.config.displayY1Max);
            vnaScreen.y2.newRange(vna.config.displayY2Min, vna.config.displayY2Max);

            // Setup UI Elements
            vnaDualDisplay.Checked = vna.config.displayDual;
            vnaDisplayFMin.Value   = Convert.ToDecimal(vna.config.displayFMin);
            vnaDisplayFMax.Value   = Convert.ToDecimal(vna.config.displayFMax);
            vnaDisplayFLog.Checked = vna.config.displayLogF;
            foreach (string s in vna.config.PlotModeNames)
            {
                vnaDisplayY1Type.Items.Add(s);
                vnaDisplayY2Type.Items.Add(s);
            }
            vnaDisplayY1Type.SelectedIndex = (int)vna.config.displayPlotY1;
            vnaDisplayY2Type.SelectedIndex = (int)vna.config.displayPlotY2;
            vnaDisplayY1Min.Value          = Convert.ToDecimal(vna.config.displayY1Min);
            vnaDisplayY1Max.Value          = Convert.ToDecimal(vna.config.displayY1Max);
            vnaDisplayY2Min.Value          = Convert.ToDecimal(vna.config.displayY2Min);
            vnaDisplayY2Max.Value          = Convert.ToDecimal(vna.config.displayY2Max);

            vnaSweepFMin.Value    = Convert.ToDecimal(vna.config.sweepFMin);
            vnaSweepFMax.Value    = Convert.ToDecimal(vna.config.sweepFMax);
            vnaSweepLog.Checked   = vna.config.sweepLogF;
            vnaSweepPoints.Value  = Convert.ToDecimal(vna.config.sweepPoints);
            vnaSweepDelay.Value   = Convert.ToDecimal(vna.config.sweepLoopDelay * 1000);
            vnaSweepPeriods.Value = Convert.ToDecimal(vna.config.sweepMPeriods);
            vnaPhaseCorr.Value    = Convert.ToDecimal(vna.config.compPhaseBlocks);

            // CallBacks
            vnaSweepRun.Click += VnaSweepRun_Click;

            vnaDisplayY1Type.SelectedIndexChanged += VnaDisplayY1Type_SelectedIndexChanged;
            vnaDisplayY2Type.SelectedIndexChanged += VnaDisplayY2Type_SelectedIndexChanged;
            vnaDualDisplay.Click += VnaDualDisplay_Click;

            vnaDisplayReset.Click += VnaDisplayReset_Click;

            vnaDisplayFMin.ValueChanged  += VnaDisplayFMin_ValueChanged;
            vnaDisplayFMax.ValueChanged  += VnaDisplayFMax_ValueChanged;
            vnaDisplayY1Min.ValueChanged += VnaDisplayY1Min_ValueChanged;
            vnaDisplayY1Max.ValueChanged += VnaDisplayY1Max_ValueChanged;
            vnaDisplayY2Min.ValueChanged += VnaDisplayY2Min_ValueChanged;
            vnaDisplayY2Max.ValueChanged += VnaDisplayY2Max_ValueChanged;

            vnaDisplayFLog.Click += VnaDisplayFLog_Click;

            vnaSweepFMin.ValueChanged    += VnaSweepFMin_ValueChanged;
            vnaSweepFMax.ValueChanged    += VnaSweepFMax_ValueChanged;
            vnaSweepLog.Click            += VnaSweepLog_Click;
            vnaSweepPoints.ValueChanged  += VnaSweepPoints_ValueChanged;
            vnaSweepDelay.ValueChanged   += VnaSweepDelay_ValueChanged;
            vnaSweepPeriods.ValueChanged += VnaSweepPeriods_ValueChanged;
            vnaPhaseCorr.ValueChanged    += VnaPhaseCorr_ValueChanged;

            vnaSaveData.Click += VnaSaveData_Click;

            vnaDelete.Click   += VnaDelete_Click;
            vnaToMemory.Click += VnaToMemory_Click;

            blockRangeSet = false;
        }