veh.setDriver(driversWaitingForCar.remove()); if (driversWaitingForCar.isEmpty()) { final Queue<MobsimDriverAgent> r = driversWaitingForCars.remove(veh.getId());
private void letVehicleArrive(QVehicle veh) { double now = this.qsim.getSimTimer().getTimeOfDay(); MobsimDriverAgent driver = veh.getDriver(); this.qsim.getEventsManager().processEvent(new PersonLeavesVehicleEvent(now, driver.getId(), veh.getId())); // reset vehicles driver veh.setDriver(null); driver.endLegAndComputeNextState(now); this.internalInterface.arrangeNextAgentState(driver); }
@Override public void insertAgentsIntoMobsim() { VehiclesFactory vehicleFactory = VehicleUtils.getFactory(); for (Vehicle vrpVeh : fleet.getVehicles().values()) { Id<Vehicle> id = vrpVeh.getId(); Id<Link> startLinkId = vrpVeh.getStartLink().getId(); VrpAgentLogic vrpAgentLogic = new VrpAgentLogic(optimizer, nextActionCreator, vrpVeh); DynAgent vrpAgent = new DynAgent(Id.createPersonId(id), startLinkId, qSim.getEventsManager(), vrpAgentLogic); QVehicle mobsimVehicle = new QVehicleImpl( vehicleFactory.createVehicle(Id.create(id, org.matsim.vehicles.Vehicle.class), vehicleType)); vrpAgent.setVehicle(mobsimVehicle); mobsimVehicle.setDriver(vrpAgent); qSim.addParkedVehicle(mobsimVehicle, startLinkId); qSim.insertAgentIntoMobsim(vrpAgent); } } }
@Test public void testAdd() { Fixture f = new Fixture(isUsingFastCapacityUpdate); assertEquals(0, ((QueueWithBuffer) f.qlink1.getAcceptingQLane()).getAllVehicles().size()); QVehicle v = new QVehicleImpl(f.basicVehicle); Person p = PopulationUtils.getFactory().createPerson(Id.create("1", Person.class)); p.addPlan(PopulationUtils.createPlan()); v.setDriver(createAndInsertPersonDriverAgentImpl(p, f.sim)); f.qlink1.getAcceptingQLane().addFromUpstream(v); assertEquals(1, ((QueueWithBuffer) f.qlink1.getAcceptingQLane()).getAllVehicles().size()); assertFalse(f.qlink1.getAcceptingQLane().isAcceptingFromUpstream()); assertTrue(f.qlink1.isNotOfferingVehicle()); }
/** * Tests that vehicles parked on a link are found with {@link NetsimLink#getVehicle(Id)} * and {@link NetsimLink#getAllVehicles()}. * * @author mrieser */ @Test public void testGetVehicle_Parking() { Fixture f = new Fixture(isUsingFastCapacityUpdate); Id<Vehicle> id1 = Id.create("1", Vehicle.class); QVehicle veh = new QVehicleImpl(f.basicVehicle); Person p = PopulationUtils.getFactory().createPerson(Id.create(42, Person.class)); p.addPlan(PopulationUtils.createPlan()); veh.setDriver(createAndInsertPersonDriverAgentImpl(p, f.sim)); // start test, check initial conditions assertTrue(f.qlink1.isNotOfferingVehicle()); assertEquals(0, ((QueueWithBuffer) f.qlink1.getAcceptingQLane()).getAllVehicles().size()); assertEquals(0, f.qlink1.getAllVehicles().size()); f.qlink1.addParkedVehicle(veh); assertTrue(f.qlink1.isNotOfferingVehicle()); assertEquals(0, ((QueueWithBuffer) f.qlink1.getAcceptingQLane()).getAllVehicles().size()); // vehicle not on _lane_ assertEquals("vehicle not found in parking list.", veh, f.qlink1.getVehicle(id1)); assertEquals(1, f.qlink1.getAllVehicles().size()); // vehicle indeed on _link_ assertEquals(veh, f.qlink1.getAllVehicles().iterator().next()); assertEquals("removed wrong vehicle.", veh, f.qlink1.removeParkedVehicle(veh.getId())); assertTrue(f.qlink1.isNotOfferingVehicle()); assertEquals(0, ((QueueWithBuffer) f.qlink1.getAcceptingQLane()).getAllVehicles().size()); assertNull("vehicle not found in parking list.", f.qlink1.getVehicle(id1)); assertEquals(0, f.qlink1.getAllVehicles().size()); }
plan.addActivity(PopulationUtils.createActivityFromLinkId("work", f.link2.getId())); PersonDriverAgentImpl driver = createAndInsertPersonDriverAgentImpl(pers, f.sim); veh.setDriver(driver); driver.setVehicle(veh);
plan.addActivity(PopulationUtils.createActivityFromLinkId("work", f.link2.getId())); PersonDriverAgentImpl driver = createAndInsertPersonDriverAgentImpl(p, f.sim); veh.setDriver(driver);
Person p = createPerson(Id.createPersonId(1), scenario, link1, link2); PersonDriverAgentImpl pa1 = createAndInsertPersonDriverAgentImpl(p, qsim); v1.setDriver(pa1); pa1.setVehicle(v1); pa1.endActivityAndComputeNextState(0); Person p2 = createPerson( Id.createPersonId(2),scenario,link1, link2) ; PersonDriverAgentImpl pa2 = createAndInsertPersonDriverAgentImpl(p2, qsim); v2.setDriver(pa2); pa2.setVehicle(v2);
Person p1 = createPerson2(Id.createPersonId(5), f); PersonDriverAgentImpl driver1 = createAndInsertPersonDriverAgentImpl(p1, f.sim); veh1.setDriver(driver1); driver1.setVehicle(veh1); driver1.endActivityAndComputeNextState( now ); Person p2 = createPerson2(Id.createPersonId(6), f); PersonDriverAgentImpl driver25 = createAndInsertPersonDriverAgentImpl(p2, f.sim); veh25.setDriver(driver25); driver25.setVehicle(veh25); driver25.endActivityAndComputeNextState( now ); Person p3 = createPerson2(Id.createPersonId(7), f); PersonDriverAgentImpl driver5 = createAndInsertPersonDriverAgentImpl(p3, f.sim); veh5.setDriver(driver5); driver5.setVehicle(veh5); driver5.endActivityAndComputeNextState( now );