private string GetSimulationScriptEntry(CyPhy.CarSimulation sim) { if (sim.Kind == "Acceleration") { AccelSim outp = new AccelSim(); CyPhy.Acceleration accelsim = sim as CyPhy.Acceleration; CyPhy.Parameter endtimeparam = accelsim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "EndTime").FirstOrDefault(); int endtime = GetParamOrDefault(endtimeparam, 20); outp.ModelName = "DefaultCar"; outp.InitialVelocity = "3"; outp.NumSteps = (endtime * 10).ToString(); outp.EndTime = endtime.ToString(); outp.FinalThrottle = "100.0"; outp.StepDuration = "1.0"; outp.StartTime = "0.0"; outp.ShiftGears = "no"; outp.OutputPrefix = "test"; outp.OutputPostfix = sim.Kind; outp.GearPosition = "2"; outp.Acceleration = "0"; outp.RoadData = "acar_shared/roads.tbl/2d_flat.rdf"; CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(endtimeparam).Name, ParamID = "EndTime" }); return outp.TransformText(); } else if (sim.Kind == "Braking") { BrakingSim outp = new BrakingSim(); outp.ModelName = "DefaultCar"; outp.InitialVelocity = "20"; outp.NumSteps = "300"; outp.EndTime = "30"; outp.FinalBrake = "100.0"; outp.StepDuration = "1.0"; outp.StartValue = "0.0"; outp.OutputPrefix = "test"; outp.OutputPostfix = sim.Kind; outp.GearPosition = "5"; return outp.TransformText(); } else if (sim.Kind == "ConstantSpeed") { ConstantSpeedSim outp = new ConstantSpeedSim(); CyPhy.ConstantSpeed csim = sim as CyPhy.ConstantSpeed; CyPhy.Parameter endtimeparam = csim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "EndTime").FirstOrDefault(); CyPhy.Parameter speedparam = csim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "Speed").FirstOrDefault(); CyPhy.Parameter gearparam = csim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "Gear").FirstOrDefault(); int endtime = GetParamOrDefault(endtimeparam, 20); int speed = GetParamOrDefault(speedparam, 15); int gear = GetParamOrDefault(gearparam, 2); outp.ModelName = "DefaultCar"; outp.InitialVelocity = speed.ToString(); outp.NumSteps = (endtime * 10).ToString(); outp.GearPosition = gear.ToString(); outp.OutputPrefix = "test"; outp.OutputPostfix = sim.Kind; outp.EndTime = endtime.ToString(); outp.RoadData = "roads.tbl\\pothole_4in.rdf"; CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(endtimeparam).Name, ParamID = "EndTime" }); CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(speedparam).Name, ParamID = "Speed" }); CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(gearparam).Name, ParamID = "Gear" }); /*AccelSim outp = new AccelSim(); CyPhy.ConstantSpeed csim = sim as CyPhy.ConstantSpeed; CyPhy.Parameter endtimeparam = csim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "EndTime").FirstOrDefault(); int endtime = GetParamOrDefault(endtimeparam, 20); outp.ModelName = "DefaultCar"; outp.InitialVelocity = "3"; outp.NumSteps = (endtime * 10).ToString(); outp.EndTime = endtime.ToString(); outp.FinalThrottle = "100.0"; outp.StepDuration = "5.0"; outp.StartTime = "0.0"; outp.ShiftGears = "no"; outp.OutputPrefix = "test"; outp.OutputPostfix = sim.Kind; outp.GearPosition = "2"; outp.Acceleration = "1"; outp.RoadData = "isis_test\\roads.tbl\\pothole_4in.rdf"; CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(endtimeparam).Name, ParamID = "EndTime" }); */ return outp.TransformText(); } else if (sim.Kind == "Steering") { SteerSim outp = new SteerSim(); CyPhy.Steering ssim = sim as CyPhy.Steering; CyPhy.Parameter endtimeparam = ssim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "EndTime").FirstOrDefault(); CyPhy.Parameter speedparam = ssim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "Speed").FirstOrDefault(); CyPhy.Parameter angleparam = ssim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "Angle").FirstOrDefault(); int endtime = GetParamOrDefault(endtimeparam, 20); int speed = GetParamOrDefault(speedparam, 50); int angle = GetParamOrDefault(angleparam, 20); outp.ModelName = "DefaultCar"; outp.OutputPrefix = "test"; outp.OutputPostfix = sim.Kind; outp.EndTime = endtime.ToString(); outp.InitialVelocity = speed.ToString(); outp.NumSteps = (endtime * 10).ToString(); outp.SteerAngle = angle.ToString(); outp.GearPosition = "1"; CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(endtimeparam).Name, ParamID = "EndTime" }); CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(speedparam).Name, ParamID = "Speed" }); CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(angleparam).Name, ParamID = "Angle" }); return outp.TransformText(); } else { GMEConsole.Warning.WriteLine("Unknown simulation type:" + sim.Kind); } return null; }
private string GetSimulationScriptEntry(CyPhy.CarSimulation sim) { if (sim.Kind == "Acceleration") { AccelSim outp = new AccelSim(); CyPhy.Acceleration accelsim = sim as CyPhy.Acceleration; CyPhy.Parameter endtimeparam = accelsim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "EndTime").FirstOrDefault(); int endtime = GetParamOrDefault(endtimeparam, 20); outp.ModelName = "DefaultCar"; outp.InitialVelocity = "3"; outp.NumSteps = (endtime * 10).ToString(); outp.EndTime = endtime.ToString(); outp.FinalThrottle = "100.0"; outp.StepDuration = "1.0"; outp.StartTime = "0.0"; outp.ShiftGears = "no"; outp.OutputPrefix = "test"; outp.OutputPostfix = sim.Kind; outp.GearPosition = "2"; outp.Acceleration = "0"; outp.RoadData = "acar_shared/roads.tbl/2d_flat.rdf"; CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(endtimeparam).Name, ParamID = "EndTime" }); return(outp.TransformText()); } else if (sim.Kind == "Braking") { BrakingSim outp = new BrakingSim(); outp.ModelName = "DefaultCar"; outp.InitialVelocity = "20"; outp.NumSteps = "300"; outp.EndTime = "30"; outp.FinalBrake = "100.0"; outp.StepDuration = "1.0"; outp.StartValue = "0.0"; outp.OutputPrefix = "test"; outp.OutputPostfix = sim.Kind; outp.GearPosition = "5"; return(outp.TransformText()); } else if (sim.Kind == "ConstantSpeed") { ConstantSpeedSim outp = new ConstantSpeedSim(); CyPhy.ConstantSpeed csim = sim as CyPhy.ConstantSpeed; CyPhy.Parameter endtimeparam = csim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "EndTime").FirstOrDefault(); CyPhy.Parameter speedparam = csim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "Speed").FirstOrDefault(); CyPhy.Parameter gearparam = csim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "Gear").FirstOrDefault(); int endtime = GetParamOrDefault(endtimeparam, 20); int speed = GetParamOrDefault(speedparam, 15); int gear = GetParamOrDefault(gearparam, 2); outp.ModelName = "DefaultCar"; outp.InitialVelocity = speed.ToString(); outp.NumSteps = (endtime * 10).ToString(); outp.GearPosition = gear.ToString(); outp.OutputPrefix = "test"; outp.OutputPostfix = sim.Kind; outp.EndTime = endtime.ToString(); outp.RoadData = "roads.tbl\\pothole_4in.rdf"; CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(endtimeparam).Name, ParamID = "EndTime" }); CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(speedparam).Name, ParamID = "Speed" }); CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(gearparam).Name, ParamID = "Gear" }); /*AccelSim outp = new AccelSim(); * CyPhy.ConstantSpeed csim = sim as CyPhy.ConstantSpeed; * CyPhy.Parameter endtimeparam = csim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "EndTime").FirstOrDefault(); * int endtime = GetParamOrDefault(endtimeparam, 20); * outp.ModelName = "DefaultCar"; * outp.InitialVelocity = "3"; * outp.NumSteps = (endtime * 10).ToString(); * outp.EndTime = endtime.ToString(); * outp.FinalThrottle = "100.0"; * outp.StepDuration = "5.0"; * outp.StartTime = "0.0"; * outp.ShiftGears = "no"; * outp.OutputPrefix = "test"; * outp.OutputPostfix = sim.Kind; * outp.GearPosition = "2"; * outp.Acceleration = "1"; * outp.RoadData = "isis_test\\roads.tbl\\pothole_4in.rdf"; * CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(endtimeparam).Name, ParamID = "EndTime" }); */ return(outp.TransformText()); } else if (sim.Kind == "Steering") { SteerSim outp = new SteerSim(); CyPhy.Steering ssim = sim as CyPhy.Steering; CyPhy.Parameter endtimeparam = ssim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "EndTime").FirstOrDefault(); CyPhy.Parameter speedparam = ssim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "Speed").FirstOrDefault(); CyPhy.Parameter angleparam = ssim.Children.ParameterCollection.Where(p => ((MgaFCO)p.Impl).MetaRole.Name == "Angle").FirstOrDefault(); int endtime = GetParamOrDefault(endtimeparam, 20); int speed = GetParamOrDefault(speedparam, 50); int angle = GetParamOrDefault(angleparam, 20); outp.ModelName = "DefaultCar"; outp.OutputPrefix = "test"; outp.OutputPostfix = sim.Kind; outp.EndTime = endtime.ToString(); outp.InitialVelocity = speed.ToString(); outp.NumSteps = (endtime * 10).ToString(); outp.SteerAngle = angle.ToString(); outp.GearPosition = "1"; CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(endtimeparam).Name, ParamID = "EndTime" }); CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(speedparam).Name, ParamID = "Speed" }); CarParamMap.Add(new CarParamMapping() { FileName = "adams_car.cmd", TBParamName = FollowParam(angleparam).Name, ParamID = "Angle" }); return(outp.TransformText()); } else { GMEConsole.Warning.WriteLine("Unknown simulation type:" + sim.Kind); } return(null); }