예제 #1
0
        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);
        }
예제 #2
0
        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
                }
            }
        }