private void ViewModel_CommandHandler(object sender, string e) { switch (e) { case "Plot.Refresh": PlotViewModel.InvalidatePlot(true); break; case "Table.Refresh": TableViewModel.Refresh(); break; case "DataGrid.Refresh": SeriesOnlineDataGridModelView.Refresh(); break; case "Main.ImportXML": ImportSeriesXML(SeriesOnlineDataGridModelView.FilePath); break; case "Main.ExportXML": ExportSeriesXML(SeriesOnlineDataGridModelView.FilePath); break; } }
//Dodac powyższe w ścieżce niżej private void GetValuesTimer_Elapsed(object sender, ElapsedEventArgs e) { if (plc.ConnectionStatus == ConnectionStatusEnum.CONNECTED) { for (int i = 0; i < SeriesOnline.Count; i++) { SerieOnline serie = SeriesOnline[i] as SerieOnline; if (serie != null) { int? value = plc.GetValue(serie.Dm); DateTime now = DateTime.Now; if (value != null) { int _value = (int)value; now = new DateTime( now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second); serie.add(now, _value); try { StringBuilder.Clear(); using (FileStream fs = new FileStream(Path.Combine(LogsFolderPath ?? string.Empty, StringBuilder.Append(LogsFilePrefix).Append(DateTime.Now.ToString("yyyy.MM.dd")).Append(".txt").ToString()), FileMode.Append)) { StringBuilder.Clear(); var lineToWrite = StringBuilder.Append(serie.Name).Append("\t").Append(now).Append("\t").Append(_value * serie.Multiplier).Append("\r\n").ToString(); byte[] bytesToWrite = new UTF8Encoding(true).GetBytes(lineToWrite); fs.Write(bytesToWrite, 0, bytesToWrite.Length); } } catch (Exception ex) { Console.WriteLine($"{ex.Message}"); } } } } try { Application.Current.Dispatcher.BeginInvoke(new Action(() => CollectionViewSource.GetDefaultView(SeriesOnline).Refresh())); PlotViewModel.ChartMove(); PlotViewModel.InvalidatePlot(true); } catch { } //if (SelectedItemTableView == null) //{ TableViewModel.Refresh(); //} } }
public MainWindowViewModel() { //Load settings from settings.xml //string settingsFileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "settings.xml"); string settingsFileName = "settings.xml"; LoadSettings(settingsFileName); //As default in properties region if (Series == default(ObservableCollection <Serie>)) { Series = new ObservableCollection <Serie>(); } ConnectionViewModel = new ConnectionViewModel(plc); ConnectionViewModel.CommandHandler += ViewModel_CommandHandler; PlotViewModel = new PlotViewModel(plot, Series); PlotViewModel.CommandHandler += ViewModel_CommandHandler; TableViewModel = new TableViewModel(Series); TableViewModel.CommandHandler += ViewModel_CommandHandler; SeriesOnlineDataGridViewModel = new SeriesOnlineDataGridModelView(Series); SeriesOnlineDataGridViewModel.CommandHandler += ViewModel_CommandHandler; SeriesArchiveDataGridViewModel = new SeriesArchiveDataGridModelView(Series); SeriesArchiveOnlineDataGridViewModel.CommandHandler += ViewModel_CommandHandler; plc.ConnectionStatusChanged += Plc_ConnectionStatusChanged; plc.ConnectionStatusChanged += PlotViewModel.ConnectionStatusChanged; //ConnectionViewModel.Refresh(); Series.CollectionChanged += Series_CollectionChanged; //suszarka = new Serie("Suszarka", 150); getValuesTimer = new System.Timers.Timer(); getValuesTimer.Elapsed += GetValuesTimer_Elapsed; //Series.Add(suszarka); //TODO //Strzałka aby rozciągnąć Y na górę i dół na maksa //getValuesTimer.Interval = interval * 1000; //getValuesTimer.Enabled = true; }
private void GetValuesTimer_Elapsed(object sender, ElapsedEventArgs e) { if (plc.ConnectionStatus == ConnectionStatusEnum.CONNECTED) { for (int i = 0; i < Series.Count; i++) { SerieOnline serie = Series[i] as SerieOnline; if (serie != null) { int? value = plc.getValue(serie.Dm); DateTime now = DateTime.Now; if (value != null) { int _value = (int)value; now = new DateTime( now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second); serie.add(now, _value); } } } try { Application.Current.Dispatcher.BeginInvoke(new Action(() => CollectionViewSource.GetDefaultView(Series).Refresh())); PlotViewModel.ChartMove(); PlotViewModel.InvalidatePlot(true); } catch { } //if (SelectedItemTableView == null) //{ TableViewModel.Refresh(); //} } }
private void ViewModel_CommandHandler(object sender, string e) { switch (e) { case "Plot.Refresh": PlotViewModel.InvalidatePlot(true); PlotArchiveViewModel.InvalidatePlot(true); PlotUsbViewModel.InvalidatePlot(true); break; case "Table.Refresh": TableViewModel.Refresh(); TableArchiveViewModel.Refresh(); TableUsbViewModel.Refresh(); break; case "DataGrid.Refresh": SeriesOnlineDataGridViewModel.Refresh(); SeriesArchiveDataGridViewModel.Refresh(); SeriesUsbDataGridViewModel.Refresh(); break; } }
public MainWindowViewModel() { this.ParentViewModel = null; this.StringBuilder = new StringBuilder(); SeriesOnline = new ObservableCollection <Serie>(); SeriesArchive = new ObservableCollection <Serie>(); SeriesUsb = new ObservableCollection <Serie>(); ConnectionViewModel = new ConnectionViewModel(this, plc); ConnectionViewModel.CommandHandler += ViewModel_CommandHandler; //Load settings from settings.xml //string settingsFileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "settings.xml") //As default in properties region PlotViewModel = new PlotViewModel(this, plot, SeriesOnline); PlotViewModel.CommandHandler += ViewModel_CommandHandler; TableViewModel = new TableViewModel(this, SeriesOnline); TableViewModel.CommandHandler += ViewModel_CommandHandler; SeriesOnlineDataGridViewModel = new SeriesOnlineDataGridModelView(this, SeriesOnline); SeriesOnlineDataGridViewModel.CommandHandler += ViewModel_CommandHandler; PlotArchiveViewModel = new PlotViewModel(this, plotArchive, SeriesArchive); PlotArchiveViewModel.CommandHandler += ViewModel_CommandHandler; TableArchiveViewModel = new TableViewModel(this, SeriesArchive); TableArchiveViewModel.CommandHandler += ViewModel_CommandHandler; SeriesArchiveDataGridViewModel = new SeriesArchiveDataGridViewModel(this, SeriesArchive); SeriesArchiveDataGridViewModel.CommandHandler += ViewModel_CommandHandler; ConnectionTerminalViewModel = new ConnectionTerminalViewModel(this); PlotUsbViewModel = new PlotViewModel(this, plotUsb, SeriesUsb); PlotUsbViewModel.CommandHandler += ViewModel_CommandHandler; TableUsbViewModel = new TableViewModel(this, SeriesUsb); TableUsbViewModel.CommandHandler += ViewModel_CommandHandler; SeriesUsbDataGridViewModel = new SeriesUsbDataGridViewModel(this, SeriesUsb); SeriesUsbDataGridViewModel.CommandHandler += ViewModel_CommandHandler; EditSettings = new RelayCommand(EditSettingsAction); LoadSettings(); plc.ConnectionStatusChanged += Plc_ConnectionStatusChanged; plc.ConnectionStatusChanged += PlotViewModel.ConnectionStatusChanged; //ConnectionViewModel.Refresh(); SeriesOnline.CollectionChanged += Series_CollectionChanged; //suszarka = new Serie("Suszarka", 150); getValuesTimer = new System.Timers.Timer(); getValuesTimer.Elapsed += GetValuesTimer_Elapsed; SelectedTabIndex = 0; //Series.Add(suszarka); //TODO //Strzałka aby rozciągnąć Y na górę i dół na maksa //getValuesTimer.Interval = interval * 1000; //getValuesTimer.Enabled = true; }