diff options
| author | Avi Levkovich <avi@twine-s.com> | 2018-08-05 11:20:36 +0300 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2018-08-05 11:20:36 +0300 |
| commit | 898213e7a5380bea18e5b45ef48b4d2d990b4832 (patch) | |
| tree | c0067b6a26ad3853681c9151e1fe9fc5ac5503c6 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs | |
| parent | 3f78570409abd79e46dcb0bfe8f8e2127cc7f67c (diff) | |
| parent | 9cdd202a86fec153935637fc43eef428fced2fd6 (diff) | |
| download | Tango-898213e7a5380bea18e5b45ef48b4d2d990b4832.tar.gz Tango-898213e7a5380bea18e5b45ef48b4d2d990b4832.zip | |
merge conflict
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs | 121 |
1 files changed, 107 insertions, 14 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs index 3dff65fbc..cd7582fe9 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs @@ -32,6 +32,7 @@ using Tango.MachineStudio.Common.EventLogging; using Tango.MachineStudio.Common; using Tango.Core.Commands; using Tango.MachineStudio.Technician.Helpers; +using Tango.MachineStudio.Technician.Models; namespace Tango.MachineStudio.Technician.ViewModels { @@ -54,6 +55,9 @@ namespace Tango.MachineStudio.Technician.ViewModels private const int MIN_DIAGNOSTICS_UPDATE_MILI = 500; private TechnicianModuleSettings _settings; + private List<SingleTechRecordingData<SingleGraphItem>> _single_graphs_recordings; + private List<MultiTechRecordingData<MultiGraphItem>> _multi_graph_recordings; + #region Properties @@ -221,6 +225,9 @@ namespace Tango.MachineStudio.Technician.ViewModels { _settings = SettingsManager.Default.GetOrCreate<TechnicianModuleSettings>(); + _single_graphs_recordings = new List<SingleTechRecordingData<SingleGraphItem>>(); + _multi_graph_recordings = new List<MultiTechRecordingData<MultiGraphItem>>(); + GraphsDurationSeconds = _settings.GraphsDuration; TempGraphsDurationSeconds = GraphsDurationSeconds; @@ -261,7 +268,7 @@ namespace Tango.MachineStudio.Technician.ViewModels UploadHardwareConfigurationCommand = new RelayCommand(UploadHardwareConfiguration); SyncHardwareConfigurationCommand = new RelayCommand(SyncHardwareConfiguration); ResetHardwareConfigurationCommand = new RelayCommand(() => ResetHardwareConfiguration()); - UpdateGraphsDurationCommand = new RelayCommand(() => + UpdateGraphsDurationCommand = new RelayCommand(() => { GraphsDurationSeconds = TempGraphsDurationSeconds; _settings.GraphsDuration = GraphsDurationSeconds; @@ -372,6 +379,12 @@ namespace Tango.MachineStudio.Technician.ViewModels }); controller.PushData(points); + + var _graph_recording = _single_graphs_recordings.SingleOrDefault(x => x.TechItem == graphItem); + if (_graph_recording != null) + { + _graph_recording.PushData(points); + } } } } @@ -400,6 +413,12 @@ namespace Tango.MachineStudio.Technician.ViewModels } controller.PushData(points); + + var _graph_recording = _multi_graph_recordings.SingleOrDefault(x => x.TechItem == graphItem); + if (_graph_recording != null) + { + _graph_recording.PushData(points); + } } } } @@ -745,19 +764,27 @@ namespace Tango.MachineStudio.Technician.ViewModels /// <param name="elements">The elements.</param> public void OnElementsRemoved(List<IElementEditor> elements) { - //foreach (var element in elements) - //{ - // if (element.HostedElement is SingleGraphItem) - // { - // _singleControllers.Remove(element.HostedElement as SingleGraphItem); - // (element.HostedElement as SingleGraphItem).Editor.InnerGraph.InnerGraph.Dispose(); - // } - // else if (element.HostedElement is MultiGraphItem) - // { - // _multiControllers.Remove(element.HostedElement as MultiGraphItem); - // (element.HostedElement as MultiGraphItem).Editor.InnerGraph.InnerGraph.Dispose(); - // } - //} + foreach (var element in elements) + { + if (element.HostedElement is SingleGraphItem) + { + var _graph_recording = _single_graphs_recordings.SingleOrDefault(x => x.TechItem == element.HostedElement); + + if (_graph_recording != null) + { + _single_graphs_recordings.Remove(_graph_recording); + } + } + else if (element.HostedElement is MultiGraphItem) + { + var _graph_recording = _multi_graph_recordings.SingleOrDefault(x => x.TechItem == element.HostedElement); + + if (_graph_recording != null) + { + _multi_graph_recordings.Remove(_graph_recording); + } + } + } } /// <summary> @@ -1023,6 +1050,39 @@ namespace Tango.MachineStudio.Technician.ViewModels editor.InnerGraph.Controller = controller; _singleControllers.Add(item, controller); + + item.RecordingStarted += () => + { + _single_graphs_recordings.Add(new SingleTechRecordingData<SingleGraphItem>(item)); + }; + + item.RecordingStopped += () => + { + try + { + var graph_recording = _single_graphs_recordings.SingleOrDefault(x => x.TechItem == item); + + if (graph_recording != null) + { + _single_graphs_recordings.Remove(graph_recording); + + SaveFileDialog dlg = new SaveFileDialog(); + dlg.Title = "Save graph data as csv file"; + dlg.Filter = "CSV Files|*.csv"; + dlg.DefaultExt = ".csv"; + dlg.FileName = item.TechName; + if (dlg.ShowDialog().Value) + { + graph_recording.Save(dlg.FileName); + graph_recording.Dispose(); + } + } + } + catch (Exception ex) + { + _notification.ShowError(LogManager.Log(ex).Message); + } + }; } /// <summary> @@ -1050,6 +1110,39 @@ namespace Tango.MachineStudio.Technician.ViewModels editor.InnerGraph.Controller = controller; _multiControllers.Add(item, controller); + + item.RecordingStarted += () => + { + _multi_graph_recordings.Add(new MultiTechRecordingData<MultiGraphItem>(item, item.TechMonitor.ChannelCount)); + }; + + item.RecordingStopped += () => + { + try + { + var graph_recording = _multi_graph_recordings.SingleOrDefault(x => x.TechItem == item); + + if (graph_recording != null) + { + _multi_graph_recordings.Remove(graph_recording); + + SaveFileDialog dlg = new SaveFileDialog(); + dlg.Title = "Save graph data as csv file"; + dlg.Filter = "CSV Files|*.csv"; + dlg.DefaultExt = ".csv"; + dlg.FileName = item.TechName; + if (dlg.ShowDialog().Value) + { + graph_recording.Save(dlg.FileName); + graph_recording.Dispose(); + } + } + } + catch (Exception ex) + { + _notification.ShowError(LogManager.Log(ex).Message); + } + }; } /// <summary> |
