コード例 #1
0
        /// <summary>
        /// 生成占用度和最大值、均值数据
        /// </summary>
        /// <param name="dicFreqStatModel">原始数据分析后统计数据</param>
        /// <param name="bandwidth"></param>
        private void ctrlStatDataForAll(Dictionary <double, FreqStatModel> dicFreqStatModel, FreqNavBar freqNavBar)
        {
            var listCreat = GetAnalysList(decimal.Parse(freqNavBar.FreqStart), decimal.Parse(freqNavBar.FreqStop), decimal.Parse(freqNavBar.BandWidth) / 1000);

            ChartSeriesPoints     csps = new ChartSeriesPoints();
            List <AnalysisResult> freqOccupancyDegreeDic = new List <AnalysisResult>();
            int signalLimit     = string.IsNullOrEmpty(freqNavBar.SignalLimit) ? 45 : Convert.ToInt16(freqNavBar.SignalLimit);
            int occuDegreeLimit = string.IsNullOrEmpty(freqNavBar.OccuDegreeLimit) ? 90 : Convert.ToInt16(freqNavBar.OccuDegreeLimit);

            if (listCreat != null)
            {
                PointPairList occupyValues = new PointPairList();

                foreach (var item in listCreat)
                {
                    double trueFreq = item.Frequency;
                    double tempFreq;
                    int    occupyValueCount = 0;

                    var list = dicFreqStatModel.Where((obj) => obj.Key >= item.StartFreq * 1000 && obj.Key < item.EndFreq * 1000).ToList();
                    List <AnalysisResult> tmpList         = new List <AnalysisResult>();
                    PointPairList         tmpOccupyValues = new PointPairList();
                    foreach (KeyValuePair <double, FreqStatModel> kvp in list)
                    {
                        PointPair spOccupy = new PointPair();
                        tempFreq = kvp.Key;
                        int    overSignalLimit = kvp.Value.DicAmplitudeCount.Where(x => x.Key > signalLimit).Select(x => x.Value).Sum();
                        int    sum             = kvp.Value.DicAmplitudeCount.Values.Sum();
                        double occpy           = ((double)overSignalLimit / (double)sum) * 100;

                        double maxValue     = kvp.Value.DicAmplitudeCount.Keys.Max();
                        double AverageValue = kvp.Value.DicAmplitudeCount.Select(x => x.Key).Average();
                        spOccupy.X = tempFreq / 1000;
                        spOccupy.Y = Convert.ToInt16(occpy);

                        AnalysisResult tmpItem = Mapper <AnalysisResult, AnalysisResult>(item);

                        tmpItem.Occupy            = Convert.ToInt16(occpy);
                        tmpItem.AmplitudeMidValue = Convert.ToInt16(AverageValue);
                        tmpItem.AmplitudeMaxValue = Convert.ToInt16(maxValue);
                        //如果不是第一次
                        if (occupyValueCount >= 1)
                        {
                            //如果占用度列表的上一个频率 + 带宽大于等于当前频率
                            if (tmpOccupyValues[occupyValueCount - 1].X + Convert.ToDouble(freqNavBar.BandWidth) / 1000 >= tempFreq / 1000)
                            {
                                //如果占用度列表的上一个占用度小于当前占用度
                                if (tmpOccupyValues[occupyValueCount - 1].Y < occpy)
                                {
                                    //占用度列表的上一个占用度重新赋值
                                    tmpOccupyValues[occupyValueCount - 1].X = tempFreq / 1000;
                                    tmpOccupyValues[occupyValueCount - 1].Y = occpy;

                                    //返回结果列表重新赋值
                                    tmpList[occupyValueCount - 1].Frequency         = tempFreq / 1000;
                                    tmpList[occupyValueCount - 1].Occupy            = Convert.ToInt16(occpy);
                                    tmpList[occupyValueCount - 1].AmplitudeMidValue = Convert.ToInt16(AverageValue);
                                    tmpList[occupyValueCount - 1].AmplitudeMaxValue = Convert.ToInt16(maxValue);
                                }
                            }
                            else
                            {
                                tmpOccupyValues.Add(spOccupy);
                                tmpList.Add(tmpItem);
                                occupyValueCount++;
                            }
                        }
                        else
                        {
                            tmpOccupyValues.Add(spOccupy);
                            tmpList.Add(tmpItem);
                            occupyValueCount++;
                        }
                    }

                    if (tmpList.Count > 0)
                    {
                        int occupyMax    = tmpList.Max(obj => obj.Occupy);
                        int amplitudeMax = tmpList.Max(obj => obj.AmplitudeMaxValue);
                        int amplitudeMid = tmpList.Max(obj => obj.AmplitudeMidValue);
                        item.Occupy            = occupyMax;
                        item.Frequency         = trueFreq;
                        item.AmplitudeMaxValue = amplitudeMax;
                        item.AmplitudeMidValue = amplitudeMid;
                    }
                    freqOccupancyDegreeDic.Add(item);

                    if (tmpOccupyValues.Count > 0)
                    {
                        var spOcp = new PointPair();
                        spOcp.X = trueFreq;
                        spOcp.Y = tmpOccupyValues[0].Y;
                        occupyValues.Add(spOcp);
                    }
                }
                csps.OccupyPointPairList = occupyValues;
            }

            csps.MinFreq         = Convert.ToDouble(freqNavBar.FreqStart);
            csps.MaxFreq         = Convert.ToDouble(freqNavBar.FreqStop);
            csps.SignalLimit     = signalLimit;
            csps.OccuDegreeLimit = occuDegreeLimit;
            //refreshChartFreqStatDelete(dicFreqStatModel, csps);//绘制统计图形

            compareStationInfoForAll(freqOccupancyDegreeDic, freqNavBar);
        }
