Eclipse SUMO - Simulation of Urban MObility
GUIMEVehicleControl Class Reference

The class responsible for building and deletion of vehicles (gui-version) More...

#include <GUIMEVehicleControl.h>

Inheritance diagram for GUIMEVehicleControl:
Collaboration diagram for GUIMEVehicleControl:

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
 
bool addVehicle (const std::string &id, SUMOVehicle *v)
 Tries to insert the vehicle into the internal vehicle container. More...
 
void addWaiting (const MSEdge *const edge, SUMOVehicle *vehicle)
 Adds a vehicle to the list of waiting vehicles for the given edge. More...
 
void deleteVehicle (SUMOVehicle *v, bool discard=false)
 Deletes the vehicle. More...
 
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...
 
SUMOVehiclegetWaitingVehicle (MSTransportable *transportable, const MSEdge *const edge, const double position)
 
 GUIMEVehicleControl ()
 Constructor. More...
 
void insertVehicleIDs (std::vector< GUIGlID > &into)
 Returns the list of all known vehicles by gl-id. 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 releaseVehicles ()
 unlock access to vehicle removal/additions for thread synchronization More...
 
void removeWaiting (const MSEdge *const edge, const SUMOVehicle *vehicle)
 Removes a vehicle from the list of waiting vehicles for the given edge. More...
 
void secureVehicles ()
 lock access to vehicle removal/additions for thread synchronization 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...
 
 ~GUIMEVehicleControl ()
 Destructor. More...
 
Vehicle creation
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...
 
Insertion, deletion and retrieval of vehicles
SUMOVehiclegetVehicle (const std::string &id) const
 Returns the vehicle with the given id. 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...
 
Setting vehicle statistics
void vehicleDeparted (const SUMOVehicle &v)
 Informs this control about a vehicle's departure. 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...
 
Insertion and retrieval of vehicle types
bool addVType (MSVehicleType *vehType)
 Adds a vehicle type. More...
 
void removeVType (const MSVehicleType *vehType)
 
bool addVTypeDistribution (const std::string &id, RandomDistributor< MSVehicleType *> *vehTypeDistribution)
 Adds a vehicle type distribution. More...
 
bool hasVType (const std::string &id) const
 Asks for existence of a vehicle type. More...
 
bool hasVTypeDistribution (const std::string &id) const
 Asks for a vehicle type distribution. More...
 
MSVehicleTypegetVType (const std::string &id=DEFAULT_VTYPE_ID, std::mt19937 *rng=nullptr)
 Returns the named vehicle type or a sample from the named distribution. More...
 
void insertVTypeIDs (std::vector< std::string > &into) const
 Inserts ids of all known vehicle types and vehicle type distributions to the given vector. More...
 
const std::set< std::string > getVTypeDistributionMembership (const std::string &id) const
 Return the distribution IDs the vehicle type is a member of. More...
 
State I/O
void setState (int runningVehNo, int loadedVehNo, int endedVehNo, double totalDepartureDelay, double totalTravelTime)
 Sets the current state variables as loaded from the stream. More...
 
void saveState (OutputDevice &out)
 Saves the current state into the given stream. More...
 

Protected Attributes

Vehicle statistics (always accessible)
int myLoadedVehNo
 The number of build vehicles. More...
 

Private Member Functions

 GUIMEVehicleControl (const GUIMEVehicleControl &s)
 invalidated copy constructor More...
 
GUIMEVehicleControloperator= (const GUIMEVehicleControl &s)
 invalidated assignment operator More...
 

Private Attributes

FXMutex myLock
 The mutex used to avoid concurrent updates of the vehicle buffer. More...
 

Vehicle container

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

Detailed Description

The class responsible for building and deletion of vehicles (gui-version)

See also
MEVehicleControl

Definition at line 41 of file GUIMEVehicleControl.h.

Member Typedef Documentation

◆ constVehIt

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

Definition of the internal vehicles map iterator.

Definition at line 75 of file MSVehicleControl.h.

◆ VehicleDictType

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

Vehicle dictionary type.

Definition at line 579 of file MSVehicleControl.h.

