Ejemplo n.º 1
0
    private void OnRFE_UpdateData(object sender, EventArgs e)
    {
        RFESweepData objData = m_objRFE.SweepData.GetData(m_objRFE.SweepData.Count - 1);
        int          i;

        if (null == objData)
        {
            return;
        }

        if (!m_bInitializedGraphics)
        {
            InitGraphics(objData.TotalDataPoints);
        }

        for (i = 0; i < m_iNumDataPoints; i++)
        {
            m_fCurrentSweepAmp[i]  = objData.GetAmplitudeDBM((ushort)i);
            m_fCurrentSweepFreq[i] = objData.GetFrequencyMHZ((ushort)i);
            m_fCurrentTimeStamp[i] = DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;
        }

        UpdateGraphics(objData.StartFrequencyMHZ, objData.EndFrequencyMHZ);

        RecordData(objData);
    }
Ejemplo n.º 2
0
    public void RecordData(RFESweepData objData)
    {
        double fCurrentTimeStamp;
        double fElapsed;
        double fFreq;
        double fAmp;
        int    i;

        if (!m_bIsRecording)
        {
            return;
        }

        fElapsed = DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;

        m_bwRecorder.Write(fElapsed);
        m_bwRecorder.Write(objData.StartFrequencyMHZ);
        m_bwRecorder.Write(objData.EndFrequencyMHZ);
        m_bwRecorder.Write(m_iDSPMode);

        m_bwRecorder.Write(m_iNumDataPoints);

        for (i = 0; i < m_iNumDataPoints; i++)
        {
            fAmp = objData.GetAmplitudeDBM((ushort)i);
            m_bwRecorder.Write(fAmp);

            fFreq = objData.GetFrequencyMHZ((ushort)i);
            m_bwRecorder.Write(fFreq);

            fCurrentTimeStamp = DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;
            m_bwRecorder.Write(fCurrentTimeStamp);
        }
    }
Ejemplo n.º 3
0
        private void OnRFE_UpdateData(object sender, EventArgs e)
        {
            labelSweeps.Text = "Sweeps: " + m_objRFE.SweepData.Count.ToString();

            RFESweepData objData = m_objRFE.SweepData.GetData(m_objRFE.SweepData.Count - 1);

            if (objData != null)
            {
                UInt16 nPeak = objData.GetPeakStep();

                labelFrequency.Text = objData.GetFrequencyMHZ(nPeak).ToString("f3") + " MHZ";
                labelAmplitude.Text = objData.GetAmplitudeDBM(nPeak).ToString("f2") + " dBm";
            }
        }
Ejemplo n.º 4
0
        static void OnRFE_UpdateData(object sender, EventArgs e)
        {
            RFESweepData objSweep = g_objRFE.SweepData.GetData(g_objRFE.SweepData.Count - 1);

            if (!g_bIgnoreSweeps)
            {
                g_nSweepCounter++;
                ushort nPeak = objSweep.GetPeakDataPoint();
                Trace.WriteLine("Sweep: " + g_objRFE.SweepData.Count.ToString("D3") + " Peak: " + objSweep.GetFrequencyMHZ(nPeak).ToString("f3") + "MHz " + objSweep.GetAmplitudeDBM(nPeak).ToString("f1") + "dBm");
                if (!String.IsNullOrEmpty(g_sFileCSV))
                {
                    if (!g_bCountActive || (g_nTotalFiles > 0)) //if g_bCountActive generate files only if g_nTotalFiles is greater than 0
                    {
                        string sFile = g_sFileCSV + "_" + g_nSweepCounter.ToString("0000") + "_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".csv";
                        objSweep.SaveFileCSV(sFile, '\t', null);
                        Trace.WriteLine("Saved file " + sFile);
                        if (g_nTotalFiles > 0)
                        {
                            g_nTotalFiles--; //reduce pending files to generate
                        }
                    }
                }
                if (g_objRFE.SweepData.Count > 100)
                {
                    SaveRFEFile();
                    g_objRFE.SweepData.CleanAll();
                }
            }
        }
 static void OnRFE_UpdateData(object sender, EventArgs e)
 {
     if (!g_bIgnoreSweeps)
     {
         RFESweepData objSweep = g_objRFE.SweepData.GetData(g_objRFE.SweepData.Count - 1);
         ushort       nPeak    = objSweep.GetPeakStep();
         Console.WriteLine("Sweep: " + g_objRFE.SweepData.Count.ToString("D3") + " Peak: " + objSweep.GetFrequencyMHZ(nPeak).ToString("f3") + "MHz " + objSweep.GetAmplitudeDBM(nPeak).ToString("f1") + "dBm");
     }
 }
        static void OnRFE_UpdateData(object sender, EventArgs e)
        {
            RFESweepData objSweep = g_objRFE.SweepData.GetData(g_objRFE.SweepData.Count - 1);

            if (!g_bIgnoreSweeps)
            {
                g_nSweepCounter++;
                ushort nPeak = objSweep.GetPeakStep();
                Console.WriteLine("Sweep: " + g_objRFE.SweepData.Count.ToString("D3") + " Peak: " + objSweep.GetFrequencyMHZ(nPeak).ToString("f3") + "MHz " + objSweep.GetAmplitudeDBM(nPeak).ToString("f1") + "dBm");
                if (!String.IsNullOrEmpty(g_sFileCSV))
                {
                    string sFile = g_sFileCSV + "_" + g_nSweepCounter.ToString("0000") + "_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".csv";
                    objSweep.SaveFileCSV(sFile, '\t', null);
                    Console.WriteLine("Saved file " + sFile);
                }
                if (g_objRFE.SweepData.Count > 100)
                {
                    SaveRFEFile();
                    g_objRFE.SweepData.CleanAll();
                }
            }
            //else
            //{
            //    Console.WriteLine("Ignored sweep " + objSweep.Dump());
            //}
        }
