package desmoj.extensions.crossbar;
import java.util.concurrent.TimeUnit;
import desmoj.core.dist.ContDistNormal;
import desmoj.core.dist.DiscreteDistUniform;
import desmoj.core.simulator.Experiment;
import desmoj.core.simulator.Model;
import desmoj.core.simulator.TimeInstant;
public class MessageCrossbarExample extends Model {
public static void main(java.lang.String[] args) {
MessageCrossbarExample model = new MessageCrossbarExample(null, "MessageCrossbarExample", true, true);
Experiment exp = new Experiment("MessageCrossbarExampleExperiment", TimeUnit.SECONDS, TimeUnit.MINUTES, null);
model.connectToExperiment(exp);
exp.setShowProgressBar(false);
exp.stop(new TimeInstant(1440, TimeUnit.MINUTES));
exp.tracePeriod(new TimeInstant(0), new TimeInstant(100, TimeUnit.MINUTES));
exp.debugPeriod(new TimeInstant(0), new TimeInstant(50, TimeUnit.MINUTES));
exp.start();
exp.report();
exp.finish();
}
// Richtung Tierpark & Schlump alle 10 min ab xx:09
MessageChannel<Student> linie181;
// Richtung Tierpark & Siemersplatz alle 10 min ab xx:05
MessageChannel<Student> linie281;
MessageCrossbar<Student> bushaltestelleInformatikum;
ContDistNormal uniSchlussVerteilung;
DiscreteDistUniform fahrtzielVerteilung;
public MessageCrossbarExample(Model owner, String modelName, boolean showInReport, boolean showInTrace) {
super(owner, modelName, showInReport, showInTrace);
}
@Override
public String description() {
return "";
}
@Override
public void doInitialSchedules() {
new BusZyklus(this, true, linie181, 9, 10).activate();
new BusZyklus(this, true, linie281, 5, 10).activate();
new UniEnde(this, "UniEnde", true).activate();
}
@Override
public void init() {
bushaltestelleInformatikum = new MessageCrossbar<Student>(this, "Haltestelle Informatikum", true, true);
linie181 = (bushaltestelleInformatikum.createMessageChannel("Linie 181"));
linie281 = (bushaltestelleInformatikum.createMessageChannel("Linie 281"));
uniSchlussVerteilung = new ContDistNormal(this, "UniSchlussVerteilung", 5, 2, true, true);
uniSchlussVerteilung.setNonNegative(true);
fahrtzielVerteilung = new DiscreteDistUniform(getModel(), "FahrtzielVerteilung", 0, 5, true, true);
}
}