aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI')
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyserResultChartData.cs74
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisPlotValue.cs14
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisService.cs40
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerAttribute.cs19
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultBase.cs75
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultProperty.cs14
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultValue.cs20
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/DispenserReader.cs71
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzer.cs30
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzerResult.cs21
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IReader.cs17
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/ProcessReader.cs116
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/DynamicSealingAnalyzer.cs97
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/FlowAnalyser.cs292
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PressureBuildUpAnalyser.cs61
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PrimingAnalyzer.cs71
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ProcessAnalyser.cs139
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ReliabilityTestAnalyser.cs15
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/SealingAnalyzer.cs79
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.config58
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml56
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml.cs48
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/FileHelper.cs44
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml198
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml.cs87
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserCsvRow.cs19
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSample.cs20
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSampleCommand.cs16
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/FlowRangeToTimeResults.xlsxbin15762 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ISample.cs12
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessCsvRow.cs17
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessSample.cs25
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/SettingsModel.cs147
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/AssemblyInfo.cs57
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.Designer.cs71
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.resx117
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.Designer.cs30
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.settings7
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Settings.cs92
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Tango.DispenserAnalyzer.UI.csproj246
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml213
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml.cs54
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/MainWindowVM.cs578
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/SettingsVM.cs132
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/packages.config7
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/ColorMine.dll.deploybin32256 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/DocumentFormat.OpenXml.dll.deploybin5697824 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EFCache.dll.deploybin35328 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EntityFramework.dll.deploybin5225168 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Google.Protobuf.dll.deploybin276480 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/LiteDB.dll.deploybin461824 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MahApps.Metro.dll.deploybin1146368 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignColors.dll.deploybin224256 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignThemes.Wpf.dll.deploybin4538880 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MathNet.Numerics.dll.deploybin1676824 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Newtonsoft.Json.dll.deploybin526336 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.Wpf.dll.deploybin160768 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.dll.deploybin549376 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp-WPF.dll.deploybin589312 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Charting.dll.deploybin80896 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Xps.dll.deploybin126464 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.dll.deploybin535040 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/SimpleValidator.dll.deploybin30208 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Data.SQLite.dll.deploybin345600 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.IO.Compression.dll.deploybin111984 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Windows.Interactivity.dll.deploybin55904 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.BL.dll.deploybin987136 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.CSV.dll.deploybin22016 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Core.dll.deploybin138240 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.application21
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.config.deploy58
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.deploybin61368 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.manifest425
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Documents.dll.deploybin20480 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DragAndDrop.dll.deploybin20480 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Logging.dll.deploybin37888 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.PMR.dll.deploybin1528832 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Settings.dll.deploybin9728 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.SharedUI.dll.deploybin147456 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Tango.DispenserAnalyzer.UI.application21
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/setup.exebin791480 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/twin.icobin32988 -> 0 bytes
82 files changed, 0 insertions, 4141 deletions
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyserResultChartData.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyserResultChartData.cs
deleted file mode 100644
index 54431968f..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyserResultChartData.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-using OxyPlot;
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.Core;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public class AnalyzerResultChartData : ExtendedObject
- {
- public ObservableCollection<DataPoint> Points { get; set; }
-
- public string Title { get; set; }
-
- private int _step;
- public int XStep
- {
- get { return _step; }
- set { _step = value; RaisePropertyChangedAuto(); }
- }
-
- private double _fromXAxis;
- public double FromXAxis
- {
- get { return _fromXAxis; }
- set { _fromXAxis = value; RaisePropertyChangedAuto(); }
- }
-
- private double _toXAxis;
- public double ToXAxis
- {
- get { return _toXAxis; }
- set { _toXAxis = value; RaisePropertyChangedAuto(); }
- }
-
- private double _fromYAxis;
- public double FromYAxis
- {
- get { return _fromYAxis; }
- set { _fromYAxis = value; RaisePropertyChangedAuto(); }
- }
-
- private double _toYAxis;
- public double ToYAxis
- {
- get { return _toYAxis; }
- set { _toYAxis = value; RaisePropertyChangedAuto(); }
- }
-
- public void UpdateData()
- {
- _toYAxis = Points.Max(x => x.Y) + 2;
- _fromYAxis = Points.Min(x => x.Y) - 1;
- _toXAxis = Points.Max(x => x.X);
- _fromXAxis = Points.Min(x => x.X);
-
- RaisePropertyChanged("Title");
- RaisePropertyChanged("Points");
- }
-
- public AnalyzerResultChartData()
- {
- Points = new ObservableCollection<DataPoint>();
- _fromYAxis = 0;
- _fromXAxis = 0;
- _toYAxis = 1;
- _toXAxis = 1;
- XStep = 1;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisPlotValue.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisPlotValue.cs
deleted file mode 100644
index 3c9fe8cab..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisPlotValue.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public class AnalysisPlotValue
- {
- public double X { get; set; }
- public double Y { get; set; }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisService.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisService.cs
deleted file mode 100644
index 0dbf9a83e..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisService.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.CSV;
-using Tango.DispenserAnalyzer.UI.Models;
-using System.Windows.Controls;
-using System.Windows.Media;
-using System.IO;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public class AnalysisService
- {
- public static dynamic GetAnalyzer(String fileName)
- {
- string filename = Path.GetFileNameWithoutExtension(fileName);
-
- var analyzerTypes = typeof(AnalysisService).Assembly.GetTypes().Where(x => typeof(IBaseAnalyzer).IsAssignableFrom(x)).ToList();
- var analyzerType = analyzerTypes.FirstOrDefault(x => filename.StartsWith(x.GetCustomAttribute<AnalyzerAttribute>().Name, StringComparison.OrdinalIgnoreCase) );
- if(analyzerType == null)
- {//in case name of test is not first word
- analyzerType = analyzerTypes.FirstOrDefault(x => filename.IndexOf(x.GetCustomAttribute<AnalyzerAttribute>().Name, StringComparison.OrdinalIgnoreCase) >= 0);
- }
-
- return (analyzerType != null) ? Activator.CreateInstance(analyzerType) : null;
-
- }
- public static string GetTestName(String fileName)
- {
- var analyzerTypes = typeof(AnalysisService).Assembly.GetTypes().Where(x => typeof(IBaseAnalyzer).IsAssignableFrom(x)).ToList();
- var analyzerType = analyzerTypes.FirstOrDefault(x => fileName.IndexOf(x.GetCustomAttribute<AnalyzerAttribute>().Name, StringComparison.OrdinalIgnoreCase) >= 0);
-
- return analyzerType.GetCustomAttribute<AnalyzerAttribute>().Name;
- }
- }
-
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerAttribute.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerAttribute.cs
deleted file mode 100644
index 2a1d3323e..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerAttribute.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Interface)]
- public class AnalyzerAttribute : Attribute
- {
- public string Name { get; set; }
-
- public AnalyzerAttribute(string name)
- {
- Name = name;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultBase.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultBase.cs
deleted file mode 100644
index bc82d2215..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultBase.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Globalization;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
-using OxyPlot;
-using Tango.Core;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public class AnalyzerResultBase : ExtendedObject, IAnalyzerResult
- {
- public AnalyzerResultValue Result { get; set; }
- // public List<AnalysisPlotValue> PlotValues { get; set; }
- //public ObservableCollection<DataPoint> Points { get; set; }
-
- public List<AnalyzerResultProperty> Properties
- {
- get
- {
- List<AnalyzerResultProperty> props = new List<AnalyzerResultProperty>();
- if (this.GetType() == typeof(AnalyzerResultBase))
- return props;
-
- foreach (var prop in this.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).OrderByAlphaNumeric(x => x.Name))
- {
- AnalyzerResultProperty aProp = new AnalyzerResultProperty();
- if (aProp.GetType() == typeof(IEnumerable<>))
- {
- continue;
- }
- if (prop.GetCustomAttribute<DescriptionAttribute>() != null)
- {
- aProp.Name = prop.GetCustomAttribute<DescriptionAttribute>().Description;
- //}
- //else
- //{
- // aProp.Name = prop.Name;
- //}
- object val = prop.GetValue(this);
- aProp.Value = (val is double) ? ((double)val).ToString("F") : val.ToString();
- props.Add(aProp);
- }
-
- }
-
- return props;
- }
- }
-
- public bool IsShowPlotResult { get; set; }
- public bool IsShowLineChartResult { get; set; }
- public AnalyzerResultChartData RangeToCountChart { get; set; }
- public AnalyzerResultChartData RangeToTimeChart { get; set; }
- public AnalyzerResultChartData LineChart { get; set; }
- public bool BackgroundMode { get; set; }
-
-
- public AnalyzerResultBase()
- {
- //PlotValues = new List<AnalysisPlotValue>();
- Result = AnalyzerResultValue.Undetermined;
- IsShowPlotResult = false;
- IsShowLineChartResult = false;
- RangeToCountChart = new AnalyzerResultChartData();
- RangeToTimeChart = new AnalyzerResultChartData();
- LineChart = new AnalyzerResultChartData();
- BackgroundMode = false;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultProperty.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultProperty.cs
deleted file mode 100644
index f2548746e..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultProperty.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public class AnalyzerResultProperty
- {
- public String Name { get; set; }
- public String Value { get; set; }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultValue.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultValue.cs
deleted file mode 100644
index a0cc2c2c7..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultValue.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public enum AnalyzerResultValue
- {
- //Undetermined
- [Description("Information")]
- Undetermined,
- [Description("Check")]
- Passed,
- [Description("CloseCircle")]
- Failed,
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/DispenserReader.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/DispenserReader.cs
deleted file mode 100644
index e62af4e46..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/DispenserReader.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.CSV;
-using Tango.DispenserAnalyzer.UI.Models;
-using OxyPlot.Annotations;
-using System.Windows.Media;
-using System.Diagnostics;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public class DispenserReader: IReader<DispenserSample>
- {
- public List<DispenserSample> ReadScvFile(String filePath, List<OxyPlot.Wpf.LineAnnotation> annotations)
- {
- List<DispenserCsvRow> data = CsvFile.Read<DispenserCsvRow>(new CsvSource(filePath)).ToList();
- List<DispenserSample> samples = new List<DispenserSample>();
- int index = 0;
- int last_labelIndex = 0;
- foreach (var item in data)
- {
- double pressure = 0;
- if (item.Label == "Label")
- {
- item.Pressure = "0";
- item.Command = "Label";
- if (last_labelIndex == 0 || last_labelIndex < (index + 5))
- {
- last_labelIndex = index;
-
- OxyPlot.Wpf.LineAnnotation _line = new OxyPlot.Wpf.LineAnnotation()
- {
- StrokeThickness = 1,
- Color = Color.FromRgb(255, 5, 5),
- Type = LineAnnotationType.Vertical,
- Text = index.ToString(),
- X = index,
- };
- annotations.Add(_line);
-
- }
- }
- if (double.TryParse(item.Pressure, out pressure) || !String.IsNullOrWhiteSpace(item.Command))
- {
- samples.Add(new DispenserSample()
- {
- Pressure = pressure,
- Command = String.IsNullOrWhiteSpace(item.Command) ? null : item.Command,
- Index = index
- });
- index++;
- }
- }
- return samples;
- }
-
- public List<string> GetTitles(String filePath)
- {
- string xAxistitle = "Time[100 msec]";
- string yAxistitle = "Pressure [mbar]";
- return new List<string>() { xAxistitle, yAxistitle };
- }
-
- public bool PrintResultsToPDFFile()
- {
- return true ;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzer.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzer.cs
deleted file mode 100644
index fd3b3c267..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzer.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Models;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- [Analyzer("BaseInterface")]
- public interface IBaseAnalyzer
- {
-
- }
- [Analyzer("INTERFACE")]
- public interface IAnalyzer<T>: IBaseAnalyzer
- {
- IReader<T> Reader { get; set; }
- Task<List<IAnalyzerResult>> Process(List<T> csvRows, bool backgroundMode);
- void GetPoints(List<T> samples, IList<OxyPlot.DataPoint> points);
- }
- [Analyzer("DISPENSERINTERFACE")]
- public interface IDispenserDispenserAnalyser : IAnalyzer<DispenserSample>
- {
- }
- [Analyzer("PROCESSINTERFACE")]
- public interface IProcessAnalyzer : IAnalyzer<ProcessSample>
- {
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzerResult.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzerResult.cs
deleted file mode 100644
index 5203828e5..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzerResult.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using OxyPlot;
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public interface IAnalyzerResult
- {
- AnalyzerResultValue Result { get; set; }
-
- bool BackgroundMode { get; set; }
- //List<AnalysisPlotValue> PlotValues { get; set; }
-
- //AnalyzerResultChartData RangeToCountChart { get; set; }
- //AnalyzerResultChartData RangeToTimeChart { get; set; }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IReader.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IReader.cs
deleted file mode 100644
index 35c7f8f76..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IReader.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public interface IReader<T>
- {
- List<T> ReadScvFile(String filePath, List<OxyPlot.Wpf.LineAnnotation> annotations);
-
- List<string> GetTitles(String filePath);
-
- bool PrintResultsToPDFFile();
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/ProcessReader.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/ProcessReader.cs
deleted file mode 100644
index b2e6f0388..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/ProcessReader.cs
+++ /dev/null
@@ -1,116 +0,0 @@
-using OxyPlot;
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.CSV;
-using Tango.DispenserAnalyzer.UI.Models;
-using OxyPlot.Annotations;
-using System.Windows.Media;
-
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public class ProcessReader: IReader<ProcessSample>
- {
- public List<ProcessSample> ReadScvFile(String filePath, List<OxyPlot.Wpf.LineAnnotation> annotations)
- {
- List<ProcessSample> samples = new List<ProcessSample>();
- try
- {
- List<ProcessCsvRow> data = CsvFile.Read<ProcessCsvRow>(new CsvSource(filePath)).ToList();
-
- double index = 0;
- double delta = 0;
- if (data.Count > 2)
- {
- DateTime time1;
- DateTime time2;
- if (DateTime.TryParse(data[0].Time, out time1) && DateTime.TryParse(data[1].Time, out time2))
- {
- int m1 = time1.Millisecond;
- int m2 = time2.Millisecond;
- delta = (time2 - time1).Milliseconds / 100;
- }
- }
- delta = Settings.GetValueByName(AnalyzerSettingsEnum.TimeInterval);
- if(delta == 0)
- return samples;
-
- int endPoint = (int)(Settings.GetValueByName(AnalyzerSettingsEnum.EndCalculation) / delta);
- foreach (var item in data)
- {
- double dValue = 0;
-
- if (double.TryParse(item.Value, out dValue))
- {
- DateTime time;
- DateTime.TryParse(item.Time, out time);
- int mil = time.Millisecond;
- samples.Add(new ProcessSample()
- {
- Time = time,
- Value = dValue,
- TimeIntervalSec = index,
- });
- index += delta;
- }
- }
- OxyPlot.Wpf.LineAnnotation _line1 = new OxyPlot.Wpf.LineAnnotation()
- {
- StrokeThickness = 1,
- Color = Color.FromRgb(255, 5, 5),
- Type = LineAnnotationType.Vertical,
- Text = index.ToString(),
- X = Settings.GetValueByName(AnalyzerSettingsEnum.StartCalculation)
- };
- annotations.Add(_line1);
- OxyPlot.Wpf.LineAnnotation _line2 = new OxyPlot.Wpf.LineAnnotation()
- {
- StrokeThickness = 1,
- Color = Color.FromRgb(255, 5, 5),
- Type = LineAnnotationType.Vertical,
- Text = index.ToString(),
- X = Settings.GetValueByName(AnalyzerSettingsEnum.EndCalculation)
- };
- annotations.Add(_line2);
-
-
- return samples;
- }
- catch (Exception ex)
- {
- Debug.Write("Exception in ProcessReader ReadScvFile" + ex.Message);
- return samples;
- }
- }
-
- public List<string> GetScvColumns(String filePath)
- {
- try
- {
- return CsvFile.GetColumns<ProcessCsvRow>(new CsvSource(filePath)).ToList();
- }
- catch (Exception ex)
- {
- Debug.Write("Exception in ProcessReader ReadScvFile" + ex.Message);
- return null;
- }
- }
-
- public List<string> GetTitles(String filePath)
- {
- List<string> columns = GetScvColumns(filePath);
- string xAxistitle = "Time [sec]";
- string yAxistitle = columns!= null && columns.Count > 1 ? columns[1] : "Values";
- return new List<string>() { xAxistitle, yAxistitle };
- }
-
- public bool PrintResultsToPDFFile()
- {
- return false;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/DynamicSealingAnalyzer.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/DynamicSealingAnalyzer.cs
deleted file mode 100644
index d440f42c3..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/DynamicSealingAnalyzer.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Analysis;
-using Tango.DispenserAnalyzer.UI.Models;
-
-namespace Tango.DispenserAnalyzer.UI.Analyzers
-{
- [Analyzer("dynamic")]
- public class DynamicSealingAnalzyer : IDispenserDispenserAnalyser
- {
- private IReader<DispenserSample> _reader;
- public IReader<DispenserSample> Reader
- {
- get { return _reader; }
- set { _reader = value; }
- }
- public DynamicSealingAnalzyer()
- {
- Reader = new DispenserReader();
- }
-
- public Task<List<IAnalyzerResult>> Process(List<DispenserSample> csvRows, bool backgroundMode)
- {
- return Task.Factory.StartNew<List<IAnalyzerResult>>(() =>
- {
- List<IAnalyzerResult> results = new List<IAnalyzerResult>();
- List<DispenserSample> commands = csvRows.Where(x => x.Command != null && x.Command.ToLower().Contains("label")).ToList<DispenserSample>();
-
- var pairs = commands.Select((x, i) => new { Index = i, Value = x }).GroupBy(x => x.Index / 2).Select(x => x.Select(v => v.Value).ToList()).ToList();
-
- //dynamic test
- if (pairs.Count > 0 && pairs[0].Count > 1)
- {
- DynamicSealingAnalyzerResult result = new DynamicSealingAnalyzerResult();
- List<DispenserSample> rangeTestValues = csvRows.Where(x => x.Index > pairs[0][0].Index && x.Index < pairs[0][1].Index).ToList();
- int period = 10;
- result.Result = AnalyzerResultValue.Passed;
- //var sum_average = Enumerable.Range(0, rangeTestValues.Count - period).Select(n => rangeTestValues.Select(x=>x.Pressure).Skip(n).Take(periodLength).Average()).ToList();
- for (int counter = 0; counter <= rangeTestValues.Count - period; )
- {
- var sum1 = rangeTestValues.Skip(counter++).Take(period).Average(t => t.Pressure);
- var sum2 = rangeTestValues.Skip(counter++).Take(period).Average(t => t.Pressure);
- if(sum1 > sum2 && sum1 - sum2 > 8)
- {
- result.DynamicSealingResult = "test failed";
- result.Result = AnalyzerResultValue.Failed;
- break;
- }
- }
- results.Add(result);
- }
- SealingAnalyzerResult sealingAnalyzerResult = new SealingAnalyzerResult();
- //start sealing test
- if (pairs.Count > 1 && pairs[1].Count > 1)
- {
- List<DispenserSample> rangeStartTestValues = csvRows.Where(x => x.Index > pairs[1][0].Index && x.Index < pairs[1][1].Index).ToList();
- sealingAnalyzerResult.AverageStartTestValue = rangeStartTestValues.Average(t => t.Pressure);
- }
- //end sealing of test
- if (pairs.Count > 2 && pairs[2].Count > 1)
- {
- List<DispenserSample> rangeEndTestValues = csvRows.Where(x => x.Index > pairs[2][0].Index && x.Index < pairs[2][1].Index).ToList();
- sealingAnalyzerResult.AverageEndTestValue = rangeEndTestValues.Average(t => t.Pressure);
- }
- sealingAnalyzerResult.AbsoluteTestValue = Math.Abs(sealingAnalyzerResult.AverageEndTestValue - sealingAnalyzerResult.AverageStartTestValue);
- sealingAnalyzerResult.Result = sealingAnalyzerResult.AbsoluteTestValue < 8 ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed;
- results.Add(sealingAnalyzerResult);
- return results;
- });
- }
-
- public void GetPoints(List<DispenserSample> samples, IList<OxyPlot.DataPoint> points)
- {
- samples.ForEach(x =>
- {
- if (x.Pressure != 0.0)
- { points.Add(new OxyPlot.DataPoint(x.Index, x.Pressure)); }
- });
- }
-
- public class DynamicSealingAnalyzerResult : AnalyzerResultBase
- {
- [Description("Dynamic sealing result")]
- public string DynamicSealingResult { get; set; }
-
- public DynamicSealingAnalyzerResult()
- {
- DynamicSealingResult = "test succeed";
- Result = AnalyzerResultValue.Undetermined;
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/FlowAnalyser.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/FlowAnalyser.cs
deleted file mode 100644
index 213f4e4f0..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/FlowAnalyser.cs
+++ /dev/null
@@ -1,292 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Analysis;
-using Tango.DispenserAnalyzer.UI.Models;
-using MathNet.Numerics.LinearAlgebra;
-using System.Linq.Expressions;
-using System.Diagnostics;
-using OxyPlot;
-using System.Collections.ObjectModel;
-using Tango.Documents;
-using System.IO;
-using Tango.Core.Helpers;
-
-namespace Tango.DispenserAnalyzer.UI.Analyzers
-{
- [Analyzer("flow")]
-
- public class FlowAnalyser : IDispenserDispenserAnalyser
- {
- private IReader<DispenserSample> _reader;
- public IReader<DispenserSample> Reader
- {
- get { return _reader; }
- set { _reader = value; }
- }
-
-
- public FlowAnalyser()
- {
- Reader = new DispenserReader();
- }
-
- public Task<List<IAnalyzerResult>> Process(List<DispenserSample> csvRows, bool backgroundMode)
- {
- return Task.Factory.StartNew<List<IAnalyzerResult>>(() =>
- {
- List<IAnalyzerResult> results = new List<IAnalyzerResult>();
- List<DispenserSample> commands = csvRows.Where(x => x.Command != null && x.Command.ToLower().Contains("label")).ToList<DispenserSample>();
- var pairs = commands.Select((x, i) => new { Index = i, Value = x }).GroupBy(x => x.Index/2 ).Select(x => x.Select(v => v.Value).ToList()).ToList();
- MovingAverageFilter filter = new MovingAverageFilter();
- int flowtestNumber = 0;
- for (int index = 0; index < pairs.Count(); index++)
- {
- var pair = pairs[index];
- if (pair.Count != 2)
- continue;
-
- List<DispenserSample> rangeTestValues = csvRows.Where(x => x.Index > pair[0].Index && x.Index < pair[1].Index).ToList();
-
- if (index % 2 == 1)//testing Flow-error
- {
-
- List<DispenserSample> filteredValues = rangeTestValues.Skip((int)Settings.GetValueByName(AnalyzerSettingsEnum.ExcludeAnalysis)).ToList();
-
- //Move Average data
- List<Task> tasks = new List<Task>();
- int calc_count = (int)filteredValues.Count() / 4;
- int start_index = 0;
- while (start_index < filteredValues.Count())
- {
- int calc_amount = (start_index + calc_count) >= (filteredValues.Count() - 4) ? filteredValues.Count() - start_index : calc_count;
- var source_filter = filteredValues.Skip(start_index).Take(calc_amount).ToList();
- tasks.Add(Task.Run(() =>
- {
- filter.Filtering(source_filter);
- }));
- start_index += calc_amount;
- }
- Task.WaitAll(tasks.ToArray());
-
- //calculate difference Max Min values for each 300 values
- int periodCalcMaxMin = (int)Settings.GetValueByName(AnalyzerSettingsEnum.MaxMinRange);
- int intervalCalcMaxMin = (int)Settings.GetValueByName(AnalyzerSettingsEnum.MaxMinIntervals);
- List<int> differenceMaxMin = new List<int>();
- List<int> differenceMaxMinToLocationArr = new List<int>();
- int location_index = 0;
- for (int i = 0; i < (filteredValues.Count - periodCalcMaxMin); i+= intervalCalcMaxMin)
- {
- var rangeItems =(filteredValues.Skip(i).Take(periodCalcMaxMin).ToList());
- int range = (int)(rangeItems.Max(t => t.Pressure) - rangeItems.Min(t => t.Pressure));
- differenceMaxMin.Add(range);
-
- differenceMaxMinToLocationArr.Add(++location_index);
- }
- FlowAverageAnalyzerResult averageResult = new FlowAverageAnalyzerResult();
- averageResult.BackgroundMode = backgroundMode;
- averageResult.AverageValue = filteredValues.Average(t => t.Pressure);
- averageResult.Result = (averageResult.AverageValue <= Settings.GetValueByName(AnalyzerSettingsEnum.AvgMaxValue) && averageResult.AverageValue >= Settings.GetValueByName(AnalyzerSettingsEnum.AvgMinValue)) ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed;
- results.Add(averageResult);
-
- FlowAnalyzerResult result = new FlowAnalyzerResult(++flowtestNumber);
- result.BackgroundMode = backgroundMode;
- result.AverageValue = averageResult.AverageValue;
- result.SetLocalErrors(differenceMaxMin, differenceMaxMinToLocationArr);
- results.Add(result);
- }
- else//testing PBU
- {
- PrimingAnalyzerResult result = new PrimingAnalyzerResult();
- result.BackgroundMode = backgroundMode;
- int avgMinIndex = rangeTestValues.Select(x => x.Index).Min();
- int avgMaxIndex = rangeTestValues.Select(x => x.Index).Max();
- double totalsec = TimeSpan.FromMilliseconds((avgMaxIndex - avgMinIndex) * 100).TotalSeconds;
- result.Time = totalsec.ToString() + $" sec (succeed for period < {AnalyzerSettingsEnum.FlowPBUPassFail})"; ;
- result.Result = (totalsec < Settings.GetValueByName(AnalyzerSettingsEnum.FlowPBUPassFail)) ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed;
- results.Add(result);
- }
- }
-
- return results;
- });
- }
-
- public void GetPoints(List<DispenserSample> samples, IList<OxyPlot.DataPoint> points)
- {
- samples.ForEach(x =>
- {
- if (x.Pressure != 0.0)
- { points.Add(new OxyPlot.DataPoint(x.Index, x.Pressure)); }
- });
- }
-
- public class FlowAverageAnalyzerResult : AnalyzerResultBase
- {
- [Description("Average Value")]
- public double AverageValue { get; set; }
- public FlowAverageAnalyzerResult() : base()
- {
- AverageValue = 0.0;
- Result = AnalyzerResultValue.Undetermined;
- }
- }
-
-
- public class FlowAnalyzerResult : AnalyzerResultBase
- {
- #region Properties
-
- [Description("Max Error")]
- public string LocalErrors { get; set; }
-
- public double AverageValue { get; set; }
-
- public int TestNumber { get; set; }
-
- #endregion Properties
-
- public FlowAnalyzerResult(int testNumber) :base()
- {
- AverageValue = 0.0;
- Result = AnalyzerResultValue.Undetermined;
- TestNumber = testNumber;
- }
-
- /// <summary>
- /// Calculate result, max error. Set oxy plot column chart.
- /// </summary>
- /// <param name="differenceMaxMin">The difference maximum minimum.</param>
- public void SetLocalErrors(List<int> differenceMaxMin, List<int> differenceMaxMinToLocationArr)
- {
- // int count = differenceMaxMin.Where(x => x > 25 ).Count();
- int max_key = FindMaxErrorObject(differenceMaxMin);
- if (!BackgroundMode)
- {
- var points = RangeToCountChart.Points;
- points.Clear();
- for (int i = 0; i <= max_key; i++)
- {
- int val = differenceMaxMin.Count(x => x == i);
- if(val > 0 || points.Count > 0)
- {
- points.Add(new DataPoint(i, val));
- }
- }
- this.IsShowPlotResult = true;
- RangeToCountChart.Title = $"Local error histogram {TestNumber}";
- RangeToCountChart.UpdateData();
- }
- var rangeToTimePoints = RangeToTimeChart.Points;
- rangeToTimePoints.Clear();
- for(int y = 0; y < differenceMaxMinToLocationArr.Count && y < differenceMaxMin.Count; y++)
- {
- rangeToTimePoints.Add(new DataPoint(differenceMaxMinToLocationArr.ElementAt(y), differenceMaxMin.ElementAt(y)));
- }
- if (!BackgroundMode)
- {
- RangeToTimeChart.Title = $"Local error vs position {TestNumber}";
- RangeToTimeChart.UpdateData();
- }
-
- string filename = FileHelper.GetFileToSaveFlowRangeToTimeData(TestNumber);
- if(filename.IsNotNullOrEmpty() && rangeToTimePoints.Count > 0)
- {
- ExportnDataToExcel(rangeToTimePoints.ToList(), filename);
- }
- }
-
- private double BuildMeasurementError(List<int> range_values)
- {
- int count = range_values.Count();
- return (count - (int)Settings.GetValueByName(AnalyzerSettingsEnum.TakeOffMaxMin));
- }
-
- /// <summary>
- /// Finds the maximum error object. Init LocalErrors message. Return max range value.
- /// </summary>
- private int FindMaxErrorObject(List<int> range_values)
- {
- var countValArr = range_values.GroupBy(x => x).Select(t => new { Key = t.Key, Value = t.Count() }).OrderBy(x=>x.Key).ToArray();
- double merror = Settings.GetValueByName(AnalyzerSettingsEnum.TakeOffMaxMin);// BuildMeasurementError(range_values);
- double sum = 0;
- int max_key = 0;
- int range = 0;
- for (int i = countValArr.Count() - 1; i >= 0; i--)
- {
- sum += countValArr[i].Value;
- if (max_key == 0)
- max_key = (int)countValArr[i].Key;
- if (sum > merror)
- {
- double persentageOfError = countValArr[i].Key / AverageValue * 100;
- range = (int)countValArr[i].Key;
- int occurrence = countValArr[i].Value;
- LocalErrors = $" {persentageOfError.ToString("F2")}% where max local error = {range.ToString()} and occurrence = {occurrence.ToString()}";
- break;
- }
- }
-
- var res = range / AverageValue * 100;
- Result = res <= Settings.GetValueByName(AnalyzerSettingsEnum.MaxError) ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed;
- return max_key;
- }
-
- /// <summary>
- /// Exports the calibration data to excel.
- /// </summary>
- /// <param name="calibrationPoints">The calibration points.</param>
- /// <param name="fileName">Name of the file.</param>
- public static void ExportnDataToExcel(List<DataPoint> dataPoints, String fileName)
- {
- try
- {
- CreateDataExcelTemplate(fileName);
-
- using (ExcelWriter writer = new ExcelWriter(fileName))
- {
- writer.UpdateTableSize("RangeToTimeData", "A1:B" + (dataPoints.Count + 2).ToString());
- writer.WriteData(dataPoints, "RangeToTimeData");
- }
- }
- catch (Exception ex)
- {
- Debug.WriteLine("Error: ", ex.Message);
- }
- }
-
- /// <summary>
- /// Creates the calibration data excel template.
- /// </summary>
- /// <param name="fileName">Name of the file.</param>
- public static void CreateDataExcelTemplate(String fileName)
- {
- var stream = EmbeddedResourceHelper.GetEmbeddedResourceStream("Tango.DispenserAnalyzer.UI.Models.FlowRangeToTimeResults.xlsx");
-
- using (FileStream fs = new FileStream(fileName, FileMode.Create))
- {
- stream.Seek(0, SeekOrigin.Begin);
- stream.CopyTo(fs);
- }
- }
- }
-
- public class MovingAverageFilter
- {
- public MovingAverageFilter()
- {
- }
- public void Filtering(List<DispenserSample> source)
- {
- int periodAverage = 5;
- for (int i = 0; i < (source.Count - 5); i++)
- {
- source[i].Pressure = source.Skip(i).Take(periodAverage).Average(x => x.Pressure);
- }
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PressureBuildUpAnalyser.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PressureBuildUpAnalyser.cs
deleted file mode 100644
index 9288eb2ad..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PressureBuildUpAnalyser.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Analysis;
-using Tango.DispenserAnalyzer.UI.Models;
-
-namespace Tango.DispenserAnalyzer.UI.Analyzers
-{
- [Analyzer("pressure build up")]
- public class PressureBuildUpAnalyser : IDispenserDispenserAnalyser
- {
- private IReader<DispenserSample> _reader;
- public IReader<DispenserSample> Reader
- {
- get { return _reader; }
- set { _reader = value; }
- }
-
- public PressureBuildUpAnalyser()
- {
- Reader = new DispenserReader();
- }
- public Task<List<IAnalyzerResult>> Process(List<DispenserSample> csvRows, bool backgroundMode)
- {
- return Task.Factory.StartNew<List<IAnalyzerResult>>(() =>
- {
- List<IAnalyzerResult> results = new List<IAnalyzerResult>();
- List<DispenserSample> commands = csvRows.Where(x => x.Command != null && x.Command.ToLower().Contains("label")).ToList<DispenserSample>();
- var pairs = commands.Select((x, i) => new { Index = i, Value = x }).GroupBy(x => x.Index / 2).Select(x => x.Select(v => v.Value).ToList()).ToList();
- for (int index = 0; index < pairs.Count(); index++)
- {
- var pair = pairs[index];
- List<DispenserSample> rangeTestValues = csvRows.Where(x => x.Index > pair[0].Index && x.Index < pair[1].Index).ToList();
- //testing PBU
- {
- PrimingAnalyzerResult result = new PrimingAnalyzerResult();
- int avgMinIndex = rangeTestValues.Select(x => x.Index).Min();
- int avgMaxIndex = rangeTestValues.Select(x => x.Index).Max();
- double totalsec = TimeSpan.FromMilliseconds((avgMaxIndex - avgMinIndex) * 100).TotalSeconds;
- result.Time = totalsec.ToString() + " sec";
- result.Result = (totalsec < Settings.GetValueByName(AnalyzerSettingsEnum.PBUPassFail)) ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed;
- results.Add(result);
- }
- }
- return results;
- });
- }
-
- public void GetPoints(List<DispenserSample> samples, IList<OxyPlot.DataPoint> points)
- {
- samples.ForEach(x =>
- {
- if (x.Pressure != 0.0)
- { points.Add(new OxyPlot.DataPoint(x.Index, x.Pressure)); }
- });
- }
- }
-
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PrimingAnalyzer.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PrimingAnalyzer.cs
deleted file mode 100644
index 315c384d6..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PrimingAnalyzer.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Analysis;
-using Tango.DispenserAnalyzer.UI.Models;
-
-
-namespace Tango.DispenserAnalyzer.UI.Analyzers
-{
- [Analyzer("priming")]
- public class PrimingAnalyzer : IDispenserDispenserAnalyser
- {
- private IReader<DispenserSample> _reader;
- public IReader<DispenserSample> Reader
- {
- get { return _reader; }
- set { _reader = value; }
- }
-
- public PrimingAnalyzer()
- {
- Reader = new DispenserReader();
- }
- public Task<List<IAnalyzerResult>> Process(List<DispenserSample> csvRows, bool backgroundMode)
- {
- return Task.Factory.StartNew<List<IAnalyzerResult>>(() =>
- {
- List<IAnalyzerResult> results = new List<IAnalyzerResult>();
- List<DispenserSample> commands = csvRows.Where(x => x.Command == "Label").ToList<DispenserSample>();
- PrimingAnalyzerResult result = new PrimingAnalyzerResult();
- var pairs = commands.Select((x, i) => new { Index = i, Value = x }).GroupBy(x => x.Index / 2).Select(x => x.Select(v => v.Value).ToList()).ToList();
- //start range of test
- if (pairs.Count > 0 && pairs[0].Count > 1)
- {
- List<DispenserSample> rangeTestValues = csvRows.Where(x => x.Index > pairs[0][0].Index && x.Index < pairs[0][1].Index).ToList();
- int avgMinIndex = rangeTestValues.Select(x => x.Index).Min();
- int avgMaxIndex = rangeTestValues.Select(x => x.Index).Max();
- double totalsec = TimeSpan.FromMilliseconds((avgMaxIndex - avgMinIndex) * 100).TotalSeconds;
- result.Time = totalsec.ToString() + " sec";
- result.Result = (totalsec <= 12 && totalsec >= 7) ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed;
- }
- results.Add(result);
- return results;
- });
- }
-
- public void GetPoints(List<DispenserSample> samples, IList<OxyPlot.DataPoint> points)
- {
- samples.ForEach(x =>
- {
- if (x.Pressure != 0.0)
- { points.Add(new OxyPlot.DataPoint(x.Index, x.Pressure)); }
- });
- }
- }
- public class PrimingAnalyzerResult : AnalyzerResultBase
- {
- [Description("PBU Time")]
- public String Time { get; set; }
-
-
- public PrimingAnalyzerResult()
- {
- Time = "";
- Result = AnalyzerResultValue.Undetermined;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ProcessAnalyser.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ProcessAnalyser.cs
deleted file mode 100644
index 663b72228..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ProcessAnalyser.cs
+++ /dev/null
@@ -1,139 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.CSV;
-using Tango.DispenserAnalyzer.UI.Analysis;
-using Tango.DispenserAnalyzer.UI.Models;
-
-namespace Tango.DispenserAnalyzer.UI.Analyzers
-{
- [Analyzer("process")]
- public class ProcessAnalyser : IProcessAnalyzer
- {
- private IReader<ProcessSample> _reader;
- public IReader<ProcessSample> Reader {
- get { return _reader; }
- set { _reader = value; }
- }
-
- public ProcessAnalyser()
- {
- Reader = new ProcessReader();
- }
-
- public Task<List<IAnalyzerResult>> Process(List<ProcessSample> csvRows, bool backgroundMode)
- {
- return Task.Factory.StartNew<List<IAnalyzerResult>>(() =>
- {
- List<IAnalyzerResult> results = new List<IAnalyzerResult>();
- ProcessAnalyzerResult result = new ProcessAnalyzerResult();
- result.BackgroundMode = backgroundMode;
- double delta = Settings.GetValueByName(AnalyzerSettingsEnum.TimeInterval);
- int startPoint = delta == 0? 0 : (int)(Settings.GetValueByName(AnalyzerSettingsEnum.StartCalculation) / delta);
- int endPoint = delta == 0 ? (csvRows.Count -1) : (int)(Settings.GetValueByName(AnalyzerSettingsEnum.EndCalculation) / delta);
- int takePoints = endPoint > startPoint ? (endPoint - startPoint) : (csvRows.Count - 1 - startPoint);
-
- List<ProcessSample> rangeValues = csvRows.Skip(startPoint).Take(takePoints).ToList();
-
- result.MinValue = rangeValues.Min(x => x.Value);
- result.MaxValue = rangeValues.Max(x => x.Value);
- result.AverageValue = rangeValues.Average(x => x.Value);
- result.StandardDeviation = ProcessAnalyser.StdDev(rangeValues.Select(x => x.Value));
-
- result.Result = AnalyzerResultValue.Passed;
-
- //Move Average data
- List<Task> tasks = new List<Task>();
- int calc_count = (int)csvRows.Count() / 4;
- int start_index = 0;
- while (start_index < csvRows.Count())
- {
- int calc_amount = (start_index + calc_count) >= (csvRows.Count() - 4) ? csvRows.Count() - start_index : calc_count;
- var source_filter = csvRows.Skip(start_index).Take(calc_amount).ToList();
- tasks.Add(Task.Run(() =>
- {
- ProcessAnalyser.Filtering(source_filter);
- }));
- start_index += calc_amount;
- }
- Task.WaitAll(tasks.ToArray());
-
- result.CreateMovingAvgGraph(csvRows);
- results.Add(result);
- return results;
- });
- }
-
- public static double StdDev(IEnumerable<double> values)
- {
- double avg = values.Average();
- double sum = values.Sum(v => (v - avg) * (v - avg));
- double denominator = values.Count() - 1;
- return denominator > 0.0 ? Math.Sqrt(sum / denominator) : -1;
- }
- public static void Filtering(List<ProcessSample> source)
- {
- int periodAverage = (int)Settings.GetValueByName(AnalyzerSettingsEnum.MovingAvg);
- int count = (source.Count < periodAverage) ? source.Count : source.Count - periodAverage;
- for (int i = 0; i < count; i++)
- {
- source[i].Value = source.Skip(i).Take(periodAverage).Average(x => x.Value);
- }
- }
-
- public void GetPoints(List<ProcessSample> samples, IList<OxyPlot.DataPoint> points)
- {
- samples.ForEach(x =>
- {
- points.Add(new OxyPlot.DataPoint(x.TimeIntervalSec, x.Value));
- });
- }
-
- }
-
- public class ProcessAnalyzerResult : AnalyzerResultBase
- {
- [Description("Selected Area")]
- public string Header { get; set; }
-
- [Description("Average Value")]
- public double AverageValue { get; set; }
- [Description("Max value")]
- public double MaxValue { get; set; }
- [Description("Min value")]
- public double MinValue { get; set; }
- [Description("Standard deviation value")]
- public double StandardDeviation { get; set; }
-
-
- public ProcessAnalyzerResult()
- {
- double from = Settings.GetValueByName(AnalyzerSettingsEnum.StartCalculation);
- double to = Settings.GetValueByName(AnalyzerSettingsEnum.EndCalculation);
- Header = $"from {from} to {to} seconds";
- AverageValue = MaxValue = MinValue = 0.0;
- Result = AnalyzerResultValue.Undetermined;
- IsShowLineChartResult = true;
- }
-
- public void CreateMovingAvgGraph(List<ProcessSample> avgValues)
- {
- if (!BackgroundMode)
- {
- var points = LineChart.Points;
- points.Clear();
- avgValues.ForEach(x =>
- {
- points.Add(new OxyPlot.DataPoint(x.TimeIntervalSec, x.Value));
- });
-
- LineChart.Title = $"Moving Average Values";
- LineChart.UpdateData();
- }
- }
-
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ReliabilityTestAnalyser.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ReliabilityTestAnalyser.cs
deleted file mode 100644
index 05a0aa32c..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ReliabilityTestAnalyser.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Analysis;
-
-namespace Tango.DispenserAnalyzer.UI.Analyzers
-{
- [Analyzer("Reliability")]
- public class ReliabilityTestAnalyser: FlowAnalyser
- {
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/SealingAnalyzer.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/SealingAnalyzer.cs
deleted file mode 100644
index 841101b10..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/SealingAnalyzer.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Analysis;
-using Tango.DispenserAnalyzer.UI.Models;
-
-namespace Tango.DispenserAnalyzer.UI.Analyzers
-{
- [Analyzer("sealtest")]
- public class SealingAnalyzer : IDispenserDispenserAnalyser
- {
- private IReader<DispenserSample> _reader;
- public IReader<DispenserSample> Reader
- {
- get { return _reader; }
- set { _reader = value; }
- }
-
- public SealingAnalyzer()
- {
- Reader = new DispenserReader();
- }
- public Task<List<IAnalyzerResult>> Process(List<DispenserSample> csvRows, bool backgroundMode)
- {
- return Task.Factory.StartNew<List<IAnalyzerResult>>(() =>
- {
- List<IAnalyzerResult> results = new List<IAnalyzerResult>();
- List<DispenserSample> commands = csvRows.Where(x => x.Command!= null && x.Command.ToLower().Contains("label")).ToList< DispenserSample>();
- SealingAnalyzerResult result = new SealingAnalyzerResult();
- var pairs = commands.Select((x, i) => new { Index = i, Value = x }).GroupBy(x => x.Index /2).Select(x => x.Select(v => v.Value).ToList()).ToList();
- //start range of test
- if (pairs.Count > 0 && pairs[0].Count > 1)
- {
- List<DispenserSample> rangeTestValues = csvRows.Where(x => x.Index > pairs[0][0].Index && x.Index < pairs[0][1].Index).ToList();
- result.AverageStartTestValue = rangeTestValues.Average(t => t.Pressure);
- }
- //end range of test
- if (pairs.Count > 1 && pairs[1].Count > 1)
- {
- List<DispenserSample> rangeTestValues = csvRows.Where(x => x.Index > pairs[1][0].Index && x.Index < pairs[1][1].Index).ToList();
- result.AverageEndTestValue = rangeTestValues.Average(t => t.Pressure); ;
- }
- result.AbsoluteTestValue = Math.Abs(result.AverageEndTestValue - result.AverageStartTestValue);
- result.Result = result.AbsoluteTestValue < 8 ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed;
- results.Add(result);
- return results;
- });
- }
-
- public void GetPoints(List<DispenserSample> samples, IList<OxyPlot.DataPoint> points)
- {
- samples.ForEach(x =>
- {
- if (x.Pressure != 0.0)
- { points.Add(new OxyPlot.DataPoint(x.Index, x.Pressure)); }
- });
- }
- }
-
- public class SealingAnalyzerResult : AnalyzerResultBase
- {
- [Description("Average Start Test Value")]
- public double AverageStartTestValue { get; set; }
- [Description("Average End Test Value")]
- public double AverageEndTestValue { get; set; }
- [Description("Absolute Value")]
- public double AbsoluteTestValue { get; set; }
- public SealingAnalyzerResult()
- {
- AverageStartTestValue = 0.0;
- AverageEndTestValue = 0.0;
- AbsoluteTestValue = 0.0;
- Result = AnalyzerResultValue.Undetermined;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.config b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.config
deleted file mode 100644
index ddc8cb7a6..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.config
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
- </startup>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-5.0.5.0" newVersion="5.0.5.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.2.2.0" newVersion="1.2.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.4.2.0" newVersion="1.4.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Z.EntityFramework.Extensions" publicKeyToken="59b66d028979105b" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.50.0" newVersion="4.0.50.0" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
-</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml
deleted file mode 100644
index 8969f50af..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml
+++ /dev/null
@@ -1,56 +0,0 @@
-<Application x:Class="Tango.DispenserAnalyzer.UI.App"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:sys="clr-namespace:System;assembly=mscorlib"
- xmlns:local="clr-namespace:Tango.DispenserAnalyzer.UI"
- Startup="Application_Startup">
- <Application.Resources>
- <ResourceDictionary>
- <ResourceDictionary.MergedDictionaries>
- <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/materialdesigncolor.lightblue.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/materialdesigncolor.yellow.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Button.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.CheckBox.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ListBox.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.PopupBox.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.RadioButton.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ToggleButton.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.TextBlock.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.Label.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.Slider.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.ProgressBar.xaml"/>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ComboBox.xaml" />
-
- </ResourceDictionary.MergedDictionaries>
- <FontFamily x:Key="FontName">Segoe UI</FontFamily>
- <FontFamily x:Key="NotesFont">Lucida Console</FontFamily>
-
- <sys:Double x:Key="ExtraExtraLargeFontSize">28</sys:Double>
- <sys:Double x:Key="ExtraLargeFontSize">26</sys:Double>
- <sys:Double x:Key="LargeFontSize">20</sys:Double>
- <sys:Double x:Key="MediumFontSize">16</sys:Double>
- <sys:Double x:Key="SmallFontSize">14</sys:Double>
- <sys:Double x:Key="MiniFontSize">12</sys:Double>
- <sys:Double x:Key="TinyFontSize">9</sys:Double>
- </ResourceDictionary>
- </Application.Resources>
-</Application>
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml.cs
deleted file mode 100644
index f3bce6c99..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Data;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Windows;
-
-namespace Tango.DispenserAnalyzer.UI
-{
- /// <summary>
- /// Interaction logic for App.xaml
- /// </summary>
- public partial class App : Application
- {
- private void Application_Startup(object sender, StartupEventArgs e)
- {
- MainWindow wnd = new MainWindow();
-
- string[] args = null;
- if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments != null)
- {
- string[] inputArgs = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData;
-
- if (inputArgs != null && inputArgs.Length > 0)
- {
- char[] spearator = { ','};
- args = inputArgs[0].Split(spearator);
- }
- }
- else if (e.Args.Length > 0)
- {
- char[] spearator = { ',' };
- args = e.Args[0].Split(spearator);
- }
- if(args != null && args.Length > 0)
- {
- //MessageBox.Show("Before generate" + String.Join(" ", args));
- wnd.GenerateResultsInBackground(args);
- }
- else
- {
- wnd.Show();
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/FileHelper.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/FileHelper.cs
deleted file mode 100644
index 7172a4ff1..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/FileHelper.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI
-{
- public static class FileHelper
- {
- private const string FILE_EXTENSION = ".pdf";
- private const string FILE_EXEL_EXTENSION = ".xlsx";
-
- public static string OpenFilePath{ get; set; }
-
- public static string GetResultFilePath()
- {
- if (File.Exists(OpenFilePath))
- {
- var ext = Path.GetExtension(OpenFilePath);
- var dir = Path.GetDirectoryName(OpenFilePath);
- var resultFile = Path.Combine(dir, string.Format("{0}-result{1}", Path.GetFileNameWithoutExtension(OpenFilePath), FILE_EXTENSION));
- return resultFile;
- }
- return "";
- }
-
- public static string GetFileToSaveFlowRangeToTimeData( int extNumber)
- {
- if (File.Exists(OpenFilePath))
- {
- var ext = Path.GetExtension(OpenFilePath);
- var dir = Path.GetDirectoryName(OpenFilePath);
- var resultFile = Path.Combine(dir, string.Format("{0}_rangeToTime{1}{2}", Path.GetFileNameWithoutExtension(OpenFilePath), extNumber.ToString(), FILE_EXEL_EXTENSION));
- return resultFile;
- }
- return "";
- }
-
-
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml
deleted file mode 100644
index 595d74e3d..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml
+++ /dev/null
@@ -1,198 +0,0 @@
-<Window x:Class="Tango.DispenserAnalyzer.UI.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:sys="clr-namespace:System;assembly=mscorlib"
- xmlns:oxy="http://oxyplot.org/wpf"
- xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
- xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
- xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
- xmlns:local="clr-namespace:Tango.DispenserAnalyzer.UI"
- xmlns:vm ="clr-namespace:Tango.DispenserAnalyzer.UI.ViewModels"
- mc:Ignorable="d"
- Title="{Binding WindowTitle, RelativeSource={RelativeSource Mode=Self}}" Height="1000" Width="860" WindowStartupLocation="CenterScreen" WindowStyle="SingleBorderWindow" ResizeMode="CanResize" Foreground="#202020"
- d:DataContext="{d:DesignInstance Type=vm:MainWindowVM, IsDesignTimeCreatable=False}">
- <Window.Resources>
- <converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter" />
- <converters:IsNullToVisibilityConverter x:Key="IsNullToVisibilityConverter"/>
- <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
- <converters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter" />
- <Style TargetType="ScrollBar">
- <Setter Property="Background" Value="#B9E7E9E9"/>
- </Style>
- </Window.Resources>
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="80"/>
- <RowDefinition Height="60"/>
- <RowDefinition Height="Auto"/>
- <RowDefinition Height="40*"/>
- </Grid.RowDefinitions>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*" />
- </Grid.ColumnDefinitions>
- <Grid Grid.Row="0" Margin="10 20 10 20">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*"></ColumnDefinition>
- <ColumnDefinition Width="100"></ColumnDefinition>
- </Grid.ColumnDefinitions>
- <TextBox x:Name="tbPath" BorderThickness="1" FontSize="16" VerticalContentAlignment="Center" IsReadOnly="False" Grid.Column="0" Margin="0 0 20 0" Text="{Binding OpenFilePath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" AllowDrop="True" PreviewDrop="TextBlock_PreviewDrop" PreviewDragOver="TextBox_PreviewDragOver" BorderBrush="Silver" Padding="5 0 0 0 "></TextBox>
- <Button Grid.Column="1" Command="{Binding OpenCSVFileCommand}">Browse</Button>
- </Grid>
- <Grid Grid.Row="1" HorizontalAlignment="Stretch" Margin="10 0 20 20">
- <Button Command="{Binding GenerateCommand}" Content="{Binding ButtonName}" Margin="0 0 30 0"></Button>
- <Button Command="{Binding OpenSettingWndCommand}" HorizontalAlignment="Right" VerticalAlignment="Center" Width="20" Height="20" Margin="0 0 0 0" Padding="0" Style="{StaticResource MaterialDesignFlatButton}" ToolTip="Open Setting Window">
- <materialDesign:PackIcon Kind="Settings" Width="16" Height="16" VerticalAlignment="Center"></materialDesign:PackIcon>
- </Button>
- </Grid>
- <Grid Grid.Row="2">
- <Border BorderBrush="Silver" Padding="5" BorderThickness="1" CornerRadius="5" Margin="10">
- <Expander IsExpanded="True">
- <Expander.Header>
- <Grid >
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="1*" />
- <ColumnDefinition Width="auto" />
- </Grid.ColumnDefinitions>
- <TextBlock Padding="0" Text="{Binding TestName}" Margin="10,0,0,0" VerticalAlignment="Center" FontWeight="DemiBold"/>
- <materialDesign:PackIcon Grid.Column="1" Kind="Information" Width="24" Height="24" VerticalAlignment="Center" Foreground="#03A9F4" Background="Transparent">
- <materialDesign:PackIcon.ToolTip>
- <TextBlock>
- <Run Text="Panning: CTRL + RIGHT CLICK and select area;"></Run>
- <LineBreak/>
- <Run Text="Zooming: MOUSE WHEEL on Axis Area;"></Run>
- <LineBreak/>
- <Run Text="Reset all : CTRL + DOUBLE RIGHT CLICK;"></Run>
- </TextBlock>
- </materialDesign:PackIcon.ToolTip>
- </materialDesign:PackIcon>
- </Grid>
- </Expander.Header>
- <oxy:Plot Title="{Binding TestName}" x:Name="PressurePlot" Height="300">
- <oxy:Plot.Series >
- <oxy:LineSeries ItemsSource="{Binding Points}" Color="#73B6EC" MarkerType="None"/>
- </oxy:Plot.Series>
- <oxy:Plot.Axes>
- <oxy:LinearAxis Position="Bottom" Title = "{Binding TitleAxisBottom}" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True"/>
- <oxy:LinearAxis Position="Left" Title = "{Binding TitleAxisLeft}" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" Minimum="{Binding From}" Maximum="{Binding To}"/>
- </oxy:Plot.Axes>
- </oxy:Plot>
- </Expander>
- </Border>
- </Grid>
-
- <Border Visibility="Visible" BorderThickness="1" BorderBrush="Silver" CornerRadius="5" Margin="10" Grid.Row="3">
- <DockPanel VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
- <Label Height="30" Content="RESULT" Background="LightSkyBlue" Grid.Row="0" DockPanel.Dock="Top" />
-
- <ScrollViewer VerticalScrollBarVisibility="Auto" Visibility="Visible" Focusable="True" Foreground="Black" Margin="5"
- Style="{StaticResource {x:Type ScrollViewer}}">
- <ScrollViewer.Resources>
- <sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">15</sys:Double>
- </ScrollViewer.Resources>
- <ItemsControl x:Name="resultItems" ItemsSource="{Binding AnalyzerResults}" Margin="0 0 10 10 ">
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Border HorizontalAlignment="Stretch" Margin="10 10 0 0" VerticalAlignment="Stretch" BorderThickness="1" BorderBrush="Silver">
- <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="1*"/>
- <ColumnDefinition Width="100"/>
- </Grid.ColumnDefinitions>
- <StackPanel Orientation="Vertical" Margin="5" Grid.Column="0">
- <ItemsControl ItemsSource="{Binding Properties}" >
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <StackPanel Orientation="Vertical" Margin="5">
- <TextBlock Margin="5 0 0 0" FontSize="12"><Run Text="{Binding Name}"></Run> <Run Text=" : "></Run><Run Text="{Binding Value,StringFormat=0}"></Run></TextBlock>
- </StackPanel>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- <Border x:Name="PlotBorder" BorderBrush="Silver" Padding="2" BorderThickness="1" CornerRadius="5" Margin="10" Visibility="{Binding IsShowPlotResult, Converter={StaticResource BooleanToVisibilityConverter}}" MinHeight="300">
- <StackPanel Orientation="Vertical" x:Name="PlotStackPanel">
- <oxy:Plot Title="{Binding RangeToCountChart.Title}" x:Name="RangeToCountPlot" LegendPlacement="Outside" LegendPosition="RightTop" LegendOrientation="Vertical" ClipToBounds="True" Loaded="RangeToCountPlot_Loaded" MinWidth="220" MinHeight="300">
- <oxy:Plot.Series >
- <oxy:ColumnSeries ItemsSource="{Binding RangeToCountChart.Points}" Color="#73B6EC" StrokeThickness="1" FillColor="#73B6EC" ValueField="Y" LabelFormatString="{}{0}" LabelPlacement="Base" />
- </oxy:Plot.Series>
- <oxy:Plot.Axes>
- <oxy:CategoryAxis Position="Bottom" Title = "Max-min \ range [mbar]" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" ItemsSource="{Binding RangeToCountChart.Points}" LabelField="X" IsZoomEnabled="False"/>
- <oxy:LinearAxis Position="Left" Title = "Count" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" Minimum="0" MinimumPadding="5" AbsoluteMinimum="0" IsZoomEnabled="False"/>
- </oxy:Plot.Axes>
- </oxy:Plot>
- </StackPanel>
- </Border>
- <Border x:Name="RangeToTimeBorder" BorderBrush="Silver" Padding="2" BorderThickness="1" CornerRadius="5" Margin="10" Visibility="{Binding IsShowPlotResult, Converter={StaticResource BooleanToVisibilityConverter}}" MinHeight="300">
- <StackPanel Orientation="Vertical" x:Name="RangeToTimeStackPanel">
- <oxy:Plot Title="{Binding RangeToTimeChart.Title}" x:Name="RangeToTimePlot" LegendPlacement="Outside" LegendPosition="RightTop" LegendOrientation="Vertical" ClipToBounds="True" MinWidth="220" MinHeight="300">
- <oxy:Plot.Series >
- <oxy:LineSeries ItemsSource="{Binding RangeToTimeChart.Points}" Color="#73B6EC" StrokeThickness="1" MarkerFill="SteelBlue" />
- </oxy:Plot.Series>
- <oxy:Plot.Axes>
- <oxy:LinearAxis Position="Bottom" Title = "Location" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True"/>
- <oxy:LinearAxis Position="Left" Title = "Max-min \ range [mbar]" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" Minimum="{Binding RangeToTimeChart.FromYAxis}" Maximum="{Binding RangeToTimeChart.ToYAxis}"/>
- </oxy:Plot.Axes>
- </oxy:Plot>
- </StackPanel>
- </Border>
- <Border x:Name="ChartBorder" BorderBrush="Silver" Padding="2" BorderThickness="1" CornerRadius="5" Margin="10" Visibility="{Binding IsShowLineChartResult, Converter={StaticResource BooleanToVisibilityConverter}}" MinHeight="300">
- <StackPanel Orientation="Vertical" x:Name="ChartStackPanel">
- <!--<StackPanel Orientation="Horizontal">
- <TextBlock VerticalAlignment="Center">MinDisplayValue</TextBlock>
- <TextBox VerticalAlignment="Center" Margin="10 0 30 0" x:Name="MinFilter" Text="{Binding LineChart.FromXAxis, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged, Delay=10}" FontWeight="DemiBold" FontSize="14" Foreground="Blue"></TextBox>
- <TextBlock VerticalAlignment="Center" >MaxDisplayValue</TextBlock>
- <TextBox Margin="10 0 10 0" x:Name="MaxFilter" Text="{Binding LineChart.ToXAxis,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, Delay=10}" FontWeight="DemiBold" FontSize="14" Foreground="Blue"></TextBox>
- </StackPanel>-->
- <oxy:Plot x:Name="ChartProcess" Title="{Binding LineChart.Title}" LegendPlacement="Outside" LegendPosition="RightTop" LegendOrientation="Vertical" ClipToBounds="True" MinWidth="220" MinHeight="300">
- <oxy:Plot.Series >
- <oxy:LineSeries ItemsSource="{Binding LineChart.Points}" Color="#73B6EC" MarkerType="None"/>
- </oxy:Plot.Series>
-
- <oxy:Plot.Axes>
- <oxy:LinearAxis Position="Bottom" Title = "Time [msec]" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" Minimum="{Binding LineChart.FromXAxis}" Maximum="{Binding LineChart.ToXAxis}"/>
- <oxy:LinearAxis Position="Left" Title = "Value" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" />
- </oxy:Plot.Axes>
- </oxy:Plot>
- </StackPanel>
- </Border>
- </StackPanel>
- <Border Grid.Column="1" HorizontalAlignment="Center" Margin="10 0 0 0" VerticalAlignment="Center">
- <materialDesign:PackIcon Kind="{Binding Result, Converter= {StaticResource EnumToDescriptionConverter}}" Width="60" Height="60" HorizontalContentAlignment="Center" VerticalAlignment="Center" >
- <materialDesign:PackIcon.Style>
- <Style TargetType="materialDesign:PackIcon">
- <Setter Property="Foreground" Value="Orange"></Setter>
- <Style.Triggers>
- <Trigger Property="Kind" Value="Check">
- <Setter Property="Foreground" Value="green"></Setter>
- </Trigger>
- <Trigger Property="Kind" Value="CloseCircle">
- <Setter Property="Foreground" Value="Red"></Setter>
- </Trigger>
- </Style.Triggers>
- </Style>
- </materialDesign:PackIcon.Style>
- </materialDesign:PackIcon>
- </Border>
- </Grid>
- </Border>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </ScrollViewer>
-
- </DockPanel>
- </Border>
-
-
- <Grid Grid.Row="1" Grid.RowSpan="3"
- HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch"
- Visibility="{Binding IsRunning, Converter={StaticResource BooleanToVisibilityConverter}}"
- Background="#8BFFFFFF">
- <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
- <TextBlock Text="Loading..." FontStyle="Italic" FontSize="30" VerticalAlignment="Center"></TextBlock>
- </StackPanel>
- </Grid>
- </Grid>
-</Window>
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml.cs
deleted file mode 100644
index e7d263a1c..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-using OxyPlot;
-using OxyPlot.Axes;
-using System;
-using System.Threading.Tasks;
-using System.Windows;
-using Tango.DispenserAnalyzer.UI.ViewModels;
-
-namespace Tango.DispenserAnalyzer.UI
-{
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window
- {
- private MainWindowVM _vm;
-
- public string WindowTitle
- {
- get
- {
- Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
- return "Dispenser Analyzer - Version" + version;
- }
- }
-
-
- public MainWindow()
- {
- InitializeComponent();
- _vm = new MainWindowVM();
- DataContext = _vm;
- _vm.PlotControl = PressurePlot;
- _vm.ResultsPanel = resultItems;
-
- foreach (var ax in PressurePlot.Axes)
- ax.Maximum = ax.Minimum = Double.NaN;
- }
-
- public async void GenerateResultsInBackground( string[] filePathArr)
- {
- if(_vm != null)
- {
- for (int index = 0; index < filePathArr.Length; index++)
- {
- await _vm.GenerateInBackground(filePathArr[index]);
- if(index < filePathArr.Length)
- {
- await Task.Delay(500);
- }
- }
- }
- await Task.Delay(500);
- Application.Current.Shutdown();
- }
-
- private void TextBlock_PreviewDrop(object sender, DragEventArgs e)
- {
- string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
- if (files != null && files.Length != 0 && System.IO.Path.GetExtension(files[0]).ToUpperInvariant() == ".CSV")
- {
- tbPath.Text = files[0];
- }
- e.Handled = true;
- }
-
- private void TextBox_PreviewDragOver(object sender, DragEventArgs e)
- {
- string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
- if (files == null || files.Length == 0 || System.IO.Path.GetExtension(files[0]).ToUpperInvariant() != ".CSV")
- {
- e.Effects = DragDropEffects.None;
- e.Handled = true;
- }
- else
- {
- e.Effects = DragDropEffects.All;
- e.Handled = true;
- }
- }
-
- private void RangeToCountPlot_Loaded(object sender, RoutedEventArgs e)
- {
- var element = (FrameworkElement)sender;
-
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserCsvRow.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserCsvRow.cs
deleted file mode 100644
index e3f270ab0..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserCsvRow.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.CSV;
-
-namespace Tango.DispenserAnalyzer.UI.Models
-{
- public class DispenserCsvRow
- {
- [CsvOrder(0)]
- public String Pressure { get; set; }
- [CsvOrder(1)]
- public String Label { get; set; }
- [CsvOrder(2)]
- public String Command { get; set; }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSample.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSample.cs
deleted file mode 100644
index 899aaa600..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSample.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Models
-{
- public class DispenserSample: ISample
- {
- public double Pressure { get; set; }
- public String Command { get; set; }
- public int Index { get; set; }
-
- public override string ToString()
- {
- return $"{Pressure}, {Command}";
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSampleCommand.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSampleCommand.cs
deleted file mode 100644
index 15b0008d4..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSampleCommand.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Models
-{
- public enum DispenserSampleCommand
- {
- LB1,
- LB2,
- LB3,
- LB4
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/FlowRangeToTimeResults.xlsx b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/FlowRangeToTimeResults.xlsx
deleted file mode 100644
index 5f0e4b651..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/FlowRangeToTimeResults.xlsx
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ISample.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ISample.cs
deleted file mode 100644
index ea374a846..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ISample.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Models
-{
- public interface ISample
- {
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessCsvRow.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessCsvRow.cs
deleted file mode 100644
index 33e85d5b5..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessCsvRow.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.CSV;
-
-namespace Tango.DispenserAnalyzer.UI.Models
-{
- public class ProcessCsvRow
- {
- [CsvOrder(0)]
- public String Time { get; set; }
- [CsvOrder(1)]
- public String Value { get; set; }
- }
-} \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessSample.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessSample.cs
deleted file mode 100644
index 3f02ea35d..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessSample.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Models
-{
- public class ProcessSample : ISample
- {
- public double TimeIntervalSec { get; set; }
- public DateTime Time { get; set; }
- public double Value { get; set; }
-
- public ProcessSample()
- {
- Value = 0.0;
- }
-
- public override string ToString()
- {
- return $"{TimeIntervalSec}, {Value}";
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/SettingsModel.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/SettingsModel.cs
deleted file mode 100644
index 5540e4b25..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/SettingsModel.cs
+++ /dev/null
@@ -1,147 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.Core;
-using Tango.Core.Commands;
-
-namespace Tango.DispenserAnalyzer.UI.Models
-{
- public interface ISettingsModel
- {
- string PropertyName { get; set; }
- double PropertyValue { get; set; }
- double DefaultValue { get; set; }
- string DefaultValueDisplay { get; set; }
- double MinRangeValue { get; set; }
- double MaxRangeValue { get; set; }
- bool IsRangeVisible { get; set; }
- }
-
- public class SettingsModel: ExtendedObject, ISettingsModel
- {
- public AnalyzerSettingsEnum _enumName;
- private string _propertyName;
-
- public string PropertyName
- {
- get { return _propertyName; }
- set { _propertyName = value; RaisePropertyChangedAuto(); }
- }
-
- private double _propertyvalue;
-
- public double PropertyValue
- {
- get { return _propertyvalue; }
- set {
- if( _propertyvalue != value)
- {
- _propertyvalue = value;
- RaisePropertyChangedAuto();
- OnPropertyvalueChanged();
- }
- }
- }
-
- private void OnPropertyvalueChanged()
- {
- if(SettingValueEvent != null)
- {
- SettingValueEvent?.Invoke(this, new EventArgs());
- }
-
- }
-
- private double _defaultValue;
-
- public double DefaultValue
- {
- get { return _defaultValue; }
- set { _defaultValue = value; RaisePropertyChangedAuto(); }
- }
-
- private string _defaultValueDisplay;
-
- public string DefaultValueDisplay
- {
- get { return _defaultValueDisplay; }
- set { _defaultValueDisplay = value; }
- }
-
- private double _minDefaultRangeValue;
- public double MinDefaultRangeValue
- {
- get { return _minDefaultRangeValue; }
- set { _minDefaultRangeValue = value; RaisePropertyChangedAuto(); }
- }
-
- private double _maxDefaultRangeValue;
- public double MaxDefaultRangeValue
- {
- get { return _maxDefaultRangeValue; }
- set { _maxDefaultRangeValue = value; RaisePropertyChangedAuto(); }
- }
-
- private double _minRangeValue;
- public double MinRangeValue
- {
- get { return _minRangeValue; }
- set {
- if (_minRangeValue != value)
- {
- _minRangeValue = value;
- RaisePropertyChangedAuto();
- OnPropertyvalueChanged();
- }
- }
- }
-
- private double _maxRangeValue;
- public double MaxRangeValue
- {
- get { return _maxRangeValue; }
- set {
- if (_maxRangeValue != value)
- {
- _maxRangeValue = value;
- RaisePropertyChangedAuto();
- OnPropertyvalueChanged();
- }
- }
- }
- public bool IsRangeVisible { get; set; }
-
- public event EventHandler SettingValueEvent;
-
- public RelayCommand SetDefaultCommand { get; set; }
-
-
- public SettingsModel(AnalyzerSettingsEnum enumName, string defaultValueDisplay, bool isrange = false)
- {
- _enumName = enumName;
- PropertyName = _enumName.ToDescription();
- DefaultValueDisplay = defaultValueDisplay;
- DefaultValue = Settings.GetDefaultValueByName(enumName);
- PropertyValue = Settings.GetValueByName(enumName);
- IsRangeVisible = isrange;
- MinDefaultRangeValue = IsRangeVisible ? Settings.GetDefaultValueByName(AnalyzerSettingsEnum.AvgMinValue) : 0.0;
- MaxDefaultRangeValue = IsRangeVisible ? Settings.GetDefaultValueByName(AnalyzerSettingsEnum.AvgMaxValue) : 0.0;
- MinRangeValue = IsRangeVisible? Settings.GetValueByName(AnalyzerSettingsEnum.AvgMinValue) : 0.0;
- MaxRangeValue = IsRangeVisible? Settings.GetValueByName(AnalyzerSettingsEnum.AvgMaxValue) : 0.0;
- SetDefaultCommand = new RelayCommand(SetDefault);
- }
-
- private void SetDefault()
- {
- if(IsRangeVisible)
- {
- MinRangeValue = MinDefaultRangeValue;
- MaxRangeValue = MaxDefaultRangeValue;
- return;
- }
- PropertyValue = DefaultValue;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/AssemblyInfo.cs
deleted file mode 100644
index 6438e7278..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using System.Reflection;
-using System.Resources;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using System.Windows;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Dispenser Analyzer")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Twine")]
-[assembly: AssemblyProduct("Dispenser Analyzer")]
-[assembly: AssemblyCopyright("Copyright © 2019")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-//In order to begin building localizable applications, set
-//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
-//inside a <PropertyGroup>. For example, if you are using US english
-//in your source files, set the <UICulture> to en-US. Then uncomment
-//the NeutralResourceLanguage attribute below. Update the "en-US" in
-//the line below to match the UICulture setting in the project file.
-
-//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
-
-
-[assembly: ThemeInfo(
- ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
- //(used if a resource is not found in the page,
- // or application resource dictionaries)
- ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
- //(used if a resource is not found in the page,
- // app, or any theme specific resource dictionaries)
-)]
-
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("3.1.1.3")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
-[assembly: NeutralResourcesLanguage("en-AS")]
-
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.Designer.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.Designer.cs
deleted file mode 100644
index 2b3284e18..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.Designer.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Tango.DispenserAnalyzer.UI.Properties
-{
-
-
- /// <summary>
- /// A strongly-typed resource class, for looking up localized strings, etc.
- /// </summary>
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources
- {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources()
- {
- }
-
- /// <summary>
- /// Returns the cached ResourceManager instance used by this class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager
- {
- get
- {
- if ((resourceMan == null))
- {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.DispenserAnalyzer.UI.Properties.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- /// <summary>
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture
- {
- get
- {
- return resourceCulture;
- }
- set
- {
- resourceCulture = value;
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.resx b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.resx
deleted file mode 100644
index af7dbebba..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.resx
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 2.0
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">2.0</resheader>
- <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
- <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
- <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- <value>[base64 mime encoded serialized .NET Framework object]</value>
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
- <comment>This is a comment</comment>
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" />
- <xsd:attribute name="type" type="xsd:string" />
- <xsd:attribute name="mimetype" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="assembly">
- <xsd:complexType>
- <xsd:attribute name="alias" type="xsd:string" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>2.0</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
-</root> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.Designer.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.Designer.cs
deleted file mode 100644
index abad5ee82..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Tango.DispenserAnalyzer.UI.Properties
-{
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
- {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default
- {
- get
- {
- return defaultInstance;
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.settings b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.settings
deleted file mode 100644
index 033d7a5e9..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.settings
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
- <Profiles>
- <Profile Name="(Default)" />
- </Profiles>
- <Settings />
-</SettingsFile> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Settings.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Settings.cs
deleted file mode 100644
index d515a0940..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Settings.cs
+++ /dev/null
@@ -1,92 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI
-{
- public enum AnalyzerSettingsEnum
- {
- [Description("Print Results to PDF file")]
- PrintResultsToPDF,
- [Description("PBU Pass fail")]
- PBUPassFail,
- [Description("PBU Pass fail")]
- FlowPBUPassFail,
- [Description("Exclude from analysis")]
- ExcludeAnalysis,
- [Description("Avg value")]
- AvgMaxValue,
- [Description("Avg value")]
- AvgMinValue,
- [Description("Max-Min range")]
- MaxMinRange,
- [Description("Max Min intervals")]
- MaxMinIntervals,
- [Description("Max error")]
- MaxError,
- [Description("Take off 'Max-min' values(out of highest results)")]
- TakeOffMaxMin,
- [Description("Time gap between data point [sec]")]
- TimeInterval,
- [Description("Time point to start calculation [sec]")]
- StartCalculation,
- [Description("Time point to end calculation [sec]")]
- EndCalculation,
- [Description("How many points to use for moving average")]
- MovingAvg
-
-
- }
-
- public static class Settings
- {
- public static Dictionary<AnalyzerSettingsEnum, double> DefaultValues { get; set; }
- public static Dictionary<AnalyzerSettingsEnum, double> CurrentValues { get; set; }
-
- static Settings()
- {
- DefaultValues = new Dictionary<AnalyzerSettingsEnum, double>();
- DefaultValues[AnalyzerSettingsEnum.PBUPassFail] = 4.5;
- DefaultValues[AnalyzerSettingsEnum.FlowPBUPassFail] = 4.5;
- DefaultValues[AnalyzerSettingsEnum.ExcludeAnalysis] = 1800;
- DefaultValues[AnalyzerSettingsEnum.AvgMinValue] = 1400;
- DefaultValues[AnalyzerSettingsEnum.AvgMaxValue] = 1850;
- DefaultValues[AnalyzerSettingsEnum.MaxMinRange] = 450;
- DefaultValues[AnalyzerSettingsEnum.MaxMinIntervals] = 450;
- DefaultValues[AnalyzerSettingsEnum.MaxError] = 1.5;
- DefaultValues[AnalyzerSettingsEnum.TakeOffMaxMin] = 3;
- DefaultValues[AnalyzerSettingsEnum.TimeInterval] = 0.1;
- DefaultValues[AnalyzerSettingsEnum.StartCalculation] = 600;
- DefaultValues[AnalyzerSettingsEnum.EndCalculation] = 900;
- DefaultValues[AnalyzerSettingsEnum.MovingAvg] = 50;
-
- CurrentValues = new Dictionary<AnalyzerSettingsEnum, double>(DefaultValues);
-
- }
- public static double GetValueByName(AnalyzerSettingsEnum name)
- {
- double value;
- if (CurrentValues.TryGetValue(name, out value))
- {
- return value;
- }
- return 0.0;
- }
- public static void SetValueByName(AnalyzerSettingsEnum name, double value)
- {
- CurrentValues[name] = value;
- }
- public static double GetDefaultValueByName(AnalyzerSettingsEnum name)
- {
- double value;
- if (DefaultValues.TryGetValue(name, out value))
- {
- return value;
- }
- return 0.0;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Tango.DispenserAnalyzer.UI.csproj b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Tango.DispenserAnalyzer.UI.csproj
deleted file mode 100644
index 51d693d88..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Tango.DispenserAnalyzer.UI.csproj
+++ /dev/null
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{D74893F2-9E39-4C72-BDD4-937404E1FC37}</ProjectGuid>
- <OutputType>WinExe</OutputType>
- <RootNamespace>Tango.DispenserAnalyzer.UI</RootNamespace>
- <AssemblyName>Tango.DispenserAnalyzer.UI</AssemblyName>
- <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
- <WarningLevel>4</WarningLevel>
- <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
- <Deterministic>true</Deterministic>
- <IsWebBootstrapper>false</IsWebBootstrapper>
- <PublishUrl>P:\Dispenser Analyzer Installer\</PublishUrl>
- <Install>true</Install>
- <InstallFrom>Disk</InstallFrom>
- <UpdateEnabled>false</UpdateEnabled>
- <UpdateMode>Background</UpdateMode>
- <UpdateInterval>7</UpdateInterval>
- <UpdateIntervalUnits>Days</UpdateIntervalUnits>
- <UpdatePeriodically>false</UpdatePeriodically>
- <UpdateRequired>false</UpdateRequired>
- <MapFileExtensions>true</MapFileExtensions>
- <TargetCulture>en</TargetCulture>
- <ProductName>Dispenser Analyser</ProductName>
- <PublisherName>Twine</PublisherName>
- <OpenBrowserOnPublish>false</OpenBrowserOnPublish>
- <ApplicationRevision>4</ApplicationRevision>
- <ApplicationVersion>3.1.1.%2a</ApplicationVersion>
- <UseApplicationTrust>true</UseApplicationTrust>
- <CreateDesktopShortcut>true</CreateDesktopShortcut>
- <PublishWizardCompleted>true</PublishWizardCompleted>
- <BootstrapperEnabled>true</BootstrapperEnabled>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\..\Build\DispenserAnalyzer\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\..\Build\DispenserAnalyzer\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup>
- <ManifestCertificateThumbprint>E5B326DBA5A7604EBB456C9664FBF874933BA54E</ManifestCertificateThumbprint>
- </PropertyGroup>
- <PropertyGroup>
- <ManifestKeyFile>Tango.DispenserAnalyzer.UI_TemporaryKey.pfx</ManifestKeyFile>
- </PropertyGroup>
- <PropertyGroup>
- <GenerateManifests>true</GenerateManifests>
- </PropertyGroup>
- <PropertyGroup>
- <SignManifests>true</SignManifests>
- </PropertyGroup>
- <PropertyGroup>
- <ApplicationIcon>twin.ico</ApplicationIcon>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="MahApps.Metro">
- <HintPath>..\..\packages\MahApps.Metro.1.5.0\lib\net45\MahApps.Metro.dll</HintPath>
- </Reference>
- <Reference Include="MaterialDesignColors">
- <HintPath>..\..\packages\MaterialDesignColors.1.1.2\lib\net45\MaterialDesignColors.dll</HintPath>
- </Reference>
- <Reference Include="MaterialDesignThemes.Wpf">
- <HintPath>..\..\packages\MaterialDesignThemes.2.3.1.953\lib\net45\MaterialDesignThemes.Wpf.dll</HintPath>
- </Reference>
- <Reference Include="MathNet.Numerics, Version=4.9.0.0, Culture=neutral, processorArchitecture=MSIL">
- <HintPath>..\..\packages\MathNet.Numerics.4.9.0\lib\net461\MathNet.Numerics.dll</HintPath>
- </Reference>
- <Reference Include="OxyPlot, Version=2.0.0.0, Culture=neutral, PublicKeyToken=638079a8f0bd61e9, processorArchitecture=MSIL">
- <HintPath>..\..\packages\OxyPlot.Core.2.0.0\lib\net45\OxyPlot.dll</HintPath>
- </Reference>
- <Reference Include="OxyPlot.Wpf, Version=2.0.0.0, Culture=neutral, PublicKeyToken=75e952ba404cdbb0, processorArchitecture=MSIL">
- <HintPath>..\..\packages\OxyPlot.Wpf.2.0.0\lib\net45\OxyPlot.Wpf.dll</HintPath>
- </Reference>
- <Reference Include="PdfSharp, Version=1.50.5147.0, Culture=neutral, PublicKeyToken=f94615aa0424f9eb, processorArchitecture=MSIL">
- <HintPath>..\..\packages\PDFsharp.1.50.5147\lib\net20\PdfSharp.dll</HintPath>
- </Reference>
- <Reference Include="PdfSharp-WPF">
- <HintPath>..\..\packages\PDFsharp.1.50.5147\lib\net20\PdfSharp-WPF.dll</HintPath>
- </Reference>
- <Reference Include="PdfSharp.Charting, Version=1.50.5147.0, Culture=neutral, PublicKeyToken=f94615aa0424f9eb, processorArchitecture=MSIL">
- <HintPath>..\..\packages\PDFsharp.1.50.5147\lib\net20\PdfSharp.Charting.dll</HintPath>
- </Reference>
- <Reference Include="PdfSharp.Xps">
- <HintPath>..\..\packages\PDFsharp.1.50.5147\lib\net20\PdfSharp.Xps.dll</HintPath>
- </Reference>
- <Reference Include="ReachFramework" />
- <Reference Include="System" />
- <Reference Include="System.Data" />
- <Reference Include="System.Drawing" />
- <Reference Include="System.Numerics" />
- <Reference Include="System.Printing" />
- <Reference Include="System.Runtime.Serialization" />
- <Reference Include="System.Xml" />
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Net.Http" />
- <Reference Include="System.Xaml">
- <RequiredTargetFramework>4.0</RequiredTargetFramework>
- </Reference>
- <Reference Include="WindowsBase" />
- <Reference Include="PresentationCore" />
- <Reference Include="PresentationFramework" />
- </ItemGroup>
- <ItemGroup>
- <ApplicationDefinition Include="App.xaml">
- <Generator>MSBuild:Compile</Generator>
- <SubType>Designer</SubType>
- </ApplicationDefinition>
- <Compile Include="Analysis\AnalyserResultChartData.cs" />
- <Compile Include="Analysis\AnalysisPlotValue.cs" />
- <Compile Include="Analysis\AnalyzerResultProperty.cs" />
- <Compile Include="Analysis\AnalyzerResultBase.cs" />
- <Compile Include="Analysis\AnalyzerResultValue.cs" />
- <Compile Include="Analysis\AnalysisService.cs" />
- <Compile Include="Analysis\DispenserReader.cs" />
- <Compile Include="Analysis\IAnalyzerResult.cs" />
- <Compile Include="Analysis\IAnalyzer.cs" />
- <Compile Include="Analysis\IReader.cs" />
- <Compile Include="Analysis\ProcessReader.cs" />
- <Compile Include="Analyzers\DynamicSealingAnalyzer.cs" />
- <Compile Include="Analyzers\FlowAnalyser.cs" />
- <Compile Include="Analyzers\PressureBuildUpAnalyser.cs" />
- <Compile Include="Analyzers\PrimingAnalyzer.cs" />
- <Compile Include="Analyzers\ProcessAnalyser.cs" />
- <Compile Include="Analyzers\ReliabilityTestAnalyser.cs" />
- <Compile Include="Analyzers\SealingAnalyzer.cs" />
- <Compile Include="Analysis\AnalyzerAttribute.cs" />
- <Compile Include="FileHelper.cs" />
- <Compile Include="Models\DispenserCsvRow.cs" />
- <Compile Include="Models\DispenserSample.cs" />
- <Compile Include="Models\DispenserSampleCommand.cs" />
- <Compile Include="Models\ISample.cs" />
- <Compile Include="Models\ProcessCsvRow.cs" />
- <Compile Include="Models\ProcessSample.cs" />
- <Compile Include="Models\SettingsModel.cs" />
- <Compile Include="Settings.cs" />
- <Compile Include="ViewModels\MainWindowVM.cs" />
- <Compile Include="ViewModels\SettingsVM.cs" />
- <Compile Include="View\SettingsWnd.xaml.cs">
- <DependentUpon>SettingsWnd.xaml</DependentUpon>
- </Compile>
- <Page Include="MainWindow.xaml">
- <Generator>MSBuild:Compile</Generator>
- <SubType>Designer</SubType>
- </Page>
- <Compile Include="App.xaml.cs">
- <DependentUpon>App.xaml</DependentUpon>
- <SubType>Code</SubType>
- </Compile>
- <Compile Include="MainWindow.xaml.cs">
- <DependentUpon>MainWindow.xaml</DependentUpon>
- <SubType>Code</SubType>
- </Compile>
- <Page Include="View\SettingsWnd.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Properties\AssemblyInfo.cs">
- <SubType>Code</SubType>
- </Compile>
- <Compile Include="Properties\Resources.Designer.cs">
- <AutoGen>True</AutoGen>
- <DesignTime>True</DesignTime>
- <DependentUpon>Resources.resx</DependentUpon>
- </Compile>
- <Compile Include="Properties\Settings.Designer.cs">
- <AutoGen>True</AutoGen>
- <DependentUpon>Settings.settings</DependentUpon>
- <DesignTimeSharedInput>True</DesignTimeSharedInput>
- </Compile>
- <EmbeddedResource Include="Properties\Resources.resx">
- <Generator>ResXFileCodeGenerator</Generator>
- <LastGenOutput>Resources.Designer.cs</LastGenOutput>
- </EmbeddedResource>
- <EmbeddedResource Include="Models\FlowRangeToTimeResults.xlsx" />
- <None Include="packages.config" />
- <None Include="Properties\Settings.settings">
- <Generator>SettingsSingleFileGenerator</Generator>
- <LastGenOutput>Settings.Designer.cs</LastGenOutput>
- </None>
- <None Include="Tango.DispenserAnalyzer.UI_TemporaryKey.pfx" />
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\Tango.Core\Tango.Core.csproj">
- <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
- <Name>Tango.Core</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.CSV\Tango.CSV.csproj">
- <Project>{58e8825f-0c96-449c-b320-1e82b0aa876b}</Project>
- <Name>Tango.CSV</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.Documents\Tango.Documents.csproj">
- <Project>{ca87a608-7b17-4c98-88f2-42abee10f4c1}</Project>
- <Name>Tango.Documents</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.SharedUI\Tango.SharedUI.csproj">
- <Project>{8491d07b-c1f6-4b62-a412-41b9fd2d6538}</Project>
- <Name>Tango.SharedUI</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <Folder Include="Converters\" />
- </ItemGroup>
- <ItemGroup>
- <BootstrapperPackage Include=".NETFramework,Version=v4.6.1">
- <Visible>False</Visible>
- <ProductName>Microsoft .NET Framework 4.6.1 %28x86 and x64%29</ProductName>
- <Install>true</Install>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
- <Visible>False</Visible>
- <ProductName>.NET Framework 3.5 SP1</ProductName>
- <Install>false</Install>
- </BootstrapperPackage>
- </ItemGroup>
- <ItemGroup>
- <Resource Include="twin.ico" />
- </ItemGroup>
- <ItemGroup />
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml
deleted file mode 100644
index d8d4594b8..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml
+++ /dev/null
@@ -1,213 +0,0 @@
-<Window x:Class="Tango.DispenserAnalyzer.UI.View.SettingsWnd"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
- xmlns:local="clr-namespace:Tango.DispenserAnalyzer.UI.View"
- mc:Ignorable="d"
- Title="Settings" Height="690" Width="800" FontSize="22" ResizeMode="NoResize" WindowStyle="ToolWindow" Closing="Window_Closing">
- <Window.Resources>
- <Style TargetType="{x:Type TextBlock}" x:Key="WrapText">
- <Setter Property="TextWrapping" Value="Wrap"/>
- </Style>
-
- <Style TargetType="DataGridColumnHeader" BasedOn="{StaticResource {x:Type DataGridColumnHeader}}">
- <Setter Property="HorizontalAlignment" Value="Left"></Setter>
- <Setter Property="HorizontalContentAlignment" Value="Left"></Setter>
- <Setter Property="Padding" Value="0 0 0 0"></Setter>
- <Setter Property="Margin" Value="8 0 0 0"></Setter>
- <Setter Property="FontWeight" Value="SemiBold"/>
- <Setter Property="BorderThickness" Value="1"/>
- <Setter Property="Height" Value="Auto"/>
- <Setter Property="FontSize" Value="14"/>
- </Style>
- <Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
- <Setter Property="Padding" Value="1" />
- <Setter Property="BorderThickness" Value="0"/>
- <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
- <Setter Property="VerticalContentAlignment" Value="Center"></Setter>
- <Setter Property="VerticalAlignment" Value="Center"/>
- <Setter Property="HorizontalAlignment" Value="Left"/>
- <Setter Property="Margin" Value="8 0 8 0"/>
- <Setter Property="Height" Value="Auto"/>
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type DataGridCell}">
- <ContentPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- <Style.Triggers>
- <Trigger Property="IsSelected" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- <Setter Property="Foreground" Value="{StaticResource AccentColorBrush}" />
- </Trigger>
- </Style.Triggers>
- </Style>
- <Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Type DataGridRow}}">
- <Setter Property="BorderThickness" Value="0 0 0 1"/>
- <Setter Property="BorderBrush" Value="LightGray"/>
- <Setter Property="Height" Value="Auto"/>
- <Style.Triggers>
- <Trigger Property="IsMouseOver" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- <Setter Property="Foreground" Value="#4fc3f7" />
- <Setter Property="Cursor" Value="Hand"></Setter>
- </Trigger>
- <Trigger Property="IsSelected" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- </Trigger>
- <Trigger Property="IsFocused" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- </Trigger>
- </Style.Triggers>
- </Style>
-
- <Style x:Key="PropertyDataGrid" TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}">
- <Setter Property="BorderBrush" Value="#FF688CAF"/>
- <Setter Property="BorderThickness" Value="0"/>
- <Setter Property="HorizontalScrollBarVisibility" Value="Disabled" />
- <Setter Property="VerticalScrollBarVisibility" Value="Auto"/>
- </Style>
-
- <Style x:Key="ItemsControlStyle1" TargetType="{x:Type ItemsControl}">
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ItemsControl}">
- <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
- <ScrollViewer VerticalScrollBarVisibility="Auto">
- <ScrollViewer.Resources>
- <Style TargetType="ScrollBar">
- <Setter Property="Width" Value="10"/>
- <Setter Property="MinWidth" Value="10" />
- </Style>
- </ScrollViewer.Resources>
- <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
- </ScrollViewer>
- </Border>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
-
- </Window.Resources>
-
-
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="1*"/>
- <RowDefinition Height="80"/>
- </Grid.RowDefinitions>
- <Grid.ColumnDefinitions>
-
- </Grid.ColumnDefinitions>
- <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
- <ItemsControl ItemsSource="{Binding Settings}" Height="Auto" Style="{StaticResource ItemsControlStyle1}" MinHeight="20" Margin="0 0 20 20">
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <StackPanel VerticalAlignment="Center" Orientation="Vertical" IsItemsHost="True"></StackPanel>
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
-
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Border BorderThickness="1" BorderBrush="#4D4B4B4B" Margin="10" CornerRadius="6">
- <Grid Height="Auto" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto"/>
- <RowDefinition Height="Auto"/>
- </Grid.RowDefinitions>
- <Grid Grid.Row="0" VerticalAlignment="Top">
- <Border Margin="20 20 20 0" BorderBrush="LightGray" BorderThickness="0.6" CornerRadius="4" Height="36">
- <Border.Effect>
- <DropShadowEffect/>
- </Border.Effect>
- </Border>
- <Border Margin="20 20 20 0" BorderBrush="LightGray" BorderThickness="0.6" CornerRadius="4" Height="34" Background="#C4EEFC">
- <TextBlock FontSize="22" Padding="2" Text="{Binding Name}"/>
- </Border>
- </Grid>
- <DataGrid Grid.Row="1" Style="{StaticResource PropertyDataGrid}" ItemsSource="{Binding Settings}" Margin="20 20 20 0" GridLinesVisibility="None" SelectionMode="Single" AlternatingRowBackground="#F6F6F6" FontSize="12" HorizontalAlignment="Left" SelectionUnit="FullRow" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False">
- <DataGrid.Columns>
- <DataGridTextColumn Header="Property Name" Binding="{Binding PropertyName}" Width="250" ElementStyle="{StaticResource WrapText}"/>
- <DataGridTemplateColumn Header="Property Value" Width="150">
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <StackPanel Orientation="Horizontal">
- <TextBox Text="{Binding PropertyValue, Mode=TwoWay, UpdateSourceTrigger=LostFocus}" Width="50" VerticalAlignment="Top">
- <TextBox.Style>
- <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource MaterialDesignTextBox}">
- <Setter Property="Visibility" Value="Visible"/>
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsRangeVisible}" Value="true">
- <Setter Property="Visibility" Value="Collapsed"/>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </TextBox.Style>
- </TextBox>
- <DockPanel HorizontalAlignment="Stretch" Width="150">
- <DockPanel.Style>
- <Style TargetType="{x:Type DockPanel}">
- <Setter Property="Visibility" Value="Collapsed"/>
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsRangeVisible}" Value="true">
- <Setter Property="Visibility" Value="Visible"/>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </DockPanel.Style>
- <TextBox DockPanel.Dock="Left" Name="MinRangeValue" Width="50" Text="{Binding MinRangeValue, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
- <TextBox DockPanel.Dock="Right" Name="MaxRangeValue" Width="50" Text="{Binding MaxRangeValue, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
- </DockPanel>
- </StackPanel>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- <DataGridTextColumn Header="Default Value" Binding="{Binding DefaultValueDisplay}" Width="150" ElementStyle="{StaticResource WrapText}" />
- <DataGridTemplateColumn Header="" Width="Auto">
- <DataGridTemplateColumn.CellStyle>
- <Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
- <Setter Property="BorderThickness" Value="0"/>
- <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
- <Setter Property="VerticalContentAlignment" Value="Center"></Setter>
- <Setter Property="VerticalAlignment" Value="Center"/>
- <Setter Property="HorizontalAlignment" Value="Stretch"/>
- <Setter Property="Margin" Value="0 0 0 0"/>
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type DataGridCell}">
- <ContentPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- <Style.Triggers>
- <Trigger Property="IsSelected" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- <Setter Property="Foreground" Value="{StaticResource AccentColorBrush}" />
- </Trigger>
- </Style.Triggers>
- </Style>
- </DataGridTemplateColumn.CellStyle>
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <Grid HorizontalAlignment="Stretch" VerticalAlignment="Center">
- <Button Width="80" Padding="2" Height="26" FontSize="12" Margin="0 8" Command="{Binding SetDefaultCommand}">Set Default</Button>
- </Grid>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- </DataGrid.Columns>
- </DataGrid>
- </Grid>
- </Border>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </Grid>
- <Grid Grid.Row="1" >
- <Button Width="80" HorizontalAlignment="Right" Margin="20" Click="SaveButton_Click" IsDefault="True">Save</Button>
- </Grid>
- </Grid>
-</Window>
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml.cs
deleted file mode 100644
index 9879d8f7a..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Shapes;
-using Tango.DispenserAnalyzer.UI.ViewModels;
-
-namespace Tango.DispenserAnalyzer.UI.View
-{
- /// <summary>
- /// Interaction logic for SettingsWnd.xaml
- /// </summary>
- public partial class SettingsWnd : Window
- {
- private SettingsVM vm;
- public SettingsWnd()
- {
- InitializeComponent();
- vm = new SettingsVM();
- DataContext = vm;
- Loaded += Window_loaded;
- }
-
- public Dictionary<AnalyzerSettingsEnum, double> GetChanges()
- {
- return vm.GetChanges();
- }
-
- private void Window_loaded(object sender, RoutedEventArgs e)
- {
- Application curApp = Application.Current;
- Window mainWindow = curApp.MainWindow;
- this.Left = mainWindow.Left + (mainWindow.Width - this.ActualWidth) / 2;
- this.Top = mainWindow.Top + (mainWindow.Height - this.ActualHeight) / 2;
- }
-
- private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- vm.Dispose();
- }
- public void SaveButton_Click(object sender, RoutedEventArgs e)
- {
- this.DialogResult = true;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/MainWindowVM.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/MainWindowVM.cs
deleted file mode 100644
index 48d426d23..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/MainWindowVM.cs
+++ /dev/null
@@ -1,578 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Microsoft.Win32;
-using Tango.Core.Commands;
-using Tango.CSV;
-using Tango.DispenserAnalyzer.UI.Models;
-using Tango.SharedUI;
-using System.Collections.ObjectModel;
-using System.IO;
-using System.Windows.Input;
-using Tango.DispenserAnalyzer.UI.Analysis;
-using System.Windows;
-using System.Windows.Threading;
-using OxyPlot;
-using OxyPlot.Wpf;
-using OxyPlot.Annotations;
-using System.Windows.Media;
-using System.Diagnostics;
-using System.Windows.Documents;
-using System.Windows.Controls;
-using System.Windows.Xps;
-using System.Windows.Xps.Packaging;
-using System.Windows.Media.Imaging;
-using PdfSharp;
-using OxyPlot.Reporting;
-using System.Threading;
-using Tango.DispenserAnalyzer.UI.View;
-using Tango.Core.Helpers;
-using Tango.Documents;
-
-namespace Tango.DispenserAnalyzer.UI.ViewModels
-{
- public class MainWindowVM: ViewModel
- {
- private const string FILE_EXTENSION = ".pdf";
-
- public Plot PlotControl { get; set; }
-
- /// <summary>
- /// Gets or sets the results panel. Using to save all results in xps file
- /// </summary>
- public System.Windows.Controls.ItemsControl ResultsPanel { get; set; }
-
- private string _openFilePath;
- public string OpenFilePath
- {
- get { return _openFilePath; }
- set
- {
- if(value != null && _openFilePath != value)
- {
- _openFilePath = value;
- OnSelectedFileChanged();
- RaisePropertyChangedAuto();
- GenerateCommand.RaiseCanExecuteChanged();
- }
- }
- }
-
- private string _filename;
- public string FileName
- {
- get { return _filename; }
- set { _filename = value;
- RaisePropertyChangedAuto();
- RaisePropertyChanged("ButtonName"); }
- }
-
- public string ButtonName {
- get { return "Generate result for " + FileName; }
- }
-
- private string _testName = "";
- public string TestName
- {
- get { return _testName.ToUpper() + " TEST"; }
- set { _testName = value; RaisePropertyChangedAuto(); }
- }
-
- private IList<DataPoint> _points;
- /// <summary>
- /// Binding to ItemsSource of line chart.
- /// </summary>
- public IList<DataPoint> Points
- {
- get { return _points; }
- set
- {
- _points = value;
- RaisePropertyChangedAuto();
- }
- }
- private int _step;
- public int XStep
- {
- get { return _step; }
- set { _step = value; RaisePropertyChangedAuto(); }
- }
-
- private double _from;
- /// <summary>
- /// From use to binding to bottom axis min value
- /// </summary>
- public double From
- {
- get { return _from; }
- set
- {
- _from = value; RaisePropertyChangedAuto();
- }
- }
-
- private double _to;
- /// <summary>
- /// To use to binding to bottom axis max value
- /// </summary>
- public double To
- {
- get { return _to; }
- set
- {
- _to = value; RaisePropertyChangedAuto();
- }
- }
-
- private string _titleAxisBottom;
-
- public string TitleAxisBottom
- {
- get { return _titleAxisBottom; }
- set { _titleAxisBottom = value; RaisePropertyChangedAuto(); }
- }
-
- private string _titleAxisLeft;
-
- public string TitleAxisLeft
- {
- get { return _titleAxisLeft; }
- set { _titleAxisLeft = value; RaisePropertyChangedAuto(); }
- }
-
-
-
- private bool _isRunning;
- /// <summary>
- /// Gets or sets a value indicating whether this instance is running.
- /// </summary>
- public bool IsRunning
- {
- get { return _isRunning; }
- set { _isRunning = value; RaisePropertyChangedAuto(); }
- }
-
- private ObservableCollection<IAnalyzerResult> _analyzerResults;
- public ObservableCollection<IAnalyzerResult> AnalyzerResults
- {
- get { return _analyzerResults; }
- set { _analyzerResults = value; RaisePropertyChangedAuto(); }
- }
-
- public Func<double, string> YFormatter { get; set; }
-
- public RelayCommand OpenCSVFileCommand { get; set; }
- public RelayCommand GenerateCommand { get; set; }
- public RelayCommand OpenSettingWndCommand { get; set; }
-
- public MainWindowVM()
- {
- OpenCSVFileCommand = new RelayCommand(OpenCSVFile);
- GenerateCommand = new RelayCommand(Generate, CanGenerate);
- OpenSettingWndCommand = new RelayCommand(OpenSettingWnd);
-
- YFormatter = value => value.ToString();
- _from = 0;
- _to = 1;
- XStep = 1;
- AnalyzerResults = new ObservableCollection<IAnalyzerResult>();
- _isRunning = false;
- TitleAxisBottom = "";
- TitleAxisLeft = "";
- this.Points = new List<DataPoint>();
- }
-
- #region Settings
-
- public void OpenSettingWnd()
- {
- SettingsWnd settings = new SettingsWnd();
- settings.Owner = System.Windows.Application.Current.MainWindow;
- if(true == settings.ShowDialog())
- {
- Dictionary<AnalyzerSettingsEnum, double> changes = settings.GetChanges();
- foreach (KeyValuePair<AnalyzerSettingsEnum, double> entry in changes)
- {
- Settings.SetValueByName(entry.Key, entry.Value);
- }
- }
- }
-
- #endregion
-
- #region Read File
- private void OpenCSVFile()
- {
- OpenFileDialog dlg = new OpenFileDialog();
- dlg.Filter = "CSV Files|*.csv";
- if (dlg.ShowDialog().Value)
- {
- try
- {
- OpenFilePath = dlg.FileName;
- }
- catch (Exception ex)
- {
- MessageBox.Show("An error occurred while trying to import the CSV file. " + ex.Message,
- "Warning",
- MessageBoxButton.OK,
- MessageBoxImage.Warning);
- }
- }
- }
- protected virtual bool IsFileLocked(string filePath)
- {
- FileStream stream = null;
- try
- {
- stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.None);
- }
- catch (IOException ex)
- {
- MessageBox.Show("Warning: " + ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
- return true;
- }
- finally
- {
- if (stream != null)
- stream.Close();
- }
- return false;
- }
-
- private void OnSelectedFileChanged()
- {
- ResetSettings();
- if(File.Exists(OpenFilePath))
- {
- FileHelper.OpenFilePath = OpenFilePath;
- FileName = Path.GetFileName(OpenFilePath);
- }
- }
- #endregion
-
- #region Generate
-
- public bool CanGenerate()
- {
- return (OpenFilePath!= null && OpenFilePath.Length != 0 && File.Exists(OpenFilePath));
- }
-
- /// <summary>
- /// Generates all results.
- /// </summary>
- public async void Generate()
- {
- if (false == File.Exists(OpenFilePath) || IsFileLocked(OpenFilePath))
- return;
- ResetSettings();
-
- var analyzer = AnalysisService.GetAnalyzer(OpenFilePath);
- if (analyzer == null)
- return;
-
- IsRunning = true;
- AnalyzerAttribute[] attr = analyzer.GetType().GetCustomAttributes(typeof(AnalyzerAttribute), true);
- if (attr != null && attr.Count() > 0)
- {
- TestName = attr[0].Name;
- }
- List<OxyPlot.Wpf.LineAnnotation> annotations = new List<OxyPlot.Wpf.LineAnnotation>();
- var samples = analyzer.Reader.ReadScvFile(OpenFilePath, annotations);
- analyzer.GetPoints(samples, Points);
- if (Points.Count == 0)
- {
- IsRunning = false;
- return;
- }
- annotations.ForEach(x => PlotControl.Annotations.Add(x));
- To = 0;
- From = 0;
-
- List<IAnalyzerResult> res = await analyzer.Process(samples, false);
- AnalyzerResults = new ObservableCollection<IAnalyzerResult>(res);
-
- _to = Points.Max(x => x.Y);
- _from = TestName.Contains("sealtest") ? Points.FirstOrDefault(x => x.X == 0).Y : Points.Min(x => x.Y);
- List<string> titles = analyzer.Reader.GetTitles(OpenFilePath);
- TitleAxisBottom = titles[0];
- TitleAxisLeft = titles[1];
-
- // data.Clear();
- _to += 100;
- RaisePropertyChanged("To");
- if (_from != 0)
- _from -= 100;
- RaisePropertyChanged("From");
- XStep = (int)(Points.Count / 5);
-
- IsRunning = false;
- PlotControl.InvalidatePlot(true);
-
- if(analyzer.Reader.PrintResultsToPDFFile())
- {
- await PrintToXpsFile();
- }
- }
-
- /// <summary>
- /// Generates all results from command line and close application.
- /// </summary>
- public async Task GenerateInBackground(string openFilePath)
- {
- OpenFilePath = openFilePath;
-
- if (false == File.Exists(OpenFilePath) || IsFileLocked(OpenFilePath))
- return;
-
- var analyzer = AnalysisService.GetAnalyzer(OpenFilePath);
- if (analyzer == null)
- return;
-
- AnalyzerAttribute[] attr = analyzer.GetType().GetCustomAttributes(typeof(AnalyzerAttribute), true);
- if (attr != null && attr.Count() > 0)
- {
- TestName = attr[0].Name;
- }
-
- List<OxyPlot.Wpf.LineAnnotation> annotations = new List<OxyPlot.Wpf.LineAnnotation>();
- var samples = analyzer.Reader.ReadScvFile(OpenFilePath, annotations);
- analyzer.GetPoints(samples, Points);
- if (Points.Count == 0)
- {
- return;
- }
-
- List<IAnalyzerResult> res = await analyzer.Process(samples, true);
- AnalyzerResults = new ObservableCollection<IAnalyzerResult>(res);
-
- await ExportResultsToTextFile();
- }
- #endregion
-
- private void ResetSettings()
- {
- Points.Clear();
-
- AnalyzerResults.Clear();
- TestName = "";
- foreach (var ax in PlotControl.Axes)
- {
- ax.Maximum = ax.Minimum = Double.NaN;
- PlotControl.ResetAllAxes();
- }
- PlotControl.Annotations.Clear();
- PlotControl.InvalidatePlot(true);
- }
-
- #region SaveInXps file
- private async Task PrintToXpsFile()
- {
- await Task.Delay(200);
- try
- {
- var resultFile = FileHelper.GetResultFilePath();
- if (resultFile.IsNotNullOrEmpty())
- {
- SaveResultsAsXps(resultFile);
- }
- }
- catch(Exception ex)
- {
- Debug.WriteLine(ex);
- }
- }
-
- public void SaveResultsAsXps( string fileName)
- {
- var dir = Path.GetDirectoryName(fileName);
- var name = Path.GetFileNameWithoutExtension(fileName);
- string fileNameWithoutExtension = Path.Combine(dir, name);
-
- ContentControl cc = ResultsPanel.Parent as ContentControl;
- ResultsPanel.UpdateLayout();
-
- List<Plot> all_plots = ResultsPanel.FindVisualChildren<OxyPlot.Wpf.Plot>().ToList();
- List<Plot> plots = new List<Plot>();
- List<System.Windows.Controls.Image> plotimages = new List<System.Windows.Controls.Image>();
- int index = 0;
- foreach (var item in all_plots)
- {
- var seriesdata = item.Series[0].ItemsSource;
-
- item.RaiseEvent(new System.Windows.RoutedEventArgs(OxyPlot.Wpf.PlotView.LoadedEvent));
- item.InvalidatePlot(true);
- if (item.IsMeasureValid && item.ActualHeight > 0)
- {
- plots.Add(item);
- string pngPlotFileName = String.Format($"{fileNameWithoutExtension}_Plottest{index}.png");
- File.Delete(pngPlotFileName);
- System.Windows.Controls.Image plotImage = new System.Windows.Controls.Image();
- //print plot to png file - removed 2/07/2020
- //using (var stream = File.Open(pngPlotFileName, FileMode.Create, FileAccess.ReadWrite))
- {
- PngExporter exporter = new PngExporter() { Width = (int)item.ActualWidth, Height = (int)item.ActualHeight, Background = OxyColors.White, Resolution = 96 };
- //exporter.Export(item.ActualModel, stream);
-
- BitmapSource bitmap = exporter.ExportToBitmap(item.ActualModel);
- plotImage.Source = bitmap;
- plotImage.UpdateLayout();
- var parent = item.Parent;
- if (parent is Panel)
- {
- var plpanel = (Panel)parent;
- plpanel.Children.Remove(item);
- plpanel.Children.Add(plotImage);
- plpanel.UpdateLayout();
- }
- else if (parent is Decorator)
- {
- ((Decorator)parent).Child = plotImage;
- ((Border)parent).UpdateLayout();
- }
- }
- plotimages.Add(plotImage);
- index++;
- }
- ResultsPanel.UpdateLayout();
- }
-
- if (cc != null)
- {
- cc.Content = null;
- CreateDoc(fileName, plots, plotimages);
- cc.Content = ResultsPanel;
- }
- }
-
- private void CreateDoc( string fileName, List<Plot> plots, List<System.Windows.Controls.Image> plotimages)
- {
- Dispatcher.CurrentDispatcher.Invoke( DispatcherPriority.Loaded, new Action(() =>
- {
- var dir = Path.GetDirectoryName(fileName);
- var name = Path.GetFileNameWithoutExtension(fileName);
- string fileNameWithoutExtension = Path.Combine(dir, name);
-
- Size reportSize = GetReportSize(ResultsPanel);
-
- FixedDocument fixedDoc = new FixedDocument();
- PageContent pageContent = new PageContent();
- FixedPage fixedPage = new FixedPage();
- fixedPage.Width = reportSize.Width;
- fixedPage.Height = reportSize.Height;
- fixedPage.Children.Add(ResultsPanel);
- fixedPage.UpdateLayout();
-
- pageContent.BeginInit();
- ((System.Windows.Markup.IAddChild)pageContent).AddChild(fixedPage);
- pageContent.EndInit();
-
- fixedDoc.Pages.Add(pageContent);
-
- InjectData(fixedDoc, AnalyzerResults);
- ResultsPanel.Measure(reportSize);
- ResultsPanel.Arrange(new Rect(new Point(0, 0), ResultsPanel.DesiredSize));
- ResultsPanel.UpdateLayout();
-
-
- String sourceXpsFile = String.Format($"{fileNameWithoutExtension}_test.xps");
- File.Delete(sourceXpsFile);
- using (XpsDocument xpsd = new XpsDocument(sourceXpsFile, FileAccess.Write))
- {
- System.Windows.Xps.XpsDocumentWriter xw = XpsDocument.CreateXpsDocumentWriter(xpsd);
- xw.Write(fixedDoc);
- }
- fixedPage.Children.Remove(ResultsPanel);
- PdfSharp.Xps.XpsConverter.Convert(sourceXpsFile, fileName, 0);
- File.Delete(sourceXpsFile);
- }));
-
-
- }
-
- /// <summary>
- /// Injects the data to printed document. Without this the binding data to elements doesn't work.
- /// </summary>
- /// <param name="document">The document.</param>
- /// <param name="dataSource">The data source.</param>
- protected void InjectData(FixedDocument document, object dataSource)
- {
- document.DataContext = new { AnalyzerResults = dataSource };
- // we need to give the binding infrastructure a push as we
- // are operating outside of the intended use of WPF
- var dispatcher = Dispatcher.CurrentDispatcher;
- dispatcher.Invoke(DispatcherPriority.SystemIdle, new DispatcherOperationCallback(delegate { return null; }), null);
- }
-
- private static Size GetReportSize(ItemsControl reportContainer)
- {
- double reportWidth = reportContainer.ActualWidth + 10;
- double reportHeight = reportContainer.ActualHeight + 10;// (reportWidth / printDialog.PrintableAreaWidth) * printDialog.PrintableAreaHeight;
-
- return new Size(reportWidth, reportHeight);
- }
-
- public static void Print(IPlotModel model, string fileName, double width, double height)
- {
- using (var stream = File.Open(fileName, FileMode.Create, FileAccess.ReadWrite))
- {
- var exporter = new XpsExporter { Width = width, Height = height};
- //PngExporter.Export(this.Plot.ActualModel, fileName, 600, 400, OxyColors.White)
- exporter.Export(model, stream);
- }
- }
-
- #endregion
-
- #region ExportToExel
-
- public async Task ExportResultsToTextFile()
- {
- var resultFile = FileHelper.GetResultFilePath();
- var dir = Path.GetDirectoryName(resultFile);
- var name = Path.GetFileNameWithoutExtension(resultFile);
- string fileNameWithoutExtension = Path.Combine(dir, name);
- String sourceFile = String.Format($"{fileNameWithoutExtension}s.txt");
- File.Delete(sourceFile);
-
- await Task.Factory.StartNew(() =>
- {
- try
- {
- List<IAnalyzerResult> results = AnalyzerResults.ToList();
-
- using (StreamWriter outputFile = new StreamWriter(sourceFile))
- {
- outputFile.WriteLine(String.Format($" {TestName.ToUpper()} RESULTS: "));
- outputFile.WriteLine("");
- outputFile.WriteLine("");
- foreach (var res in results)
- {
- if (res.GetType().IsSubclassOf(typeof(AnalyzerResultBase)))
- {
- List<AnalyzerResultProperty> properties = (res as AnalyzerResultBase).Properties;
- foreach (var prop in properties)
- {
- outputFile.WriteLine(String.Format($" {prop.Name} : {prop.Value}"));
- }
- string resV = String.Format($" RESULT = {res.Result.ToString()}");
- outputFile.WriteLine(resV);
- outputFile.WriteLine("");
- }
- }
- outputFile.Flush();
- }
- }
- catch (Exception ex)
- {
- Debug.WriteLine(ex);
- }
- });
-
- }
- #endregion
-
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/SettingsVM.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/SettingsVM.cs
deleted file mode 100644
index b610d7652..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/SettingsVM.cs
+++ /dev/null
@@ -1,132 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Models;
-using Tango.SharedUI;
-
-namespace Tango.DispenserAnalyzer.UI.ViewModels
-{
- public class SettingVM: ViewModel
- {
- private string _name;
-
- public string Name
- {
- get { return _name; }
- set { _name = value; }
- }
-
- private ObservableCollection<SettingsModel> _settings;
-
- public ObservableCollection<SettingsModel> Settings
- {
- get { return _settings; }
- set { _settings = value; RaisePropertyChangedAuto(); }
- }
-
- public SettingVM(string name)
- {
- _settings = new ObservableCollection<SettingsModel>();
- Name = name;
- }
-
- public void AddSettings(List<SettingsModel> settings)
- {
- settings.ForEach(x => Settings.Add(x));
- }
-
-
- }
- public class SettingsVM : ViewModel, IDisposable
- {
- public Dictionary<AnalyzerSettingsEnum, double> ChangedValues { get; set; }
-
- private ObservableCollection<SettingVM> _settings;
-
- public ObservableCollection<SettingVM> Settings
- {
- get { return _settings; }
- set { _settings = value; RaisePropertyChangedAuto(); }
- }
-
- public SettingsVM()
- {
- _settings = new ObservableCollection<SettingVM>();
- ChangedValues = new Dictionary<AnalyzerSettingsEnum, double>();
- InitPBUTestSettings();
- InitProcessSettings();
- InitFlowTestSettings();
-
- }
-
- private void InitPBUTestSettings()
- {
- SettingVM model = new SettingVM("Pressure build up");
- List<SettingsModel> list = new List<SettingsModel>();
- list.Add(new SettingsModel(AnalyzerSettingsEnum.PBUPassFail, "4.5 sec"));
- model.AddSettings(list);
- list.ForEach(x => x.SettingValueEvent += new EventHandler(OnSettingValueChanged));
- Settings.Add(model);
- }
-
- private void InitFlowTestSettings()
- {
- SettingVM model = new SettingVM("Flow test");
- List<SettingsModel> list = new List<SettingsModel>();
-
- list.Add(new SettingsModel(AnalyzerSettingsEnum.FlowPBUPassFail, "4.5 sec"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.ExcludeAnalysis, "1800 reads"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.AvgMinValue, "1400-1850 [mbar]", true));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.MaxMinRange, "450 reads"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.MaxMinIntervals, "450 reads"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.MaxError, "1.5%"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.TakeOffMaxMin, "3"));
- list.ForEach(x => x.SettingValueEvent += new EventHandler(OnSettingValueChanged));
- model.AddSettings(list);
- Settings.Add(model);
- }
-
- private void InitProcessSettings()
- {
- SettingVM model = new SettingVM("Process");
- List<SettingsModel> list = new List<SettingsModel>();
- list.Add(new SettingsModel(AnalyzerSettingsEnum.TimeInterval, "0.1 sec"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.StartCalculation, "600 sec"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.EndCalculation, "900 sec"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.MovingAvg, "50 points"));
- list.ForEach(x => x.SettingValueEvent += new EventHandler(OnSettingValueChanged));
- model.AddSettings(list);
- Settings.Add(model);
- }
-
- private void OnSettingValueChanged(object sender, EventArgs e)
- {
- if (sender is SettingsModel)
- {
- SettingsModel settingModel = sender as SettingsModel;
- if (settingModel.IsRangeVisible)
- {
- ChangedValues[AnalyzerSettingsEnum.AvgMinValue] = settingModel.MinRangeValue;
- ChangedValues[AnalyzerSettingsEnum.AvgMaxValue] = settingModel.MaxRangeValue;
- }
- else
- ChangedValues[settingModel._enumName] = settingModel.PropertyValue;
- }
- }
-
- public Dictionary<AnalyzerSettingsEnum, double> GetChanges()
- {
- return ChangedValues;
- }
-
- public void Dispose()
- {
- Settings.ToList().ForEach(x => {
- x.Settings.ToList().ForEach(k => k.SettingValueEvent -= OnSettingValueChanged);
- });
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/packages.config b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/packages.config
deleted file mode 100644
index 832cf227f..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/packages.config
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
- <package id="MathNet.Numerics" version="4.9.0" targetFramework="net461" />
- <package id="OxyPlot.Core" version="2.0.0" targetFramework="net461" />
- <package id="OxyPlot.Wpf" version="2.0.0" targetFramework="net461" />
- <package id="PDFsharp" version="1.50.5147" targetFramework="net461" />
-</packages> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/ColorMine.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/ColorMine.dll.deploy
deleted file mode 100644
index c78699979..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/ColorMine.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/DocumentFormat.OpenXml.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/DocumentFormat.OpenXml.dll.deploy
deleted file mode 100644
index 7978b0462..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/DocumentFormat.OpenXml.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EFCache.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EFCache.dll.deploy
deleted file mode 100644
index 5fb35f260..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EFCache.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EntityFramework.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EntityFramework.dll.deploy
deleted file mode 100644
index 9275df68e..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EntityFramework.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Google.Protobuf.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Google.Protobuf.dll.deploy
deleted file mode 100644
index faa4f959f..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Google.Protobuf.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/LiteDB.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/LiteDB.dll.deploy
deleted file mode 100644
index ca08f66f5..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/LiteDB.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MahApps.Metro.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MahApps.Metro.dll.deploy
deleted file mode 100644
index 4c52491f6..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MahApps.Metro.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignColors.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignColors.dll.deploy
deleted file mode 100644
index f7c1eaa44..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignColors.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignThemes.Wpf.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignThemes.Wpf.dll.deploy
deleted file mode 100644
index 8bfe328ab..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignThemes.Wpf.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MathNet.Numerics.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MathNet.Numerics.dll.deploy
deleted file mode 100644
index 2aa884d31..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MathNet.Numerics.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Newtonsoft.Json.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Newtonsoft.Json.dll.deploy
deleted file mode 100644
index be6558d2d..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Newtonsoft.Json.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.Wpf.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.Wpf.dll.deploy
deleted file mode 100644
index 44f75da1d..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.Wpf.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.dll.deploy
deleted file mode 100644
index f2c722528..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp-WPF.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp-WPF.dll.deploy
deleted file mode 100644
index 048b3d85d..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp-WPF.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Charting.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Charting.dll.deploy
deleted file mode 100644
index f648e4a19..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Charting.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Xps.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Xps.dll.deploy
deleted file mode 100644
index 5a0e8a3fe..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Xps.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.dll.deploy
deleted file mode 100644
index 4fcde52f1..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/SimpleValidator.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/SimpleValidator.dll.deploy
deleted file mode 100644
index c70970ba9..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/SimpleValidator.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Data.SQLite.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Data.SQLite.dll.deploy
deleted file mode 100644
index 59f3dcc37..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Data.SQLite.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.IO.Compression.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.IO.Compression.dll.deploy
deleted file mode 100644
index f8468a652..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.IO.Compression.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Windows.Interactivity.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Windows.Interactivity.dll.deploy
deleted file mode 100644
index 931c744c8..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Windows.Interactivity.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.BL.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.BL.dll.deploy
deleted file mode 100644
index fd3c6747d..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.BL.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.CSV.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.CSV.dll.deploy
deleted file mode 100644
index 25105272c..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.CSV.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Core.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Core.dll.deploy
deleted file mode 100644
index 7c6414e91..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Core.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.application b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.application
deleted file mode 100644
index f490058f7..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.application
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
- <assemblyIdentity name="Tango.DispenserAnalyzer.UI.application" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
- <description asmv2:publisher="Dispenser Analyser" asmv2:product="Tango.Dispenser Analyser" xmlns="urn:schemas-microsoft-com:asm.v1" />
- <deployment install="true" mapFileExtensions="true" />
- <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
- <framework targetVersion="4.6.1" profile="Full" supportedRuntime="4.0.30319" />
- </compatibleFrameworks>
- <dependency>
- <dependentAssembly dependencyType="install" codebase="Application Files\Tango.DispenserAnalyzer.UI_2_0_0_0\Tango.DispenserAnalyzer.UI.exe.manifest" size="26869">
- <assemblyIdentity name="Tango.DispenserAnalyzer.UI.exe" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" type="win32" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>eiKxJvcr4ylNdFFD94Ti1JzvXyOiOJBZVkzaPrLMawU=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
-<publisherIdentity name="CN=TWINE\victoria" issuerKeyHash="59607512eeb9e38b76e48f6d9fa40740c59f2d3c" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>Sn9KPiVwf5LL2QPSXS4tvuYjY4MZRQxAsMkMtjjSnrs=</DigestValue></Reference></SignedInfo><SignatureValue>t0T5+l4gViKhYgwhMba1xkyrc3bQ9EhXqsk4rZX7R6/vSdm7/QtQoSEVvlCbkA4rw56Q+n09pwohezJNla+Kre/kWe5EfJ2UcMk2PorKF0V3HWauRpqqfh9TjkuQLoaUdX1cUf92kmNK8pRMNZeeASO7OBUQWMccb1ePNsFS++g=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>zzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2U=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="bb9ed238b60cc9b0400c4519836323e6be2d2e5dd203d9cb927f70253e4a7f4a" Description="" Url=""><as:assemblyIdentity name="Tango.DispenserAnalyzer.UI.application" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=TWINE\victoria</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>gXJTLU7syw5LlEy5QT6ApZg3NAr3qHl8g3/qZ6xl9ms=</DigestValue></Reference></SignedInfo><SignatureValue>KU6gcRD5cWaF0D2D08Zpr8oVMZeFtNvtszM59rs3WuJ3c79RZlzsd2IYW4YYNCE0LGgpvlnu+ydp7aZwtFVQ7yhGPNkcwijZoumVd4ZTaw0bIuwvCswvlzq+CCbKy+BB6JfKnITutKUuwTsyIdhKVDyZJxj3VFJHN3p0EvRpcfI=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>zzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2U=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIB0TCCATqgAwIBAgIQHNNUEeosJbVGklX8IkvE8TANBgkqhkiG9w0BAQsFADAnMSUwIwYDVQQDHhwAVABXAEkATgBFAFwAdgBpAGMAdABvAHIAaQBhMB4XDTIwMDYyMjE0NTcyNFoXDTIxMDYyMjIwNTcyNFowJzElMCMGA1UEAx4cAFQAVwBJAE4ARQBcAHYAaQBjAHQAbwByAGkAYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2UCAwEAATANBgkqhkiG9w0BAQsFAAOBgQCs/8lt/tnwuA4tLzkX/huqZjpIDkyBkId+bC/z4T9W4a80G9LOcWpoYnaCUR2mIJbgST+932WNv0IGrc23jpqEjojjK2/QuvjHARGtavs/hJc5NYZD9xo5MjotGI8IbbjWxW++MKsnAU8TjpJEEbiFSQetboML65NcSiMuuo2UMw==</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.config.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.config.deploy
deleted file mode 100644
index ddc8cb7a6..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.config.deploy
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
- </startup>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-5.0.5.0" newVersion="5.0.5.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.2.2.0" newVersion="1.2.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.4.2.0" newVersion="1.4.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Z.EntityFramework.Extensions" publicKeyToken="59b66d028979105b" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.50.0" newVersion="4.0.50.0" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
-</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.deploy
deleted file mode 100644
index 54bb356a8..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.manifest b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.manifest
deleted file mode 100644
index f5a991ddc..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.manifest
+++ /dev/null
@@ -1,425 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
- <asmv1:assemblyIdentity name="Tango.DispenserAnalyzer.UI.exe" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" type="win32" />
- <application />
- <entryPoint>
- <assemblyIdentity name="Tango.DispenserAnalyzer.UI" version="1.1.0.0" language="neutral" processorArchitecture="msil" />
- <commandLine file="Tango.DispenserAnalyzer.UI.exe" parameters="" />
- </entryPoint>
- <trustInfo>
- <security>
- <applicationRequestMinimum>
- <PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
- <defaultAssemblyRequest permissionSetReference="Custom" />
- </applicationRequestMinimum>
- <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
- <!--
- UAC Manifest Options
- If you want to change the Windows User Account Control level replace the
- requestedExecutionLevel node with one of the following.
-
- <requestedExecutionLevel level="asInvoker" uiAccess="false" />
- <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
- <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
-
- If you want to utilize File and Registry Virtualization for backward
- compatibility then delete the requestedExecutionLevel node.
- -->
- <requestedExecutionLevel level="asInvoker" uiAccess="false" />
- </requestedPrivileges>
- </security>
- </trustInfo>
- <dependency>
- <dependentOS>
- <osVersionInfo>
- <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
- </osVersionInfo>
- </dependentOS>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
- <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="ColorMine.dll" size="32256">
- <assemblyIdentity name="ColorMine" version="1.2.0.0" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>PgU74yyS2Imy65XcI2cVNH84c06vXrmm6+fcSsYYliY=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="DocumentFormat.OpenXml.dll" size="5697824">
- <assemblyIdentity name="DocumentFormat.OpenXml" version="2.7.2.0" publicKeyToken="8FB06CB64D019A17" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>poeWiknlhBNq1OeIpsSUWt4fCGjpLQslgLOzl2R98Uc=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="EFCache.dll" size="35328">
- <assemblyIdentity name="EFCache" version="1.1.3.0" publicKeyToken="46C4868AF4307D2C" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>1C04PduKM0+kdK7ANZe+gEuk82+Iuhzm+jGwm94Hv5w=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="EntityFramework.dll" size="5225168">
- <assemblyIdentity name="EntityFramework" version="6.0.0.0" publicKeyToken="B77A5C561934E089" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>nCD7KthqdgsMauvZMByQCYkdAq4UcgqTkmwLU1uK0Js=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Google.Protobuf.dll" size="276480">
- <assemblyIdentity name="Google.Protobuf" version="3.4.1.0" publicKeyToken="A7D26565BAC4D604" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>cGM/vPf7KHrrIx37vLOM3VplFKKihDWG6LHCEGtoWIM=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="LiteDB.dll" size="461824">
- <assemblyIdentity name="LiteDB" version="5.0.4.0" publicKeyToken="4EE40123013C9F27" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>AJ0b8xq+/Qx1zTCw9vCkluaCb7VL1+GQCnJXMKKx+lc=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MahApps.Metro.dll" size="1146368">
- <assemblyIdentity name="MahApps.Metro" version="1.5.0.23" publicKeyToken="F4FB5A3C4D1E5B4F" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>8ajYIaF9mjjIeLYjnxwULwRJVgetF0VwIu9YeWwSfVE=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MaterialDesignColors.dll" size="224256">
- <assemblyIdentity name="MaterialDesignColors" version="1.1.2.0" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>d4wZkVSpfjUBqYKDtRfNT80gSBwKfOiY66XUQlfkFX0=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MaterialDesignThemes.Wpf.dll" size="4538880">
- <assemblyIdentity name="MaterialDesignThemes.Wpf" version="2.3.1.953" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>rOZ71y/A8+NZqgkh4zex0EuvaI3YUPF3jmcHeU1sx9s=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MathNet.Numerics.dll" size="1676824">
- <assemblyIdentity name="MathNet.Numerics" version="4.9.0.0" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>mbS2KeRuHkrky7/Kb8t9QzlV5FMYxnascno1yXE0UjE=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Newtonsoft.Json.dll" size="526336">
- <assemblyIdentity name="Newtonsoft.Json" version="9.0.0.0" publicKeyToken="30AD4FE6B2A6AEED" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>V14w+Y5OpCyeUW7ci7sprYtQsXOj5rNrW6OeEzzOlAY=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="OxyPlot.dll" size="549376">
- <assemblyIdentity name="OxyPlot" version="2.0.0.0" publicKeyToken="638079A8F0BD61E9" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>vK0M/swEOEMAi0ryfXTkz0Zjigbl2dinsJ/6tuWCmpg=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="OxyPlot.Wpf.dll" size="160768">
- <assemblyIdentity name="OxyPlot.Wpf" version="2.0.0.0" publicKeyToken="75E952BA404CDBB0" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>ISsNz4aIwqIJLHtgXpc8mMX2dSeDKtrQruRZx50YLSs=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="PdfSharp.dll" size="535040">
- <assemblyIdentity name="PdfSharp" version="1.50.5147.0" publicKeyToken="F94615AA0424F9EB" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>L6CJPGoajmQ0LmXlRk+tQXN2vSzJhOU1dfWCmwfmoGc=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="PdfSharp.Charting.dll" size="80896">
- <assemblyIdentity name="PdfSharp.Charting" version="1.50.5147.0" publicKeyToken="F94615AA0424F9EB" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>iZ82KufB7VL4vikYPHOk4epNcuQzBa0wqUJtaeI6ecg=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="PdfSharp.Xps.dll" size="126464">
- <assemblyIdentity name="PdfSharp.Xps" version="1.0.0.0" publicKeyToken="F94615AA0424F9EB" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>huTss2rXs8KGQ8PQHtADyWJl0oeyPKg2ATaCakFu+d0=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="PdfSharp-WPF.dll" size="589312">
- <assemblyIdentity name="PdfSharp-WPF" version="1.31.1789.0" publicKeyToken="F94615AA0424F9EB" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>meUyQ9VFctyBIGBgDrxIjzfQMEzpKaEzTFPwN6TXJA8=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="SimpleValidator.dll" size="30208">
- <assemblyIdentity name="SimpleValidator" version="0.6.1.0" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>XzWWPUCP55BeUMXcoXUNc2yKEpSn/fQVP1A9383qWYA=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Data.SQLite.dll" size="345600">
- <assemblyIdentity name="System.Data.SQLite" version="1.0.108.0" publicKeyToken="DB937BC2D44FF139" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>VLEF/4rXqsFJ5PQmFaN6Bj/sfOmz7dLNbN7B62xX4sA=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.IO.Compression.dll" size="111984">
- <assemblyIdentity name="System.IO.Compression" version="4.1.2.0" publicKeyToken="B77A5C561934E089" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>uWPrlWJ7XyI+gT/OilPmydcokXFJI95yYxEUc/rr8+8=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Windows.Interactivity.dll" size="55904">
- <assemblyIdentity name="System.Windows.Interactivity" version="4.5.0.0" publicKeyToken="31BF3856AD364E35" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>k/vFnkiAr8nxNsOsCXatp/P6p8rO3OXIJLM3y8qdLr8=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.BL.dll" size="987136">
- <assemblyIdentity name="Tango.BL" version="2.0.36.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>p7x0p3lnYvy5wrWHUOr1BIJb+z1ebGPRZEAY+yhdhRU=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.Core.dll" size="138240">
- <assemblyIdentity name="Tango.Core" version="2.0.33.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>3mf3dtzccuo8w8eRRue7CDVltNZygjDwR5DytqWY/IQ=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.CSV.dll" size="22016">
- <assemblyIdentity name="Tango.CSV" version="2.0.17.1657" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>VHg/VJxYIyR+GBIvRWuc8bpfbqXP114iJm+q/80u6pE=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.DispenserAnalyzer.UI.exe" size="61368">
- <assemblyIdentity name="Tango.DispenserAnalyzer.UI" version="1.1.0.0" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>IP7iNwWCnAWkBM5sAjmrDPRrTTYlaG4hd5YLQDuArWQ=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.Documents.dll" size="20480">
- <assemblyIdentity name="Tango.Documents" version="2.0.4.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>XqWUXg9aTwfULoENsOT1FrHjyaTeAzs59nmarlFI8Ms=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.DragAndDrop.dll" size="20480">
- <assemblyIdentity name="Tango.DragAndDrop" version="2.0.28.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>FXBik223FPVVyaQ129dlIS+HSP/zcJTiiHdQ9hOkc/E=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.Logging.dll" size="37888">
- <assemblyIdentity name="Tango.Logging" version="2.0.37.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>8nHS0Sg2Flxj99FNk2i9m3dRwHyA2wM8w9hrNFyY2GY=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.PMR.dll" size="1528832">
- <assemblyIdentity name="Tango.PMR" version="2.0.40.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>mIpF+uzDNjXFbHDs8j1lPSx7PBBr4cJWQfQVLBkvOCU=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.Settings.dll" size="9728">
- <assemblyIdentity name="Tango.Settings" version="2.0.31.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>FmjatwQJYqP/M/14WnGYcdClZz1aTrHjPfcrTW/M7x4=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.SharedUI.dll" size="147456">
- <assemblyIdentity name="Tango.SharedUI" version="2.0.30.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>vIwcd2kaaQ+//z0LesOJ5ii+rFGDRIWAz0ZZbOiVZJU=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <file name="Tango.DispenserAnalyzer.UI.exe.config" size="3319">
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>1H/fzVxmuhnT5x+/KUVkLmAvaVR00DWbcBWiIuTZ+YU=</dsig:DigestValue>
- </hash>
- </file>
-<publisherIdentity name="CN=TWINE\victoria" issuerKeyHash="59607512eeb9e38b76e48f6d9fa40740c59f2d3c" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>oQrQIybPh1ABsGASktthQ5Xzbed3JXUYLtBMG6x8G4E=</DigestValue></Reference></SignedInfo><SignatureValue>jKuL6/A+K+HlShS6lNOlVrQIcS4dddTgqd5Vp+3Geet0wI0SN4qv9D04ShxrOnVBwOx4G7uFDDlBYhTqxUxqS4GsvBermpLO4CQiRd9lDu/lT+0U63J6ItpFVWefj6Wt2q+iBQzu4wH5JMJtFiKdCcrxVF7lV0qkO2dydBK7xx8=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>zzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2U=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="811b7cac1b4cd02e18752577e76df3954361db921260b0015087cf2623d00aa1" Description="" Url=""><as:assemblyIdentity name="Tango.DispenserAnalyzer.UI.exe" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" type="win32" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=TWINE\victoria</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>Sl9VRiIgqJCocNFBEoq367mW/veMU/Wh0Pyt2/2ioEw=</DigestValue></Reference></SignedInfo><SignatureValue>zu/VNl7VVo/rRgw/lrDLAkhb7d1uaJYQCj+SDAGrAluVWP5D9bHTjngbUie388ttvIEmoZycnqwAh1mAxhlfSmWGkyJVrq2WCl0bgdWqI/MaHXFtm5dysLstFe4ITwm9KW6TuKGT1NCAp/8i5VmlGCXJbn/4sqMwidYI95tGcMA=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>zzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2U=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIB0TCCATqgAwIBAgIQHNNUEeosJbVGklX8IkvE8TANBgkqhkiG9w0BAQsFADAnMSUwIwYDVQQDHhwAVABXAEkATgBFAFwAdgBpAGMAdABvAHIAaQBhMB4XDTIwMDYyMjE0NTcyNFoXDTIxMDYyMjIwNTcyNFowJzElMCMGA1UEAx4cAFQAVwBJAE4ARQBcAHYAaQBjAHQAbwByAGkAYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2UCAwEAATANBgkqhkiG9w0BAQsFAAOBgQCs/8lt/tnwuA4tLzkX/huqZjpIDkyBkId+bC/z4T9W4a80G9LOcWpoYnaCUR2mIJbgST+932WNv0IGrc23jpqEjojjK2/QuvjHARGtavs/hJc5NYZD9xo5MjotGI8IbbjWxW++MKsnAU8TjpJEEbiFSQetboML65NcSiMuuo2UMw==</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Documents.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Documents.dll.deploy
deleted file mode 100644
index bf31b6586..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Documents.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DragAndDrop.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DragAndDrop.dll.deploy
deleted file mode 100644
index fc66ab2c7..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DragAndDrop.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Logging.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Logging.dll.deploy
deleted file mode 100644
index 3a2a22e66..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Logging.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.PMR.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.PMR.dll.deploy
deleted file mode 100644
index ab3ecc069..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.PMR.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Settings.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Settings.dll.deploy
deleted file mode 100644
index 758e0f9d3..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Settings.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.SharedUI.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.SharedUI.dll.deploy
deleted file mode 100644
index 2b8b64f8f..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.SharedUI.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Tango.DispenserAnalyzer.UI.application b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Tango.DispenserAnalyzer.UI.application
deleted file mode 100644
index f490058f7..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Tango.DispenserAnalyzer.UI.application
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
- <assemblyIdentity name="Tango.DispenserAnalyzer.UI.application" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
- <description asmv2:publisher="Dispenser Analyser" asmv2:product="Tango.Dispenser Analyser" xmlns="urn:schemas-microsoft-com:asm.v1" />
- <deployment install="true" mapFileExtensions="true" />
- <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
- <framework targetVersion="4.6.1" profile="Full" supportedRuntime="4.0.30319" />
- </compatibleFrameworks>
- <dependency>
- <dependentAssembly dependencyType="install" codebase="Application Files\Tango.DispenserAnalyzer.UI_2_0_0_0\Tango.DispenserAnalyzer.UI.exe.manifest" size="26869">
- <assemblyIdentity name="Tango.DispenserAnalyzer.UI.exe" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" type="win32" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>eiKxJvcr4ylNdFFD94Ti1JzvXyOiOJBZVkzaPrLMawU=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
-<publisherIdentity name="CN=TWINE\victoria" issuerKeyHash="59607512eeb9e38b76e48f6d9fa40740c59f2d3c" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>Sn9KPiVwf5LL2QPSXS4tvuYjY4MZRQxAsMkMtjjSnrs=</DigestValue></Reference></SignedInfo><SignatureValue>t0T5+l4gViKhYgwhMba1xkyrc3bQ9EhXqsk4rZX7R6/vSdm7/QtQoSEVvlCbkA4rw56Q+n09pwohezJNla+Kre/kWe5EfJ2UcMk2PorKF0V3HWauRpqqfh9TjkuQLoaUdX1cUf92kmNK8pRMNZeeASO7OBUQWMccb1ePNsFS++g=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>zzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2U=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="bb9ed238b60cc9b0400c4519836323e6be2d2e5dd203d9cb927f70253e4a7f4a" Description="" Url=""><as:assemblyIdentity name="Tango.DispenserAnalyzer.UI.application" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=TWINE\victoria</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>gXJTLU7syw5LlEy5QT6ApZg3NAr3qHl8g3/qZ6xl9ms=</DigestValue></Reference></SignedInfo><SignatureValue>KU6gcRD5cWaF0D2D08Zpr8oVMZeFtNvtszM59rs3WuJ3c79RZlzsd2IYW4YYNCE0LGgpvlnu+ydp7aZwtFVQ7yhGPNkcwijZoumVd4ZTaw0bIuwvCswvlzq+CCbKy+BB6JfKnITutKUuwTsyIdhKVDyZJxj3VFJHN3p0EvRpcfI=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>zzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2U=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIB0TCCATqgAwIBAgIQHNNUEeosJbVGklX8IkvE8TANBgkqhkiG9w0BAQsFADAnMSUwIwYDVQQDHhwAVABXAEkATgBFAFwAdgBpAGMAdABvAHIAaQBhMB4XDTIwMDYyMjE0NTcyNFoXDTIxMDYyMjIwNTcyNFowJzElMCMGA1UEAx4cAFQAVwBJAE4ARQBcAHYAaQBjAHQAbwByAGkAYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2UCAwEAATANBgkqhkiG9w0BAQsFAAOBgQCs/8lt/tnwuA4tLzkX/huqZjpIDkyBkId+bC/z4T9W4a80G9LOcWpoYnaCUR2mIJbgST+932WNv0IGrc23jpqEjojjK2/QuvjHARGtavs/hJc5NYZD9xo5MjotGI8IbbjWxW++MKsnAU8TjpJEEbiFSQetboML65NcSiMuuo2UMw==</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/setup.exe b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/setup.exe
deleted file mode 100644
index fc3854ab8..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/setup.exe
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/twin.ico b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/twin.ico
deleted file mode 100644
index 67c45cca8..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/twin.ico
+++ /dev/null
Binary files differ