/** * If the driver agent stucks, no PersonLeavesVehicleEvent will be thrown. Use the * PersonStuckEvent instead as a replacement to avoid NullPointerExceptions and * calculate an approximate running time cost. */ @Override public void handleEvent(VehicleAbortsEvent event) { if (event.getVehicleId().toString().startsWith(this.pIdentifier)) { // it's a paratransit vehicle log.info("Paratransit vehicle " + event.getVehicleId() + " got stuck at " + Time.writeTime(event.getTime()) + ". Operation cost is calculated until the stuck time."); OperatorCostContainer operatorCostContainer = this.vehId2OperatorCostContainer.remove(event.getVehicleId()); operatorCostContainer.handleVehicleAborts(event); // call all OperatorCostContainerHandler for (OperatorCostContainerHandler operatorCostContainerHandler : this.operatorCostContainerHandlerList) { operatorCostContainerHandler.handleOperatorCostContainer(operatorCostContainer); } // Note the operatorCostContainer is dropped at this point. } }
@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()); }
public void testWriteReadXml() { final VehicleAbortsEvent event1 = new VehicleAbortsEvent(81153.3, Id.create("a007", Vehicle.class), Id.create("link1", Link.class)); final VehicleAbortsEvent event2 = XmlEventsTester.testWriteReadXml(getOutputDirectory() + "events.xml", event1); assertEquals(event1.getTime(), event2.getTime(), EPSILON); assertEquals(event1.getVehicleId(), event2.getVehicleId()); assertEquals(event1.getLinkId(), event2.getLinkId()); }
ProtobufEvents.VehicleAbortsEvent.Builder va = ProtobufEvents.VehicleAbortsEvent.newBuilder() .setTime(event.getTime()) .setVehId(ProtobufEvents.VehicleId.newBuilder().setId(((VehicleAbortsEvent) event).getVehicleId().toString())) .setLinkId(ProtobufEvents.LinkId.newBuilder().setId(((VehicleAbortsEvent) event).getLinkId().toString())); eb.setType(ProtobufEvents.Event.Type.VehicleAborts).setVehicleAborts(va);