this.events.processEvent(new VehicleLeavesTrafficEvent(time, personId, linkId, vehicleIdOfDriver, mode, 1.0)); this.events.processEvent(new PersonLeavesVehicleEvent(time, personId, vehicleIdOfDriver));
)); } else if (VehicleLeavesTrafficEvent.EVENT_TYPE.equals(eventType)) { this.events.processEvent(new VehicleLeavesTrafficEvent(time, Id.create(atts.getValue(VehicleLeavesTrafficEvent.ATTRIBUTE_DRIVER), Person.class), Id.create(atts.getValue(VehicleLeavesTrafficEvent.ATTRIBUTE_LINK), Link.class),
eventQueue.add(new VehicleLeavesTrafficEvent(prevEndTime + travelTime,personId, prevLeg.getRoute().getEndLinkId(),personId, TransportMode.car,1.0)); eventQueue.add(new PersonLeavesVehicleEvent(prevEndTime + travelTime, personId, personId)); } catch (NullPointerException ne) {
/* package */ final void letVehicleArrive(QVehicle qveh) { addParkedVehicle(qveh); double now = context.getSimTimer().getTimeOfDay();; context.getEventsManager().processEvent(new VehicleLeavesTrafficEvent(now , qveh.getDriver().getId(), this.link.getId(), qveh.getId(), qveh.getDriver().getMode(), 1.0 ) ) ; this.netsimEngine.letVehicleArrive(qveh); makeVehicleAvailableToNextDriver(qveh); }
new VehicleLeavesTrafficEvent(now, driver.getId(), link.getId(), Id.create(driver.getId(), Vehicle.class), driver.getMode(), 1.0));
public void testWriteReadXml() { final VehicleLeavesTrafficEvent event1 = new VehicleLeavesTrafficEvent(8463.7301, Id.create("483", Person.class), Id.create("783", Link.class), Id.create("veh7", Vehicle.class), TransportMode.car,1.0); final VehicleLeavesTrafficEvent event2 = XmlEventsTester.testWriteReadXml(getOutputDirectory() + "events.xml", event1); assertEquals(event1.getTime(), event2.getTime(), EPSILON); assertEquals(event1.getPersonId().toString(), event2.getPersonId().toString()); assertEquals(event1.getLinkId().toString(), event2.getLinkId().toString()); assertEquals(event1.getVehicleId(), event2.getVehicleId()); assertEquals(event1.getNetworkMode(), event2.getNetworkMode()); } }
@Override public void processEvent() { Event event = null; // schedule enter link event // only, if car leg and is not empty if (vehicle.getCurrentLeg().getMode().equals(TransportMode.car) && (vehicle.getCurrentLinkRoute()!=null && vehicle.getCurrentLinkRoute().length!=0)){ event = new LinkEnterEvent(this.getMessageArrivalTime(), Id.create(vehicle.getOwnerPerson().getId().toString(), org.matsim.vehicles.Vehicle.class), vehicle.getCurrentLinkId()); eventsManager.processEvent(event); } // schedule VehicleLeavesTrafficEvent Id<org.matsim.vehicles.Vehicle> vehicleId = Id.create( this.vehicle.getOwnerPerson().getId() , org.matsim.vehicles.Vehicle.class ) ; event = new VehicleLeavesTrafficEvent(this.getMessageArrivalTime(), this.vehicle.getOwnerPerson().getId(), this.vehicle.getCurrentLinkId(), vehicleId, this.vehicle.getCurrentLeg().getMode(), 1.0 ); eventsManager.processEvent(event); // schedule AgentArrivalEvent event = new PersonArrivalEvent(this.getMessageArrivalTime(), this.vehicle.getOwnerPerson().getId(), this.vehicle.getCurrentLinkId(), this.vehicle.getCurrentLeg().getMode()); eventsManager.processEvent(event); // schedule ActStartEvent Activity nextAct = this.vehicle.getNextActivity(); double actStartEventTime = nextAct.getStartTime(); if (this.getMessageArrivalTime() > actStartEventTime) { actStartEventTime = this.getMessageArrivalTime(); } event = new ActivityStartEvent(actStartEventTime, this.vehicle.getOwnerPerson().getId(), this.vehicle.getCurrentLinkId(), nextAct.getFacilityId(), nextAct.getType()); eventsManager.processEvent(event); }
@Test public void testOneTravelTimeCalculatorPerMode() { Config config = ConfigUtils.createConfig(); config.travelTimeCalculator().setAnalyzedModes("car,bike"); config.travelTimeCalculator().setSeparateModes(true); Scenario scenario = ScenarioUtils.createScenario(config); Node node0 = scenario.getNetwork().getFactory().createNode(Id.createNodeId(0), new Coord(0, 0)); Node node1 = scenario.getNetwork().getFactory().createNode(Id.createNodeId(1), new Coord(1, 0)); scenario.getNetwork().addNode(node0); scenario.getNetwork().addNode(node1); Id<Link> linkId = Id.createLinkId(0); Link link = scenario.getNetwork().getFactory().createLink(linkId, node0, node1); scenario.getNetwork().addLink(link); com.google.inject.Injector injector = Injector.createInjector(config, new TravelTimeCalculatorModule(), new EventsManagerModule(), new ScenarioByInstanceModule(scenario)); TravelTimeCalculator car = injector.getInstance(Key.get(TravelTimeCalculator.class, Names.named("car"))); TravelTimeCalculator bike = injector.getInstance(Key.get(TravelTimeCalculator.class, Names.named("bike"))); EventsManager events = injector.getInstance(EventsManager.class); events.processEvent(new VehicleEntersTrafficEvent(0.0, Id.createPersonId(0), linkId, Id.createVehicleId(0), "car", 0.0)); events.processEvent(new LinkEnterEvent(0.0, Id.createVehicleId(0), linkId)); events.processEvent(new LinkLeaveEvent(2.0, Id.createVehicleId(0), linkId)); events.processEvent(new VehicleLeavesTrafficEvent(2.0, Id.createPersonId(0), linkId, Id.createVehicleId(0), "car", 0.0)); events.processEvent(new VehicleEntersTrafficEvent(0.0, Id.createPersonId(1), linkId, Id.createVehicleId(1), "bike", 0.0)); events.processEvent(new LinkEnterEvent(0.0, Id.createVehicleId(1), linkId)); events.processEvent(new LinkLeaveEvent(8.0, Id.createVehicleId(1), linkId)); events.processEvent(new VehicleLeavesTrafficEvent(8.0, Id.createPersonId(1), linkId, Id.createVehicleId(1), "bike", 0.0)); assertThat(car.getLinkTravelTime(link, 0.0), is(2.0)); assertThat(bike.getLinkTravelTime(link, 0.0), is(8.0)); }
@Test public void testOneTravelTimeCalculatorForAll() { Config config = ConfigUtils.createConfig(); config.travelTimeCalculator().setAnalyzedModes("car,bike"); Scenario scenario = ScenarioUtils.createScenario(config); Node node0 = scenario.getNetwork().getFactory().createNode(Id.createNodeId(0), new Coord(0, 0)); Node node1 = scenario.getNetwork().getFactory().createNode(Id.createNodeId(1), new Coord(1, 0)); scenario.getNetwork().addNode(node0); scenario.getNetwork().addNode(node1); Id<Link> linkId = Id.createLinkId(0); Link link = scenario.getNetwork().getFactory().createLink(linkId, node0, node1); scenario.getNetwork().addLink(link); com.google.inject.Injector injector = Injector.createInjector(config, new TravelTimeCalculatorModule(), new EventsManagerModule(), new ScenarioByInstanceModule(scenario)); TravelTimeCalculator testee = injector.getInstance(TravelTimeCalculator.class); EventsManager events = injector.getInstance(EventsManager.class); events.processEvent(new VehicleEntersTrafficEvent(0.0, Id.createPersonId(0), linkId, Id.createVehicleId(0), "car", 0.0)); events.processEvent(new LinkEnterEvent(0.0, Id.createVehicleId(0), linkId)); events.processEvent(new LinkLeaveEvent(2.0, Id.createVehicleId(0), linkId)); events.processEvent(new VehicleLeavesTrafficEvent(2.0, Id.createPersonId(0), linkId, Id.createVehicleId(0), "car", 0.0)); events.processEvent(new VehicleEntersTrafficEvent(0.0, Id.createPersonId(1), linkId, Id.createVehicleId(1), "bike", 0.0)); events.processEvent(new LinkEnterEvent(0.0, Id.createVehicleId(1), linkId)); events.processEvent(new LinkLeaveEvent(8.0, Id.createVehicleId(1), linkId)); events.processEvent(new VehicleLeavesTrafficEvent(8.0, Id.createPersonId(1), linkId, Id.createVehicleId(1), "bike", 0.0)); assertThat(testee.getLinkTravelTime(link, 0.0), is(5.0)); }
@Test public void testCreatesLegWithRoute() { Scenario scenario = createTriangularNetwork(); EventsToLegs eventsToLegs = new EventsToLegs(scenario); RememberingLegHandler lh = new RememberingLegHandler(); eventsToLegs.addLegHandler(lh); Id<Person> agentId = Id.create("1", Person.class); Id<Vehicle> vehId = Id.create("veh1", Vehicle.class); eventsToLegs.handleEvent(new PersonDepartureEvent(10.0, agentId, Id.createLinkId("l1"), "car")); eventsToLegs.handleEvent(new PersonEntersVehicleEvent(10.0, agentId, vehId)); eventsToLegs.handleEvent(new VehicleEntersTrafficEvent(10.0, agentId, Id.createLinkId("l1"), vehId, "car", 1.0)); eventsToLegs.handleEvent(new LinkLeaveEvent(10.0, vehId, Id.createLinkId("l1"))); eventsToLegs.handleEvent(new LinkEnterEvent(11.0, vehId, Id.createLinkId("l2"))); eventsToLegs.handleEvent(new LinkLeaveEvent(15.0, vehId, Id.createLinkId("l2"))); eventsToLegs.handleEvent(new LinkEnterEvent(16.0, vehId, Id.createLinkId("l3"))); eventsToLegs.handleEvent(new VehicleLeavesTrafficEvent(30.0, agentId, Id.createLinkId("l3"), vehId, "car", 1.0)); eventsToLegs.handleEvent(new PersonArrivalEvent(30.0, agentId, Id.createLinkId("l3"), "car")); Assert.assertNotNull(lh.handledLeg); Assert.assertEquals(10.0,lh.handledLeg.getLeg().getDepartureTime(), 1e-9); Assert.assertEquals(20.0,lh.handledLeg.getLeg().getTravelTime(), 1e-9); Assert.assertEquals(20.0,lh.handledLeg.getLeg().getRoute().getTravelTime(), 1e-9); Assert.assertEquals(550.0,lh.handledLeg.getLeg().getRoute().getDistance(), 1e-9); }
return new VehicleLeavesTrafficEvent(pe.getVehicleLeavesTraffic().getTime(), Id.createPersonId(pe.getVehicleLeavesTraffic().getDriverId().getId()), Id.createLinkId(pe.getVehicleLeavesTraffic().getLinkId().getId()), Id.createVehicleId(pe.getVehicleLeavesTraffic().getVehId().getId()), pe.getVehicleLeavesTraffic().getNetworkMode(), pe.getVehicleLeavesTraffic().getRelPosOnLink());