Example #1
0
        private void GenerateAdamsViewCmd(string path, CyPhy.CarTestBench testBench)
        {
            using (StreamWriter writer = new StreamWriter(path, false))
            {
                foreach (var sim in testBench.Children.CarSimulationCollection)
                {

                    writer.WriteLine("file analysis read  &");
                    writer.WriteLine("file_name = \"test_" + sim.Kind + "\"");
                    writer.WriteLine("!");

                    HashSet<string> datatoextract = new HashSet<string>();
                    foreach (var metricconn in sim.DstConnections.CarSimulationToMetricCollection)
                    {
                        if (metricconn.DstEnds.Metric != null)
                        {
                            CarMetric m = new CarMetric();
                            m.MetricID = metricconn.DstEnds.Metric.Name;
                            m.SimName = sim.Name;
                            if (metricconn.DstEnds.Metric.Name == "Acc0_15")
                            {
                                datatoextract.Add("test_" + sim.Name + ".chassis_velocities.longitudinal");
                                m.AdamsResultName = "chassis_velocities.longitudinal";
                                m.LookupValue = 15;
                                m.ReverseLookup = true;
                            }
                            else if (metricconn.DstEnds.Metric.Name == "Acc0_50")
                            {
                                datatoextract.Add("test_" + sim.Name + ".chassis_velocities.longitudinal");
                                m.AdamsResultName = "chassis_velocities.longitudinal";
                                m.LookupValue = 50;
                                m.ReverseLookup = true;
                            }
                            else if (metricconn.DstEnds.Metric.Name == "Acc0_65")
                            {
                                datatoextract.Add("test_" + sim.Name + ".chassis_velocities.longitudinal");
                                m.AdamsResultName = "chassis_velocities.longitudinal";
                                m.LookupValue = 65;
                                m.ReverseLookup = true;
                            }
                            else if (metricconn.DstEnds.Metric.Name == "Braking_Dist")
                            {
                                datatoextract.Add("test_" + sim.Name + ".chassis_displacements.longitudinal");
                                m.AdamsResultName = "chassis_displacements.longitudinal";
                                m.LookupValue = 300; // Last number
                            }
                            else if (metricconn.DstEnds.Metric.Name == "Braking_Accel")
                            {
                                datatoextract.Add("test_" + sim.Name + ".chassis_accelerations.longitudinal");
                                m.AdamsResultName = "chassis_accelerations.longitudinal";
                                m.Type = CarMetric.LookupType.Min;
                            }
                            else if (metricconn.DstEnds.Metric.Name == "TopSpeed")
                            {
                                datatoextract.Add("test_" + sim.Name + ".chassis_velocities.longitudinal");
                                m.AdamsResultName = "chassis_velocities.longitudinal";
                                m.Type = CarMetric.LookupType.Max;
                            }
                            else if (metricconn.DstEnds.Metric.Name == "RideQuality")
                            {
                                datatoextract.Add("test_" + sim.Name + ".absorbed_power.driver_seat_accel_var.Q");
                                m.AdamsResultName = "absorbed_power.driver_seat_accel_var.Q";
                                m.Type = CarMetric.LookupType.Max;
                            }
                            else if (metricconn.DstEnds.Metric.Name == "TurnCircle")
                            {
                                datatoextract.Add("test_" + sim.Name + ".til_wheel_contact_patch.y_front");
                                m.AdamsResultName = "til_wheel_contact_patch.y_front";
                                m.Type = CarMetric.LookupType.Range;
                            }
                            else
                            {
                                GMEConsole.Warning.WriteLine("Unknown Metric ID: " + metricconn.DstEnds.Metric.Name + ", ignoring.");
                                continue;
                            }
                            OutputMetrics.Add(m);
                        }
                    }
                    foreach (string data in datatoextract)
                    {
                        var resext = new NumericResultExtract();
                        resext.Name = data;
                        resext.FileName = data + "_res.txt";
                        writer.WriteLine(resext.TransformText());
                        writer.WriteLine("!");
                    }

                    writer.WriteLine("numeric_results list_info all  &");
                    writer.WriteLine("result_set_component_name = test_" + sim.Kind + ".TIME  &");
                    writer.WriteLine("write_to_terminal = off &");
                    writer.WriteLine("file_name = \"TIME_" + sim.Name + "_res.txt\"");
                    writer.WriteLine("!");
                }

            }
        }