Constructor & Destructor Documentation

◆ GUIMEVehicleControl() [1/2]

GUIMEVehicleControl::GUIMEVehicleControl ( )

Constructor.

Definition at line 35 of file GUIMEVehicleControl.cpp.

◆ ~GUIMEVehicleControl()

GUIMEVehicleControl::~GUIMEVehicleControl ( )

Destructor.

Definition at line 39 of file GUIMEVehicleControl.cpp.

References myLock.

◆ GUIMEVehicleControl() [2/2]

GUIMEVehicleControl::GUIMEVehicleControl ( const GUIMEVehicleControl s)
private

invalidated copy constructor

Member Function Documentation

◆ abortWaiting()

void MSVehicleControl::abortWaiting ( )
inherited

informes about all waiting vehicles (deletion in destructor)

Definition at line 430 of file MSVehicleControl.cpp.

References MSVehicleControl::myVehicleDict, and WRITE_WARNING.

Referenced by MSVehicleControl::discountStateLoaded(), and MSNet::simulationState().

◆ adaptIntermodalRouter()

◆ addVehicle()

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

Tries to insert the vehicle into the internal vehicle container.

Identical to the MSVehicleControl implementation except for locking.

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 from MSVehicleControl.

Definition at line 61 of file GUIMEVehicleControl.cpp.

References MSVehicleControl::addVehicle(), and myLock.

◆ addVType()

bool MSVehicleControl::addVType ( MSVehicleType vehType)
inherited

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 296 of file MSVehicleControl.cpp.

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

Referenced by MSVehicleControl::getTotalTravelTime().

◆ addVTypeDistribution()

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

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 318 of file MSVehicleControl.cpp.

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

Referenced by MSVehicleControl::getTotalTravelTime().

◆ addWaiting()

void MSVehicleControl::addWaiting ( const MSEdge *const  edge,
SUMOVehicle vehicle 
)
inherited

Adds a vehicle to the list of waiting vehicles for the given edge.

Definition at line 389 of file MSVehicleControl.cpp.

References MSVehicleControl::myWaiting.

Referenced by MSVehicleControl::addVehicle(), MSVehicleControl::getTotalTravelTime(), MSVehicle::processNextStop(), and MESegment::receive().

◆ buildVehicle()

SUMOVehicle * GUIMEVehicleControl::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.

Instead of a MEVehicle, a GUIMEVehicle is built

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 (GUIVehicle instance)
See also
MSVehicleControl::buildVehicle

Reimplemented from MEVehicleControl.

Definition at line 48 of file GUIMEVehicleControl.cpp.

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

◆ deleteVehicle()

void GUIMEVehicleControl::deleteVehicle ( SUMOVehicle v,
bool  discard = false 
)
virtual

Deletes the vehicle.

Identical to the MSVehicleControl implementation except for locking.

Parameters
[in]vThe vehicle to delete

Reimplemented from MSVehicleControl.

Definition at line 68 of file GUIMEVehicleControl.cpp.

References MSVehicleControl::deleteVehicle(), and myLock.

◆ discountStateLoaded()

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

◆ getActiveVehicleCount()

int MSVehicleControl::getActiveVehicleCount ( ) const
inlineinherited

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 284 of file MSVehicleControl.h.

References MSVehicleControl::myEndedVehNo, MSVehicleControl::myLoadedVehNo, MSVehicleControl::myWaitingForContainer, and MSVehicleControl::myWaitingForPerson.

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

◆ getArrivedVehicleNo()

int MSVehicleControl::getArrivedVehicleNo ( ) const
inlineinherited

Returns the number of arrived vehicles.

Returns
The number of vehicles that have arrived at their destination

Definition at line 243 of file MSVehicleControl.h.

References MSVehicleControl::myDiscarded, and MSVehicleControl::myEndedVehNo.

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

◆ getCollisionCount()

int MSVehicleControl::getCollisionCount ( ) const
inlineinherited

◆ getDepartedVehicleNo()

int MSVehicleControl::getDepartedVehicleNo ( ) const
inlineinherited

