Exemplo n.º 1
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            this.Title = tbTitle.Text = standardInfo.Stand_Name + "的平均曲线";
            XDocument xdoc;
            List <List <XElement> > oddList  = new List <List <XElement> >();
            List <List <XElement> > evenList = new List <List <XElement> >();

            foreach (Model.TestInfoModel model in modelList)
            {
                string xmlFileName = Model.AppPath.RootPath + "\\AppData\\XmlData\\" + model.DataFileName;
                xdoc = XDocument.Load(xmlFileName);
                XElement oddAvgEle  = xdoc.Descendants("oddavg").ElementAt(0);
                XElement evenAvgEle = xdoc.Descendants("evenavg").ElementAt(0);

                List <XElement> list1 = new List <XElement>();
                List <XElement> list2 = new List <XElement>();

                foreach (XElement xe in oddAvgEle.Elements())
                {
                    list1.Add(xe);
                }

                foreach (XElement xe in evenAvgEle.Elements())
                {
                    list2.Add(xe);
                }

                oddList.Add(list1);
                evenList.Add(list2);
            }

            List <List <double> > oddValueList  = ComputeAvgCurve.Compute(oddList);
            List <List <double> > evenValueList = ComputeAvgCurve.Compute(evenList);

            List <double> oddAvgValueList  = ComputeAvgCurve.ComputeAvg(oddValueList);
            List <double> evenAvgValueList = ComputeAvgCurve.ComputeAvg(evenValueList);

            AddSeries(chart1, oddAvgValueList, true, "动作1");//平均曲线
            foreach (List <double> list in oddValueList)
            {
                AddSeries(chart1, list, false, "");
            }

            AddSeries(chart2, evenAvgValueList, true, "动作2");
            foreach (List <double> list in evenValueList)
            {
                AddSeries(chart2, list, false, "");
            }
        }
Exemplo n.º 2
0
        private void MergeAndAddDS(List <List <XElement> > standList, List <List <XElement> > list, Chart chart)
        {
            //合并标准和选择的信息
            List <List <XElement> > allList = new List <List <XElement> >();

            allList.AddRange(standList);
            allList.AddRange(list);
            if (allList.Count > 0)
            {
                //把所有曲线计算成相同长度
                List <List <double> > allValueList = ComputeAvgCurve.Compute(allList);

                List <List <double> > standValueList   = new List <List <double> >();
                List <List <double> > checkedValueList = new List <List <double> >();//选择的测试信息的点列表
                //取出标准信息的数据,并创建选择的测试信息的曲线
                for (int i = 0; i < allValueList.Count; i++)
                {
                    if ((i + 1) <= standList.Count)
                    {
                        standValueList.Add(allValueList[i]);
                    }
                    else
                    {
                        checkedValueList.Add(allValueList[i]);
                        Model.TestInfoModel mo = TestInfoModelList[i - standList.Count];
                        if (mo.IsChecked == true)
                        {
                            string leText = string.Format("{0}.{1}", mo.Index, mo.Ath_Name);
                            chart.Series.Add(CreateSeries(allValueList[i], leText));//补全写入legendtest
                        }
                    }
                }
                //添加选择的信息的平均曲线
                List <double> checkedInfoAvgValueList = ComputeAvgCurve.ComputeAvg(checkedValueList);
                DataSeries    avgds = CreateSeries(checkedInfoAvgValueList, "平均曲线");
                avgds.Color = avgBrush;
                chart.Series.Add(avgds);

                //添加标准曲线
                if (standValueList.Count > 0)
                {
                    List <double> avgValueList = ComputeAvgCurve.ComputeAvg(standValueList);
                    DataSeries    standds      = CreateSeries(avgValueList, stand.SelectedItem.Stand_Name);
                    standds.Color = standBrush;
                    chart.Series.Add(standds);
                }
            }
        }
Exemplo n.º 3
0
        public void RefrenshChartOld()
        {
            //chart1.PlotArea.Background = chart2.PlotArea.Background = aboveTowSDBrush;
            chart1.Series.Clear();
            chart2.Series.Clear();
            if (modelList == null || modelList?.Count == 0)
            {
                return;
            }
            List <List <XElement> > oddList  = new List <List <XElement> >();
            List <List <XElement> > evenList = new List <List <XElement> >();

            //var groupdModelList = modelList.GroupBy(x => x.Ath_Code);
            //foreach (var item in groupdModelList)
            //{
            //    foreach (Model.TestInfoModel model in item)
            //    {
            //        string xmlFileName = Model.AppPath.RootPath + "\\AppData\\XmlData\\" + model.DataFileName;
            //        xdoc = XDocument.Load(xmlFileName);
            //        XElement oddAvgEle = xdoc.Descendants("oddavg").ElementAt(0);
            //        XElement evenAvgEle = xdoc.Descendants("evenavg").ElementAt(0);

            //        List<XElement> list1 = new List<XElement>();//动作1平均曲线节点
            //        List<XElement> list2 = new List<XElement>();//动作2平均曲线节点

            //        foreach (XElement xe in oddAvgEle.Elements())
            //        {
            //            list1.Add(xe);
            //        }
            //        oddList.Add(list1);

            //        if (model.Test_Mode != "6")
            //        {//如果为等长测试就不加载
            //            foreach (XElement xe in evenAvgEle.Elements())
            //            {
            //                list2.Add(xe);
            //            }
            //            evenList.Add(list2);
            //        }
            //    }
            //}
            foreach (Model.TestInfoModel model in modelList)
            {
                //string xmlFileName = Model.AppPath.RootPath + "\\AppData\\XmlData\\" + model.DataFileName;
                //xdoc = Caches.TestData.TestDataCenter.GetTestDataByFileName(model).XDoc;
                Model.TestData.TestData testData = Caches.TestData.TestDataCenter.GetTestDataByFileName(model);
                XElement oddAvgEle  = testData.GetOddAvgElement();
                XElement evenAvgEle = testData.GetEvenAvgElement();

                List <XElement> list2 = new List <XElement>();//动作2平均曲线节点
                oddList.Add(oddAvgEle.Elements().ToList());

                if (model.Test_Mode != "6")  //如果为等长测试就不加载
                {
                    evenList.Add(evenAvgEle.Elements().ToList());
                }
            }

            List <List <double> > oddValueList = ComputeAvgCurve.Compute(oddList);

            ComputeAvgSDAndAddSeries(chart1, oddValueList);


            for (int i = 0; i < modelList.Count; i++)  //加载选中的测试信息的曲线
            {
                if (modelList[i].IsChecked == true)
                {
                    AddSeries(chart1, oddValueList[i], true, modelList[i].Index + "." + modelList[i].Ath_Name, null);//加载每次都曲线
                }
            }

            if (evenList.Count > 0)
            {
                List <List <double> > evenValueList = ComputeAvgCurve.Compute(evenList);
                //List<double> evenAvgValueList = ComputeAvgCurve.ComputeAvg(evenValueList);
                ComputeAvgSDAndAddSeries(chart2, evenValueList);
                for (int i = 0; i < modelList.Count; i++)
                {
                    if (modelList[i].IsChecked == true)
                    {
                        AddSeries(chart2, evenValueList[i], true, modelList[i].Index + "." + modelList[i].Ath_Name, null);
                    }
                }
            }
        }