Skip to content

Commit

Permalink
tweaking vehicle counts and warnings on collision.action=remove refs #…
Browse files Browse the repository at this point in the history
…1102

git-svn-id: file:///home/behr_mi/git/sumo_synched/trunk@20594 afbd958f-9f77-42d5-a016-97a22340ccf4
  • Loading branch information
namdre committed Apr 29, 2016
1 parent 39284a2 commit 2cb836c
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 27 deletions.
25 changes: 21 additions & 4 deletions sumo/src/microsim/MSLane.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -965,6 +965,9 @@ MSLane::detectCollisions(SUMOTime timestep, const std::string& stage) {
vehLane->removeVehicle(veh, MSMoveReminder::NOTIFICATION_TELEPORT, false);
if (toTeleport.count(veh) > 0) {
MSVehicleTransfer::getInstance()->add(timestep, veh);
} else {
veh->onRemovalFromNet(MSMoveReminder::NOTIFICATION_VAPORIZED);
MSNet::getInstance()->getVehicleControl().scheduleVehicleRemoval(veh);
}
}
}
Expand Down Expand Up @@ -1018,20 +1021,34 @@ MSLane::detectCollisionBetween(SUMOTime timestep, const std::string& stage, cons
toRemove.insert(collider);
toTeleport.insert(collider);
break;
case COLLISION_ACTION_REMOVE:
prefix = "Removing collision participantes: vehicle '" + collider->getID() + "', vehicle '" + victim->getID();
case COLLISION_ACTION_REMOVE: {
prefix = "Removing collision participants: vehicle '" + collider->getID() + "', vehicle '" + victim->getID();
bool removeCollider = true;
bool removeVictim = true;
#ifndef NO_TRACI
if (!(victim->hasInfluencer() && victim->getInfluencer()->isVTDAffected(timestep))) {
removeVictim = !(victim->hasInfluencer() && victim->getInfluencer()->isVTDAffected(timestep));
removeCollider = !(collider->hasInfluencer() && collider->getInfluencer()->isVTDAffected(timestep));
if (removeVictim) {
toRemove.insert(victim);
}
if (!(collider->hasInfluencer() && collider->getInfluencer()->isVTDAffected(timestep))) {
if (removeCollider) {
toRemove.insert(collider);
}
if (!removeVictim) {
if (!removeCollider) {
prefix = "Keeping remote-controlled collision participants: vehicle '" + collider->getID() + "', vehicle '" + victim->getID();
} else {
prefix = "Removing collision participant: vehicle '" + collider->getID() + "', keeping remote-controlled vehicle '" + victim->getID();
}
} else if (!removeCollider) {
prefix = "Keeping remote-controlled collision participant: vehicle '" + collider->getID() + "', removing vehicle '" + victim->getID();
}
#else
toRemove.insert(victim);
toRemove.insert(collider);
#endif
break;
}
default:
break;
}
Expand Down
38 changes: 19 additions & 19 deletions sumo/tests/sumo/extended/collisions/remove/errors.sumo
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
Warning: Missing yellow phase in tlLogic '0', program 'freaky' for tl-index 0 when switching to phase 1
Warning: Removing collision participantes: vehicle 'always_right.0', vehicle 'horizontal.0', lane='2o_0', gap=-5.00, time=27.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.1', vehicle 'horizontal.1', lane='2o_0', gap=-5.00, time=31.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.2', vehicle 'horizontal.2', lane='2o_0', gap=-5.00, time=35.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.3', vehicle 'horizontal.3', lane='2o_0', gap=-5.00, time=39.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.4', vehicle 'horizontal.4', lane='2o_0', gap=-5.00, time=43.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.5', vehicle 'horizontal.5', lane='2o_0', gap=-5.00, time=47.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.6', vehicle 'horizontal.6', lane='2o_0', gap=-5.00, time=51.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.7', vehicle 'horizontal.7', lane='2o_0', gap=-5.00, time=55.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.8', vehicle 'horizontal.8', lane='2o_0', gap=-5.00, time=59.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.9', vehicle 'horizontal.9', lane='2o_0', gap=-5.00, time=63.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.10', vehicle 'horizontal.10', lane='2o_0', gap=-5.00, time=67.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.11', vehicle 'horizontal.11', lane='2o_0', gap=-5.00, time=71.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.12', vehicle 'horizontal.12', lane='2o_0', gap=-5.00, time=75.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.13', vehicle 'horizontal.13', lane='2o_0', gap=-5.00, time=79.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.14', vehicle 'horizontal.14', lane='2o_0', gap=-5.00, time=83.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.15', vehicle 'horizontal.15', lane='2o_0', gap=-5.00, time=87.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.16', vehicle 'horizontal.16', lane='2o_0', gap=-5.00, time=91.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.17', vehicle 'horizontal.17', lane='2o_0', gap=-5.00, time=95.00 stage=move.
Warning: Removing collision participantes: vehicle 'always_right.18', vehicle 'horizontal.18', lane='2o_0', gap=-5.00, time=99.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.0', vehicle 'horizontal.0', lane='2o_0', gap=-5.00, time=27.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.1', vehicle 'horizontal.1', lane='2o_0', gap=-5.00, time=31.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.2', vehicle 'horizontal.2', lane='2o_0', gap=-5.00, time=35.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.3', vehicle 'horizontal.3', lane='2o_0', gap=-5.00, time=39.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.4', vehicle 'horizontal.4', lane='2o_0', gap=-5.00, time=43.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.5', vehicle 'horizontal.5', lane='2o_0', gap=-5.00, time=47.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.6', vehicle 'horizontal.6', lane='2o_0', gap=-5.00, time=51.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.7', vehicle 'horizontal.7', lane='2o_0', gap=-5.00, time=55.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.8', vehicle 'horizontal.8', lane='2o_0', gap=-5.00, time=59.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.9', vehicle 'horizontal.9', lane='2o_0', gap=-5.00, time=63.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.10', vehicle 'horizontal.10', lane='2o_0', gap=-5.00, time=67.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.11', vehicle 'horizontal.11', lane='2o_0', gap=-5.00, time=71.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.12', vehicle 'horizontal.12', lane='2o_0', gap=-5.00, time=75.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.13', vehicle 'horizontal.13', lane='2o_0', gap=-5.00, time=79.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.14', vehicle 'horizontal.14', lane='2o_0', gap=-5.00, time=83.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.15', vehicle 'horizontal.15', lane='2o_0', gap=-5.00, time=87.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.16', vehicle 'horizontal.16', lane='2o_0', gap=-5.00, time=91.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.17', vehicle 'horizontal.17', lane='2o_0', gap=-5.00, time=95.00 stage=move.
Warning: Removing collision participants: vehicle 'always_right.18', vehicle 'horizontal.18', lane='2o_0', gap=-5.00, time=99.00 stage=move.
Warning: Teleporting vehicle 'horizontal.19'; waited too long (yield), lane='1si_1', time=404.00.
Warning: Teleporting vehicle 'always_right.19'; waited too long (yield), lane='3si_0', time=404.00.
Warning: Vehicle 'horizontal.19' ends teleporting on edge '2o', time 404.00.
Expand Down
8 changes: 4 additions & 4 deletions sumo/tests/sumo/extended/collisions/remove/output.sumo
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ Simulation started with time: 0.00
Simulation ended at time: 500.00
Reason: The final simulation step has been reached.
Performance:
Duration: 80ms
Real time factor: 6250
UPS: 717675.000000
Duration: 81ms
Real time factor: 6172.84
UPS: 503802.469136
Vehicles:
Inserted: 189 (Loaded: 411)
Running: 187
Running: 149
Waiting: 222
Teleports: 2 (Collisions: 19, Yield: 2)

0 comments on commit 2cb836c

Please sign in to comment.