diff options
Diffstat (limited to 'Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI')
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 Binary files differdeleted file mode 100644 index 5f0e4b651..000000000 --- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/FlowRangeToTimeResults.xlsx +++ /dev/null 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted 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 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 Binary files differdeleted file mode 100644 index fc3854ab8..000000000 --- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/setup.exe +++ /dev/null diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/twin.ico b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/twin.ico Binary files differdeleted file mode 100644 index 67c45cca8..000000000 --- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/twin.ico +++ /dev/null |
