@Override public void handleEvent(LinkEnterEvent event) { Tuple<Id<Link>, Double> linkId2Time = new Tuple<Id<Link>, Double>(event.getLinkId(), event.getTime()); this.linkenter.put(event.getVehicleId(), linkId2Time); }
public void handleEvent(LinkEnterEvent event) { scoringFunction.handleEvent(new LinkEnterEvent(event.getTime(),getVehicle().getVehicleId(),event.getLinkId())); /* why can't we do something like: scoringFunction.handleEvent(event); (causes test failures in playground kturner), Theresa Dec'2015 */ currentRoute.add(event.getLinkId()); }
@Override public void handleEvent(LinkEnterEvent event) { Logger.getLogger(VehicleLinkTravelTimeEventHandler.class).info(event.toString()); Map<Id<Link>, double[]> times = this.vehicleLinkEnterLeaveTimes.get(event.getVehicleId()); if (times == null) { times = new HashMap<>(); double [] linkEnterLeaveTime = {Double.POSITIVE_INFINITY,Double.POSITIVE_INFINITY}; times.put(event.getLinkId(), linkEnterLeaveTime); this.vehicleLinkEnterLeaveTimes.put(event.getVehicleId(), times); } double linkLeaveTime; if(times.get(event.getLinkId())!=null){ linkLeaveTime = times.get(event.getLinkId())[1]; } else linkLeaveTime = Double.POSITIVE_INFINITY; double [] linkEnterTime = {event.getTime(),linkLeaveTime}; times.put(event.getLinkId(), linkEnterTime); }
@Override public void handleEvent(LinkEnterEvent event) { // the person has entered the link, store the time this.vehicleId2enterTime.put(event.getVehicleId(), event.getTime()); }
@Override public void handleEvent(LinkEnterEvent event) { if(event.getVehicleId().toString().contains(this.pIdentifier)){ double linkLength; if (event.getLinkId().toString().equalsIgnoreCase("A") || event.getLinkId().toString().equalsIgnoreCase("B") || event.getLinkId().toString().equalsIgnoreCase("C") || event.getLinkId().toString().equalsIgnoreCase("D")) { linkLength = 0.1; } else { linkLength = 1.2; } this.kmTravelledByMinibuses += linkLength; this.passengerKmMinibus += this.vehId2NumberOfPassengers.get(event.getVehicleId()) * linkLength; } }
public void testWriteReadXml() { final LinkEnterEvent event1 = new LinkEnterEvent(6823.8, Id.create("veh", Vehicle.class), Id.create("abcd", Link.class)); final LinkEnterEvent event2 = XmlEventsTester.testWriteReadXml(getOutputDirectory() + "events.xml", event1); assertEquals(event1.getTime(), event2.getTime(), EPSILON); assertEquals(event1.getLinkId(), event2.getLinkId()); assertEquals(event1.getVehicleId(), event2.getVehicleId()); } }
private double calcRouteTravelTime(NetworkRoute route, double startTime, TravelTime travelTime, Network network, Queue<Event> eventQueue, Id agentId) { double tt = 0; if (route.getStartLinkId() != route.getEndLinkId()) { Id<Link> startLink = route.getStartLinkId(); double linkEnterTime = startTime; LinkEnterEvent linkEnterEvent = null; LinkLeaveEvent linkLeaveEvent = new LinkLeaveEvent(++linkEnterTime, agentId, startLink); eventQueue.add(linkLeaveEvent); double linkLeaveTime = linkEnterTime; List<Id<Link>> routeLinkIds = route.getLinkIds(); for (Id<Link> routeLinkId : routeLinkIds) { if (linkEnterTime > 1E16) { int mmm = 0; } linkEnterTime = linkLeaveTime; linkEnterEvent = new LinkEnterEvent(linkEnterTime, agentId, routeLinkId); eventQueue.add(linkEnterEvent); double linkTime = travelTime.getLinkTravelTime(network.getLinks().get(routeLinkId), linkEnterTime, null, null); tt += Math.max(linkTime, 1.0); linkLeaveTime = Math.max(linkEnterTime + 1, linkEnterTime + linkTime); linkLeaveEvent = new LinkLeaveEvent(linkLeaveTime, agentId, routeLinkId); eventQueue.add(linkLeaveEvent); } tt = linkLeaveTime - startTime; } LinkEnterEvent linkEnterEvent = new LinkEnterEvent(startTime + tt, agentId, route.getEndLinkId()); eventQueue.add(linkEnterEvent); return tt + travelTime.getLinkTravelTime(network.getLinks().get(route.getEndLinkId()), tt + startTime, null, null); }
@Override public void handleEvent(VehicleAbortsEvent event) { LinkEnterEvent e = this.linkEnterEvents.remove(event.getVehicleId()); if (e != null) { DataContainer data = this.dataContainerProvider.getTravelTimeData(e.getLinkId(), true); data.needsConsolidation = true; this.aggregator.addStuckEventTravelTime(data.ttData, e.getTime(), event.getTime()); if (this.calculateLinkToLinkTravelTimes && event.getTime() < qsimConfig.getEndTime() // (we think that this only makes problems when the abort is not just because of mobsim end time. kai & theresa, jan'17) ){ log.error(ERROR_STUCK_AND_LINKTOLINK); throw new IllegalStateException(ERROR_STUCK_AND_LINKTOLINK); } } // try to remove vehicle from set with filtered vehicles if (filterAnalyzedModes) this.vehiclesToIgnore.remove(event.getVehicleId()); }
@Override public void handleEvent(LinkEnterEvent event) { if (eventCounter.incrementAndGet() > maxEvents) return; try { if (ptVehicles.keySet().contains(event.getVehicleId())) { PTVehicle ptVehicle = ptVehicles.get(event.getVehicleId()); ptVehicle.in = true; ptVehicle.setLinkEnterTime(event.getTime()); } else { chains.get(driverIdFromVehicleId.get(event.getVehicleId())) .setLinkEnterTime(event.getTime()); } } catch (Exception e) { System.err.println(e.getStackTrace()); System.err.println(event.toString()); } }
@Override public void handleEvent(LinkEnterEvent event) { Id<Person> driverId = vehicleToDriver.get(event.getVehicleId()); if (!eventsByPerson.containsKey(driverId)) { eventsByPerson.put(driverId, new LinkedList<Event>()); } eventsByPerson.get(driverId).add(event); allEvents.add(event); }
@Override public void handleEvent(final LinkLeaveEvent e) { if (this.calculateLinkTravelTimes) { LinkEnterEvent oldEvent = this.linkEnterEvents.get(e.getVehicleId()); if (oldEvent != null) { DataContainer data = this.dataContainerProvider.getTravelTimeData(e.getLinkId(), true); this.aggregator.addTravelTime(data.ttData, oldEvent.getTime(), e.getTime()); data.needsConsolidation = true; } } }
@Override public void handleEvent(LinkEnterEvent event) { // add the id of the operator to the set of ids of the link if(event.getVehicleId().toString().contains(this.pIdentifier)){ if (this.linkId2OperatorIdsSetMap.get(event.getLinkId()) == null) { this.linkId2OperatorIdsSetMap.put(event.getLinkId(), new TreeSet<Id<Operator>>()); } Id<Operator> operatorId = Id.create(this.vehId2lineIdMap.get(event.getVehicleId()), Operator.class); this.linkId2OperatorIdsSetMap.get(event.getLinkId()).add(operatorId); } }
@Override public void handleEvent(LinkEnterEvent event) { if (this.decongestionInfo == null || !this.decongestionInfo.getTransitVehicleIDs().contains(event.getVehicleId())) { this.vehicleId2enterTime.put(event.getVehicleId(), event.getTime()); } }
@Override public void handleEvent(final VehicleEntersTrafficEvent event) { delegate.handleEvent(event); Link link = this.network.getLinks().get(event.getLinkId()); if (handler instanceof DistanceTollBehaviour || handler instanceof LinkTollBehaviour) { /* we do not handle wait2link-events for these tolls, because the agent * should not pay twice for this link, and he (likely) paid already when * arriving at this link. */ return; } else { // Just like a LinkEnterEvent this.handler.handleEvent(new LinkEnterEvent(event.getTime(), event.getVehicleId(), event.getLinkId()), link); } }
@Override public void handleEvent(final LinkEnterEvent event) { Link link = this.network.getLinks().get(event.getLinkId()); this.handler.handleEvent(event, link); }
@Override public void handleEvent(LinkEnterEvent event) { CarrierAgent carrierAgent = getCarrierAgent(delegate.getDriverOfVehicle(event.getVehicleId())); if(carrierAgent == null) return; carrierAgent.handleEvent(event); }
@Override public void handleEvent(LinkEnterEvent event) { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } events.processEvent(new PersonStuckEvent(event.getTime(), Id.createPersonId(0), Id.createLinkId(0), "car")); }
@Override public void handleEvent(LinkEnterEvent event) { vehicleEnterTimes.put( event.getVehicleId(), event.getTime() ) ; if ( this.tolledLinkIds.contains( event.getLinkId() ) ) { final Double gantryCountSoFar = this.vehicleGantryCounts.get( event.getVehicleId() ) ; if ( gantryCountSoFar==null ) { this.vehicleGantryCounts.put( event.getVehicleId(), 1. ) ; } else { this.vehicleGantryCounts.put( event.getVehicleId(), 1. + gantryCountSoFar ) ; } } if ( this.otherTolledLinkIds.contains( event.getLinkId() ) ) { add( delegate.getDriverOfVehicle(event.getVehicleId()), 1., CERTAIN_LINKS_CNT ); } }