aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-09-26 19:55:00 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-09-26 19:55:00 +0300
commit62aaf350dd5645c3778a0a40ea3ff66280e1bf8c (patch)
treea1403713dd0245772ac99c1c6b86a24042bee130 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs
parentf7c202490ad028ed6d501a4486a339e4e21eb404 (diff)
downloadTango-62aaf350dd5645c3778a0a40ea3ff66280e1bf8c.tar.gz
Tango-62aaf350dd5645c3778a0a40ea3ff66280e1bf8c.zip
Implemented Monitor Recorder element !!!
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.cs155
1 files changed, 121 insertions, 34 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 738e871c9..9051b5fa9 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
@@ -34,6 +34,7 @@ using Tango.Core.Commands;
using Tango.MachineStudio.Technician.Helpers;
using Tango.MachineStudio.Technician.Models;
using Tango.Logging;
+using Microsoft.WindowsAPICodePack.Dialogs;
namespace Tango.MachineStudio.Technician.ViewModels
{
@@ -56,8 +57,10 @@ 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;
+ private List<SingleTechRecordingData> _single_graphs_recordings;
+ private List<MultiTechRecordingData> _multi_graph_recordings;
+ private List<SingleTechRecordingData> _single_monitors_recordings;
+ private List<MultiTechRecordingData> _multi_monitors_recordings;
#region Properties
@@ -276,8 +279,11 @@ namespace Tango.MachineStudio.Technician.ViewModels
_settings = SettingsManager.Default.GetOrCreate<TechnicianModuleSettings>();
- _single_graphs_recordings = new List<SingleTechRecordingData<SingleGraphItem>>();
- _multi_graph_recordings = new List<MultiTechRecordingData<MultiGraphItem>>();
+ _single_graphs_recordings = new List<SingleTechRecordingData>();
+ _multi_graph_recordings = new List<MultiTechRecordingData>();
+
+ _single_monitors_recordings = new List<SingleTechRecordingData>();
+ _multi_monitors_recordings = new List<MultiTechRecordingData>();
GraphsDurationSeconds = _settings.GraphsDuration;
TempGraphsDurationSeconds = GraphsDurationSeconds;
@@ -378,6 +384,28 @@ namespace Tango.MachineStudio.Technician.ViewModels
}
+ foreach (var sr in _single_monitors_recordings)
+ {
+ var prop = _diagnoticsMonitorsDataProperties.SingleOrDefault(x => x.Name == (sr.Tag as TechMonitor).Name);
+
+ if (prop != null)
+ {
+ var points = GetDataArray((sr.Tag as TechMonitor), prop.GetValue(data.Monitors));
+ sr.PushData(points);
+ }
+ }
+
+ foreach (var mr in _multi_monitors_recordings)
+ {
+ var prop = _diagnoticsMonitorsDataProperties.SingleOrDefault(x => x.Name == (mr.Tag as TechMonitor).Name);
+
+ if (prop != null)
+ {
+ var points = GetDataMatrix((mr.Tag as TechMonitor), prop.GetValue(data.Monitors));
+ mr.PushData(points);
+ }
+ }
+
lock (_elementsLock)
{
var elements = Tabs.SelectMany(x => x.Elements).ToList();
@@ -435,7 +463,7 @@ namespace Tango.MachineStudio.Technician.ViewModels
controller.PushData(points);
- var _graph_recording = _single_graphs_recordings.SingleOrDefault(x => x.TechItem == graphItem);
+ var _graph_recording = _single_graphs_recordings.SingleOrDefault(x => x.Tag == graphItem);
if (_graph_recording != null)
{
_graph_recording.PushData(points);
@@ -469,7 +497,7 @@ namespace Tango.MachineStudio.Technician.ViewModels
controller.PushData(points);
- var _graph_recording = _multi_graph_recordings.SingleOrDefault(x => x.TechItem == graphItem);
+ var _graph_recording = _multi_graph_recordings.SingleOrDefault(x => x.Tag == graphItem);
if (_graph_recording != null)
{
_graph_recording.PushData(points);
@@ -720,6 +748,11 @@ namespace Tango.MachineStudio.Technician.ViewModels
{
CreateElement<TextElementEditor, TextItem, object>(bounds, null);
}
+ else if (item is MonitorRecorderItem)
+ {
+ var editor = CreateElement<MonitorRecorderElementEditor, MonitorRecorderItem, object>(bounds, null);
+ InitMonitorRecorderItem(editor.MonitorRecorderItem);
+ }
}
/// <summary>
@@ -869,6 +902,10 @@ namespace Tango.MachineStudio.Technician.ViewModels
{
CreateElement<TextElementEditor>(item);
}
+ else if (item is MonitorRecorderItem)
+ {
+ CreateElement<MonitorRecorderElementEditor>(item);
+ }
}
/// <summary>
@@ -881,20 +918,24 @@ namespace Tango.MachineStudio.Technician.ViewModels
{
if (element.HostedElement is SingleGraphItem)
{
- var _graph_recording = _single_graphs_recordings.SingleOrDefault(x => x.TechItem == element.HostedElement);
+ var _graph_recording = _single_graphs_recordings.SingleOrDefault(x => x.Tag == element.HostedElement);
if (_graph_recording != null)
{
+ (_graph_recording.Tag as SingleGraphItem).StopRecording();
_single_graphs_recordings.Remove(_graph_recording);
+ _graph_recording.Dispose();
}
}
else if (element.HostedElement is MultiGraphItem)
{
- var _graph_recording = _multi_graph_recordings.SingleOrDefault(x => x.TechItem == element.HostedElement);
+ var _graph_recording = _multi_graph_recordings.SingleOrDefault(x => x.Tag == element.HostedElement);
if (_graph_recording != null)
{
+ (_graph_recording.Tag as MultiGraphItem).StopRecording();
_multi_graph_recordings.Remove(_graph_recording);
+ _graph_recording.Dispose();
}
}
}
@@ -981,6 +1022,50 @@ namespace Tango.MachineStudio.Technician.ViewModels
#region Init Tech Items
+ private void InitMonitorRecorderItem(MonitorRecorderItem item)
+ {
+ item.RecordingStarted += () =>
+ {
+ CommonOpenFileDialog dlg = new CommonOpenFileDialog();
+ dlg.Title = "Select a folder to place all CSV files.";
+ dlg.IsFolderPicker = true;
+ if (dlg.ShowDialog() == CommonFileDialogResult.Ok)
+ {
+ foreach (var monitor in item.GetSelectedMonitors())
+ {
+ if (!monitor.MultiChannel)
+ {
+ _single_monitors_recordings.Add(new SingleTechRecordingData(monitor.Name, dlg.FileName + "\\" + monitor.Name + ".csv") { Tag = monitor });
+ }
+ else
+ {
+ _multi_monitors_recordings.Add(new MultiTechRecordingData(monitor.Name, monitor.ChannelCount, dlg.FileName + "\\" + monitor.Name + ".csv") { Tag = monitor });
+ }
+ item.StartRecording();
+ }
+ }
+ };
+
+ item.RecordingStopped += () =>
+ {
+ item.StopRecording();
+
+ foreach (var sr in _single_monitors_recordings)
+ {
+ sr.Dispose();
+ }
+
+ _single_monitors_recordings.Clear();
+
+ foreach (var mr in _multi_monitors_recordings)
+ {
+ mr.Dispose();
+ }
+
+ _multi_monitors_recordings.Clear();
+ };
+ }
+
/// <summary>
/// Initializes the blower item.
/// </summary>
@@ -1222,29 +1307,30 @@ namespace Tango.MachineStudio.Technician.ViewModels
item.RecordingStarted += () =>
{
- _single_graphs_recordings.Add(new SingleTechRecordingData<SingleGraphItem>(item));
+ 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)
+ {
+ _single_graphs_recordings.Add(new SingleTechRecordingData(item.TechName, dlg.FileName) { Tag = item });
+ item.StartRecording();
+ }
};
item.RecordingStopped += () =>
{
try
{
- var graph_recording = _single_graphs_recordings.SingleOrDefault(x => x.TechItem == item);
+ item.StopRecording();
+
+ var graph_recording = _single_graphs_recordings.SingleOrDefault(x => x.Tag == 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();
- }
+ graph_recording.Dispose();
}
}
catch (Exception ex)
@@ -1282,29 +1368,30 @@ namespace Tango.MachineStudio.Technician.ViewModels
item.RecordingStarted += () =>
{
- _multi_graph_recordings.Add(new MultiTechRecordingData<MultiGraphItem>(item, item.TechMonitor.ChannelCount));
+ 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)
+ {
+ _multi_graph_recordings.Add(new MultiTechRecordingData(item.TechName, item.TechMonitor.ChannelCount, dlg.FileName) { Tag = item });
+ item.StartRecording();
+ }
};
item.RecordingStopped += () =>
{
try
{
- var graph_recording = _multi_graph_recordings.SingleOrDefault(x => x.TechItem == item);
+ item.StopRecording();
+
+ var graph_recording = _multi_graph_recordings.SingleOrDefault(x => x.Tag == 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();
- }
+ graph_recording.Dispose();
}
}
catch (Exception ex)