Eclipse SUMO - Simulation of Urban MObility
MSVehicleControl Class Reference

The class responsible for building and deletion of vehicles. More...

#include <MSVehicleControl.h>

Inheritance diagram for MSVehicleControl:
Collaboration diagram for MSVehicleControl:

Public Types

typedef std::map< std::string, SUMOVehicle * >::const_iterator constVehIt
 Definition of the internal vehicles map iterator. More...
 

Public Member Functions

void abortWaiting ()
 informes about all waiting vehicles (deletion in destructor) More...
 
void adaptIntermodalRouter (MSNet::MSIntermodalRouter &router) const
 
void discountStateLoaded (bool removed=false)
 avoid counting a vehicle twice if it was loaded from state and route input More...
 
double getMaxSpeedFactor () const
 return the maximum speed factor for all vehicles that ever entered the network More...
 
double getMinDeceleration () const
 return the minimum deceleration capability for all vehicles that ever entered the network More...
 
 MSVehicleControl ()
 Constructor. More...
 
void registerCollision ()
 registers one collision-related teleport More...
 
void registerEmergencyStop ()
 register emergency stop More...
 
void registerOneWaiting (const bool isPerson)
 increases the count of vehicles waiting for a transport to allow recognition of person / container related deadlocks More...
 
void registerTeleportJam ()
 register one non-collision-related teleport More...
 
void registerTeleportWrongLane ()
 register one non-collision-related teleport More...
 
void registerTeleportYield ()
 register one non-collision-related teleport More...
 
void setScale (double scale)
 sets the demand scaling factor More...
 
void unregisterOneWaiting (const bool isPerson)
 decreases the count of vehicles waiting for a transport to allow recognition of person / container related deadlocks More...
 
virtual ~MSVehicleControl ()
 Destructor. More...
 
Vehicle creation
virtual SUMOVehiclebuildVehicle (SUMOVehicleParameter *defs, const MSRoute *route, MSVehicleType *type, const bool ignoreStopErrors, const bool fromRouteFile=true)
 Builds a vehicle, increases the number of built vehicles. More...
 

Private Member Functions

bool checkVType (const std::string &id)
 Checks whether the vehicle type (distribution) may be added. More...
 
bool isPendingRemoval (SUMOVehicle *veh)
 whether the given vehicle is scheduled for removal More...
 

Insertion, deletion and retrieval of vehicles

virtual bool addVehicle (const std::string &id, SUMOVehicle *v)
 Tries to insert the vehicle into the internal vehicle container. More...
 
SUMOVehiclegetVehicle (const std::string &id) const
 Returns the vehicle with the given id. More...
 
virtual void deleteVehicle (SUMOVehicle *v, bool discard=false)
 Deletes the vehicle. More...
 
void scheduleVehicleRemoval (SUMOVehicle *veh, bool checkDuplicate=false)
 Removes a vehicle after it has ended. More...
 
void removePending ()
 Removes a vehicle after it has ended. More...
 
constVehIt loadedVehBegin () const
 Returns the begin of the internal vehicle map. More...
 
constVehIt loadedVehEnd () const
 Returns the end of the internal vehicle map. More...
 

Retrieval of vehicle statistics (always accessable)

int getLoadedVehicleNo () const
 Returns the number of build vehicles. More...
 
virtual int getHaltingVehicleNo () const
 Returns the number of halting vehicles. More...
 
virtual std::pair< double, double > getVehicleMeanSpeeds () const
 get current absolute and relative mean vehicle speed in the network More...
 
double getVehicleMeanSpeed () const
 
double getVehicleMeanSpeedRelative () const
 
int getEndedVehicleNo () const
 Returns the number of removed vehicles. More...
 
int getArrivedVehicleNo () const
 Returns the number of arrived vehicles. More...
 
int getDiscardedVehicleNo () const
 Returns the number of discarded vehicles. More...
 
int getRunningVehicleNo () const
 Returns the number of build and inserted, but not yet deleted vehicles. More...
 
int getDepartedVehicleNo () const
 Returns the number of inserted vehicles. More...
 
int getQuota (double frac=-1) const
 Returns the number of instances of the current vehicle that shall be emitted considering that "frac" of all vehicles shall be emitted overall if a negative fraction is given the demand scaling factor is used (–scale) More...
 
int getActiveVehicleCount () const
 Returns the number of build vehicles that have not been removed or need to wait for a passenger or a container. More...
 
int getCollisionCount () const
 return the number of collisions More...
 
int getTeleportsJam () const
 return the number of teleports due to jamming More...
 
int getTeleportsYield () const
 return the number of teleports due to vehicles stuck on a minor road More...
 
int getTeleportsWrongLane () const
 return the number of teleports due to vehicles stuck on the wrong lane More...
 
int getTeleportCount () const
 return the number of teleports (including collisions) More...
 
int getEmergencyStops () const
 return the number of emergency stops More...
 