コード例 #2
0
        private void setChartDataSouce(ChartSeriesPoints chartSeriesPoints)
        {
            //zedGraphControl.GraphPane.CurveList.Clear();
            //zedGraphControlOccpy.GraphPane.CurveList.Clear();
            ////****************winform control
            //this.zedGraphControl.GraphPane.XAxis.Scale.Max = chartSeriesPoints.MidPointPairList[chartSeriesPoints.MidPointPairList.Count - 1].X;
            //this.zedGraphControl.GraphPane.XAxis.Scale.MajorStep = 0.0275;
            //this.zedGraphControl.GraphPane.XAxis.Scale.Min = chartSeriesPoints.MidPointPairList[0].X;

            //this.zedGraphControlOccpy.GraphPane.XAxis.Scale.Max = chartSeriesPoints.MidPointPairList[chartSeriesPoints.MidPointPairList.Count - 1].X;
            //this.zedGraphControlOccpy.GraphPane.XAxis.Scale.MajorStep = 0.0275;
            //this.zedGraphControlOccpy.GraphPane.XAxis.Scale.Min = chartSeriesPoints.MidPointPairList[0].X;
            //this.zedGraphControlOccpy.GraphPane.YAxis.Scale.Max = 100;
            //this.zedGraphControlOccpy.GraphPane.YAxis.Scale.MajorStep = 20;
            //this.zedGraphControlOccpy.GraphPane.YAxis.Scale.Min = 0;
            //GraphPane myPane = this.zedGraphControl.GraphPane;

            //GraphPane myPane1 = this.zedGraphControlOccpy.GraphPane;
            //// 创建红色的菱形曲线
            //// 标记, 图中的 "Porsche"
            //myCurve = myPane.AddCurve("最大值", chartSeriesPoints.MaxPointPairList, System.Drawing.Color.Red, SymbolType.None);

            //// 创建蓝色的圆形曲线
            //// 标记, 图中的 "Piper"   
            //myCurve2 = myPane.AddCurve("平均值", chartSeriesPoints.MidPointPairList, System.Drawing.Color.Blue, SymbolType.None);

            //BarItem myBar = myPane1.AddBar("占用度", chartSeriesPoints.OccupyPointPairList, System.Drawing.Color.Red);
            //myPane1.BarSettings.ClusterScaleWidth = 0.5;
            //// 在数据变化时绘制图形
            //myPane.AxisChange(zedGraphControl.CreateGraphics());
            //myPane1.AxisChange(zedGraphControlOccpy.CreateGraphics());
            //***************************************

            //**********************dev control
            //maxSeriesPointCollection = chartSeriesPoints.MaxValueCollection;
            //midSeriesPointCollection = chartSeriesPoints.MidValueCollection;
            //this.chart.Dispatcher.Invoke(
            //new Action(
            //       delegate
            //       {
            //           maxSeries.Points.Clear();
            //           foreach (SeriesPoint sp in maxSeriesPointCollection)
            //           {
            //               maxSeries.Points.Add(sp);
            //           }
            //           //maxSeries.Points.AddRange(maxSeriesPointCollection);
            //           //midSeries.Points.Clear();
            //           //midSeries.Points.AddRange(midSeriesPointCollection);
            //       }
            //    )
            //);

            //this.midSeries.Dispatcher.Invoke(
            //new Action(
            //       delegate
            //       {
            //           try
            //           {

            //           }
            //           catch (Exception e)
            //           {

            //           }
            //       }
            //    )
            //);
            //************************************
        }
