private void createAndAddVehicleIfNotPresent(Id<Vehicle> vehicleId, VehicleType vehicleType) { // try to get vehicle from the vehicles container: Vehicle vehicle = scenario.getVehicles().getVehicles().get(vehicleId); if ( vehicle==null ) { // if it was not found, next step depends on config: switch ( qSimConfigGroup.getVehiclesSource() ) { case defaultVehicle: vehicle = VehicleUtils.getFactory().createVehicle(vehicleId, vehicleType); scenario.getVehicles().addVehicle(vehicle); break; case modeVehicleTypesFromVehiclesData: vehicle = VehicleUtils.getFactory().createVehicle(vehicleId, vehicleType); scenario.getVehicles().addVehicle(vehicle); break; case fromVehiclesData: // otherwise complain: throw new IllegalStateException("Expecting a vehicle id which is missing in the vehicles database: " + vehicleId); default: // also complain when someone added another config option here: throw new RuntimeException("not implemented") ; } } }
@Override public void insertAgentsIntoMobsim() { for (MobSimVehicleRoute vRoute : vehicleRoutes) { MobsimAgent agent = this.agentFactory.createMobsimAgentFromPerson(vRoute.getPlan().getPerson()); Vehicle vehicle = null; if(vRoute.getVehicle() == null){ vehicle = VehicleUtils.getFactory().createVehicle(Id.create(agent.getId(), Vehicle.class), VehicleUtils.getDefaultVehicleType()); log.warn("vehicle for agent "+vRoute.getPlan().getPerson().getId() + " is missing. set default vehicle where maxVelocity is solely defined by link.speed."); } else if(vRoute.getVehicle().getType() == null){ vehicle = VehicleUtils.getFactory().createVehicle(Id.create(agent.getId(), Vehicle.class), VehicleUtils.getDefaultVehicleType()); log.warn("vehicleType for agent "+vRoute.getPlan().getPerson().getId() + " is missing. set default vehicleType where maxVelocity is solely defined by link.speed."); } else vehicle = vRoute.getVehicle(); // qsim.createAndParkVehicleOnLink(vehicle, agent.getCurrentLinkId()); QVehicle qVehicle = new QVehicleImpl( vehicle ) ; qsim.addParkedVehicle( qVehicle, agent.getCurrentLinkId() ); // yyyyyy should rather use QVehicleFactory. kai, nov'18 qsim.insertAgentIntoMobsim(agent); mobSimAgents.add(agent); } }
MutableScenario(Config config) { this.config = config; this.network = NetworkUtils.createNetwork(this.config); this.population = PopulationUtils.createPopulation(this.config, this.network); this.facilities = new ActivityFacilitiesImpl(); this.households = new HouseholdsImpl(); this.lanes = LanesUtils.createLanesContainer(); this.vehicles = VehicleUtils.createVehiclesContainer(); this.transitVehicles = VehicleUtils.createVehiclesContainer(); this.transitSchedule = new TransitScheduleFactoryImpl().createTransitSchedule(); this.config.network().setLocked(); }
public PopulationAgentSourceWithVehicles( final Population population, final AgentFactory agentFactory, final QSim qsim) { this.population = population; this.agentFactory = agentFactory; this.qsim = qsim; this.modeVehicleTypes = new HashMap<String, VehicleType>(); this.mainModes = qsim.getScenario().getConfig().qsim().getMainModes(); for (String mode : mainModes) { modeVehicleTypes.put(mode, VehicleUtils.getDefaultVehicleType()); } }
@Override public void install() { bind(VehicleType.class).annotatedWith(Names.named(VrpAgentSourceQSimModule.DVRP_VEHICLE_TYPE)) .toInstance(VehicleUtils.getDefaultVehicleType()); install(new DvrpBenchmarkTravelTimeModule());// fixed travel times bind(Network.class).annotatedWith(Names.named(DvrpRoutingNetworkProvider.DVRP_ROUTING)) .toProvider(DvrpRoutingNetworkProvider.class) .asEagerSingleton(); installQSimModule(new DynActivityEngineModule()); installQSimModule(new AbstractQSimModule() { @Override protected void configureQSim() { bind(MobsimTimer.class).toProvider(MobsimTimerProvider.class).asEagerSingleton(); } }); } }
private Vehicle createVehicle(Person driverPerson, CarrierVehicle carrierVehicle) { return VehicleUtils.getFactory().createVehicle(Id.create(driverPerson.getId(), Vehicle.class), carrierVehicle.getVehicleType()); }
@Override public void insertAgentsIntoMobsim() { Scenario scenario = qSim.getScenario(); Network network = scenario.getNetwork(); VehiclesFactory qSimVehicleFactory = VehicleUtils.getFactory(); for (int i = 0; i < AGENT_COUNT; i++) { RandomDynAgentLogic agentLogic = new RandomDynAgentLogic(network); Id<Person> id = Id.createPersonId(i); Id<Link> startLinkId = RandomDynAgentLogic.chooseRandomElement(network.getLinks().keySet()); DynAgent agent = new DynAgent(id, startLinkId, qSim.getEventsManager(), agentLogic); // qSim.createAndParkVehicleOnLink(qSimVehicleFactory.createVehicle(Id.create(id, Vehicle.class), // VehicleUtils.getDefaultVehicleType()), startLinkId); final Vehicle vehicle = qSimVehicleFactory.createVehicle( Id.create( id, Vehicle.class ), VehicleUtils.getDefaultVehicleType() ) ; QVehicle qVehicle = new QVehicleImpl( vehicle ) ; // yyyyyy should use factory. kai, nov'18 qSim.addParkedVehicle( qVehicle, startLinkId ); qSim.insertAgentIntoMobsim( agent ); } } }
@Override public void install() { // Visualisation of schedules for DVRP DynAgents bind(NonPlanAgentQueryHelper.class).to(VrpAgentQueryHelper.class); bind(VehicleType.class).annotatedWith(Names.named(VrpAgentSourceQSimModule.DVRP_VEHICLE_TYPE)) .toInstance(VehicleUtils.getDefaultVehicleType()); install(new DvrpTravelTimeModule()); bind(Network.class).annotatedWith(Names.named(DvrpRoutingNetworkProvider.DVRP_ROUTING)) .toProvider(DvrpRoutingNetworkProvider.class) .asEagerSingleton(); installQSimModule(new DynActivityEngineModule()); installQSimModule(new AbstractQSimModule() { @Override protected void configureQSim() { bind(MobsimTimer.class).toProvider(MobsimTimerProvider.class).asEagerSingleton(); } }); } }
public void testBasicParser() { Vehicles vehicles = VehicleUtils.createVehiclesContainer(); VehicleReaderV1 reader = new VehicleReaderV1(vehicles); reader.readFile(this.getPackageInputDirectory() + TESTXML); checkContent(vehicles); }
private static VehicleType createTruckType() { VehicleType truckType = VehicleUtils.getFactory().createVehicleType(Id.create("truckType", VehicleType.class)); truckType.setLength(15.); VehicleCapacity vehicleCapacity = new VehicleCapacityImpl(); vehicleCapacity.setSeats(1); truckType.setCapacity(vehicleCapacity); return truckType; }
private Map<String, VehicleType> getMode2VehicleType(){ Map<String, VehicleType> modeVehicleTypes = new HashMap<>(); switch ( this.qSimConfigGroup.getVehiclesSource() ) { case defaultVehicle: for (String mode : this.qSimConfigGroup.getMainModes()) { // initialize each mode with default vehicle type: VehicleType defaultVehicleType = VehicleUtils.getDefaultVehicleType(); modeVehicleTypes.put(mode, defaultVehicleType); if( scenario.getVehicles().getVehicleTypes().get(defaultVehicleType.getId())==null) { scenario.getVehicles().addVehicleType(defaultVehicleType); // adding default vehicle type to vehicles container } } break; case modeVehicleTypesFromVehiclesData: for (String mode : qSimConfigGroup.getMainModes()) { VehicleType vehicleType = scenario.getVehicles().getVehicleTypes().get( Id.create(mode, VehicleType.class) ) ; Gbl.assertNotNull(vehicleType); modeVehicleTypes.put(mode, vehicleType ); } break; case fromVehiclesData: // don't do anything break; default: throw new RuntimeException("not implemented yet."); } return modeVehicleTypes; }
public void testWriter() throws FileNotFoundException, IOException { String outfileName = this.getOutputDirectory() + "testOutputVehicles.xml"; //read it Vehicles vehicles = VehicleUtils.createVehiclesContainer(); VehicleReaderV1 reader = new VehicleReaderV1(vehicles); reader.readFile(this.getPackageInputDirectory() + TESTXML); //write it VehicleWriterV1 writer = new VehicleWriterV1(vehicles); writer.writeFile(outfileName); assertTrue(new File(outfileName).exists()); //read it again vehicles = VehicleUtils.createVehiclesContainer(); reader = new VehicleReaderV1(vehicles); reader.readFile(this.getOutputDirectory() + "testOutputVehicles.xml"); //check it, check it, check it now! this.checkContent(vehicles); }
final Vehicle basicVehicle = VehicleUtils.getFactory().createVehicle( vehicleId, modeVehicleTypes.get( leg.getMode() ) );
VehicleUtils.getDefaultVehicleType()); scenario.getVehicles().addVehicleType(VehicleUtils.getDefaultVehicleType()); scenario.getVehicles().addVehicle(vehicle);
@Test public void testGetVehicleTypes(){ Vehicles vehicles = VehicleUtils.createVehiclesContainer(); VehicleType t1 = vehicles.getFactory().createVehicleType(Id.create("type1", VehicleType.class)); /* Should get an unmodifiable Map of the Vehicles container. */ try{ vehicles.getVehicleTypes().put(Id.create("type1", VehicleType.class), t1 ); Assert.fail("Should not be able to add to an unmodiafiable Map"); } catch (UnsupportedOperationException e){ /* Pass. */ } }
@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); } } }
VehicleUtils.getDefaultVehicleType()); scenario.getVehicles().addVehicleType(VehicleUtils.getDefaultVehicleType()); scenario.getVehicles().addVehicle(vehicle);
Vehicles vehicles = VehicleUtils.createVehiclesContainer(); VehiclesFactory vehFactory = vehicles.getFactory(); VehicleType vehType = vehFactory.createVehicleType(Id.create(this.pConfig.getPIdentifier(), VehicleType.class));
private void storeVehicleTypeInfo(SimpleNetwork net) { net.scenario.getConfig().qsim().setVehiclesSource(QSimConfigGroup.VehiclesSource.modeVehicleTypesFromVehiclesData); Vehicles vehicles = net.scenario.getVehicles(); VehicleType car = VehicleUtils.getFactory().createVehicleType(Id.create("car", VehicleType.class)); car.setMaximumVelocity(20); car.setPcuEquivalents(1.0); vehicles.addVehicleType(car); VehicleType bike = VehicleUtils.getFactory().createVehicleType(Id.create("bike", VehicleType.class)); bike.setMaximumVelocity(5); bike.setPcuEquivalents(0.25); vehicles.addVehicleType(bike); }
@Test public void testRemoveVehicle() { Vehicles vehicles = VehicleUtils.createVehiclesContainer(); VehicleType t1 = vehicles.getFactory().createVehicleType(Id.create("type1", VehicleType.class)); vehicles.addVehicleType(t1); Vehicle v1 = vehicles.getFactory().createVehicle(Id.create("v1", Vehicle.class), t1); Assert.assertEquals(0, vehicles.getVehicles().size()); vehicles.addVehicle(v1); Assert.assertEquals(1, vehicles.getVehicles().size()); vehicles.removeVehicle(Id.create("v1", Vehicle.class)); Assert.assertEquals(0, vehicles.getVehicles().size()); }