double getTotalDepartureDelay () const
 Returns the total departure delay. More...
 
double getTotalTravelTime () const
 Returns the total travel time. More...
 

Vehicle statistics (always accessible)

int myLoadedVehNo
 The number of build vehicles. More...
 
int myRunningVehNo
 The number of vehicles within the network (build and inserted but not removed) More...
 
int myEndedVehNo
 The number of removed vehicles. More...
 
int myDiscarded
 The number of vehicles which were discarded while loading. More...
 
int myCollisions
 The number of collisions. More...
 
int myTeleportsJam
 The number of teleports due to jam. More...
 
int myTeleportsYield
 The number of teleports due to vehicles stuck on a minor road. More...
 
int myTeleportsWrongLane
 The number of teleports due to vehicles stuck on the wrong lane. More...
 
int myEmergencyStops
 The number of emergency stops. More...
 

Vehicle container

typedef std::map< std::string, SUMOVehicle * > VehicleDictType
 Vehicle dictionary type. More...
 
VehicleDictType myVehicleDict
 Dictionary of vehicles. More...
 

Vehicle type container

typedef std::map< std::string, MSVehicleType * > VTypeDictType
 Vehicle type dictionary type. More...
 
typedef std::map< std::string, RandomDistributor< MSVehicleType * > * > VTypeDistDictType
 Vehicle type distribution dictionary type. More...
 
VTypeDictType myVTypeDict
 Dictionary of vehicle types. More...
 
VTypeDistDictType myVTypeDistDict
 A distribution of vehicle types (probability->vehicle type) More...
 
std::map< std::string, std::set< std::string > > myVTypeToDist
 Inverse lookup from vehicle type to distributions it is a member of. More...
 
bool myDefaultVTypeMayBeDeleted
 Whether the default vehicle type was already used or can still be replaced. More...
 
bool myDefaultPedTypeMayBeDeleted
 Whether the default pedestrian type was already used or can still be replaced. More...
 
bool myDefaultBikeTypeMayBeDeleted
 Whether the default bicycle type was already used or can still be replaced. More...
 
int myWaitingForPerson
 the number of vehicles wainting for persons contained in myWaiting which can only continue by being triggered More...
 
int myWaitingForContainer
 the number of vehicles wainting for containers contained in myWaiting which can only continue by being triggered More...
 
double myScale
 The scaling factor (especially for inc-dua) More...
 
double myMaxSpeedFactor
 The maximum speed factor for all vehicles in the network. More...
 
double myMinDeceleration
 The minimum deceleration capability for all vehicles in the network. More...
 
std::vector< SUMOVehicle * > myPTVehicles
 List of vehicles which belong to public transport. More...
 
std::vector< SUMOVehicle * > myPendingRemovals
 List of vehicles which are going to be removed. More...
 
 MSVehicleControl (const MSVehicleControl &s)
 invalidated copy constructor More...
 
MSVehicleControloperator= (const MSVehicleControl &s)
 invalidated assignment operator More...
 

Detailed Description

The class responsible for building and deletion of vehicles.

This class is responsible for vehicle building and deletion. It stores vehicle types, vehicles and statistics about the last.

This class also realizes the tripinfos and the vehroutes - outputs, both generated when a vehicle is removed from the simulation, see scheduleVehicleRemoval.

Use this class for the pure microsim and GUIVehicleControl within the gui.

See also
GUIVehicleControl

Definition at line 71 of file MSVehicleControl.h.

Member Typedef Documentation

◆ constVehIt

typedef std::map<std::string, SUMOVehicle*>::const_iterator MSVehicleControl::constVehIt

Definition of the internal vehicles map iterator.

Definition at line 74 of file MSVehicleControl.h.

◆ VehicleDictType

typedef std::map< std::string, SUMOVehicle* > MSVehicleControl::VehicleDictType
protected

Vehicle dictionary type.

Definition at line 567 of file MSVehicleControl.h.

◆ VTypeDictType

typedef std::map< std::string, MSVehicleType* > MSVehicleControl::VTypeDictType
private

Vehicle type dictionary type.

Definition at line 578 of file MSVehicleControl.h.

◆ VTypeDistDictType

typedef std::map< std::string, RandomDistributor<MSVehicleType*>* > MSVehicleControl::VTypeDistDictType
private

Vehicle type distribution dictionary type.

Definition at line 583 of file MSVehicleControl.h.

Constructor & Destructor Documentation

◆ MSVehicleControl() [1/2]

◆ ~MSVehicleControl()

MSVehicleControl::~MSVehicleControl ( )
virtual

Destructor.

Definition at line 80 of file MSVehicleControl.cpp.

References myVehicleDict, myVTypeDict, and myVTypeDistDict.

◆ MSVehicleControl() [2/2]

MSVehicleControl::MSVehicleControl ( const MSVehicleControl s)
private

invalidated copy constructor

Member Function Documentation

◆ abortWaiting()

