aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs
diff options
context:
space:
mode:
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.cs220
1 files changed, 131 insertions, 89 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 ac54a714a..36f7940ed 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
@@ -499,7 +499,11 @@ namespace Tango.MachineStudio.Technician.ViewModels
if (prop != null)
{
var points = GetDataArray(techMonitor, prop.GetValue(data.Monitors));
- sr.PushData(points, delta_base, delta);
+
+ if (points.Count > 0)
+ {
+ sr.PushData(points, delta_base, delta);
+ }
}
}
@@ -512,15 +516,20 @@ namespace Tango.MachineStudio.Technician.ViewModels
if (prop != null)
{
var points = GetDataMatrix(techMonitor, prop.GetValue(data.Monitors));
- mr.PushData(points, delta_base, delta);
+ if (points.Count > 0)
+ {
+ mr.PushData(points, delta_base, delta);
+ }
}
}
lock (_elementsLock)
{
var elements = Tabs.SelectMany(x => x.Elements).ToList();
+ var selectedTabElements = SelectedTab.Elements.ToList();
- foreach (var item in elements.Select(x => x.HostedElement as TechItem))
+ //Can be updated only when visible
+ foreach (var item in selectedTabElements.Select(x => x.HostedElement as TechItem))
{
if (item.GetType() == typeof(MonitorItem))
{
@@ -550,7 +559,79 @@ namespace Tango.MachineStudio.Technician.ViewModels
}
}
}
- else if (item.GetType() == typeof(SingleGraphItem))
+ else if (item.GetType() == typeof(DigitalOutItem))
+ {
+ DigitalOutItem digitalOutItem = item as DigitalOutItem;
+
+ var digitalPin = data.DigitalInterfaceStates.SingleOrDefault(x => x.InterfaceIO == (InterfaceIOs)digitalOutItem.TechIo.Code);
+
+ if (digitalPin != null)
+ {
+ digitalOutItem.EffectiveValue = digitalPin.Value;
+ }
+ }
+ else if (item.GetType() == typeof(DigitalInItem))
+ {
+ DigitalInItem digitalInItem = item as DigitalInItem;
+
+ var digitalPin = data.DigitalInterfaceStates.SingleOrDefault(x => x.InterfaceIO == (InterfaceIOs)digitalInItem.TechIo.Code);
+
+ if (digitalPin != null)
+ {
+ digitalInItem.Value = digitalPin.Value;
+ }
+ }
+ else if (item.GetType() == typeof(HeaterItem))
+ {
+ HeaterItem heaterItem = item as HeaterItem;
+
+ var heaterState = data.HeatersStates.SingleOrDefault(x => x.HeaterType == (HeaterType)heaterItem.TechHeater.Code);
+
+ if (heaterState != null)
+ {
+ heaterItem.HeaterState = heaterState;
+ }
+ }
+ else if (item.GetType() == typeof(ValveItem))
+ {
+ ValveItem valveItem = item as ValveItem;
+
+ var valveState = data.ValvesStates.SingleOrDefault(x => x.ValveType == (ValveType)valveItem.TechValve.Code);
+
+ if (valveState != null)
+ {
+ valveItem.EffectiveState = valveState.State;
+ }
+ }
+ else if (item.GetType() == typeof(BlowerItem))
+ {
+ BlowerItem blowerItem = item as BlowerItem;
+
+ if (data.Monitors.BlowerVoltage.Count > 0)
+ {
+ blowerItem.EffectiveActive = data.Monitors.BlowerVoltage.Last() > 0;
+ }
+ }
+ else if (item.GetType() == typeof(ControllerItem))
+ {
+ ControllerItem controllerItem = item as ControllerItem;
+
+ if (DateTime.Now > controllerItem.LastUpdateTime.AddMilliseconds(controllerItem.UpdateInterval))
+ {
+ var componentState = data.ComponentsStates.SingleOrDefault(x => (int)x.Component == controllerItem.TechController.Code);
+
+ if (componentState != null)
+ {
+ controllerItem.EffectiveValue = componentState.Value;
+ }
+ }
+ }
+ }
+
+ //Must be updated all the time.
+ foreach (var item in elements.Select(x => x.HostedElement as TechItem))
+ {
+ if (item.GetType() == typeof(SingleGraphItem))
{
SingleGraphItem graphItem = item as SingleGraphItem;
@@ -564,20 +645,23 @@ namespace Tango.MachineStudio.Technician.ViewModels
{
var points = GetDataArray(graphItem.TechMonitor, prop.GetValue(data.Monitors));
- List<TimeSpanDataPoint> times = new List<TimeSpanDataPoint>();
- var dPoints = points.Select(x => new DoubleDataPoint(x)).ToList();
-
- for (int i = 0; i < points.Count; i++)
+ if (points.Count > 0)
{
- times.Add(delta_base.Add(TimeSpan.FromMilliseconds((delta_mili / points.Count) * i)));
- }
+ List<TimeSpanDataPoint> times = new List<TimeSpanDataPoint>();
+ var dPoints = points.Select(x => new DoubleDataPoint(x)).ToList();
- controller.PushData(times, dPoints);
+ for (int i = 0; i < points.Count; i++)
+ {
+ times.Add(delta_base.Add(TimeSpan.FromMilliseconds((delta_mili / points.Count) * i)));
+ }
- var _graph_recording = _single_graphs_recordings.SingleOrDefault(x => x.Tag == graphItem);
- if (_graph_recording != null)
- {
- _graph_recording.PushData(points, delta_base, delta);
+ controller.PushData(times, dPoints);
+
+ var _graph_recording = _single_graphs_recordings.SingleOrDefault(x => x.Tag == graphItem);
+ if (_graph_recording != null)
+ {
+ _graph_recording.PushData(points, delta_base, delta);
+ }
}
}
}
@@ -640,73 +724,6 @@ namespace Tango.MachineStudio.Technician.ViewModels
}
}
}
- else if (item.GetType() == typeof(DigitalOutItem))
- {
- DigitalOutItem digitalOutItem = item as DigitalOutItem;
-
- var digitalPin = data.DigitalInterfaceStates.SingleOrDefault(x => x.InterfaceIO == (InterfaceIOs)digitalOutItem.TechIo.Code);
-
- if (digitalPin != null)
- {
- digitalOutItem.EffectiveValue = digitalPin.Value;
- }
- }
- else if (item.GetType() == typeof(DigitalInItem))
- {
- DigitalInItem digitalInItem = item as DigitalInItem;
-
- var digitalPin = data.DigitalInterfaceStates.SingleOrDefault(x => x.InterfaceIO == (InterfaceIOs)digitalInItem.TechIo.Code);
-
- if (digitalPin != null)
- {
- digitalInItem.Value = digitalPin.Value;
- }
- }
- else if (item.GetType() == typeof(HeaterItem))
- {
- HeaterItem heaterItem = item as HeaterItem;
-
- var heaterState = data.HeatersStates.SingleOrDefault(x => x.HeaterType == (HeaterType)heaterItem.TechHeater.Code);
-
- if (heaterState != null)
- {
- heaterItem.HeaterState = heaterState;
- }
- }
- else if (item.GetType() == typeof(ValveItem))
- {
- ValveItem valveItem = item as ValveItem;
-
- var valveState = data.ValvesStates.SingleOrDefault(x => x.ValveType == (ValveType)valveItem.TechValve.Code);
-
- if (valveState != null)
- {
- valveItem.EffectiveState = valveState.State;
- }
- }
- else if (item.GetType() == typeof(BlowerItem))
- {
- BlowerItem blowerItem = item as BlowerItem;
-
- if (data.Monitors.BlowerVoltage.Count > 0)
- {
- blowerItem.EffectiveActive = data.Monitors.BlowerVoltage.Last() > 0;
- }
- }
- else if (item.GetType() == typeof(ControllerItem))
- {
- ControllerItem controllerItem = item as ControllerItem;
-
- if (DateTime.Now > controllerItem.LastUpdateTime.AddMilliseconds(controllerItem.UpdateInterval))
- {
- var componentState = data.ComponentsStates.SingleOrDefault(x => (int)x.Component == controllerItem.TechController.Code);
-
- if (componentState != null)
- {
- controllerItem.EffectiveValue = componentState.Value;
- }
- }
- }
}
}
}
@@ -2117,16 +2134,41 @@ namespace Tango.MachineStudio.Technician.ViewModels
{
var to_remove = Tabs.ToList();
- if (AddNewTab())
+ var name = _notification.ShowTextInput("Enter project name", "Project Name", "untitled");
+
+ if (String.IsNullOrWhiteSpace(name))
{
- _singleControllers.Clear();
- _multiControllers.Clear();
+ return;
+ }
- foreach (var tab in to_remove)
- {
- Tabs.Remove(tab);
- }
+ SaveFileDialog dlg = new SaveFileDialog();
+ dlg.Title = "Select Technician Project Location";
+ dlg.Filter = "Technician Project File|*.tpf";
+ dlg.DefaultExt = ".tpf";
+ dlg.FileName = name;
+
+ if (!dlg.ShowDialog().Value)
+ {
+ return;
+ }
+
+ _singleControllers.Clear();
+ _multiControllers.Clear();
+ _multi_graph_recordings.Clear();
+ _multi_monitors_recordings.Clear();
+ _single_graphs_recordings.Clear();
+ _single_monitors_recordings.Clear();
+
+ foreach (var tab in to_remove)
+ {
+ Tabs.Remove(tab);
}
+
+ AddNewTab(name);
+
+ _lastTechProjectFile = dlg.FileName;
+ File.AppendAllText(_lastTechProjectFile, "");
+ SaveProject();
}
/// <summary>