aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-08-02 15:05:44 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-08-02 15:05:44 +0300
commit05fca4fe321600c4a9c0698b1e4c161e3ed79c9f (patch)
treefda984b5a9ff3a3980bf9b6b5a560b3edaa4e668 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels
parent3499090dce4acc5b5d4bbb02f07f138950790b25 (diff)
downloadTango-05fca4fe321600c4a9c0698b1e4c161e3ed79c9f.tar.gz
Tango-05fca4fe321600c4a9c0698b1e4c161e3ed79c9f.zip
Added Tango.CSV project!
Implemented Single/Multi graph recording to CSV!
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs121
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>