void MSVehicleControl::abortWaiting ( )

informes about all waiting vehicles (deletion in destructor)

Definition at line 394 of file MSVehicleControl.cpp.

References myVehicleDict, and WRITE_WARNING.

Referenced by MSNet::simulationState().

◆ adaptIntermodalRouter()

void MSVehicleControl::adaptIntermodalRouter ( MSNet::MSIntermodalRouter router) const

◆ addVehicle()

bool MSVehicleControl::addVehicle ( const std::string &  id,
SUMOVehicle v 
)
virtual

Tries to insert the vehicle into the internal vehicle container.

Checks whether another vehicle with the same id exists; returns false if so. Otherwise, the vehicle is added to "myVehicleDict". It also checks whether the vehicle has a "triggered" departure and registers it accordingly.

The vehicle control gets responsible for vehicle deletion.

Parameters
[in]idThe id of the vehicle
[in]vThe vehicle
Returns
Whether the vehicle could be inserted (no other vehicle with the same id was inserted before)

Reimplemented in GUIVehicleControl, and GUIMEVehicleControl.

Definition at line 215 of file MSVehicleControl.cpp.

References MSEdge::addWaiting(), DEPART_CONTAINER_TRIGGERED, DEPART_TRIGGERED, SUMOVehicleParameter::departPos, SUMOVehicleParameter::departProcedure, MSRoute::getEdges(), MSEdge::getLanes(), SUMOVehicle::getParameter(), SUMOVehicle::getRoute(), MSGlobals::gUseMesoSim, SUMOVehicleParameter::line, myPTVehicles, myVehicleDict, registerOneWaiting(), and SUMOVehicleParameter::repetitionNumber.

Referenced by libsumo::Vehicle::add(), GUIMEVehicleControl::addVehicle(), GUIVehicleControl::addVehicle(), MSRouteHandler::closeVehicle(), MSInsertionControl::determineCandidates(), and MSTransportable::Stage_Trip::setArrived().

◆ addVType()

bool MSVehicleControl::addVType ( MSVehicleType vehType)

Adds a vehicle type.

If another vehicle type (or distribution) with the same id exists, false is returned. Otherwise, the vehicle type is added to the internal vehicle type container "myVTypeDict".

This control get responsible for deletion of the added vehicle type.

Parameters
[in]vehTypeThe vehicle type to add
Returns
Whether the vehicle type could be added

Definition at line 301 of file MSVehicleControl.cpp.

References checkVType(), MSVehicleType::getID(), and myVTypeDict.

◆ addVTypeDistribution()

bool MSVehicleControl::addVTypeDistribution ( const std::string &  id,
RandomDistributor< MSVehicleType * > *  vehTypeDistribution 
)

Adds a vehicle type distribution.

If another vehicle type (or distribution) with the same id exists, false is returned. Otherwise, the vehicle type distribution is added to the internal vehicle type distribution container "myVTypeDistDict".

This control get responsible for deletion of the added vehicle type distribution.

Parameters
[in]idThe id of the distribution to add
[in]vehTypeDistributionThe vehicle type distribution to add
Returns
Whether the vehicle type could be added

Definition at line 323 of file MSVehicleControl.cpp.

References checkVType(), RandomDistributor< T >::getVals(), myVTypeDistDict, and myVTypeToDist.

◆ buildVehicle()

SUMOVehicle * MSVehicleControl::buildVehicle ( SUMOVehicleParameter defs,
const MSRoute route,
MSVehicleType type,
const bool  ignoreStopErrors,
const bool  fromRouteFile = true 
)
virtual

Builds a vehicle, increases the number of built vehicles.

Builds a MSVehicle instance using the given parameter. Increases the number of loaded vehicles ("myLoadedVehNo").

Parameters
[in]defsThe parameter defining the vehicle
[in]routeThe route of this vehicle
[in]typeThe type of this vehicle
[in]ignoreStopErrorswhether invalid stops trigger a warning only
[in]fromRouteFilewhether we are just reading the route file or creating via trigger, traci, ...
Returns
The built vehicle (MSVehicle instance)

Reimplemented in GUIVehicleControl, MEVehicleControl, and GUIMEVehicleControl.

Definition at line 100 of file MSVehicleControl.cpp.

References MSBaseVehicle::addStops(), MSVehicleType::computeChosenSpeedDeviation(), MSNet::getInstance(), MSRouteHandler::getParsingRNG(), MSNet::informVehicleStateListener(), myLoadedVehNo, and MSNet::VEHICLE_STATE_BUILT.

Referenced by libsumo::Vehicle::add(), MSRouteHandler::closeVehicle(), MSInsertionControl::determineCandidates(), METriggeredCalibrator::execute(), MSCalibrator::execute(), libsumo::Simulation::findIntermodalRoute(), libsumo::Simulation::findRoute(), and MSTransportable::Stage_Trip::setArrived().

◆ checkVType()

