public GuiAnalyzerSingleFigure(uint id, _PlcAgent.Analyzer.Analyzer analyzer) : base(analyzer) { InitializeComponent(); BrushComboBox.ItemsSource = _colorsList; BrushComboBox.SelectedItem = Brushes.Green; BrushComboBox.DataContext = this; Analyzer.CommunicationInterfaceHandler.OnInterfaceUpdatedDelegate += OnInterfaceUpdated; OnInterfaceUpdated(); _analyzerChannel = Analyzer.AnalyzerChannels.GetChannel(id); ChannelGroupBox.Header = "Channel " + _analyzerChannel.Id; PlotArea.Dispatcher.BeginInvoke((new Action( () => PlotArea.DataContext = new DataMainViewModel()))); if (_analyzerChannel.AnalyzerObservableVariable != null) { UpdateControls(this, new PropertyChangedEventArgs("CommunicationInterfaceVariable")); UpdateControls(this, new PropertyChangedEventArgs("Brush")); UpdateControls(this, new PropertyChangedEventArgs("Unit")); _analyzerChannel.AnalyzerObservableVariable.PropertyChanged += UpdateControls; PlotArea.Dispatcher.BeginInvoke((new Action( () => PlotArea.DataContext = _analyzerChannel.AnalyzerObservableVariable.MainViewModelClone))); } _save = true; }
public void RetriveConfiguration() { Children.Clear(); foreach ( var channelStrings in AnalyzerSetupFile.Channels[Analyzer.Header.Id].Where(channel => channel != null) .Select(channel => channel.Split('%'))) { if (channelStrings[1] != "Empty") { var newChannel = new AnalyzerChannel(Convert.ToUInt32(channelStrings[0]), Analyzer); var variable = Analyzer.CommunicationInterfaceHandler.ReadInterfaceComposite.ReturnVariable( channelStrings[1]); if (variable != null) { newChannel.AnalyzerObservableVariable = new AnalyzerObservableVariable(Analyzer, variable) { Name = channelStrings[2], Unit = channelStrings[4], Brush = (Brush) new BrushConverter().ConvertFromString(channelStrings[5]), }; } Children.Add(newChannel); } else { Children.Add(new AnalyzerChannel(Convert.ToUInt32(channelStrings[0]), Analyzer)); } } StoreConfiguration(); if (OnChannelListModified != null) OnChannelListModified(); }
public void Remove(AnalyzerChannel analyzerChannel) { Children.Remove(analyzerChannel); StoreConfiguration(); if (OnChannelListModified != null) OnChannelListModified(); }
public void RemoveChannel(AnalyzerChannel analyzerChannel) { AnalyzerChannels.Remove(analyzerChannel); AnalyzerSetupFile.NumberOfChannels[Header.Id] -= 1; AnalyzerSetupFile.Save(); }