Example #2
0
        private void GenerateAdamsViewCmd(string path, CyPhy.CarTestBench testBench)
        {
            using (StreamWriter writer = new StreamWriter(path, false))
            {
                foreach (var sim in testBench.Children.CarSimulationCollection)
                {
                    writer.WriteLine("file analysis read  &");
                    writer.WriteLine("file_name = \"test_" + sim.Kind + "\"");
                    writer.WriteLine("!");

                    HashSet <string> datatoextract = new HashSet <string>();
                    foreach (var metricconn in sim.DstConnections.CarSimulationToMetricCollection)
                    {
                        if (metricconn.DstEnds.Metric != null)
                        {
                            CarMetric m = new CarMetric();
                            m.MetricID = metricconn.DstEnds.Metric.Name;
                            m.SimName  = sim.Name;
                            if (metricconn.DstEnds.Metric.Name == "Acc0_15")
                            {
                                datatoextract.Add("test_" + sim.Name + ".chassis_velocities.longitudinal");
                                m.AdamsResultName = "chassis_velocities.longitudinal";
                                m.LookupValue     = 15;
                                m.ReverseLookup   = true;
                            }
                            else if (metricconn.DstEnds.Metric.Name == "Acc0_50")
                            {
                                datatoextract.Add("test_" + sim.Name + ".chassis_velocities.longitudinal");
                                m.AdamsResultName = "chassis_velocities.longitudinal";
                                m.LookupValue     = 50;
                                m.ReverseLookup   = true;
                            }
                            else if (metricconn.DstEnds.Metric.Name == "Acc0_65")
                            {
                                datatoextract.Add("test_" + sim.Name + ".chassis_velocities.longitudinal");
                                m.AdamsResultName = "chassis_velocities.longitudinal";
                                m.LookupValue     = 65;
                                m.ReverseLookup   = true;
                            }
                            else if (metricconn.DstEnds.Metric.Name == "Braking_Dist")
                            {
                                datatoextract.Add("test_" + sim.Name + ".chassis_displacements.longitudinal");
                                m.AdamsResultName = "chassis_displacements.longitudinal";
                                m.LookupValue     = 300; // Last number
                            }
                            else if (metricconn.DstEnds.Metric.Name == "Braking_Accel")
                            {
                                datatoextract.Add("test_" + sim.Name + ".chassis_accelerations.longitudinal");
                                m.AdamsResultName = "chassis_accelerations.longitudinal";
                                m.Type            = CarMetric.LookupType.Min;
                            }
                            else if (metricconn.DstEnds.Metric.Name == "TopSpeed")
                            {
                                datatoextract.Add("test_" + sim.Name + ".chassis_velocities.longitudinal");
                                m.AdamsResultName = "chassis_velocities.longitudinal";
                                m.Type            = CarMetric.LookupType.Max;
                            }
                            else if (metricconn.DstEnds.Metric.Name == "RideQuality")
                            {
                                datatoextract.Add("test_" + sim.Name + ".absorbed_power.driver_seat_accel_var.Q");
                                m.AdamsResultName = "absorbed_power.driver_seat_accel_var.Q";
                                m.Type            = CarMetric.LookupType.Max;
                            }
                            else if (metricconn.DstEnds.Metric.Name == "TurnCircle")
                            {
                                datatoextract.Add("test_" + sim.Name + ".til_wheel_contact_patch.y_front");
                                m.AdamsResultName = "til_wheel_contact_patch.y_front";
                                m.Type            = CarMetric.LookupType.Range;
                            }
                            else
                            {
                                GMEConsole.Warning.WriteLine("Unknown Metric ID: " + metricconn.DstEnds.Metric.Name + ", ignoring.");
                                continue;
                            }
                            OutputMetrics.Add(m);
                        }
                    }
                    foreach (string data in datatoextract)
                    {
                        var resext = new NumericResultExtract();
                        resext.Name     = data;
                        resext.FileName = data + "_res.txt";
                        writer.WriteLine(resext.TransformText());
                        writer.WriteLine("!");
                    }

                    writer.WriteLine("numeric_results list_info all  &");
                    writer.WriteLine("result_set_component_name = test_" + sim.Kind + ".TIME  &");
                    writer.WriteLine("write_to_terminal = off &");
                    writer.WriteLine("file_name = \"TIME_" + sim.Name + "_res.txt\"");
                    writer.WriteLine("!");
                }
            }
        }