diff --git a/Signal Generator/AddSignalWindow.xaml b/Signal Generator/AddSignalWindow.xaml
new file mode 100644
index 0000000..122ce9b
--- /dev/null
+++ b/Signal Generator/AddSignalWindow.xaml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/Signal Generator/AddSignalWindow.xaml.cs b/Signal Generator/AddSignalWindow.xaml.cs
new file mode 100644
index 0000000..d89e66d
--- /dev/null
+++ b/Signal Generator/AddSignalWindow.xaml.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace Signal_Generator
+{
+ ///
+ /// Логика взаимодействия для AddSignalWindow.xaml
+ ///
+ public partial class AddSignalWindow : Window
+ {
+ public AddSignalWindow()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Signal Generator/App.config b/Signal Generator/App.config
index 731f6de..b157b72 100644
--- a/Signal Generator/App.config
+++ b/Signal Generator/App.config
@@ -1,5 +1,7 @@
+
+
diff --git a/Signal Generator/App.xaml.cs b/Signal Generator/App.xaml.cs
index 43963f8..0da5a06 100644
--- a/Signal Generator/App.xaml.cs
+++ b/Signal Generator/App.xaml.cs
@@ -13,5 +13,6 @@ namespace Signal_Generator
///
public partial class App : Application
{
+
}
}
diff --git a/Signal Generator/FmSignal.cs b/Signal Generator/FmSignal.cs
new file mode 100644
index 0000000..5fc38ef
--- /dev/null
+++ b/Signal Generator/FmSignal.cs
@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Signal_Generator
+{
+ class FmSignal : IAnalogSignal
+ {
+ private double ampl = 0;
+ private double freq = 0;
+ private IAnalogSignal modSignal;
+
+ public string ParamsToString
+ {
+ get
+ {
+ return this.ToString() +
+ " | А = " + ampl +
+ " | f = " + freq;
+ }
+ }
+
+ public override string ToString()
+ {
+ return "FM signal";
+ }
+
+ public FmSignal(double ampl, double freq, IAnalogSignal modSignal)
+ {
+ this.ampl = ampl;
+ this.freq = freq;
+ this.modSignal = modSignal;
+ }
+
+ public double currentAmplitude(double t)
+ {
+ return ampl * Math.Sin(2 * Math.PI * freq * t + modSignal.currentAmplitude(t));
+ }
+ }
+}
diff --git a/Signal Generator/IAnalogSignalModel.cs b/Signal Generator/IAnalogSignalModel.cs
new file mode 100644
index 0000000..aec1757
--- /dev/null
+++ b/Signal Generator/IAnalogSignalModel.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Signal_Generator
+{
+ interface IAnalogSignal
+ {
+ string ParamsToString { get; }
+ double currentAmplitude(double t);
+ }
+}
diff --git a/Signal Generator/MainWindow.xaml b/Signal Generator/MainWindow.xaml
index 7cc5cda..2b137af 100644
--- a/Signal Generator/MainWindow.xaml
+++ b/Signal Generator/MainWindow.xaml
@@ -5,8 +5,28 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Signal_Generator"
mc:Ignorable="d"
- Title="MainWindow" Height="450" Width="800">
+ Title="MainWindow" Height="450" Width="489">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Signal Generator/MainWindow.xaml.cs b/Signal Generator/MainWindow.xaml.cs
index 406ebba..e8e5f74 100644
--- a/Signal Generator/MainWindow.xaml.cs
+++ b/Signal Generator/MainWindow.xaml.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -23,6 +24,18 @@ namespace Signal_Generator
public MainWindow()
{
InitializeComponent();
+ addSomeExtra();
+ }
+
+ private void addSomeExtra()
+ {
+ // test of signals_ListBox
+ SinusoidalSignal s1 = new SinusoidalSignal(1, 50);
+ SinusoidalSignal s2 = new SinusoidalSignal(3, 120);
+ ObservableCollection s = new ObservableCollection();
+ s.Add(s1);
+ signals_ListBox.Items.Clear();
+ signals_ListBox.ItemsSource = s;
}
}
}
diff --git a/Signal Generator/MultiSignal.cs b/Signal Generator/MultiSignal.cs
new file mode 100644
index 0000000..36cf5f3
--- /dev/null
+++ b/Signal Generator/MultiSignal.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Signal_Generator
+{
+ class MultiSignal : IAnalogSignal
+ {
+ private List signals { get; set; }
+ public string ParamsToString { get; set; }
+
+ public MultiSignal()
+ {
+ signals = new List();
+ }
+
+ public void add(IAnalogSignal signal)
+ {
+ signals.Add(signal);
+ }
+
+ public void remove(IAnalogSignal signal)
+ {
+ signals.Remove(signal);
+ }
+
+ public double currentAmplitude(double t)
+ {
+ double summaryAmplitude = 0;
+ foreach (IAnalogSignal item in signals)
+ {
+ summaryAmplitude += item.currentAmplitude(t);
+ }
+ return summaryAmplitude;
+ }
+ }
+}
diff --git a/Signal Generator/Settings.cs b/Signal Generator/Settings.cs
new file mode 100644
index 0000000..58529f6
--- /dev/null
+++ b/Signal Generator/Settings.cs
@@ -0,0 +1,28 @@
+namespace Signal_Generator.Properties {
+
+
+ // Этот класс позволяет обрабатывать определенные события в классе параметров:
+ // Событие SettingChanging возникает перед изменением значения параметра.
+ // Событие PropertyChanged возникает после изменения значения параметра.
+ // Событие SettingsLoaded возникает после загрузки значений параметров.
+ // Событие SettingsSaving возникает перед сохранением значений параметров.
+ internal sealed partial class Settings {
+
+ public Settings() {
+ // // Для добавления обработчиков событий для сохранения и изменения параметров раскомментируйте приведенные ниже строки:
+ //
+ // this.SettingChanging += this.SettingChangingEventHandler;
+ //
+ // this.SettingsSaving += this.SettingsSavingEventHandler;
+ //
+ }
+
+ private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
+ // Добавьте здесь код для обработки события SettingChangingEvent.
+ }
+
+ private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
+ // Добавьте здесь код для обработки события SettingsSaving.
+ }
+ }
+}
diff --git a/Signal Generator/Signal Generator.csproj b/Signal Generator/Signal Generator.csproj
index 860fd96..0321617 100644
--- a/Signal Generator/Signal Generator.csproj
+++ b/Signal Generator/Signal Generator.csproj
@@ -55,6 +55,19 @@
MSBuild:Compile
Designer
+
+ AddSignalWindow.xaml
+
+
+
+
+
+ TaskWindow.xaml
+
+
+ Designer
+ MSBuild:Compile
+
MSBuild:Compile
Designer
@@ -63,12 +76,18 @@
App.xaml
Code
+
MainWindow.xaml
Code
+
+ Designer
+ MSBuild:Compile
+
+
Code
diff --git a/Signal Generator/SinusoidalSignal.cs b/Signal Generator/SinusoidalSignal.cs
new file mode 100644
index 0000000..26602e6
--- /dev/null
+++ b/Signal Generator/SinusoidalSignal.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Signal_Generator
+{
+ class SinusoidalSignal : IAnalogSignal
+ {
+ private double ampl = 0;
+ private double freq = 0;
+ private double phase = 0;
+
+ public string ParamsToString
+ {
+ get
+ {
+ return this.ToString() +
+ " | A = " + ampl +
+ " | f = " + freq +
+ " | phi = " + phase;
+ }
+ }
+
+ public override string ToString()
+ {
+ return "SIN signal";
+ }
+
+ public SinusoidalSignal(double ampl, double freq, double phase = 0)
+ {
+ this.ampl = ampl;
+ this.freq = freq;
+ this.phase = phase;
+ }
+
+ public double currentAmplitude(double t)
+ {
+ return ampl * Math.Sin(2 * Math.PI * freq * t + phase);
+ }
+ }
+}
diff --git a/Signal Generator/TaskWindow.xaml b/Signal Generator/TaskWindow.xaml
new file mode 100644
index 0000000..c4cb652
--- /dev/null
+++ b/Signal Generator/TaskWindow.xaml
@@ -0,0 +1,28 @@
+
+
+
+
+
+ Время выполения:
+
+
+ Текущий сигнал:
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Signal Generator/TaskWindow.xaml.cs b/Signal Generator/TaskWindow.xaml.cs
new file mode 100644
index 0000000..0d1b107
--- /dev/null
+++ b/Signal Generator/TaskWindow.xaml.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace Signal_Generator
+{
+ ///
+ /// Логика взаимодействия для TaskWindow.xaml
+ ///
+ public partial class TaskWindow : Window
+ {
+ public TaskWindow()
+ {
+ InitializeComponent();
+ }
+ }
+}