コード例 #3
0
        /// <summary>
        /// 生成占用度和最大值、均值数据
        /// </summary>
        /// <param name="dicFreqStatModel">原始数据分析后统计数据</param>
        /// <param name="bandwidth"></param>
        private void ctrlStatData(Dictionary <double, FreqStatModel> dicFreqStatModel, FreqNavBar freqNavBar)
        {
            var listCreat = GetAnalysList(decimal.Parse(freqNavBar.FreqStart), decimal.Parse(freqNavBar.FreqStop), decimal.Parse(freqNavBar.BandWidth) / 1000);

            ChartSeriesPoints     csps = new ChartSeriesPoints();
            List <AnalysisResult> freqOccupancyDegreeDic = new List <AnalysisResult>();
            int signalLimit     = string.IsNullOrEmpty(freqNavBar.SignalLimit) ? 45 : Convert.ToInt16(freqNavBar.SignalLimit);
            int occuDegreeLimit = string.IsNullOrEmpty(freqNavBar.OccuDegreeLimit) ? 90 : Convert.ToInt16(freqNavBar.OccuDegreeLimit);

            if (listCreat != null)
            {
                //PointPairList maxValues = new PointPairList();
                //PointPairList midValues = new PointPairList();
                PointPairList occupyValues = new PointPairList();

                foreach (var item in listCreat)
                {
                    double trueFreq = item.Frequency;
                    double tempFreq;
                    int    occupyValueCount = 0;

                    var list = dicFreqStatModel.Where((obj) => obj.Key >= item.StartFreq * 1000 && obj.Key < item.EndFreq * 1000).ToList();
                    List <AnalysisResult> tmpList         = new List <AnalysisResult>();
                    PointPairList         tmpOccupyValues = new PointPairList();
                    foreach (KeyValuePair <double, FreqStatModel> kvp in list)
                    {
                        PointPair spOccupy = new PointPair();
                        tempFreq = kvp.Key;
                        int    overSignalLimit = kvp.Value.DicAmplitudeCount.Where(x => x.Key > signalLimit).Select(x => x.Value).Sum();
                        int    sum             = kvp.Value.DicAmplitudeCount.Values.Sum();
                        double occpy           = ((double)overSignalLimit / (double)sum) * 100;

                        double maxValue     = kvp.Value.DicAmplitudeCount.Keys.Max();
                        double AverageValue = kvp.Value.DicAmplitudeCount.Select(x => x.Key).Average();
                        spOccupy.X = tempFreq / 1000;
                        spOccupy.Y = Convert.ToInt16(occpy);

                        AnalysisResult tmpItem = Mapper <AnalysisResult, AnalysisResult>(item);

                        tmpItem.Occupy            = Convert.ToInt16(occpy);
                        tmpItem.AmplitudeMidValue = Convert.ToInt16(AverageValue);
                        tmpItem.AmplitudeMaxValue = Convert.ToInt16(maxValue);
                        //如果不是第一次
                        if (occupyValueCount >= 1)
                        {
                            //如果占用度列表的上一个频率 + 带宽大于等于当前频率
                            if (tmpOccupyValues[occupyValueCount - 1].X + Convert.ToDouble(freqNavBar.BandWidth) / 1000 >= tempFreq / 1000)
                            {
                                //如果占用度列表的上一个占用度小于当前占用度
                                if (tmpOccupyValues[occupyValueCount - 1].Y < occpy)
                                {
                                    //占用度列表的上一个占用度重新赋值
                                    tmpOccupyValues[occupyValueCount - 1].X = tempFreq / 1000;
                                    tmpOccupyValues[occupyValueCount - 1].Y = occpy;

                                    //返回结果列表重新赋值
                                    tmpList[occupyValueCount - 1].Frequency         = tempFreq / 1000;
                                    tmpList[occupyValueCount - 1].Occupy            = Convert.ToInt16(occpy);
                                    tmpList[occupyValueCount - 1].AmplitudeMidValue = Convert.ToInt16(AverageValue);
                                    tmpList[occupyValueCount - 1].AmplitudeMaxValue = Convert.ToInt16(maxValue);
                                }
                            }
                            else
                            {
                                tmpOccupyValues.Add(spOccupy);
                                tmpList.Add(tmpItem);
                                occupyValueCount++;
                            }
                        }
                        else
                        {
                            tmpOccupyValues.Add(spOccupy);
                            tmpList.Add(tmpItem);
                            occupyValueCount++;
                        }
                    }

                    if (tmpList.Count > 0)
                    {
                        int occupyMax    = tmpList.Max(obj => obj.Occupy);
                        int amplitudeMax = tmpList.Max(obj => obj.AmplitudeMaxValue);
                        int amplitudeMid = tmpList.Max(obj => obj.AmplitudeMidValue);
                        item.Occupy            = occupyMax;
                        item.Frequency         = trueFreq;
                        item.AmplitudeMaxValue = amplitudeMax;
                        item.AmplitudeMidValue = amplitudeMid;
                    }
                    freqOccupancyDegreeDic.Add(item);

                    if (tmpOccupyValues.Count > 0)
                    {
                        var spOcp = new PointPair();
                        spOcp.X = trueFreq;
                        spOcp.Y = tmpOccupyValues[0].Y;
                        occupyValues.Add(spOcp);
                    }

                    //occupyValues.Add(tmpOccupyValues);
                }
                csps.OccupyPointPairList = occupyValues;
            }



            #region 2016年10月26日修改
            //if (dicFreqStatModel != null)
            //{
            //    //*****  1
            //    PointPairList maxValues = new PointPairList();
            //    PointPairList midValues = new PointPairList();
            //    PointPairList occupyValues = new PointPairList();
            //    //******  2
            //    //SeriesPointCollection maxValues = new SeriesPointCollection();
            //    //SeriesPointCollection midValues = new SeriesPointCollection();
            //    //AmplitudeMaxValue = new List<short>();
            //    //AmplitudeAverageValue = new List<short>();

            //    double tempFreq;
            //    int occupyValueCount = 0;
            //    int Prec = GetPrec(decimal.Parse(freqNavBar.BandWidth) / 1000) + 1;
            //    foreach (KeyValuePair<double, FreqStatModel> kvp in dicFreqStatModel)
            //    {
            //        //PointPair spMax = new PointPair();
            //        //PointPair spMid = new PointPair();
            //        PointPair spOccupy = new PointPair();
            //        //Visifire.Charts.DataPoint dpMax = new Visifire.Charts.DataPoint();

            //        //SeriesPoint spMax = new SeriesPoint();
            //        //SeriesPoint spMid = new SeriesPoint();

            //        tempFreq = kvp.Key;
            //        int overSignalLimit = kvp.Value.DicAmplitudeCount.Where(x => x.Key > signalLimit).Select(x => x.Value).Sum();
            //        int sum = kvp.Value.DicAmplitudeCount.Values.Sum();
            //        double occpy = ((double)overSignalLimit / (double)sum) * 100;

            //        double maxValue = kvp.Value.DicAmplitudeCount.Keys.Max();
            //        //AmplitudeMaxValue.Add(Convert.ToInt16(maxValue));
            //        //dpMax.XValue = tempFreq / 1000;
            //        //dpMax.YValue = Convert.ToInt16(maxValue);

            //        //spMax.X = tempFreq / 1000;
            //        //spMax.Y = Convert.ToInt16(maxValue);
            //        //maxValues.Add(spMax);
            //        //maxPoints.Add(dpMax);
            //        double AverageValue = kvp.Value.DicAmplitudeCount.Select(x => x.Key).Average();
            //        //spMid.X = tempFreq / 1000;
            //        //spMid.Y = Convert.ToInt16(AverageValue);
            //        //AmplitudeAverageValue.Add(Convert.ToInt16(AverageValue));
            //        //midValues.Add(spMid);


            //        //if (occpy > occuDegreeLimit)
            //        //{
            //        spOccupy.X = tempFreq / 1000;
            //        spOccupy.Y = occpy;

            //        AnalysisResult ar = new AnalysisResult();
            //        ar.Frequency = Math.Round(tempFreq / 1000, Prec);
            //        ar.Occupy = Convert.ToInt16(occpy);
            //        ar.AmplitudeMidValue = Convert.ToInt16(AverageValue);
            //        ar.AmplitudeMaxValue = Convert.ToInt16(maxValue);
            //        if (occupyValueCount >= 1)
            //        {
            //            if (occupyValues[occupyValueCount - 1].X + Convert.ToDouble(freqNavBar.BandWidth) / 1000 >= tempFreq / 1000)
            //            {
            //                if (occupyValues[occupyValueCount - 1].Y < occpy)
            //                {
            //                    occupyValues[occupyValueCount - 1].X = tempFreq / 1000;
            //                    occupyValues[occupyValueCount - 1].Y = occpy;

            //                    freqOccupancyDegreeDic[occupyValueCount - 1].Frequency = tempFreq / 1000;
            //                    freqOccupancyDegreeDic[occupyValueCount - 1].Occupy = Convert.ToInt16(occpy);
            //                    freqOccupancyDegreeDic[occupyValueCount - 1].AmplitudeMidValue = Convert.ToInt16(AverageValue);
            //                    freqOccupancyDegreeDic[occupyValueCount - 1].AmplitudeMaxValue = Convert.ToInt16(maxValue);
            //                }
            //            }
            //            else
            //            {
            //                occupyValues.Add(spOccupy);
            //                freqOccupancyDegreeDic.Add(ar);
            //                occupyValueCount++;
            //            }
            //        }
            //        else
            //        {
            //            occupyValues.Add(spOccupy);
            //            freqOccupancyDegreeDic.Add(ar);
            //            occupyValueCount++;
            //        }

            //    }
            //    //}
            //    //csps.MaxPointPairList = maxValues;
            //    //csps.MidPointPairList = midValues;
            //    csps.OccupyPointPairList = occupyValues;
            //}
            #endregion

            csps.MinFreq         = Convert.ToDouble(freqNavBar.FreqStart);
            csps.MaxFreq         = Convert.ToDouble(freqNavBar.FreqStop);
            csps.SignalLimit     = signalLimit;
            csps.OccuDegreeLimit = occuDegreeLimit;
            //refreshChartResultDelete(csps);
            refreshChartFreqStatDelete(dicFreqStatModel, csps);
            compareStationInfo(freqOccupancyDegreeDic);
        }