Ejemplo n.º 7
0
        private void OnRFE_UpdateData(object sender, EventArgs e)
        {
            labelSweeps.Text = "Sweeps: " + m_objRFE.SweepData.Count.ToString();


            RFESweepData objData = m_objRFE.SweepData.GetData(m_objRFE.SweepData.Count - 1);

            if (objData != null)
            {
                UInt16 nPeak = objData.GetPeakStep();
                labelFrequency.Text = objData.GetFrequencyMHZ(nPeak).ToString("f3") + " MHZ";
                labelAmplitude.Text = objData.GetAmplitudeDBM(nPeak).ToString("f2") + " dBm";


                for (ushort i = 0; i < objData.TotalSteps; i++)
                {
                    DataPoint point = new DataPoint();
                    point.freq = objData.GetFrequencyMHZ(i);
                    point.amp  = objData.GetAmplitudeDBM(i);

                    if (currentData.Count < objData.TotalSteps)
                    {
                        currentData.Add(point);
                    }
                    else
                    {
                        currentData[i] = point;
                    }

                    if (peakHoldData.Count < objData.TotalSteps)
                    {
                        peakHoldData.Add(point);
                    }
                    else
                    {
                        if (point.amp > peakHoldData[i].amp)
                        {
                            peakHoldData[i] = point;
                        }
                    }
                }

                for (ushort i = 0; i < objData.TotalSteps; i++)
                {
                    if (ScanPlot.Series[0].Points.Count < currentData.Count)
                    {
                        ScanPlot.Series[0].Points.AddXY(currentData[i].freq, currentData[i].amp);
                    }
                    else
                    {
                        ScanPlot.Series[0].Points[i].SetValueXY(currentData[i].freq, currentData[i].amp);
                    }
                    if (ScanPlot.Series[1].Points.Count < peakHoldData.Count)
                    {
                        ScanPlot.Series[1].Points.AddXY(peakHoldData[i].freq, peakHoldData[i].amp);
                    }
                    else
                    {
                        ScanPlot.Series[1].Points[i].SetValueXY(peakHoldData[i].freq, peakHoldData[i].amp);
                    }
                }
                ScanPlot.Refresh();
            }
        }
