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; } } }); }
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; } }