コード例 #4
0
        //绘制占用度和谱图
        private void setFreqStatDataSouce(Dictionary <double, FreqStatModel> dicFreqStatModel, ChartSeriesPoints chartSeriesPoints)
        {
            ObservableDataSource <Point> maxDataSource = new ObservableDataSource <Point>();
            ObservableDataSource <Point> midDataSource = new ObservableDataSource <Point>();

            if (dicFreqStatModel != null)
            {
                double tempFreq;
                foreach (KeyValuePair <double, FreqStatModel> kvp in dicFreqStatModel)
                {
                    Point dpMax = new Point();
                    Point dpMid = new Point();
                    tempFreq = kvp.Key;
                    int    overSignalLimit = kvp.Value.DicAmplitudeCount.Where(x => x.Key > chartSeriesPoints.SignalLimit).Select(x => x.Value).Sum();
                    int    sum             = kvp.Value.DicAmplitudeCount.Values.Sum();
                    double occpy           = (double)overSignalLimit / (double)sum;
                    if (occpy > 0.9)
                    {
                    }
                    double maxValue = kvp.Value.DicAmplitudeCount.Keys.Max();
                    dpMax.X = tempFreq / 1000;
                    dpMax.Y = Convert.ToInt16(maxValue);

                    maxDataSource.AppendAsync(plotter.Dispatcher, dpMax);

                    double AverageValue = kvp.Value.DicAmplitudeCount.Select(x => x.Key).Average();
                    dpMid.X = tempFreq / 1000;
                    dpMid.Y = Convert.ToInt16(AverageValue);
                    midDataSource.AppendAsync(plotter.Dispatcher, dpMid);
                }
            }
            plotter.Dispatcher.Invoke(
                new Action(
                    delegate
            {
                List <LineGraph> temp = new List <LineGraph>();
                foreach (var obj in plotter.Children)
                {
                    if (typeof(LineGraph).IsAssignableFrom(obj.GetType()))
                    {
                        temp.Add((LineGraph)obj);
                    }
                }
                if (temp.Count > 0)
                {
                    foreach (LineGraph rh in temp)
                    {
                        plotter.Children.Remove(rh);
                    }
                }
                plotter.AddLineGraph(maxDataSource, Colors.Red, 1, "最大值");
                plotter.AddLineGraph(midDataSource, Colors.LightBlue, 1, "中值");
                plotter.Visible = new Microsoft.Research.DynamicDataDisplay.DataRect(new Rect(chartSeriesPoints.MinFreq, 0, chartSeriesPoints.MaxFreq - chartSeriesPoints.MinFreq, 100));
                //linegraphMax.DataSource = maxDataSource;
            }
                    )
                );
            // linegraphMid.Dispatcher.Invoke(
            //    new Action(
            //        delegate
            //        {
            //            linegraphMid.DataSource = midDataSource;
            //            plotter.Visible = new Microsoft.Research.DynamicDataDisplay.DataRect(new Rect(chartSeriesPoints.MinFreq, 0, chartSeriesPoints.MaxFreq - chartSeriesPoints.MinFreq, 100));
            //        }
            //    )
            //);
            BarPlotter.Dispatcher.Invoke(
                new Action(
                    delegate
            {
                List <RectangleHighlight> temp = new List <RectangleHighlight>();
                foreach (var obj in BarPlotter.Children)
                {
                    if (typeof(RectangleHighlight).IsAssignableFrom(obj.GetType()))
                    {
                        temp.Add((RectangleHighlight)obj);
                    }
                }
                if (temp.Count > 0)
                {
                    foreach (RectangleHighlight rh in temp)
                    {
                        BarPlotter.Children.Remove(rh);
                    }
                }
                foreach (PointPair pp in chartSeriesPoints.OccupyPointPairList)
                {
                    if (pp.Y >= chartSeriesPoints.OccuDegreeLimit)
                    {
                        RectangleHighlight rh = new RectangleHighlight();
                        rh.Bounds             = new Microsoft.Research.DynamicDataDisplay.DataRect(new Rect(pp.X, 0, 0, pp.Y));
                        rh.Stroke             = Brushes.Yellow;
                        rh.StrokeThickness    = 10;
                        rh.ToolTip            = pp.X.ToString("0.0000") + "MHz";
                        BarPlotter.Children.Add(rh);
                    }
                }
                BarPlotter.Visible = new Microsoft.Research.DynamicDataDisplay.DataRect(new Rect(chartSeriesPoints.MinFreq, 0, chartSeriesPoints.MaxFreq - chartSeriesPoints.MinFreq, 100));
                //ObservableDataSource<Point> standDataSource = new ObservableDataSource<Point>();
                //standDataSource.AppendAsync(BarPlotter.Dispatcher, new Point(chartSeriesPoints.MinFreq, 0));
                //standDataSource.AppendAsync(BarPlotter.Dispatcher, new Point(chartSeriesPoints.MinFreq, 100));
                //standDataSource.AppendAsync(BarPlotter.Dispatcher, new Point(chartSeriesPoints.MaxFreq, 100));
                //standDataSource.AppendAsync(BarPlotter.Dispatcher, new Point(chartSeriesPoints.MaxFreq, 0));
                //linegraphStand.DataSource = standDataSource;
            }
                    )
                );

            //this.freqDataSeries.Dispatcher.Invoke(
            //    new Action(
            //       delegate
            //       {
            //           freqDataSeries.DataPoints.Clear();
            //           if (dicFreqStatModel != null)
            //           {
            //               double tempFreq;
            //               foreach (KeyValuePair<double, FreqStatModel> kvp in dicFreqStatModel)
            //               {
            //                   Visifire.Charts.DataPoint dpMax = new Visifire.Charts.DataPoint();

            //                   tempFreq = kvp.Key;
            //                   int overSignalLimit = kvp.Value.DicAmplitudeCount.Where(x => x.Key > 45).Select(x => x.Value).Sum();
            //                   int sum = kvp.Value.DicAmplitudeCount.Values.Sum();
            //                   double occpy = (double)overSignalLimit / (double)sum;
            //                   if (occpy > 0.9)
            //                   {
            //                   }
            //                   double maxValue = kvp.Value.DicAmplitudeCount.Keys.Max();
            //                   //AmplitudeMaxValue.Add(Convert.ToInt16(maxValue));
            //                   dpMax.XValue = tempFreq / 1000;
            //                   dpMax.YValue = Convert.ToInt16(maxValue);

            //                   //spMax.X = tempFreq / 1000;
            //                   //spMax.Y = Convert.ToInt16(maxValue);
            //                   //maxValues.Add(spMax);
            //                    freqDataSeries.DataPoints.Add(dpMax);
            //                   double AverageValue = kvp.Value.DicAmplitudeCount.Select(x => x.Key).Average();
            //               }
            //           }
            //       }
            //    )
            //);
        }