private void modifySetDefaultSpeeds_Click(object sender, EventArgs e) { try { double defMin = double.Parse(this.modifyDefaultMinimumSpeedTextBox.Text); double defMax = double.Parse(this.modifyDefaultMaximumSpeedTextBox.Text); this.Mission.SpeedLimits = new List <ArbiterSpeedLimit>(); foreach (ArbiterSegment asg in this.RoadNetwork.ArbiterSegments.Values) { ArbiterSpeedLimit asl = new ArbiterSpeedLimit(); asl.MinimumSpeed = defMin; asl.MaximumSpeed = defMax; asl.Area = asg.SegmentId; this.Mission.SpeedLimits.Add(asl); } foreach (ArbiterZone az in this.RoadNetwork.ArbiterZones.Values) { ArbiterSpeedLimit asl = new ArbiterSpeedLimit(); asl.MinimumSpeed = defMin; asl.MaximumSpeed = defMax; asl.Area = az.ZoneId; this.Mission.SpeedLimits.Add(asl); } this.PopulateModifyTab(); } catch (Exception ex) { EditorOutput.WriteLine(ex.ToString()); } }
private void setAreaSpeedButton_Click(object sender, EventArgs e) { try { if (this.selectAreaComboBox.SelectedIndex >= 0 && this.minAreaSpeedTextBox.Text != null && this.minAreaSpeedTextBox.Text != "" && this.maxAreaSpeedTextBox.Text != null && this.maxAreaSpeedTextBox.Text != "") { string id = (string)this.selectAreaComboBox.Items[this.selectAreaComboBox.SelectedIndex]; if (this.CreateMissionNonDefaultSpeeds.ContainsKey(id)) { this.CreateMissionNonDefaultSpeeds[id].MaximumSpeed = double.Parse(this.maxAreaSpeedTextBox.Text); this.CreateMissionNonDefaultSpeeds[id].MinimumSpeed = double.Parse(this.minAreaSpeedTextBox.Text); } else { ArbiterSpeedLimit asl = new ArbiterSpeedLimit(); asl.MaximumSpeed = double.Parse(this.maxAreaSpeedTextBox.Text); asl.MinimumSpeed = double.Parse(this.minAreaSpeedTextBox.Text); this.CreateMissionNonDefaultSpeeds.Add(id, asl); } } } catch (Exception ex) { EditorOutput.WriteLine(ex.ToString()); } }
/// <summary> /// Generates mission /// </summary> /// <param name="mdf"></param> /// <returns></returns> public ArbiterMissionDescription GenerateMission(IMdf mdf, ArbiterRoadNetwork arn) { Queue <ArbiterCheckpoint> checks = new Queue <ArbiterCheckpoint>(); List <ArbiterSpeedLimit> speeds = new List <ArbiterSpeedLimit>(); // checkpoints foreach (string s in mdf.CheckpointOrder) { int num = int.Parse(s); checks.Enqueue(new ArbiterCheckpoint(num, arn.Checkpoints[num].AreaSubtypeWaypointId)); } // speeds foreach (SpeedLimit sl in mdf.SpeedLimits) { ArbiterSpeedLimit asl = new ArbiterSpeedLimit(); asl.MaximumSpeed = sl.MaximumVelocity * 0.44704; asl.MinimumSpeed = sl.MinimumVelocity * 0.44704; asl.Traveled = false; ArbiterSegmentId asi = new ArbiterSegmentId(int.Parse(sl.SegmentID)); ArbiterZoneId azi = new ArbiterZoneId(int.Parse(sl.SegmentID)); if (arn.ArbiterZones.ContainsKey(azi)) { asl.Area = azi; } else if (arn.ArbiterSegments.ContainsKey(asi)) { asl.Area = asi; } else { throw new Exception("Unknown area id: " + sl.SegmentID); } speeds.Add(asl); } // return return(new ArbiterMissionDescription(checks, speeds)); }