@Override public void handleEvent(final VehicleLeavesTrafficEvent event) { /* remove EnterEvents from list when a vehicle arrives. * otherwise, the activity duration would counted as travel time, when the * vehicle departs again and leaves the link! */ this.linkEnterEvents.remove(event.getVehicleId()); // try to remove vehicles from set with filtered vehicles if (filterAnalyzedModes) this.vehiclesToIgnore.remove(event.getVehicleId()); }
@Override public void handleEvent(VehicleLeavesTrafficEvent event) { Id<Vehicle> vehicleId = event.getVehicleId(); this.regularActiveTrips.remove(vehicleId); // try to remove vehicle from set with filtered vehicles if (filterModes) this.vehiclesToFilter.remove(event.getVehicleId()); }
@Override public void handleEvent(VehicleLeavesTrafficEvent event) { driverAgents.remove(event.getVehicleId()); }
public void handleEvent(VehicleLeavesTrafficEvent event) { vehicleLeftLink(event.getVehicleId()); if(this.doAverageVehiclesPerSecondMonitoring) { /* * Note: the sensor detects cars that will arrive at the link end, i.e. the traffic signal. * Vehicles that leave traffic at the link will not reach the link end and are, therefore, not counted here. * theresa, feb'17 */ totalVehicles--; } }
@Override public void handleEvent(VehicleLeavesTrafficEvent event) { delegate.handleEvent(event); // !!!! Double result = vehicleEnterTimes.remove( event.getVehicleId() ) ; if ( result == null ) { if ( wrnCnt==0 ) { wrnCnt++ ; // throw new RuntimeException("vehicle arrival for vehicle that never entered link. teleportation?") ; Logger.getLogger(this.getClass()).warn("vehicle arrival for vehicle that never entered link. I think this can happen with departures " + "that have empty routes, i.e. go to a location on the same link. kai, may'14"); Logger.getLogger(this.getClass()).warn( Gbl.ONLYONCE ) ; } } }
@Override public void handleEvent(VehicleLeavesTrafficEvent event) { if (!event.getNetworkMode().equals("car")) { if( nonCarWarn <=1) { logger.warn("non-car modes are supported, however, not properly tested yet."); logger.warn(Gbl.ONLYONCE); nonCarWarn++; } } Id<Vehicle> vehicleId = event.getVehicleId(); Double stopEngineTime = event.getTime(); this.vehicleId2stopEngineTime.put(vehicleId, stopEngineTime); }
@Override public void handleEvent(VehicleLeavesTrafficEvent event) { if(!event.getNetworkMode().equals("car")){ if( nonCarWarn <=1) { logger.warn("non-car modes are supported, however, not properly tested yet."); logger.warn(Gbl.ONLYONCE); nonCarWarn++; } } Tuple<Id<Link>, Double> linkId2Time = new Tuple<Id<Link>, Double>(event.getLinkId(), event.getTime()); this.vehicleLeavesTraffic.put(event.getVehicleId(), linkId2Time); // yyyyyy This event should also trigger an emissions calculation, from link entry up to here. Probably not done since this particular // event did not exist when the emissions contrib was programmed. Would be easy to do: calculate the emission and remove // the vehicle from the linkenter data structure so that no second emission event is computed for travel from parking to // link leave. (This could also be done, but the excellent should not be in the way of the good.) kai, may'16 }
public void testWriteReadXml() { final VehicleLeavesTrafficEvent event1 = new VehicleLeavesTrafficEvent(8463.7301, Id.create("483", Person.class), Id.create("783", Link.class), Id.create("veh7", Vehicle.class), TransportMode.car,1.0); final VehicleLeavesTrafficEvent event2 = XmlEventsTester.testWriteReadXml(getOutputDirectory() + "events.xml", event1); assertEquals(event1.getTime(), event2.getTime(), EPSILON); assertEquals(event1.getPersonId().toString(), event2.getPersonId().toString()); assertEquals(event1.getLinkId().toString(), event2.getLinkId().toString()); assertEquals(event1.getVehicleId(), event2.getVehicleId()); assertEquals(event1.getNetworkMode(), event2.getNetworkMode()); } }
VehicleLeavesTrafficEvent vehEvent = (VehicleLeavesTrafficEvent) event; Id<Vehicle> vehId = vehEvent.getVehicleId(); double enterTime = previousLinkEnterTime; double travelTime = vehEvent.getTime() - enterTime;
.setDriverId(ProtobufEvents.PersonId.newBuilder().setId(((VehicleLeavesTrafficEvent) event).getPersonId().toString())) .setLinkId(ProtobufEvents.LinkId.newBuilder().setId(((VehicleLeavesTrafficEvent) event).getLinkId().toString())) .setVehId(ProtobufEvents.VehicleId.newBuilder().setId(((VehicleLeavesTrafficEvent) event).getVehicleId().toString())) .setNetworkMode(((VehicleLeavesTrafficEvent) event).getNetworkMode()) .setRelPosOnLink(((VehicleLeavesTrafficEvent) event).getRelativePositionOnLink());