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 { public List ReadScvFile(String filePath, List annotations) { List data = CsvFile.Read(new CsvSource(filePath)).ToList(); List samples = new List(); 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 GetTitles(String filePath) { string xAxistitle = "Time[100 msec]"; string yAxistitle = "Pressure [mbar]"; return new List() { xAxistitle, yAxistitle }; } public bool PrintResultsToPDFFile() { return true ; } } }