public List <DataPoint> GetPoints(TraceSession.TraceData.DataFrame.DataSignal dataSignal) { List <DataPoint> l = new List <DataPoint>(); foreach (var sig in dataSignal.Signals) { DataPoint dp = new DataPoint(); dp.XValue = Convert.ToDouble(sig.Time); dp.YValues[0] = sig.Value; l.Add(dp); } return(l); }
public void Import() { TraceSession ts = this; XmlDocument doc = new XmlDocument(); System.Windows.Forms.OpenFileDialog ofd = new System.Windows.Forms.OpenFileDialog(); if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { doc.Load(ofd.FileName); //PULL DATA FRAME XmlNodeList nodes = doc.DocumentElement.SelectNodes("/traceSession"); foreach (XmlNode node in nodes) { //parse out the version ts.Version = node.Attributes[0].InnerText; foreach (XmlNode child in node.ChildNodes) { //parse out the kinds if (child.Name == "traceCaptureSetup") { } if (child.Name == "traceDisplaySetup") { } if (child.Name == "traceData") { foreach (XmlNode attr in child.Attributes) { //values if (attr.Name == "dataFrames") { ts.TD.dataFrames = attr.Value; } } foreach (XmlNode dataFrame in child.ChildNodes) { TraceSession.TraceData.DataFrame df = new TraceSession.TraceData.DataFrame(); foreach (XmlNode data in dataFrame.ChildNodes) { if (data.Name == "frameHeader") { df.startTime = data.Attributes.GetNamedItem("startTime").Value; df.startTriggerInc = Convert.ToSingle(data.Attributes.GetNamedItem("startTriggerInc").Value); df.stopTriggerInc = Convert.ToSingle(data.Attributes.GetNamedItem("stopTriggerInc").Value); df.stopInc = Convert.ToSingle(data.Attributes.GetNamedItem("stopInc").Value); } if (data.Name == "domain") { df.Domain = data.Attributes.GetNamedItem("e1").Value; } if (data.Name == "dataSignal") { TraceSession.TraceData.DataFrame.DataSignal ds = new TraceSession.TraceData.DataFrame.DataSignal(); ds.Id = data.Attributes.GetNamedItem("id")?.Value; ds.Key = data.Attributes.GetNamedItem("key")?.Value; ds.Event = data.Attributes.GetNamedItem("event")?.Value; ds.EventChannel = data.Attributes.GetNamedItem("eventChannel")?.Value; ds.Description = data.Attributes.GetNamedItem("description")?.Value; ds.Domain = data.Attributes.GetNamedItem("domain")?.Value; ds.Name = data.Attributes.GetNamedItem("name")?.Value; ds.DataType = data.Attributes.GetNamedItem("dataType")?.Value; ds.Interval = data.Attributes.GetNamedItem("interval")?.Value; ds.UnitsType = data.Attributes.GetNamedItem("unitsType")?.Value; ds.DisplayRes = data.Attributes.GetNamedItem("displayRes")?.Value; ds.DataPointCount = data.Attributes.GetNamedItem("datapointCount")?.Value; df.dataSignals.Add(ds); } if (data.Name == "rec") //actual signals that need t obe parsed baised on "dataSignal" { foreach (XmlNode attr in data.Attributes) { foreach (var ds in df.dataSignals) { if (ds.Id == attr.Name) { TraceSession.TraceData.DataFrame.DataSignal.Signal signal = new TraceSession.TraceData.DataFrame.DataSignal.Signal(); signal.Time = data.Attributes[0].Value.ToString(); try { signal.Value = Convert.ToSingle(attr.Value); ds.Signals.Add(signal); } catch { } } } } } } ts.TD.DataFrames.Add(df); } } } // var a = node.SelectSingleNode("author").InnerText; //select single item } } }