コード例 #1
0
        public ViewModelCHB(string name, MainViewModel parent)
        {
            FileName    = name;
            DisplayName = name;
            modelChb    = new ModelCHB();
            modelChb.PropertyChanged += modelChb_PropertyChanged;
            var    Text    = File.ReadAllLines(name);
            string primNum = string.Empty;
            string secNum  = string.Empty;
            string volt    = string.Empty;

            IsCanBild = false;
            try
            {
                modelChb.ClearAll();

                AnData = Text.Where(txtItem => txtItem.Split('|').Any(strItem => strItem.Trim().Equals("").Equals(false))).
                         Where(txtItem => txtItem.Split('|').ElementAt(5).Trim().Equals("").Equals(false)).
                         Where(txtItem => txtItem.Split('|').Any(strItem => strItem.Trim().Equals("PrimNumb")).Equals(false)).Select(strItem =>
                {
                    string[] strArr = strItem.Split('|').Select(item => item.Trim()).ToArray();

                    if (!strArr[2].Equals(""))
                    {
                        primNum = !strArr[2].Equals("0000") ? strArr[2].TrimStart('0') : "0";
                        secNum  = !strArr[3].Equals("0000") ? strArr[3].TrimStart('0') : "0";
                        volt    = strArr[4];
                    }

                    return(new AnalizerData()
                    {
                        Date = strArr[0],
                        Time = strArr[1],
                        PrimNumber = primNum,
                        SecNumber = secNum,
                        Voltage = volt,
                        Frequency = strArr[5].Split('.').First(),
                        ZValue = strArr[6],
                        RValue = strArr[7],
                        XValue = strArr[8],
                        AValue = strArr[9]
                    });
                }).ToList();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            BatteryNums     = AnData.Select(item => item.PrimNumber).Distinct().OrderBy(item => int.Parse(item)).ToList();
            SelectedBattery = BatteryNums.FirstOrDefault();

            IsCanBild = true;

            modelChb.GetRVData();
            modelChb.GetAxisScale();
            modelChb.GetModa();
            modelChb.ViewChart();
        }
コード例 #2
0
ファイル: ModelCHB.cs プロジェクト: dixma94/ChartBuider
 /// <summary>
 /// Метод для очистки всех коллекций AnData, RVData, BatteryNums, FrequencyItems
 /// </summary>
 public void ClearAll()
 {
     try
     {
         AnData.Clear();
         RVData.Clear();
         BatteryNums.Clear();
         FrequencyItems.Clear();
         SelectedFrequency = null;
         LLPoint.Clear();
         ChartTitle = Thread.CurrentThread.CurrentUICulture.ToString().Contains("en") ? "Battery Parameters" : "Параметры АКБ";
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
コード例 #3
0
ファイル: ModelCHB.cs プロジェクト: dixma94/ChartBuider
        /// <summary>
        /// Метод для получения набора значений параметров R и U, а также для составления
        /// списка номеров батарей и частот тестового сигнала
        /// </summary>
        public void GetRVData()
        {
            try
            {
                IsCanBild = false;
                var rvdata = new List <CellData>();
                RVData.Clear();

                var anDataBat = AnData.Where(item => item.PrimNumber.Equals(SelectedBattery));

                FrequencyItems = anDataBat.Select(item => item.Frequency).Distinct().OrderBy(item => int.Parse(item)).ToList();
                if (SelectedFrequency == null)
                {
                    SelectedFrequency = FrequencyItems.LastOrDefault();
                }

                var AnDataBatFreq = new List <AnalizerData>(anDataBat.Where(item => item.Frequency.Equals(SelectedFrequency)));

                switch (SelectedSortIndex)
                {
                case 0:
                    AnDataBatFreq = !SortDirection?AnDataBatFreq.OrderBy(item => int.Parse(item.SecNumber, new CultureInfo("EN"))).ToList() :
                                        AnDataBatFreq.OrderByDescending(item => int.Parse(item.SecNumber, new CultureInfo("EN"))).ToList();

                    break;

                case 1:
                    AnDataBatFreq = !SortDirection?AnDataBatFreq.OrderBy(item => double.Parse(item.ZValue, new CultureInfo("EN"))).ToList() :
                                        AnDataBatFreq.OrderByDescending(item => double.Parse(item.ZValue, new CultureInfo("EN"))).ToList();

                    break;

                case 2:
                    AnDataBatFreq = !SortDirection?AnDataBatFreq.OrderBy(item => double.Parse(item.RValue, new CultureInfo("EN"))).ToList() :
                                        AnDataBatFreq.OrderByDescending(item => double.Parse(item.RValue, new CultureInfo("EN"))).ToList();

                    break;

                case 3:
                    AnDataBatFreq = !SortDirection?AnDataBatFreq.OrderBy(item => double.Parse(item.XValue, new CultureInfo("EN"))).ToList() :
                                        AnDataBatFreq.OrderByDescending(item => double.Parse(item.XValue, new CultureInfo("EN"))).ToList();

                    break;

                case 4:
                    AnDataBatFreq = !SortDirection?AnDataBatFreq.OrderBy(item => double.Parse(item.AValue, new CultureInfo("EN"))).ToList() :
                                        AnDataBatFreq.OrderByDescending(item => double.Parse(item.AValue, new CultureInfo("EN"))).ToList();

                    break;

                case 5:
                    AnDataBatFreq = !SortDirection?AnDataBatFreq.OrderBy(item => double.Parse(item.Voltage, new CultureInfo("EN"))).ToList() :
                                        AnDataBatFreq.OrderByDescending(item => double.Parse(item.Voltage, new CultureInfo("EN"))).ToList();

                    break;
                }
                switch (SelectedParameterIndex)
                {
                case 0:
                    rvdata = new List <CellData>(AnDataBatFreq.Select(item => new CellData(item.SecNumber, double.Parse(item.ZValue, new CultureInfo("EN")), double.Parse(item.Voltage, new CultureInfo("EN")))));
                    break;

                case 1:
                    rvdata = new List <CellData>(AnDataBatFreq.Select(item => new CellData(item.SecNumber, double.Parse(item.RValue, new CultureInfo("EN")), double.Parse(item.Voltage, new CultureInfo("EN")))));
                    break;

                case 2:
                    rvdata = new List <CellData>(AnDataBatFreq.Select(item => new CellData(item.SecNumber, double.Parse(item.XValue, new CultureInfo("EN")), double.Parse(item.Voltage, new CultureInfo("EN")))));
                    break;

                case 3:
                    rvdata = new List <CellData>(AnDataBatFreq.Select(item => new CellData(item.SecNumber, double.Parse(item.AValue, new CultureInfo("EN")), double.Parse(item.Voltage, new CultureInfo("EN")))));
                    break;
                }

                RVData    = new ObservableCollection <CellData>(rvdata);
                IsCanBild = true;

                ChartTitle = SelectedBattery;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }