Example #1
0
        public DataSet GenerateOutputFileTables(DataSet set, ParserGlobalVariables vars)
        {
            var periodizedSet = PeriodizeTimestep(set, vars);
            var result = new DataSet();
            foreach (var opf in vars.OutputFileConfigs)
            {
                result.Tables.Add(opf.Name);
                var t = result.Tables[opf.Name];
                foreach (var c in opf.Columns)
                {
                    t.Columns.Add(c.MessageName + c.MessageColumn);
                }
                for (int i = 0; i < ((vars.EndTime - vars.StartTime) / vars.SampleTime); i++)
                {
                    var r = t.NewRow();
                    for (int c = 0; c < t.Columns.Count; c++)
                    {
                        try
                        {
                            r[c] = periodizedSet.Tables[opf.Columns[c].MessageName].Rows[i][opf.Columns[c].MessageColumn+1];
                        }
                        catch (Exception e)
                        {

                            r[c] = 0;
                        }
                    }
                    t.Rows.Add(r);
                }
            }
            return result;
        }
Example #2
0
 public DataSet PeriodizeTimestep(DataSet set, ParserGlobalVariables vars)
 {
     var result = new DataSet();
     var periodizeTheseTables = new List<string>();
     foreach (var o in vars.OutputFileConfigs)
     {
         foreach (var c in o.Columns)
         {
             if (periodizeTheseTables.Contains(c.MessageName))
             {
                 continue;
             }
             periodizeTheseTables.Add(c.MessageName);
         }
     }
     foreach (DataTable t in set.Tables)
     {
         if(periodizeTheseTables.Contains(t.TableName))
             result.Tables.Add(PeriodizeTimestep(t, vars.StartTime, vars.EndTime, t.TableName));
     }
     return result;
 }
Example #3
0
        public static ParserGlobalVariables ReadXMLToGlobalVars(string XMLPath)
        {
            var flightVars = new ParserGlobalVariables();
            flightVars.FlightName = XMLPath.Remove(XMLPath.IndexOf(".xml"));
            var outputFiles = new List<OutputFileConfig>();
            OutputFileConfig outputFile = new OutputFileConfig();
            OutputColumn outputColumn = new OutputColumn();
            using (XmlReader xml = XmlReader.Create(XMLPath, new XmlReaderSettings() { }))
            {
                while (xml.Read())
                {
                    if (xml.IsStartElement())
                    {
                        switch (xml.Name)
                        {
                            case "OutputFiles":
                                flightVars.OutputFileConfigs = new List<OutputFileConfig>();
                                break;

                            case "OutputFile":
                                outputFile = new OutputFileConfig();
                                flightVars.OutputFileConfigs.Add(outputFile);
                                break;

                            case "Columns":
                                outputFile.Columns = new List<OutputColumn>();
                                break;

                            case "Column":
                                outputColumn = new OutputColumn();
                                outputFile.Columns.Add(outputColumn);
                                break;

                            case "Name":
                                if (xml.Read())
                                    outputFile.Name = xml.Value.Trim();
                                break;

                            case "AircraftNumber":
                                if (xml.Read())
                                    flightVars.AircraftNumber = Convert.ToInt16(xml.Value.Trim());
                                break;

                            case "StartTime":
                                if (xml.Read())
                                    flightVars.StartTime = Convert.ToDouble(xml.Value.Trim());
                                break;

                            case "EndTime":
                                if (xml.Read())
                                    flightVars.EndTime = Convert.ToDouble(xml.Value.Trim());
                                break;
                            case "SampleTime":
                                if (xml.Read())
                                    flightVars.SampleTime = Convert.ToDouble(xml.Value.Trim());
                                break;

                            case "MessageName":
                                if (xml.Read())
                                    outputColumn.MessageName = xml.Value.TrimEnd();
                                break;

                            case "MessageColumn":
                                if (xml.Read())
                                    outputColumn.MessageColumn = Convert.ToInt16(xml.Value.Trim());
                                break;

                            case "LogSourcePath":
                                if (xml.Read())
                                    flightVars.LogSourcePath = xml.Value.Trim();
                                break;
                            case "Folder":
                                if (xml.Read())
                                    flightVars.Folder = xml.Value.Trim();
                                break;

                        }
                    }
                }
            }
            return flightVars;
        }
Example #4
0
 public static void PrintMatlabMetadata(ParserGlobalVariables vars)
 {
     var mFilePath = vars.Folder + '/' + vars.FlightName + ".m";
     using (System.IO.StreamWriter file = new System.IO.StreamWriter(mFilePath))
     {
         foreach (var opf in vars.OutputFileConfigs)
         {
             file.WriteLine(opf.Name.Remove(opf.Name.IndexOf('.')) + "= dlmread('/" + vars.Folder + '/' + opf.Name+"');");
         }
         file.WriteLine("sampleRate = " + vars.SampleTime + ';');
     }
 }