public void dodijeliID() { ID = r.dajSlucajniBroj(1, 1000); /*if (!lss.postojiID(ID)) lss.dodajID(ID); * else dodijeliID(); */ }
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); } }
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]); } } }
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(); }