bool MSVehicleControl::checkVType ( const std::string &  id)
private

Checks whether the vehicle type (distribution) may be added.

This method checks also whether the default type may still be replaced

Parameters
[in]idThe id of the vehicle type (distribution) to add
Returns
Whether the type (distribution) may be added

Definition at line 267 of file MSVehicleControl.cpp.

References DEFAULT_BIKETYPE_ID, DEFAULT_PEDTYPE_ID, DEFAULT_VTYPE_ID, myDefaultBikeTypeMayBeDeleted, myDefaultPedTypeMayBeDeleted, myDefaultVTypeMayBeDeleted, myVTypeDict, and myVTypeDistDict.

Referenced by addVType(), and addVTypeDistribution().

◆ deleteVehicle()

◆ discountStateLoaded()

void MSVehicleControl::discountStateLoaded ( bool  removed = false)
inline

avoid counting a vehicle twice if it was loaded from state and route input

Definition at line 472 of file MSVehicleControl.h.

References myDiscarded, myEndedVehNo, myLoadedVehNo, and myRunningVehNo.

Referenced by MSStateHandler::closeVehicle(), and MSInsertionControl::determineCandidates().

◆ getActiveVehicleCount()

int MSVehicleControl::getActiveVehicleCount ( ) const
inline

Returns the number of build vehicles that have not been removed or need to wait for a passenger or a container.

Returns
Number of active vehicles

Definition at line 283 of file MSVehicleControl.h.

References myEndedVehNo, myLoadedVehNo, myWaitingForContainer, and myWaitingForPerson.

Referenced by libsumo::Simulation::getMinExpectedNumber(), and MSNet::simulationState().

◆ getArrivedVehicleNo()

int MSVehicleControl::getArrivedVehicleNo ( ) const
inline

Returns the number of arrived vehicles.

Returns
The number of vehicles that have arrived at their destination

Definition at line 242 of file MSVehicleControl.h.

References myDiscarded, and myEndedVehNo.

Referenced by GUINet::getParameterWindow(), and MSNet::writeOutput().

◆ getCollisionCount()

int MSVehicleControl::getCollisionCount ( ) const
inline

return the number of collisions

Definition at line 289 of file MSVehicleControl.h.

References myCollisions.

Referenced by GUIApplicationWindow::checkGamingEvents(), MSNet::generateStatistics(), GUINet::getParameterWindow(), and MSNet::writeOutput().

◆ getDepartedVehicleNo()

int MSVehicleControl::getDepartedVehicleNo ( ) const
inline

Returns the number of inserted vehicles.

Returns
The number of vehicles that have entered the simulation so far

Definition at line 265 of file MSVehicleControl.h.

References myDiscarded, myEndedVehNo, and myRunningVehNo.

Referenced by MSNet::generateStatistics(), GUINet::getParameterWindow(), MSNet::postSimStepOutput(), and MSNet::writeOutput().

◆ getDiscardedVehicleNo()

int MSVehicleControl::getDiscardedVehicleNo ( ) const
inline

Returns the number of discarded vehicles.

Returns
The number of vehicles that could not be inserted and were permantently discarded

Definition at line 249 of file MSVehicleControl.h.

References myDiscarded.

Referenced by GUINet::getParameterWindow().

◆ getEmergencyStops()

int MSVehicleControl::getEmergencyStops ( ) const
inline

return the number of emergency stops

Definition at line 312 of file MSVehicleControl.h.

References myEmergencyStops.

Referenced by MSNet::generateStatistics().

◆ getEndedVehicleNo()

int MSVehicleControl::getEndedVehicleNo ( ) const
inline

Returns the number of removed vehicles.

Returns
The number of vehicles that have left the simulation

Definition at line 235 of file MSVehicleControl.h.

References myEndedVehNo.

Referenced by MSNet::writeOutput().

◆ getHaltingVehicleNo()

int MSVehicleControl::getHaltingVehicleNo ( ) const
virtual

Returns the number of halting vehicles.

Returns
The number of halting vehicles

Reimplemented in GUIVehicleControl.

Definition at line 402 of file MSVehicleControl.cpp.

References SUMOTrafficObject::getSpeed(), SUMOVehicle::isOnRoad(), SUMOVehicle::isRemoteControlled(), loadedVehBegin(), loadedVehEnd(), and SUMO_const_haltingSpeed.

Referenced by GUIVehicleControl::getHaltingVehicleNo(), GUINet::getParameterWindow(), and MSNet::writeOutput().

◆ getLoadedVehicleNo()

int MSVehicleControl::getLoadedVehicleNo ( ) const
inline

Returns the number of build vehicles.

Returns
The number of loaded (build) vehicles

Definition at line 213 of file MSVehicleControl.h.

References myLoadedVehNo.

Referenced by MSNet::generateStatistics(), GUINet::getParameterWindow(), and MSNet::writeOutput().

◆ getMaxSpeedFactor()

