Example #1
0
        public void prikazSenzuatora(int n, string oznaka)
        {
            IspisUpisSG iu = IspisUpisSG.getInstance();

            if (oznaka == "s")
            {
                foreach (Mjesto m in db.dajMjesta())
                {
                    foreach (Senzor s in m.ls)
                    {
                        if (s.ID == n)
                        {
                            iu.print(iu.pofarbaj("crvena") + "[ID]\t[TIP]\t[VRSTA]\t[ISPRAVNOST][VRIJEDNOST][NAZIV]");
                            iu.print(s.ID.ToString() + "\t    " + s.tip.ToString() + "\t      " + s.vrsta.ToString() + "\t" + s.ispravnost + "\t\t    " + s.vrijednost.ToString() + "\t" + s.naziv);
                        }
                    }
                }
            }
            else if (oznaka == "a")
            {
                foreach (Mjesto m in db.dajMjesta())
                {
                    foreach (Aktuator s in m.la)
                    {
                        if (s.ID == n)
                        {
                            iu.print(iu.pofarbaj("crvena") + "[ID]\t[TIP]\t[VRSTA]\t[ISPRAVNOST][VRIJEDNOST][NAZIV]");
                            iu.print(s.ID.ToString() + "\t    " + s.tip.ToString() + "\t      " + s.vrsta.ToString() + "\t" + s.ispravnost + "\t\t    " + s.vrijednost.ToString() + "\t" + s.naziv);
                        }
                    }
                }
            }
        }
Example #2
0
        public AktuatorBuilder(string path)
        {
            try
            {
                int      c      = 0;
                string[] linije = System.IO.File.ReadAllLines(path);
                foreach (string line in linije)
                {
                    if (c > 0)
                    {
                        string[] splitano = line.Split(';');

                        try
                        {
                            Aktuator m = new Aktuator();
                            if (cp.postojiID(Int32.Parse(splitano[0])))
                            {
                                iu.print("ID za aktuator '" + splitano[1] + "' već postoji!");
                            }
                            else
                            {
                                m.ID = Int32.Parse(splitano[0]);
                            }

                            m.naziv          = splitano[1];
                            m.tip            = Int32.Parse(splitano[2]);
                            m.vrsta          = Int32.Parse(splitano[3]);
                            m.min_vrijednost = float.Parse(splitano[4]);
                            m.max_vrijednost = float.Parse(splitano[5]);
                            if (m.komentar != null)
                            {
                                m.komentar = splitano[5];
                            }
                            if (cp.postojiAktuator(m.ID))
                            {
                                iu.print("[Aktuator '" + m.naziv + "' već postoji!]");
                            }
                            else
                            {
                                ls.dodajAktuator(m);
                                ls.dodajID(m.ID);
                            }
                        }
                        catch (Exception e)
                        {
                            iu.print("[Redak nije odgovarajuće strukturiran!] Došlo je do greške pri objekta Aktuatora " + splitano[1] + " podataka : " + splitano[0] + ";" + splitano[2] + ";" + splitano[3]);
                        }
                    }
                    c++;
                }
            }
            catch (Exception e)
            {
                iu.print(" [Aktuatori ] Datoteka s nazivom '" + path + "' ne postoji.");
                iu.print("Završetak rada.");
            }
        }
Example #3
0
 public void dodajIspravnost(int n)
 {
     if (n > 100 || n < 0)
     {
         iu.print("Broj PI% nije dobar.");
         iu.print("Neće biti korišten.");
     }
     else
     {
         db.preuzmiIspravnost(n);
     }
 }
Example #4
0
        public MjestoBuilder(string naziv)
        {
            int c = 0;

            try
            {
                string[] linije = System.IO.File.ReadAllLines(naziv);
                foreach (string l in linije)
                {
                    if (c > 0)
                    {
                        string[] splitano = l.Split(';');
                        Mjesto   m        = new Mjesto();
                        try
                        {
                            m.naziv          = splitano[1];
                            m.tip            = Int32.Parse(splitano[2]);
                            m.broj_senzora   = Int32.Parse(splitano[3]);
                            m.broj_aktuatora = Int32.Parse(splitano[4]);
                            if (cp.postojiID(Int32.Parse(splitano[0])))
                            {
                                iu.print("ID za mjesto '" + splitano[1] + "' već postoji!");
                            }
                            else
                            {
                                m.ID = Int32.Parse(splitano[0]);
                            }

                            if (cp.postojiMjesto(m.ID))
                            {
                                iu.print("\n[Mjesto '" + m.naziv + "' već postoji!]");
                            }
                            else
                            {
                                lm.dodajMjesto(m);
                                lm.dodajID(m.ID);
                            }
                        }
                        catch (Exception e)
                        {
                            iu.print("[Redak nije odgovarajuće strukturiran!] Došlo je do greške pri objekta Mjesta " + m.naziv + " podataka : " + splitano[0] + ";" + splitano[2] + ";" + splitano[3]);
                        };
                    }
                    c++;
                }
            }
            catch (Exception)
            {
                iu.print(" [Mjesta] Datoteka s nazivom '" + naziv + "' ne postoji.");
                iu.print("Završetak rada.");
            }
        }
