Exemplo n.º 1
0
Arquivo: GUI.cs Projeto: helios57/anrl
        private void flightUpdatePenaltyGrid()
        {
            Penalty localpenaltyCopy = flightCurrentPenalty;
            flightDataGridPenalties.Rows.Clear();
            int totalFlightPenalties = 0;
            int totalLandingPenalties = 0;
            int totalPenalties = 0;
            foreach (Penalty penalty in flightCurrentFlight.Penalties)
            {
                int index = flightDataGridPenalties.Rows.Add(new string[] { penalty.PenaltyPoints.ToString(), penalty.PenaltyType.ToString(), penalty.Comment.ToString() });
                flightDataGridPenalties.Rows[index].Tag = penalty;

                if (localpenaltyCopy == penalty)
                {
                    flightDataGridPenalties.Rows[index].Selected = true;
                }
                if (penalty.PenaltyType == PenaltyType.Navigation)
                {
                    totalFlightPenalties += penalty.PenaltyPoints;
                }
                else if (penalty.PenaltyType == PenaltyType.Landing)
                {
                    totalLandingPenalties += penalty.PenaltyPoints;
                }
                totalPenalties += penalty.PenaltyPoints;
            }
            flightLblTotalFlightPenalties.Text = totalFlightPenalties.ToString();
            flightLblTotalLandingPenalties.Text = totalLandingPenalties.ToString();
            flightLblTotalPenalties.Text = totalPenalties.ToString();
            flightCurrentPenalty = localpenaltyCopy;
        }
Exemplo n.º 2
0
Arquivo: GUI.cs Projeto: helios57/anrl
 private void flightDataGridPenalties_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     if (flightDataGridPenalties.SelectedRows.Count > 0)
     {
         flightCurrentPenalty = (Penalty)flightDataGridPenalties.SelectedRows[0].Tag;
     }
     else
     {
         flightCurrentPenalty = null;
     }
     flightUpdatePenaltyView();
 }
Exemplo n.º 3
0
Arquivo: GUI.cs Projeto: helios57/anrl
 private void flightDataGridPenalties_SelectionChanged(object sender, EventArgs e)
 {
     if (flightDataGridPenalties.SelectedRows.Count > 0)
     {
         flightCurrentPenalty = (Penalty)flightDataGridPenalties.SelectedRows[0].Tag;
     }
     else
     {
         flightCurrentPenalty = null;
     }
     flightUpdatePenaltyView();
 }
Exemplo n.º 4
0
Arquivo: GUI.cs Projeto: helios57/anrl
 private void flightCmdAddNewPenalty_Click(object sender, EventArgs e)
 {
     Penalty newPenalty = new Penalty();
     newPenalty.PenaltyType = PenaltyType.Custom;
     newPenalty.Comment = "New Penalty";
     newPenalty.PenaltyPoints = 0;
     flightCurrentPenalty = newPenalty;
     flightUpdatePenaltyView();
 }
Exemplo n.º 5
0
 public bool Contains(Penalty item)
 {
     return items.Contains(item);
 }
Exemplo n.º 6
0
 public void Add(Penalty item)
 {
     items.Add(item);
 }
Exemplo n.º 7
0
 public void Remove(Penalty item)
 {
     items.Remove(item);
 }
Exemplo n.º 8
0
        private PenaltyCollection calculateForbiddenZonePenalties()
        {
            bool lastPointWasOffTrack = false;
            bool finishingGatePassed = false;

            List<TrackPoint> penaltyPoints = new List<TrackPoint>();

            PenaltyCollection penalties = new PenaltyCollection();
            List<List<TrackPoint>> penaltyPointsList = new List<List<TrackPoint>>();

            for (int i = 0; i < this.Track.Count - 1; i++)
            {
                if (!finishingGatePassed)
                {
                    TrackPoint trackpoint = this.Track[i];

                    if(route.EndGate.gatePassed(trackpoint, this.Track[i+1]))
                    {
                        break;
                    }
                    if(trackpoint.TimeStamp > PlannedFinishGateTime.AddSeconds(120))
                    {
                        break;
                    }
                    if (this.Parcours.IsPointOffTrack(trackpoint))
                    {
                        lastPointWasOffTrack = true;
                        penaltyPoints.Add(trackpoint);
                    }
                    else
                    {
                        if (lastPointWasOffTrack)
                        {
                            penaltyPointsList.Add(penaltyPoints);
                            penaltyPoints = new List<TrackPoint>();
                        }
                        lastPointWasOffTrack = false;
                    }
                }
            }

            foreach (List<TrackPoint> penaltySequence in penaltyPointsList)
            {
                int durance = penaltySequence.Count;
                Penalty penalty = new Penalty();
                penalty.PenaltyType = PenaltyType.Navigation;
                if(durance > 5 && durance*3 < 200)
                {
                    penalty.PenaltyPoints = durance * 3;
                }
                else if(durance * 3 > 200)
                {
                    penalty.PenaltyPoints = 200;
                }
                penalty.Comment = "Entering Restricted Area (" + penaltySequence[0].TimeStamp.ToString("HH:mm:ss") + " until " +
                        penaltySequence[penaltySequence.Count - 1].TimeStamp.ToString("HH:mm:ss") + "), total " + Math.Floor((penaltySequence[penaltySequence.Count - 1].TimeStamp.Subtract(penaltySequence[0].TimeStamp)).TotalSeconds + 1).ToString() + " seconds";
                penalties.Add(penalty);
            }
            return penalties;
        }