double MSVehicleControl::getMaxSpeedFactor ( ) const
inline

return the maximum speed factor for all vehicles that ever entered the network

Definition at line 488 of file MSVehicleControl.h.

References myMaxSpeedFactor.

Referenced by MSLane::getMaximumBrakeDist().

◆ getMinDeceleration()

double MSVehicleControl::getMinDeceleration ( ) const
inline

return the minimum deceleration capability for all vehicles that ever entered the network

Definition at line 493 of file MSVehicleControl.h.

References myMinDeceleration.

Referenced by MSLane::getMaximumBrakeDist().

◆ getQuota()

int MSVehicleControl::getQuota ( double  frac = -1) const

Returns the number of instances of the current vehicle that shall be emitted considering that "frac" of all vehicles shall be emitted overall if a negative fraction is given the demand scaling factor is used (–scale)

Returns
the number of vehicles to create (something between 0 and ceil(frac))

Definition at line 437 of file MSVehicleControl.cpp.

References myLoadedVehNo, and myScale.

Referenced by MSRouteHandler::closeVehicle(), MSInsertionControl::determineCandidates(), and MSDevice::equippedByDefaultAssignmentOptions().

◆ getRunningVehicleNo()

int MSVehicleControl::getRunningVehicleNo ( ) const
inline

Returns the number of build and inserted, but not yet deleted vehicles.

Returns
The number simulated vehicles (including those in teleporter)

Definition at line 257 of file MSVehicleControl.h.

References myRunningVehNo.

Referenced by MSNet::generateStatistics(), GUINet::getParameterWindow(), GUIApplicationWindow::handleEvent_SimulationStep(), MSNet::postSimStepOutput(), GUINet::setSimDuration(), MSNet::simulationStep(), and MSNet::writeOutput().

◆ getTeleportCount()

int MSVehicleControl::getTeleportCount ( ) const

◆ getTeleportsJam()

int MSVehicleControl::getTeleportsJam ( ) const
inline

return the number of teleports due to jamming

Definition at line 294 of file MSVehicleControl.h.

References myTeleportsJam.

Referenced by MSNet::generateStatistics().

◆ getTeleportsWrongLane()

int MSVehicleControl::getTeleportsWrongLane ( ) const
inline

return the number of teleports due to vehicles stuck on the wrong lane

Definition at line 304 of file MSVehicleControl.h.

References myTeleportsWrongLane.

Referenced by MSNet::generateStatistics().

◆ getTeleportsYield()

int MSVehicleControl::getTeleportsYield ( ) const
inline

return the number of teleports due to vehicles stuck on a minor road

Definition at line 299 of file MSVehicleControl.h.

References myTeleportsYield.

Referenced by MSNet::generateStatistics().

◆ getTotalDepartureDelay()

double MSVehicleControl::getTotalDepartureDelay ( ) const
inline

Returns the total departure delay.

Returns
Sum of steps vehicles had to wait until being inserted

Definition at line 319 of file MSVehicleControl.h.

References myTotalDepartureDelay.

Referenced by MSNet::writeOutput().

◆ getTotalTravelTime()

double MSVehicleControl::getTotalTravelTime ( ) const
inline

Returns the total travel time.

Returns
Sum of travel times of arrived vehicles

Definition at line 327 of file MSVehicleControl.h.

References myTotalTravelTime.

Referenced by MSNet::writeOutput().

◆ getVehicle()

◆ getVehicleMeanSpeed()

double MSVehicleControl::getVehicleMeanSpeed ( ) const
inline

Definition at line 225 of file MSVehicleControl.h.

References getVehicleMeanSpeeds().

Referenced by GUINet::getParameterWindow().

◆ getVehicleMeanSpeedRelative()

double MSVehicleControl::getVehicleMeanSpeedRelative ( ) const
inline

Definition at line 228 of file MSVehicleControl.h.

References getVehicleMeanSpeeds().

Referenced by GUINet::getParameterWindow().

◆ getVehicleMeanSpeeds()

std::pair< double, double > MSVehicleControl::getVehicleMeanSpeeds ( ) const
virtual

◆ getVType()

MSVehicleType * MSVehicleControl::getVType ( const std::string &  id = DEFAULT_VTYPE_ID,
std::mt19937 *  rng = nullptr 
)

◆ getVTypeDistributionMembership()

const std::set< std::string > MSVehicleControl::getVTypeDistributionMembership ( const std::string &  id) const

Return the distribution IDs the vehicle type is a member of.

Parameters
[in]vehTypeThe vehicle type to look for membership in distributions

Definition at line 384 of file MSVehicleControl.cpp.

References myVTypeToDist.

Referenced by MSDevice_ToC::MSDevice_ToC(), MSDetectorFileOutput::vehicleApplies(), and MSTriggeredRerouter::vehicleApplies().

◆ hasVType()

bool MSVehicleControl::hasVType ( const std::string &  id) const

Asks for existence of a vehicle type.

