コード例 #1
0
        private void CalculatePeakPointsFromSecond(CommandInfoArgs args)
        {
            var points = File.Points;

            if ((points?.Count() ?? 0) <= 0)
            {
                return;
            }

            var startSeconds = Parameter.StartSeconds;
            var endSeconds   = Parameter.EndSeconds;

            // 時間の指定が逆のとき、入れ替えて計算
            if (endSeconds < startSeconds)
            {
                var temp = startSeconds;

                startSeconds = endSeconds;
                endSeconds   = temp;
            }

            Result.ForceSetPeakPoint(points, startSeconds, endSeconds);
            Result.UpdatePeakArea(points);

            // グラフを更新
            PeakPlot.InitializeSeries2(points, Result);

            PeakPlot.UpdatePeakPoints(Result);
            PeakPlot.Update();
        }
コード例 #2
0
        private void CalculatePeakPointsFromFactor(CommandInfoArgs args)
        {
            var points = File.Points;

            if ((points?.Count() ?? 0) <= 0)
            {
                return;
            }

            // ピークを評価
            Result.MeasurePeakPoints(points, Parameter.StartFactor, Parameter.EndFactor, Parameter.FactorMinSeconds);
            Result.UpdatePeakArea(points);

            // グラフを更新
            PeakPlot.InitializeSeries2(points, Result);

            PeakPlot.UpdatePeakPoints(Result);
            PeakPlot.Update();
        }
コード例 #3
0
        /// <summary>
        /// <see cref="MainWindowViewModel"/> クラスの新しいインスタンスを初期化します。
        /// </summary>
        public MainWindowViewModel()
        {
            File.DataPointUpdated += (sender, args) =>
            {
                var points = args.Value;

                // ピークの表を初期化する
                if (points != null && points.Count() > 0)
                {
                    // ピークを評価
                    Result.MeasurePeakPoints(points, Parameter.StartFactor, Parameter.EndFactor, Parameter.FactorMinSeconds);
                    Result.UpdatePeakArea(points);

                    // オプションを更新
                    Option.UpdateSymmetryFactor(points, Result);
                    Option.UpdateTheoreticalPlateNumber(points, Result);

                    // グラフを更新
                    PeakPlot.InitializeSeries1(points);
                    PeakPlot.InitializeSeries2(points, Result);

                    PeakPlot.UpdatePeakPoints(Result);
                    PeakPlot.Update();
                }
                else
                {
                    PeakPlot.ClearSeries();
                }
            };

            Result.PropertyChanged += (sender, args) =>
            {
                if (Result.IsEnabled)
                {
                    var startSeconds = Result.StartPoint.X;
                    var endSeconds   = Result.EndPoint.X;

                    Parameter.StartSeconds = startSeconds;
                    Parameter.EndSeconds   = endSeconds;
                }
            };
        }