Returns the number of inserted vehicles.

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

Definition at line 266 of file MSVehicleControl.h.

References MSVehicleControl::getQuota(), MSVehicleControl::myDiscarded, MSVehicleControl::myEndedVehNo, and MSVehicleControl::myRunningVehNo.

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

◆ getDiscardedVehicleNo()

int MSVehicleControl::getDiscardedVehicleNo ( ) const
inlineinherited

Returns the number of discarded vehicles.

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

Definition at line 250 of file MSVehicleControl.h.

References MSVehicleControl::myDiscarded.

Referenced by GUINet::getParameterWindow().

◆ getEmergencyStops()

int MSVehicleControl::getEmergencyStops ( ) const
inlineinherited

return the number of emergency stops

Definition at line 313 of file MSVehicleControl.h.

References MSVehicleControl::myEmergencyStops.

Referenced by MSNet::generateStatistics().

◆ getEndedVehicleNo()

int MSVehicleControl::getEndedVehicleNo ( ) const
inlineinherited

Returns the number of removed vehicles.

Returns
The number of vehicles that have left the simulation

Definition at line 236 of file MSVehicleControl.h.

References MSVehicleControl::myEndedVehNo.

Referenced by MSNet::writeOutput().

◆ getHaltingVehicleNo()

int MSVehicleControl::getHaltingVehicleNo ( ) const
virtualinherited

◆ getLoadedVehicleNo()

int MSVehicleControl::getLoadedVehicleNo ( ) const
inlineinherited

Returns the number of build vehicles.

Returns
The number of loaded (build) vehicles

Definition at line 214 of file MSVehicleControl.h.

References MSVehicleControl::getHaltingVehicleNo(), MSVehicleControl::getVehicleMeanSpeeds(), and MSVehicleControl::myLoadedVehNo.

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

◆ getMaxSpeedFactor()

double MSVehicleControl::getMaxSpeedFactor ( ) const
inlineinherited

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

Definition at line 503 of file MSVehicleControl.h.

References MSVehicleControl::myMaxSpeedFactor.

Referenced by MSLane::getMaximumBrakeDist().

◆ getMinDeceleration()

double MSVehicleControl::getMinDeceleration ( ) const
inlineinherited

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

Definition at line 508 of file MSVehicleControl.h.

References MSVehicleControl::adaptIntermodalRouter(), and MSVehicleControl::myMinDeceleration.

Referenced by MSLane::getMaximumBrakeDist().

◆ getQuota()

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

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 473 of file MSVehicleControl.cpp.

References MSVehicleControl::myLoadedVehNo, and MSVehicleControl::myScale.

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

◆ getRunningVehicleNo()

int MSVehicleControl::getRunningVehicleNo ( ) const
inlineinherited

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

Returns
The number simulated vehicles (including those in teleporter)

Definition at line 258 of file MSVehicleControl.h.

References MSVehicleControl::myRunningVehNo.

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

◆ getTeleportCount()

◆ getTeleportsJam()

int MSVehicleControl::getTeleportsJam ( ) const
inlineinherited

return the number of teleports due to jamming

Definition at line 295 of file MSVehicleControl.h.

References MSVehicleControl::myTeleportsJam.

Referenced by MSNet::generateStatistics().

◆ getTeleportsWrongLane()

int MSVehicleControl::getTeleportsWrongLane ( ) const
inlineinherited

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

Definition at line 305 of file MSVehicleControl.h.

References MSVehicleControl::getTeleportCount(), and MSVehicleControl::myTeleportsWrongLane.

Referenced by MSNet::generateStatistics().

◆ getTeleportsYield()

int MSVehicleControl::getTeleportsYield ( ) const
inlineinherited

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

Definition at line 300 of file MSVehicleControl.h.

References MSVehicleControl::myTeleportsYield.

Referenced by MSNet::generateStatistics().

◆ getTotalDepartureDelay()

double MSVehicleControl::getTotalDepartureDelay ( ) const
inlineinherited

Returns the total departure delay.

Returns
Sum of steps vehicles had to wait until being inserted

Definition at line 320 of file MSVehicleControl.h.

References MSVehicleControl::myTotalDepartureDelay.

Referenced by MSNet::writeOutput().

◆ getTotalTravelTime()

◆ getVehicle()

SUMOVehicle * MSVehicleControl::getVehicle ( const std::string &  id) const
inherited

◆ getVehicleMeanSpeed()

double MSVehicleControl::getVehicleMeanSpeed ( ) const
inlineinherited

Definition at line 226 of file MSVehicleControl.h.

References MSVehicleControl::getVehicleMeanSpeeds().

Referenced by GUINet::getParameterWindow().

◆ getVehicleMeanSpeedRelative()

double MSVehicleControl::getVehicleMeanSpeedRelative ( ) const
inlineinherited

Definition at line 229 of file MSVehicleControl.h.

References MSVehicleControl::getVehicleMeanSpeeds().

Referenced by GUINet::getParameterWindow().

◆ getVehicleMeanSpeeds()

◆ getVType()

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

Returns the named vehicle type or a sample from the named distribution.

Parameters
[in]idThe id of the vehicle type to return. If left out, the default type is returned.
Returns
The named vehicle type, or nullptr if no such type exists

Definition at line 348 of file MSVehicleControl.cpp.

References DEFAULT_PEDTYPE_ID, DEFAULT_VTYPE_ID, MSVehicleControl::myDefaultPedTypeMayBeDeleted, MSVehicleControl::myDefaultVTypeMayBeDeleted, MSVehicleControl::myVTypeDict, and MSVehicleControl::myVTypeDistDict.

Referenced by libsumo::Person::add(), libsumo::Vehicle::add(), MSRouteHandler::addPersonTrip(), MSRouteHandler::closeContainer(), MSRouteHandler::closePerson(), MSRouteHandler::closePersonFlow(), MSRouteHandler::closeVehicle(), MSInsertionControl::determineCandidates(), METriggeredCalibrator::execute(), MSCalibrator::execute(), libsumo::Simulation::findIntermodalRoute(), libsumo::Simulation::findRoute(), MSVehicleControl::getTotalTravelTime(), libsumo::VehicleType::getVType(), MSDevice_ToC::initColorScheme(), MSDevice_ToC::MSDevice_ToC(), MSRouteHandler::myStartElement(), MSCalibrator::myStartElement(), MSDevice_Bluelight::notifyMove(), MSRouteHandler::openVehicleTypeDistribution(), METriggeredCalibrator::remainingVehicleCapacity(), MSCalibrator::remainingVehicleCapacity(), MSTransportable::Stage_Trip::setArrived(), MSDevice_ToC::setParameter(), libsumo::Person::setType(), libsumo::Vehicle::setType(), MSDevice_ToC::switchHolderType(), and MSMeanData_Emissions::MSLaneMeanDataValues::write().

◆ getVTypeDistributionMembership()

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

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 379 of file MSVehicleControl.cpp.

References MSVehicleControl::myVTypeToDist.

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

◆ getWaitingVehicle()

◆ hasVType()

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

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 336 of file MSVehicleControl.cpp.

References MSVehicleControl::myVTypeDict, and MSVehicleControl::myVTypeDistDict.

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

◆ hasVTypeDistribution()

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

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 342 of file MSVehicleControl.cpp.

References MSVehicleControl::myVTypeDistDict.

Referenced by MSVehicleControl::getTotalTravelTime(), and MSDevice_ToC::MSDevice_ToC().

◆ insertVehicleIDs()

void GUIMEVehicleControl::insertVehicleIDs ( std::vector< GUIGlID > &  into)

Returns the list of all known vehicles by gl-id.

Parameters

Definition at line 75 of file GUIMEVehicleControl.cpp.

References SUMOVehicle::isOnRoad(), myLock, and MSVehicleControl::myVehicleDict.

◆ insertVTypeIDs()

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

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 367 of file MSVehicleControl.cpp.

References MSVehicleControl::myVTypeDict, and MSVehicleControl::myVTypeDistDict.

Referenced by libsumo::VehicleType::getIDList(), and MSVehicleControl::getTotalTravelTime().

◆ loadedVehBegin()

◆ loadedVehEnd()

◆ operator=()

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

invalidated assignment operator

◆ registerCollision()

void MSVehicleControl::registerCollision ( )
inlineinherited

◆ registerEmergencyStop()

void MSVehicleControl::registerEmergencyStop ( )
inlineinherited

register emergency stop

Definition at line 470 of file MSVehicleControl.h.

References MSVehicleControl::myEmergencyStops, MSVehicleControl::saveState(), and MSVehicleControl::setState().

Referenced by MSVehicle::executeMove().

◆ registerOneWaiting()

void MSVehicleControl::registerOneWaiting ( const bool  isPerson)
inlineinherited

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

Definition at line 431 of file MSVehicleControl.h.

References MSVehicleControl::myWaitingForContainer, and MSVehicleControl::myWaitingForPerson.

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

◆ registerTeleportJam()

void MSVehicleControl::registerTeleportJam ( )
inlineinherited

register one non-collision-related teleport

Definition at line 455 of file MSVehicleControl.h.

References MSVehicleControl::myTeleportsJam.

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

◆ registerTeleportWrongLane()

void MSVehicleControl::registerTeleportWrongLane ( )
inlineinherited

register one non-collision-related teleport

Definition at line 465 of file MSVehicleControl.h.

References MSVehicleControl::myTeleportsWrongLane.

Referenced by MSLane::executeMovements().

◆ registerTeleportYield()

void MSVehicleControl::registerTeleportYield ( )
inlineinherited

register one non-collision-related teleport

Definition at line 460 of file MSVehicleControl.h.

References MSVehicleControl::myTeleportsYield.

Referenced by MSLane::executeMovements().

◆ releaseVehicles()

void GUIMEVehicleControl::releaseVehicles ( )

unlock access to vehicle removal/additions for thread synchronization

Definition at line 95 of file GUIMEVehicleControl.cpp.

References myLock.

Referenced by GUIEdge::drawMesoVehicles().

◆ removePending()

void MSVehicleControl::removePending ( )
inherited

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 130 of file MSVehicleControl.cpp.

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

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

◆ removeVType()

◆ removeWaiting()

void MSVehicleControl::removeWaiting ( const MSEdge *const  edge,
const SUMOVehicle vehicle 
)
inherited

◆ saveState()

◆ scheduleVehicleRemoval()

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

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 115 of file MSVehicleControl.cpp.

References HAVE_FOX, MSVehicleControl::myPendingRemovals, and MSVehicleControl::myRunningVehNo.

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

◆ secureVehicles()

void GUIMEVehicleControl::secureVehicles ( )

lock access to vehicle removal/additions for thread synchronization

Definition at line 89 of file GUIMEVehicleControl.cpp.

References myLock.

Referenced by GUIEdge::drawMesoVehicles().

◆ setScale()

void MSVehicleControl::setScale ( double  scale)
inlineinherited

sets the demand scaling factor

Definition at line 515 of file MSVehicleControl.h.

References MSVehicleControl::checkVType(), and MSVehicleControl::myScale.

Referenced by GUIApplicationWindow::onCmdDemandScale().

◆ setState()

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

◆ unregisterOneWaiting()

void MSVehicleControl::unregisterOneWaiting ( const bool  isPerson)
inlineinherited

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

Definition at line 441 of file MSVehicleControl.h.

References MSVehicleControl::myWaitingForContainer, and MSVehicleControl::myWaitingForPerson.

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

◆ vehicleDeparted()

void MSVehicleControl::vehicleDeparted ( const SUMOVehicle v)
inherited

Field Documentation

◆ myLoadedVehNo

◆ myLock

FXMutex GUIMEVehicleControl::myLock
mutableprivate

The mutex used to avoid concurrent updates of the vehicle buffer.

Definition at line 104 of file GUIMEVehicleControl.h.

Referenced by addVehicle(), deleteVehicle(), insertVehicleIDs(), releaseVehicles(), secureVehicles(), and ~GUIMEVehicleControl().

◆ myVehicleDict


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