Ejemplo n.º 1
0
        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();
                //}
            }
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
        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;
        }