Beispiel #1
0
 public void dodajPakiet(Pakiet pakiet, double staryZegar)
 {
     zegar = staryZegar;
     pakiet.zmienId(id);
     pakiet.ustawCzasPrzyjscia(zegar);
     pakiet.setOpoznienie(1);
     aktywny = pakiet;
     Console.WriteLine("PRZYJSCIE DO WEZLA " + id + " zegar: " + zegar);
     if (zajety == false)
     {
         zdarzenia.Add(new Zdarzenie(typZdarzenia.obsluzenie, czasObslugi + zegar));
         aktywny.setOpoznienie(0);
         obslugiwany = pakiet;
         zajety      = true;
         zajetoscSerwera.Add(zajety);
         czasyStanowSerwera.Add(zegar);
     }
     else if (zajety == true)
     {
         kolejka.Add(pakiet);
         czasyKolejek.Add(zegar);
         liczbaPakietowWKolejce.Add(kolejka.Count);
     }
     zdarzenia.Sort(
         delegate(Zdarzenie a, Zdarzenie b)
     {
         return(a.getCzas().CompareTo(b.getCzas()));
     });
     Program.zapiszDoPliku(zapisz(typZdarzenia.przyjscie), "symulacja.txt");
 }
Beispiel #2
0
 public static void przekazPakiet(Pakiet pakiet, double zegar)
 {
     Console.WriteLine("Przeslanie dalej zegar: " + zegar);
     if (pakiet.getId() + 1 < wezly.Count)
     {
         wezly[pakiet.getId() + 1].dodajPakiet(pakiet, zegar);
     }
     else
     {
         Console.WriteLine("Pakiet testowy dotarl do konca");
     }
 }
Beispiel #3
0
        public void zdarzenieObslugi()
        {
            zdarzenia.Remove(zdarzenia[0]);
            aktywny = obslugiwany;


            if (aktywny.getOpoznienie() != 0)
            {
                aktywny.obliczOpoznienie(zegar - czasObslugi);
            }

            if (obslugiwany.getTypRuchu() == TypRuchu.testowy)
            {
                obslugiwanyTMP = obslugiwany;
                zegarTMP       = zegar;
                przeslijTMP    = true;
            }


            calkowiteOpoznienie += aktywny.getOpoznienie();
            licznikOpoznien     += 1;

            if (aktywny.getTypRuchu() == TypRuchu.testowy)
            {
                opoznieniaPakietowTestowych.Add(aktywny.getOpoznienie());
            }

            Program.zapiszDoPliku(zegar - czasObslugi + "      " + aktywny.getOpoznienie(), "logs/opoznienia_" + id + ".txt");
            if (zegar < Program.czasSymulacji)
            {
                Program.zapiszDoPliku(zegar + "      " + aktywny.getOpoznienie(), "logs/opoznienia_" + id + ".txt");
            }
            else
            {
                Program.zapiszDoPliku(Program.czasSymulacji + "      " + aktywny.getOpoznienie(), "logs/opoznienia_" + id + ".txt");
            }
            if (liczbaPakietow() != 0)
            {
                obslugiwany = kolejka[0];
                kolejka.Remove(kolejka[0]);
                zdarzenia.Add(new Zdarzenie(typZdarzenia.obsluzenie, czasObslugi + zegar));
                czasyKolejek.Add(zegar);
                liczbaPakietowWKolejce.Add(kolejka.Count);
            }
            else
            {
                zajety = false;
                zajetoscSerwera.Add(zajety);
                czasyStanowSerwera.Add(zegar);
                Program.zapiszDoPliku(zegar + "      " + "0", "logs/opoznienia_" + id + ".txt");
            }
        }
Beispiel #4
0
        public void zdarzeniePrzyjscia()
        {
            double czasWystapienia = zrodla[0].getCzasDoWyslania();

            for (int i = 0; i < zrodla.Count; i++)
            {
                zrodla[i].zmniejszCzas(czasWystapienia);
            }
            Pakiet pakiet = zrodla[0].wyslijPakiet();

            pakiet.ustawCzasPrzyjscia(zegar);
            pakiet.zmienId(id);
            aktywny = pakiet;
            zrodla.Sort(
                delegate(ZrodloRuchu a, ZrodloRuchu b)
            {
                return(a.getCzasDoWyslania().CompareTo(b.getCzasDoWyslania()));
            });

            if (zdarzenia.Count != 0)
            {
                zdarzenia.Remove(zdarzenia[0]);
            }

            zdarzenia.Add(new Zdarzenie(typZdarzenia.przyjscie, czasWystapienia + zegar));
            if (zajety == true)
            {
                kolejka.Add(pakiet);
                aktywny = pakiet;
                czasyKolejek.Add(zegar);
                liczbaPakietowWKolejce.Add(kolejka.Count);
            }
            else if (zajety == false)
            {
                zajety = true;
                zajetoscSerwera.Add(zajety);
                czasyStanowSerwera.Add(zegar);
                zdarzenia.Add(new Zdarzenie(typZdarzenia.obsluzenie, czasObslugi + zegar));
                obslugiwany = pakiet;
                obslugiwany.setOpoznienie(0);
            }
        }
Beispiel #5
0
        public void uruchom()
        {
            czasyKolejek.Add(0);
            liczbaPakietowWKolejce.Add(0);
            czasyStanowSerwera.Add(0);
            zajetoscSerwera.Add(false);
            for (int i = 0; i < zrodla.Count; i++)
            {
                zrodla[i].losujCzas();
            }
            zrodla.Sort(
                delegate(ZrodloRuchu a, ZrodloRuchu b)
            {
                return(a.getCzasDoWyslania().CompareTo(b.getCzasDoWyslania()));
            });
            double czasWystapienia = zrodla[0].getCzasDoWyslania();

            for (int i = 0; i < zrodla.Count; i++)
            {
                zrodla[i].zmniejszCzas(czasWystapienia);
            }
            Pakiet pakiet = zrodla[0].wyslijPakiet();

            pakiet.ustawCzasPrzyjscia(zegar);
            pakiet.zmienId(id);
            aktywny = pakiet;
            zrodla.Sort(
                delegate(ZrodloRuchu a, ZrodloRuchu b)
            {
                return(a.getCzasDoWyslania().CompareTo(b.getCzasDoWyslania()));
            });
            if (zdarzenia.Count != 0)
            {
                zdarzenia.Remove(zdarzenia[0]);
            }

            zdarzenia.Add(new Zdarzenie(typZdarzenia.przyjscie, czasWystapienia + zegar));
        }