Example #5
0
        public void prikazMjesta(int n)
        {
            IspisUpisSG iu = IspisUpisSG.getInstance();

            foreach (Mjesto m in db.dajMjesta())
            {
                if (m.ID == n)
                {
                    iu.print(iu.pofarbaj("crvena") + "[NAZIV]\t\t\t[ID]\t[max BR.S][max BR.A] [BR.S][BR.A]" + iu.pofarbaj("bijela"));
                    iu.print(m.naziv + "\t  " + m.ID.ToString() + "\t\t" + m.broj_senzora.ToString() + "\t  " + m.broj_aktuatora.ToString() + "\t " + m.ls.Count().ToString() + "\t" + m.la.Count().ToString());
                }
            }
        }
Example #6
0
 public void prikazMj()
 {
     if (db.dajMjesta().Count > 0)
     {
         IspisUpisSG iu = IspisUpisSG.getInstance();
         iu.print("\t\t***MJESTA***");
         iu.print(iu.pofarbaj("crvena") + "\t[Naziv]\t\t[ID]\t[TIP]\t[Br.Senzora]\t[Br.Aktuatora]" + iu.pofarbaj("bijela"));
         foreach (Mjesto m in db.dajMjesta())
         {
             iu.print(m.dohvatiNaziv() + "\t  " + m.ID.ToString() + "\t   " + m.dohvatiTip() + "\t\t" + m.dohvatiBrojSenzora() + "\t\t " + m.dohvatiBrojAktuatora());
         }
     }
 }
Example #7
0
        public void obradiStatistiku()
        {
            ListaSvegaSG ls = ListaSvegaSG.getInstance();

            if (oznaka == "stat2")
            {
                float s_t = 0;
                float s_f = 0;
                float a_t = 0;
                float a_f = 0;

                foreach (Mjesto m in ls.dajMjesta())
                {
                    foreach (Senzor s in m.ls)
                    {
                        if (s.ispravnost)
                        {
                            s_t++;
                        }
                        else
                        {
                            s_f++;
                        }
                    }
                    foreach (Aktuator a in m.la)
                    {
                        if (a.ispravnost)
                        {
                            a_t++;
                        }
                        else
                        {
                            a_f++;
                        }
                    }
                }
                IspisUpisSG iu   = IspisUpisSG.getInstance();
                float       hej1 = s_t / (s_t + s_f);
                float       hej2 = a_t / (a_t + a_f);
                hej1 *= 100;
                hej2 *= 100;
                iu.print("Ukupno " + (s_t + s_f) + " senzora, u prosjeku " + hej1.ToString() + "% ispravnih i " + (100 - hej1) + "% neispravnih.");
                iu.print("Ukupno " + (a_t + a_f) + " aktuatora, u prosjeku " + (100 - hej2) + "% neispravnih.");
            }
            else
            {
                IspisUpisSG iu = IspisUpisSG.getInstance();
                iu.print("Jedine opcije su stat i stat2");
            }
        }
Example #8
0
        static void Main(string[] args)
        {
            string naredbe = " "; //E:\FAKS\PETO LETO\UzDiz\aletrajko_zadaca_3\aletrajko_zadaca_3\bin\Debug\aletrajko_zadaca_3.exe" -m C:\Users\Benghazi\Desktop\DZ_3_mjesta -s C:\Users\Benghazi\Desktop\DZ_3_senzori -a C:\Users\Benghazi\Desktop\DZ_3_aktuatori -br 30 -brk 2 -bs 80 -r DZ_3_raspored -pi 90-";

            if (args.Count() > 0)
            {
                foreach (string a in args)
                {
                    naredbe += a + " ";
                }

                IspisUpisSG v = IspisUpisSG.getInstance();
                v.pobrisiSve();
                F_Simplifier fsim = F_Simplifier.getInstance();
                fsim.InitiateSystem(naredbe);
                fsim.StartSystem();
                fsim.Finishing();
            }
            else
            {
                IspisUpisSG v = IspisUpisSG.getInstance();
                v.pobrisiSve();
                v.print("Nema argumenata. Obustava rada.");
            }
        }
Example #9
0
        /*
         * public void Stat() {
         *  Statistika stat = new Statistika();
         *  stat.obradi();
         * }
         *
         * public void M(int n) {
         *  pr.prikazMjesta(n);
         * }
         * public void SA(int n,string oznaka) {
         *  pr.prikazSenzuatora(n, oznaka);
         * }
         */

        public void LeaveSys(string m)
        {
            v.pobrisiSve();
            v.print(m);
            Thread.Sleep(1500);
            //ExitSystem();
        }
Example #10
0
        public void prikazAkt()
        {
            IspisUpisSG iu = IspisUpisSG.getInstance();

            iu.print("");
            if (db.dajAktuatore().Count > 0)
            {
                iu.print("\t\t***AKTUATORI***");
                iu.print(iu.pofarbaj("crvena") + "\t[Naziv]\t\t\t\t[ID]\t[TIP]\t[Vrsta]\t[Min/Max]" + iu.pofarbaj("bijela"));
                foreach (Aktuator s in db.dajAktuatore())
                {
                    if (s.dohvatiNaziv().Length <= 23)
                    {
                        iu.print(s.dohvatiNaziv() + "\t\t\t" + s.ID.ToString() + "\t " + s.dohvatiTip() + "\t " + s.dohvatiVrstu() + "\t " + s.dohvatiMinVrijednost() + "/" + s.dohvatiMaxVrijednost());
                    }
                    else if (s.dohvatiNaziv().Length > 23 && s.dohvatiNaziv().Length < 29)
                    {
                        iu.print(s.dohvatiNaziv() + "\t\t" + s.ID.ToString() + "\t " + s.dohvatiTip() + "\t " + s.dohvatiVrstu() + "\t " + s.dohvatiMinVrijednost() + "/" + s.dohvatiMaxVrijednost());
                    }
                    else if (s.dohvatiNaziv().Length >= 33)
                    {
                        iu.print(s.dohvatiNaziv() + "\t" + s.ID.ToString() + "\t " + s.dohvatiTip() + "\t " + s.dohvatiVrstu() + "\t " + s.dohvatiMinVrijednost() + "/" + s.dohvatiMaxVrijednost());
                    }
                    else
                    {
                        iu.print(s.dohvatiNaziv() + "\t\t" + s.ID.ToString() + "\t " + s.dohvatiTip() + "\t " + s.dohvatiVrstu() + "\t " + s.dohvatiMinVrijednost() + "/" + s.dohvatiMaxVrijednost());
                    }
                }
            }
        }
Example #11
0
        public void StartSystem()
        {
            IspisUpisSG v = IspisUpisSG.getInstance();

            v.print("");
            pr.prikazMj();
            pr.prikazSenz();
            pr.prikazAkt();
            pr.prikazSparenih();
            v.cekajUpute();
        }
Example #12
0
        public void prikazSenz()
        {
            IspisUpisSG iu = IspisUpisSG.getInstance();

            iu.print("");

            if (db.dajSenzore().Count > 0)
            {
                iu.print("\t\t***SENZORI***");
                iu.print(iu.pofarbaj("crvena") + "\t[Naziv]\t\t[ID]\t[TIP]\t[Vrsta]\t\t[Min/Max]" + iu.pofarbaj("bijela"));
                foreach (Senzor s in db.dajSenzore())
                {
                    if (s.dohvatiNaziv().Length < 8)
                    {
                        iu.print(s.dohvatiNaziv() + "\t\t\t  " + s.ID.ToString() + "\t   " + s.dohvatiTip() + "\t\t" + s.dohvatiVrstu() + "\t " + s.dohvatiMinVrijednost() + "/" + s.dohvatiMaxVrijednost());
                    }
                    else if (s.dohvatiNaziv().Length >= 8 && s.dohvatiNaziv().Length < 13)
                    {
                        iu.print(s.dohvatiNaziv() + "\t\t  " + s.ID.ToString() + "\t   " + s.dohvatiTip() + "\t\t" + s.dohvatiVrstu() + "\t " + s.dohvatiMinVrijednost() + "/" + s.dohvatiMaxVrijednost());
                    }
                    else
                    {
                        iu.print(s.dohvatiNaziv() + "\t  " + s.ID.ToString() + "\t   " + s.dohvatiTip() + "\t\t" + s.dohvatiVrstu() + "\t " + s.dohvatiMinVrijednost() + "/" + s.dohvatiMaxVrijednost());
                    }


                    //iu.print("\tTip : " + s.dohvatiTip()+ "\tVrsta : " + s.dohvatiVrstu()+"\tMin vrijednost: " + s.dohvatiMinVrijednost() + "\tMax vrijednost : " + s.dohvatiMaxVrijednost());

                    // if (s.komentar != null) iu.print("\tKomentar : " + s.dohvatiKomentar());
                }
            }
        }
Example #13
0
        public bool inicijaliziraj()
        {
            sansa = db.dajSansu();

            try {
                if (g.dajSlucajniBroj(0, 101) <= sansa)
                {
                    ispravnost = true;
                }
                else
                {
                    ispravnost = false;
                }
                return(ispravnost);
            }
            catch (Exception) {
                iu.print("Prosječna ispravnost uređaja nije zadana. Svi uređaji bit će neispravni.");
                return(false);
            }
        }
Example #14
0
        public void obradi()
        {
            iu.print("\n\n[STATISTIKA]");

            float cs = ls.dajKvarneS().Count();
            float ca = ls.dajKvarneA().Count();

            iu.print("Broj prijavljenih senzora : " + cs.ToString());
            iu.print("Broj prijavljenih aktuatora :" + ca.ToString());
            if (cs > 0 && ca > 0)
            {
                decimal n;
                Decimal.Round(5);
                if (cs > ca)
                {
                    n = (decimal)(ca / cs);
                    iu.print("Senzori se kvare " + (1 - n) * 100 + "% više od aktuatora!");
                }
                else if (ca > cs)
                {
                    n = (decimal)(cs / ca);
                    iu.print("Aktuatori se kvare " + (1 - n) * 100 + "% više od senzora!");
                }
                else
                {
                    iu.print("Aktuatori se kvare jednako mnogo kao i senzori!");
                }
            }

            Senzor   s2 = new Senzor();
            Aktuator a2 = new Aktuator();

            if (ls.dajKvarnaM().Count > 0)
            {
                iu.print("Mjesto s najviše kvarenja je : " + ls.dajKvarnaM().GroupBy(s => s).OrderByDescending(s => s.Count()).First().Key + " sa " + ls.dajKvarnaM().GroupBy(x => x).Max(x => x.Count()).ToString() + " pojave kvara!");
            }
        }
