private void Read()
        {
            _isReading = !_isReading;

            Task.Factory.StartNew(() =>
            {
                _timeStamp = DateTime.Now;

                Values1.Clear();
                Values2.Clear();
                Values3.Clear();

                while (_isReading)
                {
                    Thread.Sleep(100);

                    var newItems = GetNext(1);

                    Values1.AddRange(newItems.Select(x => x.Series1Lecture));
                    Values2.AddRange(newItems.Select(x => x.Series2Lecture));
                    Values3.AddRange(newItems.Select(x => x.Series3Lecture));

                    if (_refreshAxis)
                    {
                        var lastPoint = Values3.DefaultIfEmpty(new LecturePoint()).Last().TimeSpan;
                        To            = lastPoint.Ticks;
                        From          = lastPoint.Ticks - TimeSpan.FromSeconds(10).Ticks;
                    }
                }
            });
        }
Exemple #2
0
        private void button2_Click(object sender, RoutedEventArgs e) //wykres
        {
            Values1.Clear();
            Values2.Clear();
            Chart1.Update();

            N = Convert.ToInt32(tb1.Text);
            A = Convert.ToDouble(tb2.Text);
            P = Convert.ToDouble(tb3.Text);
            if ((N == 0 && A == 0) || (N == 0 && P == 0) || (A == 0 && P == 0) || (A == 0 && P == 0 && N == 0))
            {
                MessageBox.Show("Wprowadzone dane nie są odpowiedniego formatu.", "Zły format danych wejściowych");
            }

            else if (N != 0 && A != 0 && P != 0)
            {
                MessageBox.Show("Jedno pole powinno zostać puste.", "Zły format danych wejściowych");
            }


            else if (P == 0) //wykres P(A=const,N)
            {
                N2 = Convert.ToInt32(tb5.Text);
                if (N >= N2)
                {
                    MessageBox.Show("Podany przedział liczbowy nie istnieje.", "Zły format danych wejściowych");
                }
                OsY.Title = "P(A,N)";
                OsX.Title = "N";
                SepY.Step = 0.1;
                SepX.Step = (int)(N2 / 22) + 1;
                DrawChart(1, CalculateNseries(N, N2), CalculatePseries(A, N, N2));
                DataContext = this;
            }

            else if (N == 0) // wykres N(P=const, A)
            {
                A2 = Convert.ToDouble(tb6.Text);
                if (A >= A2)
                {
                    MessageBox.Show("Podany przedział liczbowy nie istnieje.", "Zły format danych wejściowych");
                }
                OsY.Title = "N(P,A)";
                OsX.Title = "A";
                SepY.Step = 1;
                SepX.Step = 0.5;
                DrawChart(2, CalculateAseries(A, A2, P), CalculateNseriesY(CalculateAseries(A, A2, P), P));
                DataContext = this;
            }
        }