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