aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2020-09-14 11:52:07 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2020-09-14 11:52:07 +0300
commitcf2ff4168ce5da36f2353805bb09d2cd1dc5347f (patch)
treef5cf89d5d5f11fd707d6a0f1f2f8f0a4b5ead658 /Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels
parentd2341eb3059629ae98ef4d53f341bda6bc84e325 (diff)
parent71f91b8aad2bde92eec659852a87dbb5a895d108 (diff)
downloadTango-cf2ff4168ce5da36f2353805bb09d2cd1dc5347f.tar.gz
Tango-cf2ff4168ce5da36f2353805bb09d2cd1dc5347f.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels')
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/MainWindowVM.cs143
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/SettingsVM.cs115
2 files changed, 136 insertions, 122 deletions
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/MainWindowVM.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/MainWindowVM.cs
index 38f8dee81..48d426d23 100644
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/MainWindowVM.cs
+++ b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/MainWindowVM.cs
@@ -126,7 +126,24 @@ namespace Tango.DispenserAnalyzer.UI.ViewModels
}
}
-
+ 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.
@@ -162,7 +179,8 @@ namespace Tango.DispenserAnalyzer.UI.ViewModels
XStep = 1;
AnalyzerResults = new ObservableCollection<IAnalyzerResult>();
_isRunning = false;
-
+ TitleAxisBottom = "";
+ TitleAxisLeft = "";
this.Points = new List<DataPoint>();
}
@@ -251,69 +269,38 @@ namespace Tango.DispenserAnalyzer.UI.ViewModels
return;
ResetSettings();
- IAnalyzer analyzer = AnalysisService.GetAnalyzer(OpenFilePath);
+ var analyzer = AnalysisService.GetAnalyzer(OpenFilePath);
if (analyzer == null)
return;
IsRunning = true;
- AnalyzerAttribute attribute = (AnalyzerAttribute)analyzer.GetType().GetCustomAttributes(typeof(AnalyzerAttribute), true).FirstOrDefault();
-
- TestName = attribute.Name;
- List<DispenserCsvRow> data = CsvFile.Read<DispenserCsvRow>(new CsvSource(OpenFilePath)).ToList();
- List<DispenserSample> samples = new List<DispenserSample>();
-
- To = 0;
- From = 0;
- int index = 0;
- int last_labelIndex = 0;
-
-
- foreach (var item in data)
+ AnalyzerAttribute[] attr = analyzer.GetType().GetCustomAttributes(typeof(AnalyzerAttribute), true);
+ if (attr != null && attr.Count() > 0)
{
- 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,
- };
- PlotControl.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++;
- }
+ 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);
- samples.ForEach(x =>
- {
- if (x.Pressure != 0.0)
- { Points.Add(new DataPoint(x.Index, x.Pressure)); }
- });
_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();
+ // data.Clear();
_to += 100;
RaisePropertyChanged("To");
if (_from != 0)
@@ -324,8 +311,10 @@ namespace Tango.DispenserAnalyzer.UI.ViewModels
IsRunning = false;
PlotControl.InvalidatePlot(true);
- await PrintToXpsFile();
-
+ if(analyzer.Reader.PrintResultsToPDFFile())
+ {
+ await PrintToXpsFile();
+ }
}
/// <summary>
@@ -338,44 +327,24 @@ namespace Tango.DispenserAnalyzer.UI.ViewModels
if (false == File.Exists(OpenFilePath) || IsFileLocked(OpenFilePath))
return;
- IAnalyzer analyzer = AnalysisService.GetAnalyzer(OpenFilePath);
+ var analyzer = AnalysisService.GetAnalyzer(OpenFilePath);
if (analyzer == null)
return;
-
- AnalyzerAttribute attribute = (AnalyzerAttribute)analyzer.GetType().GetCustomAttributes(typeof(AnalyzerAttribute), true).FirstOrDefault();
-
- TestName = attribute.Name;
- List<DispenserCsvRow> data = CsvFile.Read<DispenserCsvRow>(new CsvSource(OpenFilePath)).ToList();
- List<DispenserSample> samples = new List<DispenserSample>();
-
- int index = 0;
- int last_labelIndex = 0;
+ AnalyzerAttribute[] attr = analyzer.GetType().GetCustomAttributes(typeof(AnalyzerAttribute), true);
+ if (attr != null && attr.Count() > 0)
+ {
+ TestName = attr[0].Name;
+ }
- foreach (var item in data)
+ 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)
{
- double pressure = 0;
- if (item.Label == "Label")
- {
- item.Pressure = "0";
- item.Command = "Label";
- if (last_labelIndex == 0 || last_labelIndex < (index + 5))
- {
- last_labelIndex = index;
- }
- }
- 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;
}
-
+
List<IAnalyzerResult> res = await analyzer.Process(samples, true);
AnalyzerResults = new ObservableCollection<IAnalyzerResult>(res);
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/SettingsVM.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/SettingsVM.cs
index d5c54ab08..0f2b5a457 100644
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/SettingsVM.cs
+++ b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/SettingsVM.cs
@@ -9,79 +9,124 @@ using Tango.SharedUI;
namespace Tango.DispenserAnalyzer.UI.ViewModels
{
- public class SettingsVM : ViewModel, IDisposable
+ public class SettingVM: ViewModel
{
- private ObservableCollection<SettingsModel> _PBUSettings;
+ private string _name;
- public ObservableCollection<SettingsModel> PBUTestSettings
+ public string Name
{
- get { return _PBUSettings; }
- set { _PBUSettings = value; RaisePropertyChangedAuto(); }
+ get { return _name; }
+ set { _name = value; }
}
- private ObservableCollection<SettingsModel> _flowTestSettings;
+ private ObservableCollection<SettingsModel> _settings;
+
+ public ObservableCollection<SettingsModel> Settings
+ {
+ get { return _settings; }
+ set { _settings = value; RaisePropertyChangedAuto(); }
+ }
- public ObservableCollection<SettingsModel> FlowTestSettings
+ public SettingVM(string name)
{
- get { return _flowTestSettings; }
- set { _flowTestSettings = value; RaisePropertyChangedAuto(); }
+ _settings = new ObservableCollection<SettingsModel>();
+ Name = name;
}
- private Dictionary<AnalyzerSettingsEnum, double> changedValues;
+ 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()
{
- _PBUSettings = new ObservableCollection<SettingsModel>();
+ _settings = new ObservableCollection<SettingVM>();
+ ChangedValues = new Dictionary<AnalyzerSettingsEnum, double>();
InitPBUTestSettings();
- _flowTestSettings = new ObservableCollection<SettingsModel>();
- changedValues = new Dictionary<AnalyzerSettingsEnum, double>();
+ InitProcessSettings();
InitFlowTestSettings();
+
}
private void InitPBUTestSettings()
{
- var setting = new SettingsModel(AnalyzerSettingsEnum.PBUPassFail, "4.5 sec");
- setting.SettingValueEvent += new EventHandler(OnSettingValueChanged);
- _PBUSettings.Add(setting);
+ 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()
{
- _flowTestSettings.Add(new SettingsModel(AnalyzerSettingsEnum.FlowPBUPassFail, "4.5 sec"));
- _flowTestSettings.Add(new SettingsModel(AnalyzerSettingsEnum.ExcludeAnalysis, "1800 reads"));
- _flowTestSettings.Add(new SettingsModel(AnalyzerSettingsEnum.AvgMinValue, "1400-1850 [mbar]", true));
- _flowTestSettings.Add(new SettingsModel(AnalyzerSettingsEnum.MaxMinRange, "500 reads"));
- _flowTestSettings.Add(new SettingsModel(AnalyzerSettingsEnum.MaxMinIntervals, "300 reads"));
- _flowTestSettings.Add(new SettingsModel(AnalyzerSettingsEnum.MaxError, "1.5%"));
- _flowTestSettings.Add(new SettingsModel(AnalyzerSettingsEnum.TakeOffMaxMin, "3"));
-
- _flowTestSettings.ToList().ForEach(x => x.SettingValueEvent += new EventHandler(OnSettingValueChanged));
+ 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, "500 reads"));
+ list.Add(new SettingsModel(AnalyzerSettingsEnum.MaxMinIntervals, "300 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)
+ if (sender is SettingsModel)
{
SettingsModel settingModel = sender as SettingsModel;
- if(settingModel.IsRangeVisible)
+ if (settingModel.IsRangeVisible)
{
- changedValues[AnalyzerSettingsEnum.AvgMinValue] = settingModel.MinRangeValue;
- changedValues[AnalyzerSettingsEnum.AvgMaxValue] = settingModel.MaxRangeValue;
+ ChangedValues[AnalyzerSettingsEnum.AvgMinValue] = settingModel.MinRangeValue;
+ ChangedValues[AnalyzerSettingsEnum.AvgMaxValue] = settingModel.MaxRangeValue;
}
else
- changedValues[settingModel._enumName] = settingModel.PropertyValue;
+ ChangedValues[settingModel._enumName] = settingModel.PropertyValue;
}
}
-
+
public Dictionary<AnalyzerSettingsEnum, double> GetChanges()
{
- return changedValues;
+ return ChangedValues;
}
-
+
public void Dispose()
{
- _PBUSettings.ToList().ForEach(x => x.SettingValueEvent -= OnSettingValueChanged);
- _flowTestSettings.ToList().ForEach(x => x.SettingValueEvent -= OnSettingValueChanged);
+ Settings.ToList().ForEach(x => {
+ x.Settings.ToList().ForEach(k => k.SettingValueEvent -= OnSettingValueChanged);
+ });
}
}
}