//meta! sender="AgentZasrtavok", id="38", type="Start" public void ProcessStart(MessageForm message) { var ms = (MyMessage)message; var vozidlo = ms.Vozidlo; var zastavka = vozidlo.Linka.Presuny[ms.Vozidlo.AktualnyPresun].ZastavkaStart; if (vozidlo.Typ == "A") { int a = 0; if (ms.Vozidlo.PocetDvery - vozidlo.PocetObsadenychDvery <= zastavka.PocetCestujucich) { a = ms.Vozidlo.PocetDvery - vozidlo.PocetObsadenychDvery; } else { a = zastavka.PocetCestujucich; } for (int i = 0; i < a; i++) { if (!ms.Vozidlo.JePlny()) { ms = (MyMessage)message.CreateCopy(); ms.Code = Mc.NastupojeNiekto; vozidlo.PocetObsadenychDvery++; var ces = zastavka.Dequeue(); vozidlo.Nastup(ces); Prerataj(vozidlo, ces); Hold(TriangularRng.Sample(), ms); // Hold(3.1, ms); } } if (vozidlo.PocetObsadenychDvery == 0) { ms.Addressee = MyAgent; ms.Code = Mc.KoniecNastupu; Notice(ms); } } else { if (zastavka.PocetCestujucich != 0 && zastavka.Peek().DobaCakania(MySim.CurrentTime) > 360 && !vozidlo.JePlny()) { ms = (MyMessage)message.CreateCopy(); ms.Code = Mc.NastupojeNiekto; vozidlo.PocetObsadenychDvery++; var ces = zastavka.Dequeue(); vozidlo.Nastup(ces); Prerataj(vozidlo, ces); Hold(UniformContinuousRNG.Sample(), ms); //Hold(3.1, ms); } else { ms.Addressee = MyAgent; ms.Code = Mc.KoniecNastupu; Notice(ms); } } }
private void ProcesGen(MessageForm message) { var ms = (MyMessage)message.CreateCopy(); ms.Code = Mc.GenerujCestujuceho; ms.Addressee = MyAgent; ms.Generator.Kolko--; ms.Cestujuci = new Cestujuci() { Zastavka = ms.Generator.Nazov }; Notice(ms); var cas = ms.Generator.ExponentialRng.Sample(); //cas = 300; // if ((ms.Generator.MaxCasGen) *60 >= MySim.CurrentTime + cas) if ((ms.Generator.MaxCasGen) * 60.0 >= MySim.CurrentTime + cas && ms.Generator.Kolko > 0) { ms = (MyMessage)message.CreateCopy(); ms.Code = Mc.GenerujCestujuceho; Hold(cas, ms); } else { ms.Generator.GenerujeSa = false; ((MySimulation)MySim).GenerujeSa = _generatory.Any(x => x.GenerujeSa); } }
//meta! sender="AgentVozidiel", id="30", type="Request" public void ProcessNastupenie(MessageForm message) { MyMessage ms = (MyMessage)message.CreateCopy(); var vozidlo = ms.Vozidlo; var zastavka = vozidlo.Linka.Presuny[vozidlo.AktualnyPresun].ZastavkaStart; //Console.WriteLine("Prisiel na zastavku " + zastavka.Nazov + " "+ MySim.CurrentTime); if (zastavka.Nazov != "ST") { if (zastavka.PocetCestujucich == 0) { OdchodAutobusu(ms); return; } ms.Addressee = MyAgent.FindAssistant(SimId.ProcesNastupenie); StartContinualAssistant(ms); } else { //tuto ms.Addressee = MyAgent.FindAssistant(SimId.ProcesVystupenie); StartContinualAssistant(ms); } }
private void ProcessVystupujeNiekto(MessageForm message) { MyMessage ms = (MyMessage)message; var vozidlo = ms.Vozidlo; if (vozidlo.Typ == "A") { // var zastavka = vozidlo.Linka.Presuny[ms.Vozidlo.AktualnyPresun].ZastavkaStart; if (!vozidlo.JePrazdny()) { if (vozidlo.Obsadene != 0) { ms.Code = Mc.VystupujeNiekto; var ces = vozidlo.Vystup(); if (MySim.CurrentTime > 6786) { Prerataj(vozidlo, ces); } //Hold(3.1, ms); Hold(TriangularRng.Sample(), ms); return; } vozidlo.PocetObsadenychDvery--; } else { vozidlo.PocetObsadenychDvery--; } if (vozidlo.PocetObsadenychDvery == 0) { ms.Addressee = MyAgent; ms.Code = Mc.KoniecVystupu; Notice(ms); } } else { if (!vozidlo.JePrazdny()) { ms = (MyMessage)message.CreateCopy(); ms.Code = Mc.VystupujeNiekto; var ces = vozidlo.Vystup(); if (MySim.CurrentTime > 6786) { Prerataj(vozidlo, ces); } //Hold(3.1, ms); Hold(4, ms); } else { ms.Addressee = MyAgent; ms.Code = Mc.KoniecVystupu; Notice(ms); } } }
//meta! userInfo="Process messages defined in code", id="0" public void ProcessDefault(MessageForm message) { var ms = (MyMessage)message.CreateCopy(); ms.Code = Mc.KoniecPresunu; ms.Addressee = MyAgent; Notice(ms); }
//meta! sender="AgentVozidiel", id="10", type="Request" public void ProcessPresun(MessageForm message) { //mam zacati presun jedneho auta MyMessage ms = (MyMessage)message.CreateCopy(); ms.Addressee = MyAgent.FindAssistant(SimId.ProcesPresun); StartContinualAssistant(ms); }
private void ProcesKoniecPresunu(MessageForm message) { var ms = (MyMessage)message.CreateCopy(); ms.Code = Mc.Presun; ms.Addressee = MySim.FindAgent(SimId.AgentVozidiel); Response(ms); }
//meta! sender="AgentModelu", id="40", type="Notice" public void ProcessPrichodCestuVozidlo(MessageForm message) { var ms = (MyMessage)message.CreateCopy(); ms.Addressee = MySim.FindAgent(SimId.AgentZasrtavok); ms.Code = Mc.PrichodCestuZastavka; Notice(ms); }
private void OdchodAutobusu(MessageForm message) { var ms = (MyMessage)message.CreateCopy(); ms.Addressee = MySim.FindAgent(SimId.AgentVozidiel); ms.Code = Mc.Nastupenie; // ms.Vozidlo.Linka.Presuny[((MyMessage)message).Vozidlo.AktualnyPresun].ZastavkaStart.CakajuceVozidlo = null; Notice(ms); }
//meta! sender="AgentPresunu", id="20", type="Start" public void ProcessStart(MessageForm message) { var ms = (MyMessage)message.CreateCopy(); ms.Addressee = this; ms.Code = Mc.GeneujStat; ((MySimulation)MySim).SymCas = MySim.CurrentTime; Hold(1, ms); }
private void ProcessNastupijeNiekto(MessageForm message) { MyMessage ms = (MyMessage)message; var vozidlo = ms.Vozidlo; var zastavka = vozidlo.Linka.Presuny[ms.Vozidlo.AktualnyPresun].ZastavkaStart; // Console.WriteLine(zastavka.Nazov + " Nastupi" + MySim.CurrentTime); if (vozidlo.Typ == "A") { if (!vozidlo.JePlny()) { if (zastavka.PocetCestujucich != 0) { ms.Code = Mc.NastupojeNiekto; var ces = zastavka.Dequeue(); vozidlo.Nastup(ces); Prerataj(vozidlo, ces); Hold(TriangularRng.Sample(), ms); //Hold(3.1, ms); return; } vozidlo.PocetObsadenychDvery--; } else { vozidlo.PocetObsadenychDvery--; } if (vozidlo.PocetObsadenychDvery == 0) { ms.Addressee = MyAgent; ms.Code = Mc.KoniecNastupu; Notice(ms); } } else { if (zastavka.PocetCestujucich != 0 && zastavka.Peek().DobaCakania(MySim.CurrentTime) > 360 && !vozidlo.JePlny()) { ms = (MyMessage)message.CreateCopy(); ms.Code = Mc.NastupojeNiekto; vozidlo.PocetObsadenychDvery++; var ces = zastavka.Dequeue(); vozidlo.Nastup(ces); Prerataj(vozidlo, ces); Hold(UniformContinuousRNG.Sample(), ms); //Hold(3.1, ms); } else { ms.Addressee = MyAgent; ms.Code = Mc.KoniecNastupu; Notice(ms); } } }
//meta! sender="AgentOkolia", id="8", type="Notice" public void ProcessNovyCestujuci(MessageForm message) { Cislo++; ((MySimulation)MySim).PocetVRepl++; var ms = (MyMessage)message.CreateCopy(); ms.Addressee = MySim.FindAgent(SimId.AgentVozidiel); ms.Code = Mc.PrichodCestuVozidlo; Notice(ms); }
private void ProcessNovyCest(MessageForm message) { var ms = (MyMessage)message.CreateCopy(); ms.Addressee = MySim.FindAgent(SimId.AgentModelu); ms.Code = Mc.NovyCestujuci; Notice(ms); //ms = (MyMessage)message.CreateCopy(); //ms.Addressee =MyAgent.FindAssistant(SimId.PlanovacPrichodov); }
//meta! sender="AgentPresunu", id="10", type="Response" public void ProcessPresun(MessageForm message) { MyMessage ms = (MyMessage)message.CreateCopy(); ms.Addressee = MySim.FindAgent(SimId.AgentZasrtavok); var vozidlo = ms.Vozidlo; var zastavka = vozidlo.Linka.Presuny[ms.Vozidlo.AktualnyPresun].ZastavkaStart; vozidlo.Cesta = zastavka.Nazov; ms.Code = Mc.Nastupenie; Notice(ms); }
//meta! userInfo="Process messages defined in code", id="0" public void ProcessDefault(MessageForm message) { var ms = (MyMessage)message.CreateCopy(); ms.Code = Mc.GeneujStat; ms.Addressee = this; ((MySimulation)MySim).SymCas = MySim.CurrentTime; Thread.SpinWait(((MySimulation)MySim).Spomalenie); PreratajStat(); if (((MySimulation)MySim).GenerujeSa || ((MySimulation)MySim).PocetAut != 0) { Hold(1, ms); } }
//meta! sender="AgentPresunu", id="20", type="Start" public void ProcessStart(MessageForm message) { var ms = (MyMessage)message.CreateCopy(); ms.Code = Mc.KoniecPresunu; var vozidlo = ms.Vozidlo; var linka = vozidlo.Linka; var prestup = linka.Presuny[vozidlo.AktualnyPresun]; vozidlo.Cesta = prestup.ZastavkaStart.Nazov + " - " + prestup.ZastavkaKoniec.Nazov; vozidlo.Strat = MySim.CurrentTime; vozidlo.Koniec = MySim.CurrentTime + prestup.CasPresunu; Hold(prestup.CasPresunu, ms); vozidlo.AktualnyPresun++; vozidlo.AktualnyPresun = vozidlo.AktualnyPresun % linka.Presuny.Count; }
//meta! sender="AgentOkolia", id="14", type="Start" public void ProcessStart(MessageForm message) { foreach (var gen in _generatory) { var ms = (MyMessage)message.CreateCopy(); ms.Generator = gen; ms.Code = Mc.GenerujCestujuceho; Hold(gen.Oneskorenie * 60 + gen.ExponentialRng.Sample(), ms); //Hold(gen.Oneskorenie * 60 + 300, ms); } //var gen = _generatory.Where(x => x.Nazov == "AB").FirstOrDefault(); // var ms = (MyMessage)message.CreateCopy(); // ms.Generator = gen; // ms.Code = Mc.GenerujCestujuceho; // Hold(0 * 60 + gen.ExponentialRng.Sample(), ms); // gen = _generatory.Where(x => x.Nazov == "AC").FirstOrDefault(); // ms = (MyMessage)message.CreateCopy(); // ms.Generator = gen; // ms.Code = Mc.GenerujCestujuceho; // Hold(0 * 60 + gen.ExponentialRng.Sample(), ms); }
//meta! sender="AgentZasrtavok", id="38", type="Start" public void ProcessStart(MessageForm message) { var ms = (MyMessage)message; var vozidlo = ms.Vozidlo; // var zastavka = vozidlo.Linka.Presuny[ms.Vozidlo.AktualnyPresun].ZastavkaStart; if (vozidlo.Typ == "A") { int a = 0; if (ms.Vozidlo.PocetDvery <= vozidlo.Obsadene) { a = ms.Vozidlo.PocetDvery; } else { a = vozidlo.Obsadene; } for (int i = 0; i < a; i++) { if (!ms.Vozidlo.JePrazdny()) { ms = (MyMessage)message.CreateCopy(); ms.Code = Mc.VystupujeNiekto; vozidlo.PocetObsadenychDvery++; var ces = vozidlo.Vystup(); if (MySim.CurrentTime > 6786) { Prerataj(vozidlo, ces); } Hold(TriangularRng.Sample(), ms); //Hold(3.1, ms); } } if (vozidlo.PocetObsadenychDvery == 0) { ms.Addressee = MyAgent; ms.Code = Mc.KoniecVystupu; Notice(ms); } } else { if (!vozidlo.JePrazdny()) { ms = (MyMessage)message.CreateCopy(); ms.Code = Mc.VystupujeNiekto; var ces = vozidlo.Vystup(); if (MySim.CurrentTime > 6786) { Prerataj(vozidlo, ces); } Hold(4, ms); //Hold(3.1, ms); } else { ms.Addressee = MyAgent; ms.Code = Mc.KoniecVystupu; Notice(ms); } } }