SUMO - Simulation of Urban MObility
|
#include <MSVehicleTransfer.h>
Data Structures | |
struct | VehicleInformation |
Holds the information needed to move the vehicle over the network. More... | |
Public Member Functions | |
void | addVeh (const SUMOTime t, MSVehicle *veh) |
Adds a vehicle to this transfer object. More... | |
void | checkInsertions (SUMOTime time) |
Checks "movement" of stored vehicles. More... | |
const std::set< const MSVehicle * > & | getParkingVehicles (const MSLane *lane) const |
return parking vehicles on the given lane More... | |
bool | hasPending () const |
Checks whether stored vehicles are present. More... | |
virtual | ~MSVehicleTransfer () |
Destructor. More... | |
Static Public Member Functions | |
static MSVehicleTransfer * | getInstance () |
Returns the instance of this object. More... | |
Static Public Attributes | |
static const SUMOReal | TeleportMinSpeed = 1 |
The minimum speed while teleporting. More... | |
Protected Types | |
typedef std::map< const MSLane *, std::set< const MSVehicle * > > | ParkingVehicles |
The map from lanes to parking vehicles. More... | |
typedef std::vector < VehicleInformation > | VehicleInfVector |
Definition of a container for vehicle information. More... | |
Protected Attributes | |
ParkingVehicles | myParkingVehicles |
VehicleInfVector | myVehicles |
The information about stored vehicles to move virtually. More... | |
Static Protected Attributes | |
static const std::set< const MSVehicle * > | myEmptyVehicleSet |
an empty vector for convenience More... | |
static MSVehicleTransfer * | myInstance = 0 |
The static singleton-instance. More... | |
Private Member Functions | |
MSVehicleTransfer () | |
Constructor. More... | |
This object (each simulation owns exactly one) is responsible for the transfer of vehicles that got stocked within the network due to grid locks. It also manages vehicles that are removed from the network because of stops with the parking attribute.
The method addVeh is called by a lane if a vehicle stood to long at this lane's end. After being added to this transfer object and removed from the lane, it is moved over the consecutive edges. On each edge, it is tried to insert the vehicle again. The lanes are of course chosen by examining the vehicle's real route.
This object is used as a singleton
Definition at line 64 of file MSVehicleTransfer.h.
|
protected |
The map from lanes to parking vehicles.
Definition at line 145 of file MSVehicleTransfer.h.
|
protected |
Definition of a container for vehicle information.
Definition at line 139 of file MSVehicleTransfer.h.
|
virtual |
|
private |
Adds a vehicle to this transfer object.
The vehicle is removed from the network as it would end the trip. If the vehicle's next edge is his last one, the vehicle is also removed from the vehicle control.
[in] | veh | The vehicle to add |
Definition at line 59 of file MSVehicleTransfer.cpp.
References MSAbstractLaneChangeModel::endLaneChangeManeuver(), MSVehicle::enterLaneAtMove(), MSEdge::getCurrentTravelTime(), MSBaseVehicle::getEdge(), MSNet::getInstance(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSEdge::getLanes(), MSNet::getVehicleControl(), MSNet::informVehicleStateListener(), MSVehicle::isParking(), myParkingVehicles, myVehicles, MSMoveReminder::NOTIFICATION_PARKING, MSMoveReminder::NOTIFICATION_TELEPORT, MSVehicle::onRemovalFromNet(), MSVehicleControl::scheduleVehicleRemoval(), MSBaseVehicle::succEdge(), TeleportMinSpeed, TIME2STEPS, and MSNet::VEHICLE_STATE_STARTING_TELEPORT.
Referenced by MSLane::detectCollisions(), and MSLane::executeMovements().
void MSVehicleTransfer::checkInsertions | ( | SUMOTime | time) |
Checks "movement" of stored vehicles.
Checks whether one of the stored vehicles may be inserted back into the network. If not, the vehicle may move virtually to the next lane of it's route
[in] | time | The current simulation time |
Definition at line 79 of file MSVehicleTransfer.cpp.
References MSEdge::allowedLanes(), MSVehicle::enterLaneAtMove(), MSLane::freeInsertion(), MSEdge::getCurrentTravelTime(), MSBaseVehicle::getEdge(), MSEdge::getFreeLane(), Named::getID(), MSBaseVehicle::getID(), MSNet::getInstance(), MSVehicle::getLane(), MSEdge::getLanes(), MSBaseVehicle::getMaxSpeed(), MSVehicle::getPositionOnLane(), MSLane::getSpeedLimit(), MSVehicleType::getVehicleClass(), MSNet::getVehicleControl(), MSBaseVehicle::getVehicleType(), MSNet::informVehicleStateListener(), MSLane::isInsertionSuccess(), MSVehicle::leaveLane(), MIN2(), MSVehicleTransfer::VehicleInformation::myParking, myParkingVehicles, MSVehicleTransfer::VehicleInformation::myProceedTime, MSVehicleTransfer::VehicleInformation::myVeh, myVehicles, MSMoveReminder::NOTIFICATION_PARKING, MSMoveReminder::NOTIFICATION_TELEPORT, MSVehicle::processNextStop(), MSVehicleControl::scheduleVehicleRemoval(), MSBaseVehicle::succEdge(), TeleportMinSpeed, TIME2STEPS, time2string(), MSNet::VEHICLE_STATE_ENDING_TELEPORT, and WRITE_WARNING.
Referenced by MSNet::simulationStep().
|
static |
Returns the instance of this object.
Definition at line 148 of file MSVehicleTransfer.cpp.
References MSVehicleTransfer(), and myInstance.
Referenced by MSNet::clearAll(), MSLane::detectCollisions(), GUILane::drawGL(), MSLane::executeMovements(), and MSNet::simulationStep().
const std::set< const MSVehicle * > & MSVehicleTransfer::getParkingVehicles | ( | const MSLane * | lane) | const |
return parking vehicles on the given lane
Definition at line 165 of file MSVehicleTransfer.cpp.
References myEmptyVehicleSet, and myParkingVehicles.
Referenced by GUILane::drawGL().
bool MSVehicleTransfer::hasPending | ( | ) | const |
Checks whether stored vehicles are present.
Definition at line 142 of file MSVehicleTransfer.cpp.
References myVehicles.
|
staticprotected |
an empty vector for convenience
Definition at line 152 of file MSVehicleTransfer.h.
Referenced by getParkingVehicles().
|
staticprotected |
The static singleton-instance.
Definition at line 149 of file MSVehicleTransfer.h.
Referenced by getInstance(), and ~MSVehicleTransfer().
|
protected |
Definition at line 146 of file MSVehicleTransfer.h.
Referenced by addVeh(), checkInsertions(), and getParkingVehicles().
|
protected |
The information about stored vehicles to move virtually.
Definition at line 142 of file MSVehicleTransfer.h.
Referenced by addVeh(), checkInsertions(), and hasPending().
|
static |
The minimum speed while teleporting.
Definition at line 107 of file MSVehicleTransfer.h.
Referenced by addVeh(), and checkInsertions().