Пример #1
0
        private Boolean CheckParameters(ModelControl control)    // sprawdza czy mamy juz 2 odpowiadajace sobie jednostki,
        {                                                        //od Gienerała i od LRM, jesli tak, zestawiamy polaczenie
            int f1, f2;                                          //generalnie zwraca je.

            Console.WriteLine("CheckParameters: szukam dla snpp: {0}", control.snnpB);
            foreach (String s in Komutator.connTable)
            {
                if ((s.Substring(0, 2).Equals(control.snnpB)) || s.Substring(2, 2).Equals(control.snnpB))
                {
                    f1 = Convert.ToInt32(s.Substring(4, 2));
                    f2 = Convert.ToInt32(s.Substring(6, 2));

                    for (int i = f1; i < f2; i++)       //wpisz zajete lambdy
                    {
                        listaZajetosciLambd.Add(i);
                    }
                }
            }
            listaZajetosciLambd.Sort(); // sortuje, żeby sens mialo dalsze poszukiwanie

            Boolean git = true;

            foreach (int s in listaZajetosciLambd)
            {
                if ((s <= Convert.ToInt32(control.f1O) && s >= Convert.ToInt32(control.f1I) || (s <= Convert.ToInt32(control.f2O) && s >= Convert.ToInt32(control.f2I))))
                {
                    git = false;    //jezeli znajdzie konflikt to false.
                }
            }

            listaZajetosciLambd.Clear(); //czyszczenie listy, gdyz sprawdzanie odbywa sie kazdorazowo
            return(git);
        }
Пример #2
0
        private void Connect(ModelControl control)
        {
            int snnpA = Convert.ToInt32(control.snnpA);
            int snnpB = Convert.ToInt32(control.snnpB);
            int f1I   = Convert.ToInt32(control.f1I);
            int f1O   = Convert.ToInt32(control.f1O);

            kom.SetConnect(snnpA, snnpB, f1I, f1O, ++Agent.connections);
            // jako id polaczenia podawane jest connections zabrane ze zwyklego agenta, ale zwiekszone o 1 zeby liczba polaczen sie zgadzala

            if (control.konwersja == true)
            {
                kom.SetConversion(control.f2I, control.f2O, Agent.connections);
            }
        }
Пример #3
0
        private void Disconnect(String[] tab)
        {
            int          id = Convert.ToInt32(tab[1]);
            int          snnpA, f1;
            ModelControl s = Locate(id);

            if (!s.id.Equals("0"))                            // czyli ze znalazl, to dzialaj
            {
                snnpA = Convert.ToInt32(Locate(id).snnpA);
                f1    = Convert.ToInt32(Locate(id).f1I);
                kom.Disconnect(snnpA, f1);
                communicationT.Send_Text(ProtokolControl.DISCONN_R + " " + id, Network.outputControl);
            }
            else
            {
                communicationT.Send_Text(ProtokolControl.DISCONN_F + " " + id, Network.outputControl);
            }
        }
Пример #4
0
        private Boolean CreateControl(String digitsT)
        {
            String       id      = "";
            String       snppA   = "";
            String       snppB   = "";
            String       band    = "";
            ModelControl control = null;

            id    = digitsT.Substring(0, 2);
            snppA = digitsT.Substring(2, 2);
            snppB = digitsT.Substring(4, 2);
            band  = digitsT.Substring(6, 2);

            if (!SelectSNP(snppB, band).Equals("00"))
            {
                control = new ModelControl(id, snppA, snppB, band);
                ControlList.Add(control);
                return(true);
            }
            return(false);
        }
Пример #5
0
        private Boolean CreateControl(String[] tab)
        {
            String       id = "";
            String       linkA = "";
            String       linkB = "";
            String       f1I = "";
            String       f2I = "";
            String       f1O = "";
            String       f2O = "";
            ModelControl control = null;
            String       snnpA = "", snnpB = "";

            linkA = tab[1];
            linkB = tab[2];
            f1I   = tab[3];
            f2I   = tab[4];
            f1O   = tab[5];
            f2O   = tab[6];
            id    = tab[7];

            snnpA   = zasoby.GetSnnpId(linkA);
            snnpB   = zasoby.GetSnnpId(linkB);
            control = new ModelControl(id, snnpA, snnpB, f1I, f2I, f1O, f2O);

            if (CheckParameters(control))
            {
                communicationT.Send_Text(ProtokolControl.CONN_R + " " + id, Network.outputControl);

                Connect(control);
                ControlList.Add(control);

                return(true);
            }
            else
            {
                communicationT.Send_Text(ProtokolControl.CONN_F + " " + id, Network.outputControl);
                return(false);
            }
        }