@Override public Id getCurrentLinkId() { return delegate.getCurrentLinkId(); }
public boolean pickUpPassenger(PassengerPickupActivity pickupActivity, MobsimDriverAgent driver, PassengerRequest request, double now) { Id<Link> linkId = driver.getCurrentLinkId(); MobsimPassengerAgent passenger = passengersByRequestId.get(request.getId()); if (passenger.getCurrentLinkId() != linkId || passenger.getState() != State.LEG || !passenger.getMode() .equals(mode)) { awaitingPickupStorage.storeAwaitingPickup(request, pickupActivity); return false;// wait for the passenger } if (internalInterface.unregisterAdditionalAgentOnLink(passenger.getId(), driver.getCurrentLinkId()) == null) { // the passenger has already been picked up and is on another taxi trip // seems there have been at least 2 requests made by this passenger for this location awaitingPickupStorage.storeAwaitingPickup(request, pickupActivity); return false;// wait for the passenger (optimistically, he/she should appear soon) } MobsimVehicle mobVehicle = driver.getVehicle(); mobVehicle.addPassenger(passenger); passenger.setVehicle(mobVehicle); eventsManager.processEvent(new PersonEntersVehicleEvent(now, passenger.getId(), mobVehicle.getId())); return true; }
if ( vehicle==null ) { final String msg = "could not find requested vehicle "+vehicleId+" in simulation for agent "+agent+" with id "+agent.getId()+" on link "+agent.getCurrentLinkId()+" at time "+now+"."; log.error( msg ); log.error( "Note that, with AgentSource and if the agent starts on a leg, the "
final Id linkId = delegate.getCurrentLinkId(); final Collection<PassengerAgent> passengersToUnboard = new ArrayList<PassengerAgent>(); assert vehicle != null; ((MobsimAgent) p).notifyArrivalOnLinkByNonNetworkMode( delegate.getCurrentLinkId() ); ((MobsimAgent) p).endLegAndComputeNextState( now ); events.processEvent(