private void Button_Click_Y(object sender, RoutedEventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.InitialDirectory = Environment.CurrentDirectory; openFileDialog.Filter = "Binary|*.bin"; if (openFileDialog.ShowDialog() == true) { _sygY = WriteRead.ReadFromFile(openFileDialog.FileName); } }
public static SygnalCiagly ReadFromFile(string name) { IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.Read); SygnalCiagly obj = (SygnalCiagly)formatter.Deserialize(stream); obj.FromTimeAndAmplitudeToPoints(obj.Points, obj.TimeAndAmplitude); obj.FromTimeAndAmplitudeToPoints(obj.Points2, obj.TimeAndAmplitude2); stream.Close(); return(obj); }
public static void WriteToFile(SygnalCiagly syg, string name) { IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream(i + "." + name + "- t1-" + syg._t1 + " d-" + syg._d + " f-" + syg._fciagly + ".bin", FileMode.Create, FileAccess.Write, FileShare.None); syg.FromPointsToTimeAndAmplitude(syg.Points, syg.TimeAndAmplitude); syg.FromPointsToTimeAndAmplitude(syg.Points2, syg.TimeAndAmplitude2); formatter.Serialize(stream, syg); stream.Close(); i++; }
private void Button_Click_wynik(object sender, RoutedEventArgs e) { if (_sygX == null || _sygY == null) { MessageBox.Show("Nie wybrano sygnałów", "Uwaga", MessageBoxButton.OK, MessageBoxImage.Information); } else { if (_sygX._t1 != _sygY._t1 || _sygX._d != _sygY._d || _sygX._fciagly != _sygY._fciagly) { MessageBox.Show("Nie można wykonać operacji na tych dwóch sygnałach", "Uwaga", MessageBoxButton.OK, MessageBoxImage.Information); _sygX = null; _sygY = null; } else { if (operation.Text == "+") { SygnalCiagly wynik = Operations.Add(_sygX, _sygY); LineChart lc = new LineChart(); lc.DataContext = wynik.MakeChart("Sygnał wynikowy"); lc.Show(); WriteRead.WriteToFile(wynik, "Sygnał wynikowy"); } if (operation.Text == "-") { SygnalCiagly wynik = Operations.Subtract(_sygX, _sygY); LineChart lc = new LineChart(); lc.DataContext = wynik.MakeChart("Sygnał wynikowy"); lc.Show(); WriteRead.WriteToFile(wynik, "Sygnał wynikowy"); } if (operation.Text == "*") { SygnalCiagly wynik = Operations.Muliply(_sygX, _sygY); LineChart lc = new LineChart(); lc.DataContext = wynik.MakeChart("Sygnał wynikowy"); lc.Show(); WriteRead.WriteToFile(wynik, "Sygnał wynikowy"); } if (operation.Text == "/") { SygnalCiagly wynik = Operations.Divide(_sygX, _sygY); LineChart lc = new LineChart(); lc.DataContext = wynik.MakeChart("Sygnał wynikowy"); lc.Show(); WriteRead.WriteToFile(wynik, "Sygnał wynikowy"); } } } }
private void Button_Click_odtw(object sender, RoutedEventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.InitialDirectory = Environment.CurrentDirectory; openFileDialog.Filter = "Binary|*.bin"; if (openFileDialog.ShowDialog() == true) { SygnalCiagly s = WriteRead.ReadFromFile(openFileDialog.FileName); LineChart lc = new LineChart(); string nazwa = openFileDialog.FileName; nazwa = nazwa.Substring(nazwa.IndexOf(".") + 1); nazwa = nazwa.Substring(0, nazwa.IndexOf("-")); lc.DataContext = s.MakeChart(nazwa); lc.Show(); } }
public static SygnalCiagly Divide(SygnalCiagly x, SygnalCiagly y) { ICollection <Point> newPoints = new Collection <Point>(); for (int i = 0; i < x.TimeAndAmplitude.Count(); i++) { double iloraz; if (y.TimeAndAmplitude.ElementAt(i).Y == 0) { iloraz = 0; } else { iloraz = x.TimeAndAmplitude.ElementAt(i).Y / y.TimeAndAmplitude.ElementAt(i).Y; } newPoints.Add(new Point(x.TimeAndAmplitude.ElementAt(i).X, iloraz)); } ICollection <Point> newPoints2 = new Collection <Point>(); for (int i = 0; i < x.TimeAndAmplitude2.Count(); i++) { double iloraz; if (y.TimeAndAmplitude2.ElementAt(i).Y == 0) { iloraz = 0; } else { iloraz = x.TimeAndAmplitude2.ElementAt(i).Y / y.TimeAndAmplitude2.ElementAt(i).Y; } newPoints2.Add(new Point(x.TimeAndAmplitude2.ElementAt(i).X, iloraz)); } SygnalCiagly wynik = new SygnalCiagly(0, 0, 0, 0, 0, 0, 0, 0); wynik.TimeAndAmplitude = newPoints; wynik.FromTimeAndAmplitudeToPoints(wynik.Points, wynik.TimeAndAmplitude); wynik.TimeAndAmplitude2 = newPoints2; wynik.FromTimeAndAmplitudeToPoints(wynik.Points2, wynik.TimeAndAmplitude2); wynik.CalculateInfo(); return(wynik); }
public static SygnalCiagly Muliply(SygnalCiagly x, SygnalCiagly y) { ICollection <Point> newPoints = new Collection <Point>(); for (int i = 0; i < x.TimeAndAmplitude.Count(); i++) { newPoints.Add(new Point(x.TimeAndAmplitude.ElementAt(i).X, x.TimeAndAmplitude.ElementAt(i).Y *y.TimeAndAmplitude.ElementAt(i).Y)); } ICollection <Point> newPoints2 = new Collection <Point>(); for (int i = 0; i < x.TimeAndAmplitude2.Count(); i++) { newPoints2.Add(new Point(x.TimeAndAmplitude2.ElementAt(i).X, x.TimeAndAmplitude2.ElementAt(i).Y *y.TimeAndAmplitude2.ElementAt(i).Y)); } SygnalCiagly wynik = new SygnalCiagly(0, 0, 0, 0, 0, 0, 0, 0); wynik.TimeAndAmplitude = newPoints; wynik.FromTimeAndAmplitudeToPoints(wynik.Points, wynik.TimeAndAmplitude); wynik.TimeAndAmplitude2 = newPoints2; wynik.FromTimeAndAmplitudeToPoints(wynik.Points2, wynik.TimeAndAmplitude2); wynik.CalculateInfo(); return(wynik); }
private void Button_Click_stworz(object sender, RoutedEventArgs e) { SygnalCiagly sc = null; SygnalDyskretny sd = null; if (signal.Text == "Szum impulsowy" || signal.Text == "Impuls jednostkowy") { sd = new SygnalDyskretny(Convert.ToDouble(_A), Convert.ToDouble(_t1), Convert.ToDouble(_d), Convert.ToDouble(_ns), Convert.ToDouble(_f), Convert.ToDouble(_p), Convert.ToInt32(_his)); } else { sc = new SygnalCiagly(Convert.ToDouble(_A), Convert.ToDouble(_t1), Convert.ToDouble(_d), Convert.ToDouble(_T), Convert.ToDouble(_kw), Convert.ToDouble(_f), Convert.ToDouble(_ns), Convert.ToInt32(_his)); } LineChart lc = new LineChart(); PointChart pc = new PointChart(); if (signal.Text == "Szum o rozkładzie jednostajnym") { sc.SzumJednostajny(); } if (signal.Text == "Szum gaussowski") { sc.SzumGaussowski(); } if (signal.Text == "Sygnał sinusoidalny") { sc.SygnalSinusoidalny(); } if (signal.Text == "Sygnał sinusoidalny wyprostowany jednopołówkowo") { sc.SygnalSinusoidalnyWyprostowanyJednopolowkowo(); } if (signal.Text == "Sygnał sinusoidalny wyprostowany dwupołówkowo") { sc.SygnalSinusoidalnyWyprostowanyDwupolowkowo(); } if (signal.Text == "Sygnał prostokątny") { sc.SygnalProstokatny(); } if (signal.Text == "Sygnał prostokątny symetryczny") { sc.SygnalProstokatnySymetryczny(); } if (signal.Text == "Sygnał trójkątny") { sc.SygnalTrojkatny(); } if (signal.Text == "Skok jednostkowy") { sc.Skok(); } if (signal.Text == "Impuls jednostkowy") { sd.ImpulsJednostkowy(); } if (signal.Text == "Szum impulsowy") { sd.SzumImpulsowy(); } if (sc != null) { sc.CalculateInfo(); if (kwantyzacja.Text == "Kwantyzacja z obcięciem") { sc.KwantyzacjaZObcieciem(); } else { sc.KwantyzacjaZZaokragleniem(); } lc.DataContext = sc.MakeChart(signal.Text); lc.Show(); if (checkboxzapisz.IsChecked.GetValueOrDefault() == true) { WriteRead.WriteToFile(sc, signal.Text); } } if (sd != null) { sd.CalculateInfo(); pc.DataContext = sd.MakeChart(signal.Text); pc.Show(); } if (_his > 0) { Histogram his = new Histogram(); if (sc != null) { his.DataContext = sc.MakeHistogram(); } if (sd != null) { his.DataContext = sd.MakeHistogram(); } his.Show(); } }