public TransformControler(SignallController signal) { Transform = new TransformManager(signal); View = new TransformViewState(Transform.Options); ViewChanged = () => { }; }
public SignalChart(SignallController signal) : base() { view = signal.View; var chart = GenerateChart(); Controls.Add(chart); signal.ViewChanged += () => { Controls.Remove(chart); chart = GenerateChart(); Controls.Add(chart); }; }
public TransformManager(SignallController sign) { Options = new TransformOptions(); transformers = new Dictionary <TransformType, CachTransformer> { [TransformType.Fourier] = new CachTransformer(new SimpleSpectrumGener(sign.Internal.Sum), sign), //[TransformType.Windowed] = new WindowedFourier() }; Transformer = transformers[DEFAULT_TYPE]; }
public CachTransformer(ISpecGenerator gener, SignallController controller) { spectrum = new FreqPoint[0][]; generator = gener; CalcSpectrum(); controller.SignChanged += () => { CalcSpectrum(); }; TransformChanged = () => { }; }
private Button GetAddButton(SignallController signalState) { var button = new Button { Height = frameHeight - 10, Width = Width - 20, Text = "Добавить" }; button.Click += (sender, ev) => { var creatingDialog = new AddSignalDialog(signalState).ShowDialog(); }; return(button); }
public AddSignalDialog(SignallController signal) { //фиксирование размеров Width = 400; Height = 600; FormBorderStyle = FormBorderStyle.FixedDialog; opts = new SignalStuff(0, signal.Internal.Size); var table = new TableLayoutPanel(); table.RowStyles.Add(new RowStyle(SizeType.Percent, 20)); table.RowStyles.Add(new RowStyle(SizeType.Percent, 20)); table.RowStyles.Add(new RowStyle(SizeType.Percent, 20)); table.RowStyles.Add(new RowStyle(SizeType.Percent, 20)); table.RowStyles.Add(new RowStyle(SizeType.Percent, 20)); table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50)); table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50)); var startField = new SubscribedField("Начало: ", "Начало сигнала должно быть целым положительным числом.", opts.Start.ToString()); var durField = new SubscribedField("Продолжительность:", "Продолжительность сигнала должна быть целым положительным числом.", opts.Duration.ToString()); var freqField = new SubscribedField("Частота повторения ():", "Частота повторения сигнала должна быть действительным числом.", opts.Freq.ToString()); var multField = new SubscribedField("Множитель:", "Множитель сигнала должен быть действительным числом.", opts.Mult.ToString()); var constField = new SubscribedField("Константа:", "Константа сигнала должна быть действительным числом. ", opts.Const.ToString()); var container = new OptionsParser { Start = startField, Duration = durField, Frequency = freqField, Mult = multField, Const = constField }; var okButton = new Button { Text = "Создать" }; okButton.Click += (sender, ev) => { opts = container.GetOptions(); if (opts == null) { ThrowErrors(container.ErrorMessages); } else { try { signal.AddSignal(new SinSignal(opts)); Close(); } catch (ArgumentException ex) { ThrowErrors(ex.Message); } } }; var cancelButton = new Button { Text = "Отмена" }; cancelButton.Click += (sender, ev) => { Close(); }; //надпись об ошибке errorLabel = new Label { Text = "", ForeColor = Color.Red, AutoSize = true }; table.Controls.Add(startField, 0, 0); table.Controls.Add(durField, 1, 0); table.Controls.Add(freqField, 0, 1); table.Controls.Add(multField, 1, 1); table.Controls.Add(constField, 0, 2); table.Controls.Add(okButton, 0, 3); table.Controls.Add(cancelButton, 1, 3); table.Controls.Add(errorLabel, 0, 4); table.Dock = DockStyle.Fill; Controls.Add(table); }
public ApplicationModel() { Signal = new SignallController(); Transform = new TransformControler(Signal); }