Ejemplo n.º 8
0
        private void DisplayTrackingData()
        {
#if CALLSTACK_REALTIME
            Console.WriteLine("CALLSTACK:DisplayTrackingData");
#endif
            m_PointList_Tracking_Normal.Clear();
            m_GraphLine_Tracking_Normal.Clear();
            m_PointList_Tracking_Avg.Clear();
            m_GraphLine_Tracking_Avg.Clear();

            DisplayTrackingData_TextProgress(false);

            if (m_objRFEAnalyzer.IsTrackingNormalizing != m_TrackingStatus.IsVisible)
            {
                m_TrackingStatus.IsVisible = m_objRFEAnalyzer.IsTrackingNormalizing;
                m_GraphTrackingGenerator.Refresh();
            }

            if (m_objRFEAnalyzer.TrackingData.Count == 0)
            {
                m_GraphTrackingGenerator.Refresh();
                return; //nothing to paint
            }

            //Use the latest data loaded
            uint nLastSample = m_objRFEAnalyzer.TrackingData.Count - 1;
            uint nAvailableAverageSamples = 1;
            uint nAverageIterations       = Convert.ToUInt16(m_nRFGENIterationAverage.Value);
            if (nAverageIterations == 0)
            {
                nAverageIterations = 1;
            }
            if (nLastSample >= (nAverageIterations - 1))
            {
                nAvailableAverageSamples = nAverageIterations;
            }
            else
            {
                nAvailableAverageSamples = nLastSample + 1;
            }

            RFESweepData objSweep    = m_objRFEAnalyzer.TrackingData.GetData(nLastSample);
            RFESweepData objSweepAvg = m_objRFEAnalyzer.TrackingData.GetAverage(nLastSample + 1 - nAvailableAverageSamples, nLastSample);
            objSweep.StepFrequencyMHZ = m_objRFEGenerator.RFGenTrackStepMHZ(); //step tracking frequency is not known by analyzer

            double dMinDB = 100;
            double dMaxDB = -120;

            for (UInt16 nInd = 0; nInd < objSweep.TotalSteps; nInd++)
            {
                //normal realtime
                double dDB = objSweep.GetAmplitudeDBM(nInd) - m_objRFEAnalyzer.TrackingNormalizedData.GetAmplitudeDBM(nInd);
                if (dDB > dMaxDB)
                {
                    dMaxDB = dDB;
                }
                if (dDB < dMinDB)
                {
                    dMinDB = dDB;
                }
                m_PointList_Tracking_Normal.Add(objSweep.GetFrequencyMHZ(nInd), dDB, RFECommunicator.MIN_AMPLITUDE_DBM);
                //average
                if (objSweepAvg != null)
                {
                    dDB = objSweepAvg.GetAmplitudeDBM(nInd) - m_objRFEAnalyzer.TrackingNormalizedData.GetAmplitudeDBM(nInd);
                    if (dDB > dMaxDB)
                    {
                        dMaxDB = dDB;
                    }
                    if (dDB < dMinDB)
                    {
                        dMinDB = dDB;
                    }
                    m_PointList_Tracking_Avg.Add(objSweepAvg.GetFrequencyMHZ(nInd), dDB, RFECommunicator.MIN_AMPLITUDE_DBM);
                }
            }

            m_GraphLine_Tracking_Normal.Points          = m_PointList_Tracking_Normal;
            m_GraphLine_Tracking_Normal.IsVisible       = true;
            m_GraphLine_Tracking_Normal.Label.IsVisible = true;

            m_GraphLine_Tracking_Avg.Points          = m_PointList_Tracking_Avg;
            m_GraphLine_Tracking_Avg.IsVisible       = true;
            m_GraphLine_Tracking_Avg.Label.IsVisible = true;

            m_GraphTrackingGenerator.GraphPane.XAxis.Scale.Min = objSweep.StartFrequencyMHZ;
            m_GraphTrackingGenerator.GraphPane.XAxis.Scale.Max = objSweep.EndFrequencyMHZ;
            double dGraphMin = m_GraphTrackingGenerator.GraphPane.YAxis.Scale.Min;
            if ((dGraphMin < dMinDB - 15) || (dGraphMin > dMinDB - 5))
            {
                m_GraphTrackingGenerator.GraphPane.YAxis.Scale.Min = dMinDB - 10;
            }
            double dGraphMax = m_GraphTrackingGenerator.GraphPane.YAxis.Scale.Max;
            if ((dGraphMax > dMaxDB + 15) || (dGraphMax < dMaxDB + 5))
            {
                m_GraphTrackingGenerator.GraphPane.YAxis.Scale.Max = dMaxDB + 10;
            }
            m_GraphTrackingGenerator.AxisChange();
            m_GraphTrackingGenerator.Refresh();
        }
        private void DisplayTrackingData()
        {
#if CALLSTACK_REALTIME
            Console.WriteLine("CALLSTACK:DisplayTrackingData");
#endif
            bool bPlaySound = false;

            bool bReinitGraphLimits = (m_PointList_Tracking_Avg.Count == 0);

            m_PointList_Tracking_Normal.Clear();
            m_GraphLine_Tracking_Normal.Clear();
            m_GraphLine_Tracking_Normal.Line.IsSmooth = menuSmoothSignals.Checked;
            m_PointList_Tracking_Avg.Clear();
            m_GraphLine_Tracking_Avg.Clear();
            m_GraphLine_Tracking_Avg.Line.IsSmooth = menuSmoothSignals.Checked;

            m_GraphTrackingGenerator.GraphPane.YAxis.MajorGrid.IsVisible = menuShowGrid.Checked;
            m_GraphTrackingGenerator.GraphPane.XAxis.MajorGrid.IsVisible = menuShowGrid.Checked;

            DisplayTrackingData_TextProgress(false);

            if (m_objRFEAnalyzer.IsTrackingNormalizing != m_TrackingStatus.IsVisible)
            {
                m_TrackingStatus.IsVisible = m_objRFEAnalyzer.IsTrackingNormalizing;
                m_GraphTrackingGenerator.Refresh();
            }

            m_MarkersSNA.HideAllMarkers();
            //draw all marker except tracking 1
            UpdateMarkerCollectionFromMenuSNA();
            //remove old text from all peak track markers and redraw
            m_MarkersSNA.CleanAllMarkerText(0);

            if (m_objRFEAnalyzer.TrackingData.Count == 0)
            {
                m_GraphTrackingGenerator.Refresh();
                return; //nothing to paint
            }

            //Use the latest data loaded
            uint nLastSample = m_objRFEAnalyzer.TrackingData.Count - 1;
            uint nAvailableAverageSamples = 1;
            uint nAverageIterations       = m_ToolGroup_RFEGenTracking.Average;
            if (nAverageIterations == 0)
            {
                nAverageIterations = 1;
            }
            if (nLastSample >= (nAverageIterations - 1))
            {
                nAvailableAverageSamples = nAverageIterations;
            }
            else
            {
                nAvailableAverageSamples = nLastSample + 1;
            }

            RFESweepData objSweep    = m_objRFEAnalyzer.TrackingData.GetData(nLastSample);
            RFESweepData objSweepAvg = m_objRFEAnalyzer.TrackingData.GetMedianAverage(nLastSample + 1 - nAvailableAverageSamples, nLastSample);
            objSweep.StepFrequencyMHZ = m_objRFEGenerator.RFGenTrackStepMHZ(); //step tracking frequency is not known by analyzer

            double dMinDB       = 100;
            double dMaxDB       = -120;
            double dMarginMinDB = 10;
            double dMarginMaxDB = 10;

            for (UInt16 nInd = 0; nInd < objSweep.TotalSteps; nInd++)
            {
                //normal realtime
                double dDB = objSweep.GetAmplitudeDBM(nInd) - m_objRFEAnalyzer.TrackingNormalizedData.GetAmplitudeDBM(nInd);
                if (dDB > dMaxDB)
                {
                    dMaxDB = dDB;
                }
                if (dDB < dMinDB)
                {
                    dMinDB = dDB;
                }
                m_PointList_Tracking_Normal.Add(objSweep.GetFrequencyMHZ(nInd), dDB, RFECommunicator.MIN_AMPLITUDE_DBM);
                //average
                if (objSweepAvg != null)
                {
                    dDB = objSweepAvg.GetAmplitudeDBM(nInd) - m_objRFEAnalyzer.TrackingNormalizedData.GetAmplitudeDBM(nInd);
                    if (dDB > dMaxDB)
                    {
                        dMaxDB = dDB;
                    }
                    if (dDB < dMinDB)
                    {
                        dMinDB = dDB;
                    }
                    m_PointList_Tracking_Avg.Add(objSweepAvg.GetFrequencyMHZ(nInd), dDB, RFECommunicator.MIN_AMPLITUDE_DBM);
                }
            }

            bool bUseVSWR = (m_ToolGroup_RFEGenTracking.ListSNAOptionsIndex == 2);

            if (bUseVSWR)
            {
                m_PointList_Tracking_Normal.ConvertToVSWR(100);
                m_PointList_Tracking_Avg.ConvertToVSWR(100);
            }

            m_GraphLine_Tracking_Normal.Points          = m_PointList_Tracking_Normal;
            m_GraphLine_Tracking_Normal.IsVisible       = true;
            m_GraphLine_Tracking_Normal.Label.IsVisible = true;

            m_GraphLine_Tracking_Avg.Points          = m_PointList_Tracking_Avg;
            m_GraphLine_Tracking_Avg.IsVisible       = true;
            m_GraphLine_Tracking_Avg.Label.IsVisible = true;

            if (!bUseVSWR)
            {
                //Limit lines are not supported in VSWR mode
                if (m_LimitLineGenerator_Max.Count > 1)
                {
                    PointPairList listCheck = null;
                    SelectSinglePointPairList(ref listCheck);
                    if (listCheck != null)
                    {
                        m_GraphLimitLineGenerator_Max.Points    = m_LimitLineGenerator_Max;
                        m_GraphLimitLineGenerator_Max.IsVisible = true;
                        if (m_LimitLineGenerator_Max.Intersect(listCheck, true))
                        {
                            bPlaySound = true;
                            m_GraphLimitLineGenerator_Max.Line.Width = 5;
                        }
                        else
                        {
                            m_GraphLimitLineGenerator_Max.Line.Width = 1;
                        }

                        int nDummy;
                        m_LimitLineGenerator_Max.GetMaxMinValues(ref dMinDB, ref dMaxDB, out nDummy, out nDummy);
                        dMarginMaxDB = 5;
                    }
                    else
                    {
                        m_GraphLimitLineGenerator_Max.IsVisible = false;
                    }
                }

                if (m_LimitLineGenerator_Min.Count > 1)
                {
                    PointPairList listCheck = null;
                    SelectSinglePointPairList(ref listCheck);
                    if (listCheck != null)
                    {
                        m_GraphLimitLineGenerator_Min.Points    = m_LimitLineGenerator_Min;
                        m_GraphLimitLineGenerator_Min.IsVisible = true;
                        if (m_LimitLineGenerator_Min.Intersect(listCheck, false))
                        {
                            bPlaySound = true;
                            m_GraphLimitLineGenerator_Min.Line.Width = 5;
                        }
                        else
                        {
                            m_GraphLimitLineGenerator_Min.Line.Width = 1;
                        }

                        int nDummy;
                        m_LimitLineGenerator_Min.GetMaxMinValues(ref dMinDB, ref dMaxDB, out nDummy, out nDummy);
                        dMarginMinDB = 5;
                    }
                    else
                    {
                        m_GraphLimitLineGenerator_Min.IsVisible = false;
                    }
                }
            }
            else
            {
                m_GraphLimitLineGenerator_Min.IsVisible = false;
                m_GraphLimitLineGenerator_Max.IsVisible = false;
            }

            m_GraphTrackingGenerator.GraphPane.XAxis.Scale.Min = objSweep.StartFrequencyMHZ;
            m_GraphTrackingGenerator.GraphPane.XAxis.Scale.Max = objSweep.EndFrequencyMHZ;
            double dGraphMin = m_GraphTrackingGenerator.GraphPane.YAxis.Scale.Min;
            if (bReinitGraphLimits)
            {
                dGraphMin = -1E6;
            }
            if (bUseVSWR || (dGraphMin < dMinDB - (dMarginMinDB * 1.5)) || (dGraphMin > dMinDB - 5))
            {
                if (bUseVSWR)
                {
                    m_GraphTrackingGenerator.GraphPane.YAxis.Scale.Min = 1;
                }
                else
                {
                    m_GraphTrackingGenerator.GraphPane.YAxis.Scale.Min = dMinDB - dMarginMinDB;
                }
            }
            double dGraphMax = m_GraphTrackingGenerator.GraphPane.YAxis.Scale.Max;
            if (bReinitGraphLimits)
            {
                dGraphMax = 1E6;
            }
            if (bUseVSWR || (dGraphMax > dMaxDB + (dMarginMaxDB * 1.5)) || (dGraphMax < dMaxDB + 5))
            {
                if (bUseVSWR)
                {
                    m_GraphTrackingGenerator.GraphPane.YAxis.Scale.Max = ConvertDB2VSWR(0.95 * dMaxDB, 105);
                }
                else
                {
                    m_GraphTrackingGenerator.GraphPane.YAxis.Scale.Max = dMaxDB + dMarginMaxDB;
                }
            }

            if (bPlaySound && menuItemSoundAlarmLimitLine.Checked)
            {
                PlayNotificationSound();
            }
            else
            {
                StopNotificationSound();
            }


            //draw marker 1
            double fTrackPeakMHZ = 0.0;
            if (m_arrMarkersEnabledMenu[0].Checked)
            {
                int nNormalIndex = -1;
                int nAvgIndex    = -1;

                if (m_ToolGroup_RFEGenTracking.ListSNAOptions.Contains("Return Loss"))
                {
                    nNormalIndex = m_PointList_Tracking_Normal.GetIndexMin();
                    nAvgIndex    = m_PointList_Tracking_Avg.GetIndexMin();
                }
                else
                {
                    nNormalIndex = m_PointList_Tracking_Normal.GetIndexMax();
                    nAvgIndex    = m_PointList_Tracking_Avg.GetIndexMax();
                }

                double fTrackDBM = RFECommunicator.MIN_AMPLITUDE_DBM;
                if (m_ToolGroup_Markers_SNA.TrackSignalPeak == RFECommunicator.RFExplorerSignalType.Realtime)
                {
                    fTrackPeakMHZ = m_PointList_Tracking_Normal[nNormalIndex].X;
                    fTrackDBM     = m_PointList_Tracking_Normal[nNormalIndex].Y;
                }
                else if (m_ToolGroup_Markers_SNA.TrackSignalPeak == RFECommunicator.RFExplorerSignalType.Average)
                {
                    fTrackPeakMHZ = m_PointList_Tracking_Avg[nAvgIndex].X;
                    fTrackDBM     = m_PointList_Tracking_Avg[nAvgIndex].Y;
                }
                else
                {
                    m_arrMarkersEnabledMenu[0].Checked = false;
                    UpdateSNAMarkerControlContents();
                }
                m_MarkersSNA.SetMarkerFrequency(0, fTrackPeakMHZ);
            }

            if (m_arrMarkersEnabledMenu[0].Checked)
            {
                double dAmplitude = m_PointList_Tracking_Normal.InterpolateX(m_MarkersSNA.GetMarkerFrequency(0));
                m_MarkersSNA.UpdateMarker(0, RFECommunicator.RFExplorerSignalType.Realtime, dAmplitude);
                if ((m_ToolGroup_Markers_SNA.TrackSignalPeak == RFECommunicator.RFExplorerSignalType.Realtime) && menuShowPeak.Checked)
                {
                    m_MarkersSNA.SetMarkerText(0, RFECommunicator.RFExplorerSignalType.Realtime, m_MarkersSNA.GetMarkerFrequency(0).ToString("0.000") + "MHZ\n" + dAmplitude.ToString("0.00") + GetCurrentAmplitudeUnitLabel());
                }

                dAmplitude = m_PointList_Tracking_Avg.InterpolateX(m_MarkersSNA.GetMarkerFrequency(0));
                m_MarkersSNA.UpdateMarker(0, RFECommunicator.RFExplorerSignalType.Average, dAmplitude);
                if ((m_ToolGroup_Markers_SNA.TrackSignalPeak == RFECommunicator.RFExplorerSignalType.Average) && menuShowPeak.Checked)
                {
                    m_MarkersSNA.SetMarkerText(0, RFECommunicator.RFExplorerSignalType.Average, m_MarkersSNA.GetMarkerFrequency(0).ToString("0.000") + "MHZ\n" + dAmplitude.ToString("0.00") + GetCurrentAmplitudeUnitLabel());
                }
            }
            UpdateMarkerCollectionFromMenuSNA();
            //remove old text from all peak track markers and redraw
            m_MarkersSNA.CleanAllMarkerText(0);

            UpdateSNAMarkerControlValues();
            m_GraphTrackingGenerator.AxisChange();
            m_GraphTrackingGenerator.Refresh();
        }