If vehicle type or distribution with the id exists, true is returned, false otherwise.

Parameters
[in]idThe id of the type or distribution
Returns
Whether the vehicle type or distribution exists

Definition at line 341 of file MSVehicleControl.cpp.

References myVTypeDict, and myVTypeDistDict.

Referenced by libsumo::Simulation::findIntermodalRoute(), and MSDevice_ToC::MSDevice_ToC().

◆ hasVTypeDistribution()

bool MSVehicleControl::hasVTypeDistribution ( const std::string &  id) const

Asks for a vehicle type distribution.

If vehicle type distribution with the id exists, true is returned, false otherwise.

Parameters
[in]idThe id of the distribution
Returns
Whether the vehicle type distribution exists

Definition at line 347 of file MSVehicleControl.cpp.

References myVTypeDistDict.

Referenced by MSDevice_ToC::MSDevice_ToC().

◆ insertVTypeIDs()

void MSVehicleControl::insertVTypeIDs ( std::vector< std::string > &  into) const

Inserts ids of all known vehicle types and vehicle type distributions to the given vector.

Parameters
[in]intoThe vector to fill with ids

Definition at line 372 of file MSVehicleControl.cpp.

References myVTypeDict, and myVTypeDistDict.

Referenced by libsumo::VehicleType::getIDList().

◆ isPendingRemoval()

bool MSVehicleControl::isPendingRemoval ( SUMOVehicle veh)
private

whether the given vehicle is scheduled for removal

Definition at line 126 of file MSVehicleControl.cpp.

References myPendingRemovals.

Referenced by scheduleVehicleRemoval().

◆ loadedVehBegin()

◆ loadedVehEnd()

◆ operator=()

MSVehicleControl& MSVehicleControl::operator= ( const MSVehicleControl s)
private

invalidated assignment operator

◆ registerCollision()

void MSVehicleControl::registerCollision ( )
inline

registers one collision-related teleport

Definition at line 435 of file MSVehicleControl.h.

References myCollisions.

Referenced by MSLane::detectCollisions(), MSLane::detectPedestrianJunctionCollision(), MSLane::executeMovements(), and MSLane::handleCollisionBetween().

◆ registerEmergencyStop()

void MSVehicleControl::registerEmergencyStop ( )
inline

register emergency stop

Definition at line 455 of file MSVehicleControl.h.

References myEmergencyStops.

Referenced by MSVehicle::executeMove().

◆ registerOneWaiting()

void MSVehicleControl::registerOneWaiting ( const bool  isPerson)
inline

increases the count of vehicles waiting for a transport to allow recognition of person / container related deadlocks

Definition at line 416 of file MSVehicleControl.h.

References myWaitingForContainer, and myWaitingForPerson.

Referenced by addVehicle(), and MSVehicle::processNextStop().

◆ registerTeleportJam()

void MSVehicleControl::registerTeleportJam ( )
inline

register one non-collision-related teleport

Definition at line 440 of file MSVehicleControl.h.

References myTeleportsJam.

Referenced by MSLane::executeMovements(), and MELoop::teleportVehicle().

◆ registerTeleportWrongLane()

void MSVehicleControl::registerTeleportWrongLane ( )
inline

register one non-collision-related teleport

Definition at line 450 of file MSVehicleControl.h.

References myTeleportsWrongLane.

Referenced by MSLane::executeMovements().

◆ registerTeleportYield()

void MSVehicleControl::registerTeleportYield ( )
inline

register one non-collision-related teleport

Definition at line 445 of file MSVehicleControl.h.

References myTeleportsYield.

Referenced by MSLane::executeMovements().

◆ removePending()

void MSVehicleControl::removePending ( )

Removes a vehicle after it has ended.

Writes output to tripinfos and vehroutes if wished; decrements the number of running vehicles and increments the number of ended vehicles. Then deletes the vehicle using "deleteVehicle".

This method should be called for each vehicle that was inserted into the network and quits its ride.

Parameters
[in]vehThe vehicle to remove

Definition at line 135 of file MSVehicleControl.cpp.

References OutputDevice::closeTag(), deleteVehicle(), OutputDevice::flush(), OutputDevice::getDeviceByOption(), MSNet::getInstance(), OptionsCont::getOptions(), MSNet::informVehicleStateListener(), OptionsCont::isSet(), myPendingRemovals, myRunningVehNo, myTotalTravelTime, STEPS2TIME, and MSNet::VEHICLE_STATE_ARRIVED.

Referenced by MSEdgeControl::executeMovements(), and MSNet::simulationStep().

◆ removeVType()

◆ saveState()

◆ scheduleVehicleRemoval()

void MSVehicleControl::scheduleVehicleRemoval ( SUMOVehicle veh,
bool  checkDuplicate = false 
)

Removes a vehicle after it has ended.

Writes output to tripinfos and vehroutes if wished; decrements the number of running vehicles and increments the number of ended vehicles. Then deletes the vehicle using "deleteVehicle".

