//Konstruktor bez parametrow wejsciowych
 public StacjaNadawcza(int id)
 {
     Id     = id;
     _bufor = new Queue <Pakiet>();
     generatorWykladniczy = new WykladniczyGeneratorLosowy(Program.lambda, Ziarno.PobierzZiarno());
     new Pakiet(Id).Activate(CGPk());
 }
Exemplo n.º 2
0
        //Konstruktor, jego wywołanie powoduje utworzenie listy stacji nadawczych i odbiorczych
        //oraz dodanie do list odpowiedniej liczby nadajników i odbiorników. liczba_stacji jest rowna 4
        public Siec()
        {
            _stacjeNadawcze  = new List <StacjaNadawcza>();
            _stacjeOdbiorcze = new List <Stacja>();
            _kanal           = new Lacze();
            _losowanieCTPk   = new UniwersalnyGeneratorLosowy(Ziarno.PobierzZiarno());
            _losowaniePT     = new UniwersalnyGeneratorLosowy(Ziarno.PobierzZiarno());
            _losowanieR      = new UniwersalnyGeneratorLosowy(Ziarno.PobierzZiarno());

            for (int i = 0; i < Program.liczbaNadajnikow; i++)
            {
                _stacjeNadawcze.Add(new StacjaNadawcza(i));
                _stacjeOdbiorcze.Add(new Stacja(i));
            }
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
            Ziarno.Generuj();
            int liczbaSymulacji = Program.liczbaSymulacji;

            Console.WriteLine("Wybierz opcje wyswietlania informacji o przebiegu programu: ");
            Console.WriteLine("{0} - logi wylaczone");
            Console.WriteLine("{1} - logi wlaczone");
            int zmiennaLogi = int.Parse(Console.ReadLine());

            switch (zmiennaLogi)
            {
            case 0:
                Program.logi = false;
                break;

            case 1:
                Program.logi = true;
                break;

            default:
                Console.WriteLine("Podano nieoczekiwana liczbe");
                break;
            }
            Console.WriteLine("Wybierz opcje krokowego wykonywania petli glownej: ");
            Console.WriteLine("{0} - krokowo");
            Console.WriteLine("{1} - ciagle");
            int zmiennaKrokowo = int.Parse(Console.ReadLine());

            switch (zmiennaKrokowo)
            {
            case 0:
                Program.symulacjaKrokowa = true;
                break;

            case 1:
                Program.symulacjaKrokowa = false;
                break;

            default:
                Console.WriteLine("Podano nieoczekiwana liczbe");
                break;
            }
            Console.WriteLine("Wybierz opcje: ");
            Console.WriteLine("{0} - program dla ustalonych w raporcie parametrow");
            Console.WriteLine("{1} - program dla nowych parametrow");
            int zmiennaParametry = int.Parse(Console.ReadLine());

            switch (zmiennaParametry)
            {
            case 0:
                Console.WriteLine("Rozpoczynam wykonywanie programu, za chwilę na ekranie pojawią się statystyki pierwszej symulacji...");
                break;

            case 1:
                Console.WriteLine("Podaj wartosc lambda: ");
                Program.lambda = double.Parse(Console.ReadLine());
                Console.WriteLine("Podaj czas symulacji w [ms]: ");
                Program.czasSymulacji = int.Parse(Console.ReadLine());
                Console.WriteLine("Podaj liczbe symulacji: ");
                Program.liczbaSymulacji = int.Parse(Console.ReadLine());
                Console.WriteLine("Podaj faze poczatkowa jako ilosc pakietow:");
                Program.fazaPoczatkowa = int.Parse(Console.ReadLine());
                break;

            default:
                Console.WriteLine("Podano nieoczekiwana liczbe");
                break;
            }

            while (liczbaSymulacji > 0)
            {
                Program.zegar = 0;
                Siec siecSymulowana = new Siec();
                while (zegar < Program.czasSymulacji)
                {
                    obecnyProces = agenda.First()._proces;
                    zegar        = agenda.First()._czasZdarzenia;
                    agenda.RemoveAt(0);
                    obecnyProces.Execute();
                    if (Program.symulacjaKrokowa)
                    {
                        Console.ReadKey();
                    }
                }
                Statystyka.Wyswietl();
                Console.WriteLine();
                Statystyka.ZerujStatystyki();
                agenda.Clear();
                --liczbaSymulacji;
            }

            Statystyka.PodsumowanieStatystyk();
            Ziarno.sr.Close();
            Console.WriteLine("Zakonczono");
            Console.ReadKey();
        }