Example #15
0
        public void spari()
        {
            int c = 0;

            try
            {
                List <Mjesto>   lm = db.dajMjesta();
                List <Senzor>   ls = db.dajSenzore();
                List <Aktuator> la = db.dajAktuatore();

                string[] linije = System.IO.File.ReadAllLines(filename);
                foreach (string l in linije)
                {
                    if (c > 2)
                    {
                        string[] splitano = l.Split(';');

                        try
                        {
                            if (Int32.Parse(splitano[0]) == 0)
                            {
                                foreach (Mjesto m in lm)
                                {
                                    if (m.ID == Int32.Parse(splitano[1]))
                                    {
                                        if (Int32.Parse(splitano[2]) == 1)
                                        {
                                            //aktuator
                                            if (m.broj_aktuatora > m.la.Count())
                                            {
                                                foreach (Aktuator a in la)
                                                {
                                                    if (a.ID == Int32.Parse(splitano[3]))
                                                    {
                                                        Aktuator b = (Aktuator)a.kloniraj(a.naziv, a.tip, a.vrsta, a.min_vrijednost, a.max_vrijednost);
                                                        b.inicijaliziraj();
                                                        b.generirajVrijednost();
                                                        b.dodijeliID(Int32.Parse(splitano[4]));
                                                        if (b.tip == m.tip || b.tip == 2)
                                                        {
                                                            m.la.Add(b);
                                                        }
                                                        else
                                                        {
                                                            iu.print("Tip aktuatora " + b.naziv + " ne paše mjestu " + m.naziv + "!");
                                                        }
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                iu.print(iu.pofarbaj("crvena") + "***" + m.naziv + " ima max.broj aktuatora.***" + iu.pofarbaj("bijela"));
                                            }
                                        }
                                        if (Int32.Parse(splitano[2]) == 0)
                                        {
                                            //senzor

                                            if (m.broj_senzora > m.ls.Count())
                                            {
                                                foreach (Senzor a in ls)
                                                {
                                                    if (a.ID == Int32.Parse(splitano[3]))
                                                    {
                                                        Senzor b = (Senzor)a.kloniraj(a.naziv, a.tip, a.vrsta, a.min_vrijednost, a.max_vrijednost);
                                                        b.inicijaliziraj();
                                                        b.generirajVrijednost();
                                                        b.dodijeliID(Int32.Parse(splitano[4]));
                                                        if (b.tip == m.tip || b.tip == 2)
                                                        {
                                                            m.ls.Add(b);
                                                        }
                                                        else
                                                        {
                                                            iu.print("Tip senzora " + b.naziv + " ne paše mjestu " + m.naziv + "!");
                                                        }
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                iu.print(iu.pofarbaj("crvena") + "***" + m.naziv + " ima max.broj senzora.***" + iu.pofarbaj("bijela"));
                                            }
                                        }
                                    }
                                }
                            }
                            if (Int32.Parse(splitano[0]) == 1)
                            {
                                foreach (Mjesto m in lm)
                                {
                                    foreach (Aktuator a in m.la)
                                    {
                                        if (Int32.Parse(splitano[1]) == a.ID)
                                        {
                                            string[] senzori = splitano[2].Split(',');

                                            foreach (string snz in senzori)
                                            {
                                                foreach (Senzor s in m.ls)
                                                {
                                                    if (s.ID == Int32.Parse(snz))
                                                    {
                                                        a.lss.Add(s);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }

                            db.aktualizirajMjesta(lm);
                        }
                        catch (Exception e)
                        {
                            //iu.print(e.ToString());
                            iu.print("[Greška!] Došlo je do greške pri raspoređivanju uređaja.");
                            iu.print("Redak : " + l);
                        };
                    }
                    c++;
                }
            }
            catch (Exception)
            {
                iu.print(" [Raspored] Datoteka s nazivom '" + filename + "' ne postoji. Završetak rada.");
            }
        }
Example #16
0
        public void prikazSparenih()
        {
            IspisUpisSG iu = IspisUpisSG.getInstance();

            foreach (Mjesto m in db.dajMjesta())
            {
                iu.print(iu.pofarbaj("zuta") + "[" + m.naziv.ToUpper() + "]" + iu.pofarbaj("bijela"));
                iu.print(" [TIP]\t  [ID]\t[VRIJEDNOST]\t[ISPRAVNOST]\t\t[NAZIV]");
                foreach (Senzor s in m.ls)
                {
                    iu.print("Senzor\t  " + s.ID.ToString() + "\t\t" + s.vrijednost.ToString() + "\t " + s.ispravnost.ToString() + "\t     " + s.dohvatiNaziv());
                }
                foreach (Aktuator s in m.la)
                {
                    iu.print("Aktuator  " + s.ID.ToString() + "\t\t" + s.vrijednost.ToString() + "\t " + s.ispravnost.ToString() + "\t     " + s.dohvatiNaziv());
                }
            }
            iu.print("");
            iu.print("Ispis povezanih aktuatora i senzora");

            foreach (Mjesto m in db.dajMjesta())
            {
                iu.print(iu.pofarbaj("zuta") + "[" + m.naziv.ToUpper() + "]" + iu.pofarbaj("bijela"));

                foreach (Aktuator a in m.la)
                {
                    iu.print("\t\t" + a.naziv.ToUpper());
                    iu.print(iu.pofarbaj("crvena") + "\t\t[ID Senzora]\t[Senzor]" + iu.pofarbaj("bijela"));
                    foreach (Senzor s in a.lss)
                    {
                        iu.print("\t\t\t" + s.ID.ToString() + "\t" + s.naziv);
                    }
                    iu.print("");
                }
            }
        }
Example #17
0
        private static void NewThread()
        {
            C_Parametri par = C_Parametri.getInstance();

            Iterator      i      = new Iterator();
            List <Mjesto> mjesta = new List <Mjesto>();
            IspisUpisSG   iu     = IspisUpisSG.getInstance();
            ListaSvegaSG  ls     = ListaSvegaSG.getInstance();
            Statistika    stat   = new Statistika();

            int TCD1   = par.dajTCD();
            int brojac = 0;
            int bcd1   = 0;

            bcd1 = iu.bcdoer();
            while (brojac < bcd1)
            {
                i.resetiraj();

                mjesta = ls.dajMjesta();
                mjesta.OrderBy(s => s.naziv);


                for (; i.dohvatiVrijednost() < mjesta.Count(); i.povecaj())
                {
                    iu.print2("[" + mjesta[i.dohvatiVrijednost()].naziv + "]" + " (ID " + mjesta[i.dohvatiVrijednost()].ID + ")");
                    Thread.Sleep(TCD1 * 1000);
                    iu.print2(iu.pofarbaj("crvena") + "[SENZOR]\t\t\t[ID][ISPRAVNOST][VRIJEDNOST]  [MIN/MAX][ZATAJIO]");
                    foreach (Senzor s in mjesta[i.dohvatiVrijednost()].ls.ToList())

                    {
                        if (s.ispravnost == false)
                        {
                            s.manjkav++;
                        }
                        if (s.naziv.Length <= 7)
                        {
                            iu.print2(s.naziv + "\t\t\t\t" + s.ID.ToString() + " " + s.ispravnost + "\t\t" + s.vrijednost.ToString() + "\t" + s.min_vrijednost.ToString() + "/" + s.max_vrijednost.ToString() + "\t      " + s.manjkav.ToString());
                        }
                        else if (s.naziv.Length >= 8 && s.naziv.Length < 13)
                        {
                            iu.print2(s.naziv + "\t\t\t" + s.ID.ToString() + " " + s.ispravnost + "\t\t" + s.vrijednost.ToString() + "\t" + s.min_vrijednost.ToString() + "/" + s.max_vrijednost.ToString() + "\t      " + s.manjkav.ToString());
                        }
                        else
                        {
                            iu.print2(s.naziv.Substring(0, Math.Min(s.naziv.Length, 30)) + "\t\t" + s.ID.ToString() + " " + s.ispravnost + "\t\t" + s.vrijednost.ToString() + "\t" + s.min_vrijednost.ToString() + "/" + s.max_vrijednost.ToString() + "\t      " + s.manjkav.ToString());
                        }


                        /*iu.print2("\t\tIspravnost [" + s.ispravnost.ToString() + "]");
                         * iu.print2("\t\tStara Vrijednost : " + s.vrijednost.ToString() + s.komentar);
                         * if (s.ispravnost) s.progresijaVrijednosti();
                         * iu.print2("\t\tNova Vrijednost : " + s.vrijednost.ToString() + s.komentar);
                         * iu.print2("\t\tMin : " + s.min_vrijednost);
                         * iu.print2("\t\tMax : " + s.max_vrijednost);
                         * iu.print2("\t\tBroj zatajenja : " + s.manjkav.ToString() + " puta.");
                         */
                        GenBrojevaSG gb = GenBrojevaSG.getInstance();
                        if (s.ispravnost && gb.dajSlucajniBroj(0, 10) > 6)
                        {
                            s.progresijaVrijednosti();
                            foreach (Aktuator a in ls.dajAktuatore())
                            {
                                if (a.lss.Contains(s))
                                {
                                    s.notify(a);
                                }
                            }
                        }

                        if (s.manjkav >= 3 && !(s.uklonjen))
                        {
                            ls.prijaviMjesto(mjesta[i.dohvatiVrijednost()].dohvatiNaziv());
                            ls.prijaviSenzor(s);

                            iu.print2("");
                            iu.print2(iu.pofarbaj("crvena") + "=> Sklanja se senzor " + s.naziv);
                            iu.print2(" iz mjesta " + mjesta[i.dohvatiVrijednost()].naziv + "]" + iu.pofarbaj("bijela"));
                            //mjesta[i.dohvatiVrijednost()].ls.Remove(s);

                            bool dobar = false;
                            while (!dobar)
                            {
                                Senzor senz = (Senzor)s.kloniraj(s.naziv, s.tip, s.vrsta, s.min_vrijednost, s.max_vrijednost);
                                senz.inicijaliziraj();

                                if (senz.ispravnost == true)
                                {
                                    senz.generirajVrijednost();
                                    senz.dodajID("s");
                                    ls.dodajID(senz.ID);
                                    dobar = true;
                                    iu.print2(iu.pofarbaj("zelena") + "[Dodaje se senzor]");

                                    if (senz.naziv.Length <= 7)
                                    {
                                        iu.print2(iu.pofarbaj("zelena") + senz.naziv + "\t\t\t\t" + senz.ID.ToString() + " " + senz.ispravnost + "\t\t" + senz.vrijednost.ToString() + "\t" + senz.min_vrijednost.ToString() + "/" + senz.max_vrijednost.ToString() + "\t      " + senz.manjkav.ToString());
                                    }
                                    else if (senz.naziv.Length >= 8 && senz.naziv.Length < 13)
                                    {
                                        iu.print2(iu.pofarbaj("zelena") + senz.naziv + "\t\t\t" + senz.ID.ToString() + " " + senz.ispravnost + "\t\t" + senz.vrijednost.ToString() + "\t" + senz.min_vrijednost.ToString() + "/" + senz.max_vrijednost.ToString() + "\t      " + senz.manjkav.ToString());
                                    }
                                    else
                                    {
                                        iu.print2(iu.pofarbaj("zelena") + senz.naziv.Substring(0, Math.Min(s.naziv.Length, 30)) + "\t\t" + senz.ID.ToString() + " " + senz.ispravnost + "\t\t" + senz.vrijednost.ToString() + "\t" + senz.min_vrijednost.ToString() + "/" + senz.max_vrijednost.ToString() + "\t      " + senz.manjkav.ToString());
                                    }
                                }
                            }
                        }
                    }
                    iu.print2(iu.pofarbaj("crvena") + "[AKTUATOR]\t\t\t[ID][ISPRAVNOST][VRIJEDNOST]  [MIN/MAX][ZATAJIO]");
                    foreach (Aktuator a in mjesta[i.dohvatiVrijednost()].la.ToList())
                    {
                        if (a.ispravnost == false)
                        {
                            a.manjkav++;
                        }
                        if (a.naziv.Length <= 7)
                        {
                            iu.print2(a.naziv + "\t\t\t\t" + a.ID.ToString() + " " + a.ispravnost + "\t\t" + a.vrijednost.ToString() + "\t" + a.min_vrijednost.ToString() + "/" + a.max_vrijednost.ToString() + "\t      " + a.manjkav.ToString());
                        }
                        else if (a.naziv.Length >= 8 && a.naziv.Length < 13)
                        {
                            iu.print2(a.naziv + "\t\t\t" + a.ID.ToString() + " " + a.ispravnost + "\t\t" + a.vrijednost.ToString() + "\t" + a.min_vrijednost.ToString() + "/" + a.max_vrijednost.ToString() + "\t      " + a.manjkav.ToString());
                        }
                        else if (a.naziv.Length >= 13 && a.naziv.Length < 24)
                        {
                            iu.print2(a.naziv + "\t\t" + a.ID.ToString() + " " + a.ispravnost + "\t\t" + a.vrijednost.ToString() + "\t" + a.min_vrijednost.ToString() + "/" + a.max_vrijednost.ToString() + "\t      " + a.manjkav.ToString());
                        }
                        else
                        {
                            iu.print2(a.naziv.Substring(0, Math.Min(a.naziv.Length, 30)) + "\t" + a.ID.ToString() + " " + a.ispravnost + "\t\t" + a.vrijednost.ToString() + "\t" + a.min_vrijednost.ToString() + "/" + a.max_vrijednost.ToString() + "\t      " + a.manjkav.ToString());
                        }

                        /*
                         * iu.print2("\tSenzor - " + a.naziv + " (ID " + a.ID.ToString() + ")");
                         * iu.print2("\t\tIspravnost [" + a.ispravnost.ToString() + "]");
                         * iu.print2("\t\tStara vrijednost : " + a.vrijednost.ToString() + a.komentar);
                         * if (a.ispravnost) a.progresijaVrijednosti();// ako se dezignirani senzor promjenio
                         * iu.print2("\t\tNova vrijednost : " + a.vrijednost.ToString() + a.komentar);
                         * iu.print2("\t\tMin : " + a.min_vrijednost);
                         * iu.print2("\t\tMax : " + a.max_vrijednost);
                         * iu.print2("\t\tBroj zatajenja : " + a.manjkav.ToString() + " puta.");
                         */
                        if (a.manjkav >= 3 && !(a.uklonjen))
                        {
                            ls.prijaviMjesto(mjesta[i.dohvatiVrijednost()].dohvatiNaziv());
                            ls.prijaviAktuator(a);
                            iu.print2("");
                            iu.print2(iu.pofarbaj("crvena") + "=> Sklanja se aktuator " + a.naziv);
                            iu.print2(" iz mjesta " + mjesta[i.dohvatiVrijednost()].naziv + "]" + iu.pofarbaj("bijela"));
                            //mjesta[i.dohvatiVrijednost()].la.Remove(a);
                            bool dobar2 = false;
                            while (!dobar2)
                            {
                                Aktuator senz = (Aktuator)a.kloniraj(a.naziv, a.tip, a.vrsta, a.min_vrijednost, a.max_vrijednost);
                                senz.inicijaliziraj();


                                if (senz.ispravnost == true)
                                {
                                    senz.generirajVrijednost();
                                    senz.dodajID("a");
                                    ls.dodajID(senz.ID);
                                    dobar2 = true;
                                    iu.print2(iu.pofarbaj("zelena") + "[Dodaje se aktuator]");
                                    if (senz.naziv.Length <= 7)
                                    {
                                        iu.print2(iu.pofarbaj("zelena") + senz.naziv + "\t\t\t\t" + senz.ID.ToString() + " " + senz.ispravnost + "\t\t" + senz.vrijednost.ToString() + "\t" + senz.min_vrijednost.ToString() + "/" + senz.max_vrijednost.ToString() + "\t      " + senz.manjkav.ToString());
                                    }
                                    else if (senz.naziv.Length >= 8 && senz.naziv.Length < 13)
                                    {
                                        iu.print2(iu.pofarbaj("zelena") + senz.naziv + "\t\t\t" + senz.ID.ToString() + " " + senz.ispravnost + "\t\t" + senz.vrijednost.ToString() + "\t" + senz.min_vrijednost.ToString() + "/" + senz.max_vrijednost.ToString() + "\t      " + senz.manjkav.ToString());
                                    }
                                    else if (senz.naziv.Length >= 13 && senz.naziv.Length < 24)
                                    {
                                        iu.print2(iu.pofarbaj("zelena") + senz.naziv + "\t\t" + senz.ID.ToString() + " " + senz.ispravnost + "\t\t" + senz.vrijednost.ToString() + "\t" + senz.min_vrijednost.ToString() + "/" + senz.max_vrijednost.ToString() + "\t      " + senz.manjkav.ToString());
                                    }
                                    else
                                    {
                                        iu.print2(iu.pofarbaj("zelena") + senz.naziv.Substring(0, Math.Min(senz.naziv.Length, 30)) + "\t" + senz.ID.ToString() + " " + senz.ispravnost + "\t\t" + senz.vrijednost.ToString() + "\t" + senz.min_vrijednost.ToString() + "/" + senz.max_vrijednost.ToString() + "\t      " + senz.manjkav.ToString());
                                    }
                                    //iu.print2(senz.naziv + " (ID " + senz.ID.ToString() + ", Vrijednost : " + senz.vrijednost.ToString() + ") u mjesto " + mjesta[i.dohvatiVrijednost()].naziv + "]");
                                    mjesta[i.dohvatiVrijednost()].la.Add(senz);
                                }
                            }
                        }
                    }
                    brojac++;
                    iu.print2("");
                    iu.print2("[" + brojac.ToString() + @"\" + bcd1.ToString() + "]");
                    if (brojac >= bcd1)
                    {
                        break;
                    }
                }
            }
            iu.print("Provjera gotova.");
            iu.postaviNaKomandu();
        }
Example #18
0
        public void split(string woah)
        {
            IspisUpisSG    iu = IspisUpisSG.getInstance();
            ListaSvegaSG   db = ListaSvegaSG.getInstance();
            GenBrojevaSG   gb = GenBrojevaSG.getInstance();
            ConcUredjajiFM cu = new ConcUredjajiFM();

            try
            {
                foreach (string p in woah.Split(' '))
                {
                    lokalna.Add(p);
                }
            }
            catch (Exception n)
            {
                iu.print(" Došlo je do pogreške parsiranja argumenata. Obustava rada.");
            }

            bool help = false;

            if (lokalna.FindIndex(a => a.Equals("--help")) != -1)
            {
                iu.print("\n***--Help activated!***");
                help = true;
            }

            if (help)
            {
                iu.print("\nUnesite argumente  : \nlokaciju exe datoteke* \n-g broj_sjemena \n-m ime_datoteke_mjesta* \n-s ime_dat_senzora* \n-a ime_dat_aktuatora* \n-r ime_dat_rasporeda \n-tcd sekunde_trajanja_ciklusa_dretve \n-br broj_redaka_na_ekranu\n-bs broj_stupaca\n-brk broj_redaka_komandi\n-pi prosječni % ispravnosti");
            }
            else
            {
                int index = lokalna.FindIndex(a => a.Equals("-br"));
                if (index == -1)
                {
                    iu.print("");
                    iu.print("Fali broj linija redaka (24-40). Vrijednost će biti 24.");
                    br = 24;
                }
                else
                {
                    try
                    {
                        br = Int32.Parse(lokalna[index + 1]);
                        if (br < 24 || br > 40)
                        {
                            iu.print("Br redaka nije u dobrom rasponu. bit će 24.");
                            br = 24;
                        }
                    }

                    catch (Exception)
                    {
                        iu.print("Broj redaka nije u odgovarajućem formatu(int). Bit će 24.");
                        br = 24;
                    }
                }

                index = lokalna.FindIndex(a => a.Equals("-bs"));
                if (index == -1)
                {
                    iu.print("Fali broj linija stupaca (80-160). Vrijednost će biti 80.");
                    bs = 80;
                }
                else
                {
                    try
                    {
                        bs = Int32.Parse(lokalna[index + 1]);
                        if (bs > 160 || bs < 80)
                        {
                            iu.print("Broj linija stupaca nije u odgovarajućem rasponu. Bit će 80.");
                            bs = 80;
                        }
                    }
                    catch (Exception)
                    {
                        iu.print("Bs nije predan u adekvatnom formatu (int).Bit će 80.");
                        bs = 80;
                    }
                }

                index = lokalna.FindIndex(a => a.Equals("-brk"));
                if (index == -1)
                {
                    iu.print("Fali broj linija redaka komandi (2-5). Vrijednost će biti 2.");
                    brk = 2;
                }
                else
                {
                    try
                    {
                        brk = Int32.Parse(lokalna[index + 1]);
                        if (brk > 5 || brk < 2)
                        {
                            iu.print("Broj redova komandi nije u rasponu. Bit će 2.");
                            brk = 2;
                        }
                    }
                    catch (Exception)
                    {
                        iu.print("Brk nije predan u adekvatnom formatu (int). Bit će 2.");
                        brk = 2;
                    }
                }

                index = lokalna.FindIndex(a => a.Equals("-g"));
                if (index != -1)
                {
                    try
                    {
                        if (Int32.Parse(lokalna[index + 1]) > 65535 || Int32.Parse(lokalna[index + 1]) < 1)
                        {
                            iu.print("Sjeme nije u dobrom rangu. Bit će generirano.");
                            gb.generirajSjeme();
                            gg = gb.vratiSjeme();
                        }
                        else
                        {
                            gb.dodajSjeme(Int32.Parse(lokalna[index + 1]));

                            gg = Int32.Parse(lokalna[index + 1]);
                        }
                    }
                    catch (Exception)
                    {
                        iu.print("\nSjeme nije adekvatnog formata (int).");
                        gb.generirajSjeme();
                        gg = gb.vratiSjeme();
                    }
                }
                else
                {
                    iu.print("Sjeme nije uneseno. Bit će generirano.");
                    gb.generirajSjeme();
                    gg = gb.vratiSjeme();
                }



                index = lokalna.FindIndex(a => a.Equals("-pi"));
                if (index == -1)
                {
                    iu.print("Fali broj prosječne ispravnosti. Broj će biti slučajno generiran.");
                    ppi = gb.dajSlucajniBroj(0, 100);
                    db.preuzmiIspravnost(ppi);
                }
                else if (lokalna[index + 1].ToString() != "")
                {
                    try
                    {
                        if (Int32.Parse(lokalna[index + 1]) > 100 || (Int32.Parse(lokalna[index + 1]) < 0))
                        {
                            iu.print("PI% nije u rangu (0-100). Bit će generiran.");
                            ppi = gb.dajSlucajniBroj(0, 100);
                            db.preuzmiIspravnost(ppi);
                        }
                        else
                        {
                            ppi = Int32.Parse(lokalna[index + 1]);
                            db.preuzmiIspravnost(Int32.Parse(lokalna[index + 1]));
                        }
                    }
                    catch (Exception)
                    {
                        iu.print("Prosječna ispravnost nije u dobrom formatu. Bit će generirana.");
                        db.preuzmiIspravnost(gb.dajSlucajniBroj(0, 100));
                    }
                }
                index = lokalna.FindIndex(a => a.Equals("-tcd"));
                if (index == -1)
                {
                    iu.print("Fali trajanje ciklusa dretve. Bit će generiran.");
                    tcd = gb.dajSlucajniBroj(1, 17);
                }
                else
                {
                    if (lokalna[index + 1] != "")
                    {
                        try
                        {
                            tcd = Int32.Parse(lokalna[index + 1]);
                        }
                        catch (Exception)
                        {
                            iu.print("TCD nije dobrog formata.");
                            tcd = gb.dajSlucajniBroj(1, 17);
                        }
                    }
                    else
                    {
                        iu.print("TCD nije dobrog formata.");
                        tcd = gb.dajSlucajniBroj(1, 17);
                    }
                }


                iu.preuzmiBrojeve();
                iu.preuzmiGPI(gg, ppi, tcd);
                iu.Podjela();



                index = lokalna.FindIndex(a => a.Equals("-m"));
                if (index == -1)
                {
                    iu.print("\nNazivu datoteke mjesta fali prekidač -m! Mjesta neće biti učitana.");
                }
                else
                {
                    if (lokalna[index + 1].ToString() != "")
                    {
                        cu.stvoriObjekt(lokalna[index + 1], "m");
                    }
                }

                index = lokalna.FindIndex(a => a.Equals("-s"));
                if (index == -1)
                {
                    iu.print("Nazivu datoteke senzora fali prekidač -s! Senzori neće biti učitani.");
                }
                else if (lokalna[index + 1].ToString() != "")
                {
                    cu.stvoriObjekt(lokalna[index + 1], "s");
                }


                index = lokalna.FindIndex(a => a.Equals("-a"));
                if (index == -1)
                {
                    iu.print("Nazivu datoteke aktuatora fali prekidač -a!  Aktuatori neće biti učitani.");
                }
                else if (lokalna[index + 1].ToString() != "")
                {
                    cu.stvoriObjekt(lokalna[index + 1], "a");
                }

                index = lokalna.FindIndex(a => a.Equals("-r"));
                if (index == -1)
                {
                    iu.print("Nazivu datoteke rasporeda fali prekidač -r!  Raspored neće biti učitan.");
                }
                else if (lokalna[index + 1].ToString() != "")
                {
                    C_Connector cc = C_Connector.getInstance();
                    cc.preuzmiIme(lokalna[index + 1]);
                }
            }
        }