This method should be called for each vehicle that was inserted into the network and quits its ride.

Parameters
[in]vehThe vehicle to remove

Definition at line 117 of file MSVehicleControl.cpp.

References isPendingRemoval(), myPendingRemovals, and myRunningVehNo.

Referenced by MSVehicleTransfer::add(), MELoop::changeSegment(), MSVehicleTransfer::checkInsertions(), MSLane::detectCollisions(), MSLane::executeMovements(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdRemoveObject(), MESegment::receive(), libsumo::Vehicle::remove(), and MSCalibrator::removePending().

◆ setScale()

void MSVehicleControl::setScale ( double  scale)
inline

sets the demand scaling factor

Definition at line 500 of file MSVehicleControl.h.

References myScale.

Referenced by GUIApplicationWindow::onCmdDemandScale().

◆ setState()

void MSVehicleControl::setState ( int  runningVehNo,
int  loadedVehNo,
int  endedVehNo,
double  totalDepartureDelay,
double  totalTravelTime 
)

Sets the current state variables as loaded from the stream.

Definition at line 181 of file MSVehicleControl.cpp.

References myEndedVehNo, myLoadedVehNo, myRunningVehNo, myTotalDepartureDelay, and myTotalTravelTime.

Referenced by MSStateHandler::myStartElement().

◆ unregisterOneWaiting()

void MSVehicleControl::unregisterOneWaiting ( const bool  isPerson)
inline

decreases the count of vehicles waiting for a transport to allow recognition of person / container related deadlocks

Definition at line 426 of file MSVehicleControl.h.

References myWaitingForContainer, and myWaitingForPerson.

Referenced by MSContainer::MSContainerStage_Driving::proceed(), MSPerson::MSPersonStage_Driving::proceed(), MSVehicle::processNextStop(), and MSVehicle::resumeFromStopping().

◆ vehicleDeparted()

void MSVehicleControl::vehicleDeparted ( const SUMOVehicle v)

Informs this control about a vehicle's departure.

If the mean waiting time shall be computed (f.e. for summary-output), the absolut waiting time is increased by the waiting time of the given vehicle.

Parameters
[in]vThe inserted vehicle

Definition at line 168 of file MSVehicleControl.cpp.

References SUMOVehicleParameter::depart, MSVehicleType::getCarFollowModel(), SUMOTrafficObject::getChosenSpeedFactor(), SUMOVehicle::getDeparture(), MSNet::getInstance(), MSCFModel::getMaxDecel(), SUMOVehicle::getParameter(), SUMOTrafficObject::getVClass(), SUMOTrafficObject::getVehicleType(), MSNet::informVehicleStateListener(), MAX2(), MIN2(), myMaxSpeedFactor, myMinDeceleration, myRunningVehNo, myTotalDepartureDelay, STEPFLOOR, STEPS2TIME, SVC_NON_ROAD, SVC_PEDESTRIAN, and MSNet::VEHICLE_STATE_DEPARTED.

Referenced by MSBaseVehicle::onDepart().

Field Documentation

◆ myCollisions

int MSVehicleControl::myCollisions
private

The number of collisions.

Definition at line 534 of file MSVehicleControl.h.

Referenced by getCollisionCount(), getTeleportCount(), and registerCollision().

◆ myDefaultBikeTypeMayBeDeleted

bool MSVehicleControl::myDefaultBikeTypeMayBeDeleted
private

Whether the default bicycle type was already used or can still be replaced.

Definition at line 597 of file MSVehicleControl.h.

Referenced by checkVType().

◆ myDefaultPedTypeMayBeDeleted

bool MSVehicleControl::myDefaultPedTypeMayBeDeleted
private

Whether the default pedestrian type was already used or can still be replaced.

Definition at line 594 of file MSVehicleControl.h.

Referenced by checkVType(), and getVType().

◆ myDefaultVTypeMayBeDeleted

bool MSVehicleControl::myDefaultVTypeMayBeDeleted
private

Whether the default vehicle type was already used or can still be replaced.

Definition at line 591 of file MSVehicleControl.h.

Referenced by checkVType(), and getVType().

◆ myDiscarded

int MSVehicleControl::myDiscarded
private

The number of vehicles which were discarded while loading.

Definition at line 531 of file MSVehicleControl.h.

Referenced by deleteVehicle(), discountStateLoaded(), getArrivedVehicleNo(), getDepartedVehicleNo(), and getDiscardedVehicleNo().

◆ myEmergencyStops

int MSVehicleControl::myEmergencyStops
private

The number of emergency stops.

Definition at line 546 of file MSVehicleControl.h.

Referenced by getEmergencyStops(), and registerEmergencyStop().

◆ myEndedVehNo

int MSVehicleControl::myEndedVehNo
private

◆ myLoadedVehNo

◆ myMaxSpeedFactor

double MSVehicleControl::myMaxSpeedFactor
private

The maximum speed factor for all vehicles in the network.

Definition at line 609 of file MSVehicleControl.h.

Referenced by getMaxSpeedFactor(), and vehicleDeparted().

◆ myMinDeceleration

double MSVehicleControl::myMinDeceleration
private

The minimum deceleration capability for all vehicles in the network.

Definition at line 612 of file MSVehicleControl.h.

Referenced by getMinDeceleration(), and vehicleDeparted().

◆ myPendingRemovals

std::vector<SUMOVehicle*> MSVehicleControl::myPendingRemovals
private

List of vehicles which are going to be removed.

Definition at line 621 of file MSVehicleControl.h.

Referenced by isPendingRemoval(), removePending(), and scheduleVehicleRemoval().

◆ myPTVehicles

std::vector<SUMOVehicle*> MSVehicleControl::myPTVehicles
private

List of vehicles which belong to public transport.

Definition at line 615 of file MSVehicleControl.h.

Referenced by adaptIntermodalRouter(), addVehicle(), and deleteVehicle().

◆ myRunningVehNo

int MSVehicleControl::myRunningVehNo
private

The number of vehicles within the network (build and inserted but not removed)

Definition at line 525 of file MSVehicleControl.h.

Referenced by discountStateLoaded(), getDepartedVehicleNo(), getRunningVehicleNo(), removePending(), saveState(), scheduleVehicleRemoval(), setState(), and vehicleDeparted().

◆ myScale

double MSVehicleControl::myScale
private

The scaling factor (especially for inc-dua)

Definition at line 606 of file MSVehicleControl.h.

Referenced by getQuota(), MSVehicleControl(), and setScale().

◆ myTeleportsJam

int MSVehicleControl::myTeleportsJam
private

The number of teleports due to jam.

Definition at line 537 of file MSVehicleControl.h.

Referenced by getTeleportCount(), getTeleportsJam(), and registerTeleportJam().

◆ myTeleportsWrongLane

int MSVehicleControl::myTeleportsWrongLane
private

The number of teleports due to vehicles stuck on the wrong lane.

Definition at line 543 of file MSVehicleControl.h.

Referenced by getTeleportCount(), getTeleportsWrongLane(), and registerTeleportWrongLane().

◆ myTeleportsYield

int MSVehicleControl::myTeleportsYield
private

The number of teleports due to vehicles stuck on a minor road.

Definition at line 540 of file MSVehicleControl.h.

Referenced by getTeleportCount(), getTeleportsYield(), and registerTeleportYield().

◆ myTotalDepartureDelay

double MSVehicleControl::myTotalDepartureDelay
private

The aggregated time vehicles had to wait for departure (in seconds)

Definition at line 555 of file MSVehicleControl.h.

Referenced by getTotalDepartureDelay(), saveState(), setState(), and vehicleDeparted().

◆ myTotalTravelTime

double MSVehicleControl::myTotalTravelTime
private

The aggregated time vehicles needed to aacomplish their route (in seconds)

Definition at line 558 of file MSVehicleControl.h.

Referenced by getTotalTravelTime(), removePending(), saveState(), and setState().

◆ myVehicleDict

◆ myVTypeDict

VTypeDictType MSVehicleControl::myVTypeDict
private

Dictionary of vehicle types.

Definition at line 580 of file MSVehicleControl.h.

Referenced by addVType(), checkVType(), getVType(), hasVType(), insertVTypeIDs(), MSVehicleControl(), removeVType(), saveState(), and ~MSVehicleControl().

◆ myVTypeDistDict

VTypeDistDictType MSVehicleControl::myVTypeDistDict
private

A distribution of vehicle types (probability->vehicle type)

Definition at line 585 of file MSVehicleControl.h.

Referenced by addVTypeDistribution(), checkVType(), getVType(), hasVType(), hasVTypeDistribution(), insertVTypeIDs(), saveState(), and ~MSVehicleControl().

◆ myVTypeToDist

std::map<std::string, std::set<std::string> > MSVehicleControl::myVTypeToDist
private

Inverse lookup from vehicle type to distributions it is a member of.

Definition at line 588 of file MSVehicleControl.h.

Referenced by addVTypeDistribution(), getVTypeDistributionMembership(), and removeVType().

◆ myWaitingForContainer

int MSVehicleControl::myWaitingForContainer
private

the number of vehicles wainting for containers contained in myWaiting which can only continue by being triggered

Definition at line 603 of file MSVehicleControl.h.

Referenced by getActiveVehicleCount(), registerOneWaiting(), and unregisterOneWaiting().

◆ myWaitingForPerson

int MSVehicleControl::myWaitingForPerson
private

the number of vehicles wainting for persons contained in myWaiting which can only continue by being triggered

Definition at line 600 of file MSVehicleControl.h.

Referenced by getActiveVehicleCount(), registerOneWaiting(), and unregisterOneWaiting().


The documentation for this class was generated from the following files: