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("!"); } } }
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("!"); } } }