Eclipse SUMO - Simulation of Urban MObility
MSVehicle Class Reference

Representation of a vehicle in the micro simulation. More...

#include <MSVehicle.h>

Inheritance diagram for MSVehicle:
Collaboration diagram for MSVehicle:

Data Structures

struct  DriveProcessItem
 Drive process items represent bounds on the safe velocity corresponding to the upcoming links. More...
 
class  Influencer
 Changes the wished vehicle speed / lanes. More...
 
struct  LaneQ
 A structure representing the best lanes for continuing the current route starting at 'lane'. More...
 
class  Manoeuvre
 Container for manouevering time associated with stopping. More...
 
class  State
 Container that holds the vehicles driving state (position+speed). More...
 
class  Stop
 Definition of vehicle stop (position and duration) More...
 
class  WaitingTimeCollector
 Stores the waiting intervals over the previous seconds (memory is to be specified in ms.). More...
 

Public Types

enum  ChangeRequest { REQUEST_NONE, REQUEST_LEFT, REQUEST_RIGHT, REQUEST_HOLD }
 Requests set via TraCI. More...
 
enum  ManoeuvreType { MANOEUVRE_ENTRY, MANOEUVRE_EXIT, MANOEUVRE_NONE }
 flag identifying which, if any, manoeuvre is in progress More...
 
typedef long long int NumericalID
 

Public Member Functions

void addReminder (MSMoveReminder *rem)
 Adds a MoveReminder dynamically. More...
 
bool addTraciStop (MSLane *const lane, const double startPos, const double endPos, const SUMOTime duration, const SUMOTime until, const bool parking, const bool triggered, const bool containerTriggered, std::string &errorMsg)
 
bool addTraciStopAtStoppingPlace (const std::string &stopId, const SUMOTime duration, const SUMOTime until, const bool parking, const bool triggered, const bool containerTriggered, const SumoXMLTag stoppingPlaceType, std::string &errorMsg)
 
double basePos (const MSEdge *edge) const
 departure position where the vehicle fits fully onto the edge (if possible) More...
 
void createDevice (const std::string &deviceName)
 create device of the given type More...
 
void fixPosition ()
 repair errors in vehicle position after changing between internal edges More...
 
virtual double getArrivalPos () const
 Returns this vehicle's desired arrivalPos for its current route (may change on reroute) More...
 
const Position getBackPosition () const
 
PositionVector getBoundingBox () const
 get bounding rectangle More...
 
PositionVector getBoundingPoly () const
 get bounding polygon More...
 
const MSCFModelgetCarFollowModel () const
 Returns the vehicle's car following model definition. More...
 
MSCFModel::VehicleVariablesgetCarFollowVariables () const
 Returns the vehicle's car following model variables. More...
 
double getChosenSpeedFactor () const
 Returns the precomputed factor by which the driver wants to be faster than the speed limit. More...
 
int getContainerNumber () const
 Returns the number of containers. More...
 
const std::vector< MSTransportable * > & getContainers () const
 retrieve riding containers More...
 
const MSRouteIteratorgetCurrentRouteEdge () const
 Returns an iterator pointing to the current edge in this vehicles route. More...
 
SUMOTime getDepartDelay () const
 Returns the depart delay. More...
 
double getDepartPos () const
 Returns this vehicle's real departure position. More...
 
SUMOTime getDeparture () const
 Returns this vehicle's real departure time. More...
 
MSVehicleDevicegetDevice (const std::type_info &type) const
 Returns a device of the given type if it exists or 0. More...
 
std::string getDeviceParameter (const std::string &deviceName, const std::string &key) const
 try to retrieve the given parameter from any of the vehicles devices, raise InvalidArgument if no device parameter by that name exists More...
 
const std::vector< MSVehicleDevice * > & getDevices () const
 Returns this vehicle's devices. More...
 
double getDistanceToPosition (double destPos, const MSEdge *destEdge) const
 
std::shared_ptr< MSSimpleDriverStategetDriverState () const
 Returns the vehicle driver's state. More...
 
const MSEdgegetEdge () const
 Returns the edge the vehicle is currently at. More...
 
const std::map< int, double > * getEmissionParameters () const
 Returns the vehicle's emission model parameter. More...
 
const std::string & getID () const
 Returns the name of the vehicle. More...
 
double getImpatience () const
 Returns this vehicles impatience. More...
 
InfluencergetInfluencer ()
 Returns the velocity/lane influencer. More...
 
const InfluencergetInfluencer () const
 
int getLaneIndex () const
 
std::pair< const MSVehicle *const, double > getLeader (double dist=0) const
 Returns the leader of the vehicle looking for a fixed distance. More...
 
double getLength () const
 Returns the vehicle's length. More...
 
MSVehicle::ManoeuvreType getManoeuvreType () const
 accessor function to myManoeuvre equivalent More...
 
double getMaxSpeed () const
 Returns the maximum speed. More...
 
std::list< StopgetMyStops ()
 
StopgetNextStop ()
 
int getNumberReroutes () const
 Returns the number of new routes this vehicle got. More...
 
double getOdometer () const
 Returns the distance that was already driven by this vehicle. More...
 
const SUMOVehicleParametergetParameter () const
 Returns the vehicle's parameter (including departure definition) More...
 
std::vector< std::string > getPersonIDList () const
 Returns the list of persons. More...
 
int getPersonNumber () const
 Returns the number of persons. More...
 
const std::vector< MSTransportable * > & getPersons () const
 retrieve riding persons More...
 
const MSRoutegetRoute () const
 Returns the current route. More...
 
int getRoutePosition () const
 return index of edge within route More...
 
double getSafeFollowSpeed (const std::pair< const MSVehicle *, double > leaderInfo, const double seen, const MSLane *const lane, double distToCrossing) const
 compute safe speed for following the given leader More...
 
MSVehicleTypegetSingularType ()
 Replaces the current vehicle type with a new one used by this vehicle only. More...
 
double getSpeedWithoutTraciInfluence () const
 Returns the uninfluenced velocity. More...
 
double getTimeGapOnLane () const
 Returns the time gap in seconds to the leader of the vehicle on the same lane. More...
 
SUMOVehicleClass getVClass () const
 Returns the vehicle's access class. More...
 
const MSVehicleTypegetVehicleType () const
 Returns the vehicle's type definition. More...
 
double getWidth () const
 Returns the vehicle's width. More...
 
bool hasDeparted () const
 Returns whether this vehicle has already departed. More...
 
bool hasDevice (const std::string &deviceName) const
 check whether the vehicle is equiped with a device of the given type More...
 
bool hasInfluencer () const
 
bool hasValidRoute (std::string &msg, const MSRoute *route=0) const
 Validates the current or given route. More...
 
int influenceChangeDecision (int state)
 allow TraCI to influence a lane change decision More...
 
bool isLeader (const MSLink *link, const MSVehicle *veh) const
 whether the given vehicle must be followed at the given junction More...
 
bool isVehicle () const
 Get the vehicle's ID. More...
 
bool manoeuvreIsComplete () const
 accessor function to myManoeuvre equivalent More...
 
 MSVehicle (SUMOVehicleParameter *pars, const MSRoute *route, MSVehicleType *type, const double speedFactor)
 Constructor. More...
 
void onDepart ()
 Called when the vehicle is inserted into the network. More...
 
bool passingMinor () const
 decide whether the vehicle is passing a minor link or has comitted to do so More...
 
double processNextStop (double currentVelocity)
 Processes stops, returns the velocity needed to reach the stop. More...
 
void removeReminder (MSMoveReminder *rem)
 Removes a MoveReminder dynamically. More...
 
void removeTransportable (MSTransportable *t)
 removes a person or container More...
 
void replaceParameter (const SUMOVehicleParameter *newParameter)
 replace the vehicle parameter (deleting the old one) More...
 
bool replaceRouteEdges (ConstMSEdgeVector &edges, double cost, double savings, const std::string &info, bool onInit=false, bool check=false, bool removeStops=true)
 Replaces the current route by the given edges. More...
 
void replaceVehicleType (MSVehicleType *type)
 Replaces the current vehicle type by the one given. More...
 
void reroute (SUMOTime t, const std::string &info, SUMOAbstractRouter< MSEdge, SUMOVehicle > &router, const bool onInit=false, const bool withTaz=false, const bool silent=false)
 Performs a rerouting using the given router. More...
 
bool rerouteParkingArea (const std::string &parkingAreaID, std::string &errorMsg)
 
void resetRoutePosition (int index, DepartLaneDefinition departLaneProcedure)
 reset index of edge within route More...
 
bool resumeFromStopping ()
 
virtual void setArrivalPos (double arrivalPos)
 Sets this vehicle's desired arrivalPos for its current route. More...
 
void setChosenSpeedFactor (const double factor)
 Returns the precomputed factor by which the driver wants to be faster than the speed limit. More...
 
void setDeviceParameter (const std::string &deviceName, const std::string &key, const std::string &value)
 try to set the given parameter from any of the vehicles devices, raise InvalidArgument if no device parameter by that name exists More...
 
bool setExitManoeuvre ()
 accessor function to myManoeuvre equivalent More...
 
void setManoeuvreType (const MSVehicle::ManoeuvreType mType)
 accessor function to myManoeuvre equivalent More...
 
void setRemoteState (Position xyPos)
 sets position outside the road network More...
 
const MSEdgesuccEdge (int nSuccs) const
 Returns the nSuccs'th successor of edge the vehicle is currently at. More...
 
bool unsafeLinkAhead (const MSLane *lane) const
 whether the vehicle may safely move to the given lane with regard to upcoming links More...
 
double updateFurtherLanes (std::vector< MSLane * > &furtherLanes, std::vector< double > &furtherLanesPosLat, const std::vector< MSLane * > &passedLanes)
 update a vector of further lanes and return the new backPos More...
 
virtual ~MSVehicle ()
 Destructor. More...
 
insertion/removal
void onRemovalFromNet (const MSMoveReminder::Notification reason)
 Called when the vehicle is removed from the network. More...
 
interaction with the route
bool hasArrived () const
 Returns whether this vehicle has already arived (reached the arrivalPosition on its final edge) More...
 
bool replaceRoute (const MSRoute *route, const std::string &info, bool onInit=false, int offset=0, bool addStops=true, bool removeStops=true)
 Replaces the current route by the given one. More...
 
const MSEdgeWeightsStoragegetWeightsStorage () const
 Returns the vehicle's internal edge travel times/efforts container. More...
 
MSEdgeWeightsStoragegetWeightsStorage ()
 
state setter/getter
double getPositionOnLane () const
 Get the vehicle's position along the lane. More...
 
double getLastStepDist () const
 Get the distance the vehicle covered in the previous timestep. More...
 
double getPositionOnLane (const MSLane *lane) const
 Get the vehicle's front position relative to the given lane. More...
 
double getBackPositionOnLane (const MSLane *lane) const
 Get the vehicle's position relative to the given lane. More...
 
double getBackPositionOnLane () const
 Get the vehicle's position relative to its current lane. More...
 
double getLateralPositionOnLane () const
 Get the vehicle's lateral position on the lane. More...
 
void setLateralPositionOnLane (double posLat)
 
double getRightSideOnLane () const
 Get the vehicle's lateral position on the lane: More...
 
double lateralDistanceToLane (const int offset) const
 Get the minimal lateral distance required to move fully onto the lane at given offset. More...
 
double getLateralOverlap () const
 return the amount by which the vehicle extends laterally outside it's primary lane More...
 
double getLateralOverlap (double posLat) const
 
double getRightSideOnEdge (const MSLane *lane=0) const
 Get the vehicle's lateral position on the edge of the given lane (or its current edge if lane == 0) More...
 
double getCenterOnEdge (const MSLane *lane=0) const
 Get the vehicle's lateral position on the edge of the given lane (or its current edge if lane == 0) More...
 
double getLatOffset (const MSLane *lane) const
 Get the offset that that must be added to interpret myState.myPosLat for the given lane. More...
 
double getSpeed () const
 Returns the vehicle's current speed. More...
 
double getPreviousSpeed () const
 Returns the vehicle's speed before the previous time step. More...
 
double getAcceleration () const
 Returns the vehicle's acceleration in m/s (this is computed as the last step's mean acceleration in case that a stop occurs within the middle of the time-step) More...
 
double getCurrentApparentDecel () const
 get apparent deceleration based on vType parameters and current acceleration More...
 
SUMOTime getActionStepLength () const
 Returns the vehicle's action step length in millisecs, i.e. the interval between two action points. More...
 
double getActionStepLengthSecs () const
 Returns the vehicle's action step length in secs, i.e. the interval between two action points. More...
 
SUMOTime getLastActionTime () const
 Returns the time of the vehicle's last action point. More...
 
strategical/tactical lane choosing methods
const std::vector< LaneQ > & getBestLanes () const
 Returns the description of best lanes to use in order to continue the route. More...
 
void updateBestLanes (bool forceRebuild=false, const MSLane *startLane=0)
 computes the best lanes to use in order to continue the route More...
 
const std::vector< MSLane * > & getBestLanesContinuation () const
 Returns the best sequence of lanes to continue the route starting at myLane. More...
 
const std::vector< MSLane * > & getBestLanesContinuation (const MSLane *const l) const
 Returns the best sequence of lanes to continue the route starting at the given lane. More...
 
int getBestLaneOffset () const
 
void adaptBestLanesOccupation (int laneIndex, double density)
 update occupation from MSLaneChanger More...
 
vehicle stops definitions and i/o
bool addStop (const SUMOVehicleParameter::Stop &stopPar, std::string &errorMsg, SUMOTime untilOffset=0, bool collision=false, MSRouteIterator *searchStart=0)
 Adds a stop. More...
 
bool replaceParkingArea (MSParkingArea *parkingArea, std::string &errorMsg)
 replace the current parking area stop with a new stop with merge duration More...
 
MSParkingAreagetNextParkingArea ()
 get the upcoming parking area stop or nullptr More...
 
MSParkingAreagetCurrentParkingArea ()
 get the current parking area stop or nullptr More...
 
bool hasStops () const
 Returns whether the vehicle has to stop somewhere. More...
 
bool hasDriverState () const
 Whether this vehicle is equipped with a MSDriverState. More...
 
bool isStopped () const
 Returns whether the vehicle is at a stop. More...
 
SUMOTime remainingStopDuration () const
 Returns the remaining stop duration for a stopped vehicle or 0. More...
 
bool stopsAt (MSStoppingPlace *stop) const
 Returns whether the vehicle stops at the given stopping place. More...
 
bool stopsAtEdge (const MSEdge *edge) const
 Returns whether the vehicle stops at the given edge. More...
 
bool willStop () const
 Returns whether the vehicle will stop on the current edge. More...
 
bool isStoppedOnLane () const
 
bool keepStopping (bool afterProcessing=false) const
 Returns whether the vehicle is stopped and must continue to do so. More...
 
SUMOTime collisionStopTime () const
 Returns the remaining time a vehicle needs to stop due to a collision. A negative value indicates that the vehicle is not stopping due to a collision (or at all) More...
 
bool isParking () const
 Returns whether the vehicle is parking. More...
 
bool isRemoteControlled () const
 Returns the information whether the vehicle is fully controlled via TraCI. More...
 
bool wasRemoteControlled (SUMOTime lookBack=DELTA_T) const
 Returns the information whether the vehicle is fully controlled via TraCI within the lookBack time. More...
 
double nextStopDist () const
 return the distance to the next stop or doubleMax if there is none. More...
 
bool isStoppedTriggered () const
 Returns whether the vehicle is on a triggered stop. More...
 
bool isStoppedInRange (const double pos, const double tolerance) const
 return whether the given position is within range of the current stop More...
 
Emission retrieval
double getCO2Emissions () const
 Returns CO2 emission of the current state. More...
 
double getCOEmissions () const
 Returns CO emission of the current state. More...
 
double getHCEmissions () const
 Returns HC emission of the current state. More...
 
double getNOxEmissions () const
 Returns NOx emission of the current state. More...
 
double getPMxEmissions () const
 Returns PMx emission of the current state. More...
 
double getFuelConsumption () const
 Returns fuel consumption of the current state. More...
 
double getElectricityConsumption () const
 Returns electricity consumption of the current state. More...
 
double getHarmonoise_NoiseEmissions () const
 Returns noise emissions of the current state. More...
 
Interaction with persons
void addPerson (MSTransportable *person)
 Adds a passenger. More...
 
Interaction with containers
void addContainer (MSTransportable *container)
 Adds a container. More...
 

Static Public Member Functions

static int nextLinkPriority (const std::vector< MSLane * > &conts)
 get a numerical value for the priority of the upcoming link More...
 

Data Fields

Manoeuvre myManoeuvre
 

Protected Types

typedef std::vector< DriveProcessItemDriveItemVector
 Container for used Links/visited Lanes during planMove() and executeMove. More...
 

Protected Member Functions

void adaptToLeader (const std::pair< const MSVehicle *, double > leaderInfo, const double seen, DriveProcessItem *const lastLink, const MSLane *const lane, double &v, double &vLinkPass, double distToCrossing=-1) const
 
void adaptToLeaders (const MSLeaderInfo &ahead, double latOffset, const double seen, DriveProcessItem *const lastLink, const MSLane *const lane, double &v, double &vLinkPass) const
 
bool canReverse (double speedThreshold=SUMO_const_haltingSpeed) const
 whether the vehicle is a train that can reverse its direction at the current point in its route More...
 
void checkLinkLeader (const MSLink *link, const MSLane *lane, double seen, DriveProcessItem *const lastLink, double &v, double &vLinkPass, double &vLinkWait, bool &setRequest, bool isShadowLink=false) const
 checks for link leaders on the given link More...
 
void checkLinkLeaderCurrentAndParallel (const MSLink *link, const MSLane *lane, double seen, DriveProcessItem *const lastLink, double &v, double &vLinkPass, double &vLinkWait, bool &setRequest) const
 checks for link leaders of the current link as well as the parallel link (if there is one) More...
 
void checkRewindLinkLanes (const double lengthsInFront, DriveItemVector &lfLinks) const
 runs heuristic for keeping the intersection clear in case of downstream jamming More...
 
virtual void drawOutsideNetwork (bool)
 register vehicle for drawing while outside the network More...
 
double estimateLeaveSpeed (const MSLink *const link, const double vLinkPass) const
 estimate leaving speed when accelerating across a link More...
 
const MSLanegetBackLane () const
 
double getBrakeGap () const
 get distance for coming to a stop (used for rerouting checks) More...
 
const ConstMSEdgeVector getStopEdges (double &firstPos, double &lastPos) const
 Returns the list of still pending stop edges also returns the first and last stop position. More...
 
std::vector< std::pair< int, double > > getStopIndices () const
 return list of route indices for the remaining stops More...
 
bool haveValidStopEdges () const
 check whether all stop.edge MSRouteIterators are valid and in order More...
 
bool ignoreRed (const MSLink *link, bool canBrake) const
 decide whether a red (or yellow light) may be ignore More...
 
bool keepClear (const MSLink *link) const
 decide whether the given link must be kept clear More...
 
void planMoveInternal (const SUMOTime t, MSLeaderInfo ahead, DriveItemVector &lfLinks, double &myStopDist, std::pair< double, LinkDirection > &myNextTurn) const
 
void processLaneAdvances (std::vector< MSLane * > &passedLanes, bool &moved, std::string &emergencyReason)
 This method checks if the vehicle has advanced over one or several lanes along its route and triggers the corresponding actions for the lanes and the vehicle. and adapts the given in/out parameters to the appropriate values. More...
 
void processLinkApproaches (double &vSafe, double &vSafeMin, double &vSafeMinDist)
 This method iterates through the driveprocess items for the vehicle and adapts the given in/out parameters to the appropriate values. More...
 
double processTraCISpeedControl (double vSafe, double vNext)
 Check for speed advices from the traci client and adjust the speed vNext in the current (euler) / after the current (ballistic) simstep accordingly. More...
 
void removeApproachingInformation (const DriveItemVector &lfLinks) const
 unregister approach from all upcoming links More...
 
void removePassedDriveItems ()
 Erase passed drive items from myLFLinkLanes (and unregister approaching information for corresponding links). Further, myNextDriveItem is reset. More...
 
void setBlinkerInformation ()
 sets the blue flashing light for emergency vehicles More...
 
void setBrakingSignals (double vNext)
 sets the braking lights on/off More...
 
void setEmergencyBlueLight (SUMOTime currentTime)
 sets the blue flashing light for emergency vehicles More...
 
void updateOccupancyAndCurrentBestLane (const MSLane *startLane)
 updates LaneQ::nextOccupation and myCurrentLaneInBestLanes More...
 
void updateState (double vNext)
 updates the vehicles state, given a next value for its speed. This value can be negative in case of the ballistic update to indicate a stop within the next timestep. (You can call this a 'hack' to emulate reasoning based on accelerations: The assumed constant acceleration a within the next time step is then a = (vNext - vCurrent)/TS ) More...
 
void updateTimeLoss (double vNext)
 Updates the vehicle's time loss. More...
 
void updateWaitingTime (double vNext)
 Updates the vehicle's waiting time counters (accumulated and consecutive) More...
 
Position validatePosition (Position result, double offset=0) const
 ensure that a vehicle-relative position is not invalid More...
 

Protected Attributes

double myAcceleration
 The current acceleration after dawdling in m/s. More...
 
bool myActionStep
 The flag myActionStep indicates whether the current time step is an action point for the vehicle. More...
 
bool myAmOnNet
 Whether the vehicle is on the network (not parking, teleported, vaporized, or arrived) More...
 
bool myAmRegisteredAsWaitingForContainer
 Whether this vehicle is registered as waiting for a container (for deadlock-recognition) More...
 
bool myAmRegisteredAsWaitingForPerson
 Whether this vehicle is registered as waiting for a person (for deadlock-recognition) More...
 
double myAngle
 the angle in radians ( More...
 
int myArrivalLane
 The destination lane where the vehicle stops. More...
 
double myArrivalPos
 The position on the destination lane where the vehicle stops. More...
 
std::vector< std::vector< LaneQ > > myBestLanes
 
Position myCachedPosition
 
SUMOTime myCollisionImmunity
 amount of time for which the vehicle is immune from collisions More...
 
MSDevice_TransportablemyContainerDevice
 The containers this vehicle may have. More...
 
std::vector< LaneQ >::iterator myCurrentLaneInBestLanes
 
double myDepartPos
 The real depart position. More...
 
SUMOTime myDeparture
 The real departure time. More...
 
std::vector< MSVehicleDevice * > myDevices
 The devices this vehicle has. More...
 
MSDevice_DriverStatemyDriverState
 This vehicle's driver state. More...
 
std::vector< MSLane * > myFurtherLanes
 The information into which lanes the vehicle laps into. More...
 
std::vector< double > myFurtherLanesPosLat
 lateral positions on further lanes More...
 
bool myHaveToWaitOnNextLink
 
SUMOTime myJunctionConflictEntryTime
 
SUMOTime myJunctionEntryTime
 time at which the current junction was entered More...
 
SUMOTime myJunctionEntryTimeNeverYield
 
MSLanemyLane
 The lane the vehicle is on. More...
 
MSAbstractLaneChangeModelmyLaneChangeModel
 
SUMOTime myLastActionTime
 Action offset (actions are taken at time myActionOffset + N*getActionStepLength()) Initialized to 0, to be set at insertion. More...
 
const MSEdgemyLastBestLanesEdge
 
const MSLanemyLastBestLanesInternalLane
 
DriveItemVector myLFLinkLanes
 container for the planned speeds in the current step More...
 
DriveItemVector myLFLinkLanesPrev
 planned speeds from the previous step for un-registering from junctions after the new container is filled More...
 
DriveItemVector::iterator myNextDriveItem
 iterator pointing to the next item in myLFLinkLanes More...
 
std::pair< double, LinkDirectionmyNextTurn
 the upcoming turn for the vehicle More...
 
int myNumberReroutes
 The number of reroutings. More...
 
double myOdometer
 A simple odometer to keep track of the length of the route already driven. More...
 
MSDevice_TransportablemyPersonDevice
 The passengers this vehicle may have. More...
 
int mySignals
 State of things of the vehicle that can be on or off. More...
 
State myState
 This Vehicles driving state (pos and speed) More...
 
double myStopDist
 distance to the next stop or doubleMax if there is none More...
 
std::list< StopmyStops
 The vehicle's list of stops. More...
 
double myTimeLoss
 the time loss in seconds due to driving with less than maximum speed More...
 
SUMOTime myWaitingTime
 The time the vehicle waits (is not faster than 0.1m/s) in seconds. More...
 
WaitingTimeCollector myWaitingTimeCollector
 

Static Protected Attributes

static std::vector< MSLane * > myEmptyLaneVector
 
static std::vector< MSTransportable * > myEmptyTransportableVector
 
static const SUMOTime NOT_YET_DEPARTED = SUMOTime_MAX
 

Private Member Functions

MSEdgeWeightsStorage_getWeightsStorage () const
 
 MSVehicle ()
 invalidated default constructor More...
 
 MSVehicle (const MSVehicle &)
 invalidated copy constructor More...
 
MSVehicleoperator= (const MSVehicle &)
 invalidated assignment operator More...
 

Private Attributes

MSCFModel::VehicleVariablesmyCFVariables
 The per vehicle variables of the car following model. More...
 
MSEdgeWeightsStoragemyEdgeWeights
 
InfluencermyInfluencer
 An instance of a velocity/lane influencing instance; built in "getInfluencer". More...
 
const NumericalID myNumericalID
 

Static Private Attributes

static NumericalID myCurrentNumericalIndex = 0
 

Friends

class MSLaneChanger
 the lane changer sets myLastLaneChangeOffset More...
 
class MSLaneChangerSublane
 

state io

const SUMOVehicleParametermyParameter
 This vehicle's parameter. More...
 
const MSRoutemyRoute
 This vehicle's route. More...
 
MSVehicleTypemyType
 This vehicle's type. More...
 
MSRouteIterator myCurrEdge
 Iterator to current route-edge. More...
 
double myChosenSpeedFactor
 A precomputed factor by which the driver wants to be faster than the speed limit. More...
 
void addStops (const bool ignoreStopErrors)
 Adds stops to the built vehicle. More...
 
virtual bool isSelected () const
 whether this vehicle is selected in the GUI More...
 
int getRNGIndex () const
 
std::mt19937 * getRNG () const
 
NumericalID getNumericalID () const
 return the numerical ID which is only for internal usage More...
 
const MSDevice_TransportablegetPersonDevice () const
 
const MSDevice_TransportablegetContainerDevice () const
 
void calculateArrivalParams ()
 (Re-)Calculates the arrival position and lane from the vehicle parameters More...
 

Move reminder structures

typedef std::vector< std::pair< MSMoveReminder *, double > > MoveReminderCont
 Definition of a move reminder container. More...
 
MoveReminderCont myMoveReminders
 Currently relevant move reminders. More...
 

Interaction with move reminders

void workOnMoveReminders (double oldPos, double newPos, double newSpeed)
 Processes active move reminder. More...
 
bool checkActionStep (const SUMOTime t)
 Returns whether the vehicle is supposed to take action in the current simulation step Updates myActionStep and myLastActionTime in case that the current simstep is an action step. More...
 
void resetActionOffset (const SUMOTime timeUntilNextAction=0)
 Resets the action offset for the vehicle. More...
 
void updateActionOffset (const SUMOTime oldActionStepLength, const SUMOTime newActionStepLength)
 Process an updated action step length value (only affects the vehicle's action offset, The actionStepLength is stored in the (singular) vtype) More...
 
void planMove (const SUMOTime t, const MSLeaderInfo &ahead, const double lengthsInFront)
 Compute safe velocities for the upcoming lanes based on positions and speeds from the last time step. Also registers ApproachingVehicleInformation for all links. More...
 
void setApproachingForAllLinks (const SUMOTime t)
 Register junction approaches for all link items in the current plan. More...
 
bool executeMove ()
 Executes planned vehicle movements with regards to right-of-way. More...
 
double getDeltaPos (const double accel) const
 calculates the distance covered in the next integration step given an acceleration and assuming the current velocity. (gives different results for different integration methods, e.g., euler vs. ballistic) More...
 
void adaptLaneEntering2MoveReminder (const MSLane &enteredLane)
 Adapts the vehicle's entering of a new lane. More...
 

Other getter methods

double getSlope () const
 Returns the slope of the road at vehicle's position. More...
 
Position getPosition (const double offset=0) const
 Return current position (x/y, cartesian) More...
 
Position getPositionAlongBestLanes (double offset) const
 Return the (x,y)-position, which the vehicle would reach if it continued along its best continuation lanes from the current for a distance of offset m. More...
 
MSLanegetLane () const
 Returns the lane the vehicle is on. More...
 
double getMaxSpeedOnLane () const
 Returns the maximal speed for the vehicle on its current lane (including speed factor and deviation, i.e., not necessarily the allowed speed limit) More...
 
bool isOnRoad () const
 Returns the information whether the vehicle is on a road (is simulated) More...
 
bool isActive () const
 Returns whether the current simulation step is an action point for the vehicle. More...
 
bool isActionStep (SUMOTime t) const
 Returns whether the next simulation step will be an action point for the vehicle. More...
 
bool isFrontOnLane (const MSLane *lane) const
 Returns the information whether the front of the vehicle is on the given lane. More...
 
const MSEdgegetRerouteOrigin () const
 Returns the starting point for reroutes (usually the current edge) More...
 
SUMOTime getWaitingTime () const
 Returns the SUMOTime waited (speed was lesser than 0.1m/s) More...
 
SUMOTime getTimeLoss () const
 Returns the SUMOTime lost (speed was lesser maximum speed) More...
 
SUMOTime getAccumulatedWaitingTime () const
 Returns the SUMOTime waited (speed was lesser than 0.1m/s) within the last t millisecs. More...
 
double getWaitingSeconds () const
 Returns the number of seconds waited (speed was lesser than 0.1m/s) More...
 
double getAccumulatedWaitingSeconds () const
 Returns the number of seconds waited (speed was lesser than 0.1m/s) within the last millisecs. More...
 
double getTimeLossSeconds () const
 Returns the time loss in seconds. More...
 
double getAngle () const
 Returns the vehicle's direction in radians. More...
 
Position getVelocityVector () const
 Returns the vehicle's direction in radians. More...
 
double computeAngle () const
 compute the current vehicle angle More...
 
void setAngle (double angle, bool straightenFurther=false)
 Set a custom vehicle angle in rad, optionally updates furtherLanePosLat. More...
 
void setActionStepLength (double actionStepLength, bool resetActionOffset=true)
 Sets the action steplength of the vehicle. More...
 
bool congested () const
 
void activateReminders (const MSMoveReminder::Notification reason, const MSLane *enteredLane=0)
 "Activates" all current move reminder More...
 
bool enterLaneAtMove (MSLane *enteredLane, bool onTeleporting=false)
 Update when the vehicle enters a new lane in the move step. More...
 
void enterLaneAtInsertion (MSLane *enteredLane, double pos, double speed, double posLat, MSMoveReminder::Notification notification)
 Update when the vehicle enters a new lane in the emit step. More...
 
void setTentativeLaneAndPosition (MSLane *lane, double pos, double posLat=0)
 set tentative lane and position during insertion to ensure that all cfmodels work (some of them require veh->getLane() to return a valid lane) Once the vehicle is sucessfully inserted the lane is set again (see enterLaneAtInsertion) More...
 
void enterLaneAtLaneChange (MSLane *enteredLane)
 Update when the vehicle enters a new lane in the laneChange step. More...
 
void leaveLane (const MSMoveReminder::Notification reason, const MSLane *approachedLane=0)
 Update of members if vehicle leaves a new lane in the lane change step or at arrival. More...
 
void updateDriveItems ()
 Check whether the drive items (myLFLinkLanes) are up to date, and update them if required. More...
 
const std::pair< double, LinkDirection > & getNextTurn ()
 Get the distance and direction of the next upcoming turn for the vehicle (within its look-ahead range) More...
 
MSAbstractLaneChangeModelgetLaneChangeModel ()
 
const MSAbstractLaneChangeModelgetLaneChangeModel () const
 
const std::vector< MSLane * > & getFurtherLanes () const
 
const std::vector< double > & getFurtherLanesPosLat () const
 
bool onFurtherEdge (const MSEdge *edge) const
 whether this vehicle has its back (and no its front) on the given edge More...
 
static bool overlap (const MSVehicle *veh1, const MSVehicle *veh2)
 

Access to bool signals

enum  Signalling {
  VEH_SIGNAL_NONE = 0, VEH_SIGNAL_BLINKER_RIGHT = 1, VEH_SIGNAL_BLINKER_LEFT = 2, VEH_SIGNAL_BLINKER_EMERGENCY = 4,
  VEH_SIGNAL_BRAKELIGHT = 8, VEH_SIGNAL_FRONTLIGHT = 16, VEH_SIGNAL_FOGLIGHT = 32, VEH_SIGNAL_HIGHBEAM = 64,
  VEH_SIGNAL_BACKDRIVE = 128, VEH_SIGNAL_WIPER = 256, VEH_SIGNAL_DOOR_OPEN_LEFT = 512, VEH_SIGNAL_DOOR_OPEN_RIGHT = 1024,
  VEH_SIGNAL_EMERGENCY_BLUE = 2048, VEH_SIGNAL_EMERGENCY_RED = 4096, VEH_SIGNAL_EMERGENCY_YELLOW = 8192
}
 Some boolean values which describe the state of some vehicle parts. More...
 
enum  LaneChangeMode { LC_NEVER = 0, LC_NOCONFLICT = 1, LC_ALWAYS = 2 }
 modes for resolving conflicts between external control (traci) and vehicle control over lane changing. Each level of the lane-changing hierarchy (strategic, cooperative, speedGain, keepRight) can be controlled separately More...
 
enum  TraciLaneChangePriority { LCP_ALWAYS = 0, LCP_NOOVERLAP = 1, LCP_URGENT = 2, LCP_OPPORTUNISTIC = 3 }
 modes for prioritizing traci lane change requests More...
 
void switchOnSignal (int signal)
 Switches the given signal on. More...
 
void switchOffSignal (int signal)
 Switches the given signal off. More...
 
int getSignals () const
 Returns the signals. More...
 
bool signalSet (int which) const
 Returns whether the given signal is on. More...
 

state io

void saveState (OutputDevice &out)
 Saves the states of a vehicle. More...
 
void loadState (const SUMOSAXAttributes &attrs, const SUMOTime offset)
 Loads the state of this vehicle from the given description. More...
 
double getSpaceTillLastStanding (const MSLane *l, bool &foundStopped) const
 

Detailed Description

Representation of a vehicle in the micro simulation.

Definition at line 79 of file MSVehicle.h.

Member Typedef Documentation

◆ DriveItemVector

typedef std::vector< DriveProcessItem > MSVehicle::DriveItemVector
protected

Container for used Links/visited Lanes during planMove() and executeMove.

Definition at line 2069 of file MSVehicle.h.

◆ MoveReminderCont

typedef std::vector< std::pair<MSMoveReminder*, double> > MSBaseVehicle::MoveReminderCont
protectedinherited

Definition of a move reminder container.

Definition at line 535 of file MSBaseVehicle.h.

◆ NumericalID

typedef long long int SUMOVehicle::NumericalID
inherited

Definition at line 62 of file SUMOVehicle.h.

Member Enumeration Documentation

◆ ChangeRequest

Requests set via TraCI.

Enumerator
REQUEST_NONE 

vehicle doesn't want to change

REQUEST_LEFT 

vehicle want's to change to left lane

REQUEST_RIGHT 

vehicle want's to change to right lane

REQUEST_HOLD 

vehicle want's to keep the current lane

Definition at line 218 of file MSVehicle.h.

◆ LaneChangeMode

modes for resolving conflicts between external control (traci) and vehicle control over lane changing. Each level of the lane-changing hierarchy (strategic, cooperative, speedGain, keepRight) can be controlled separately

Enumerator
LC_NEVER 
LC_NOCONFLICT 
LC_ALWAYS 

Definition at line 1217 of file MSVehicle.h.

◆ ManoeuvreType

flag identifying which, if any, manoeuvre is in progress

Enumerator
MANOEUVRE_ENTRY 

Manoeuvre into stopping place.

MANOEUVRE_EXIT 

Manoeuvre out of stopping place.

MANOEUVRE_NONE 

not manouevring

Definition at line 1352 of file MSVehicle.h.

◆ Signalling

Some boolean values which describe the state of some vehicle parts.

Enumerator
VEH_SIGNAL_NONE 

Everything is switched off.

VEH_SIGNAL_BLINKER_RIGHT 

Right blinker lights are switched on.

VEH_SIGNAL_BLINKER_LEFT 

Left blinker lights are switched on.

VEH_SIGNAL_BLINKER_EMERGENCY 

Blinker lights on both sides are switched on.

VEH_SIGNAL_BRAKELIGHT 

The brake lights are on.

VEH_SIGNAL_FRONTLIGHT 

The front lights are on (no visualisation)

VEH_SIGNAL_FOGLIGHT 

The fog lights are on (no visualisation)

VEH_SIGNAL_HIGHBEAM 

The high beam lights are on (no visualisation)

VEH_SIGNAL_BACKDRIVE 

The backwards driving lights are on (no visualisation)

VEH_SIGNAL_WIPER 

The wipers are on.

VEH_SIGNAL_DOOR_OPEN_LEFT 

One of the left doors is opened.

VEH_SIGNAL_DOOR_OPEN_RIGHT 

One of the right doors is opened.

VEH_SIGNAL_EMERGENCY_BLUE 

A blue emergency light is on.

VEH_SIGNAL_EMERGENCY_RED 

A red emergency light is on.

VEH_SIGNAL_EMERGENCY_YELLOW 

A yellow emergency light is on.

Definition at line 1179 of file MSVehicle.h.

◆ TraciLaneChangePriority

modes for prioritizing traci lane change requests

Enumerator
LCP_ALWAYS 
LCP_NOOVERLAP 
LCP_URGENT 
LCP_OPPORTUNISTIC 

Definition at line 1225 of file MSVehicle.h.

Constructor & Destructor Documentation

◆ MSVehicle() [1/3]

MSVehicle::MSVehicle ( SUMOVehicleParameter pars,
const MSRoute route,
MSVehicleType type,
const double  speedFactor 
)

◆ ~MSVehicle()

◆ MSVehicle() [2/3]

MSVehicle::MSVehicle ( )
private

invalidated default constructor

◆ MSVehicle() [3/3]

MSVehicle::MSVehicle ( const MSVehicle )
private

invalidated copy constructor

Member Function Documentation

◆ _getWeightsStorage()

MSEdgeWeightsStorage & MSVehicle::_getWeightsStorage ( ) const
private

Definition at line 1197 of file MSVehicle.cpp.

References myEdgeWeights.

Referenced by getWeightsStorage().

◆ activateReminders()

void MSVehicle::activateReminders ( const MSMoveReminder::Notification  reason,
const MSLane enteredLane = 0 
)
virtual

"Activates" all current move reminder

For all move reminder stored in "myMoveReminders", their method "MSMoveReminder::notifyEnter" is called.

Parameters
[in]reasonThe reason for changing the reminders' states
[in]enteredLaneThe lane, which is entered (if applicable)
See also
MSMoveReminder
MSMoveReminder::notifyEnter
MSMoveReminder::Notification

Reimplemented from MSBaseVehicle.

Definition at line 4430 of file MSVehicle.cpp.

References MSBaseVehicle::myMoveReminders.

Referenced by enterLaneAtInsertion(), enterLaneAtLaneChange(), enterLaneAtMove(), and processNextStop().

◆ adaptBestLanesOccupation()

void MSVehicle::adaptBestLanesOccupation ( int  laneIndex,
double  density 
)

update occupation from MSLaneChanger

Definition at line 5097 of file MSVehicle.cpp.

References myBestLanes.

Referenced by MSLaneChangerSublane::change(), and MSLaneChanger::change().

◆ adaptLaneEntering2MoveReminder()

void MSVehicle::adaptLaneEntering2MoveReminder ( const MSLane enteredLane)
protected

Adapts the vehicle's entering of a new lane.

All offsets already stored in "myOldLaneMoveReminderOffsets" are increased by the length that has been left. All still active move reminders from "myMoveReminders" are put into "myOldLaneMoveReminders" and the offset to the last lane is added to "myOldLaneMoveReminderOffsets" for each of these.

Move reminder from the given lane are set into "myMoveReminders".

"myLane" must still be the left lane!

Parameters
[in]enteredLane
See also
MSMoveReminder
MSLane::getMoveReminder

Definition at line 1236 of file MSVehicle.cpp.

References MSBaseVehicle::addReminder(), MSLane::getLength(), MSLane::getMoveReminders(), myLane, and MSBaseVehicle::myMoveReminders.

Referenced by enterLaneAtMove().

◆ adaptToLeader()

void MSVehicle::adaptToLeader ( const std::pair< const MSVehicle *, double >  leaderInfo,
const double  seen,
DriveProcessItem *const  lastLink,
const MSLane *const  lane,
double &  v,
double &  vLinkPass,
double  distToCrossing = -1 
) const
protected

◆ adaptToLeaders()

void MSVehicle::adaptToLeaders ( const MSLeaderInfo ahead,
double  latOffset,
const double  seen,
DriveProcessItem *const  lastLink,
const MSLane *const  lane,
double &  v,
double &  vLinkPass 
) const
protected

◆ addContainer()

void MSVehicle::addContainer ( MSTransportable container)
virtual

Adds a container.

Parameters
[in]containerThe container to add

Reimplemented from MSBaseVehicle.

Definition at line 5227 of file MSVehicle.cpp.

References MSBaseVehicle::addContainer(), MSTransportable::getID(), and myStops.

◆ addPerson()

void MSVehicle::addPerson ( MSTransportable person)
virtual

Adds a passenger.

Parameters
[in]personThe person to add

Reimplemented from MSBaseVehicle.

Definition at line 5219 of file MSVehicle.cpp.

References MSBaseVehicle::addPerson(), MSTransportable::getID(), and myStops.

◆ addReminder()

void MSBaseVehicle::addReminder ( MSMoveReminder rem)
inherited

Adds a MoveReminder dynamically.

Parameters
[in]remthe reminder to add
See also
MSMoveReminder

Definition at line 463 of file MSBaseVehicle.cpp.

References MSBaseVehicle::myMoveReminders.

Referenced by adaptLaneEntering2MoveReminder(), MESegment::addReminders(), enterLaneAtInsertion(), enterLaneAtLaneChange(), and processNextStop().

◆ addStop()

bool MSVehicle::addStop ( const SUMOVehicleParameter::Stop stopPar,
std::string &  errorMsg,
SUMOTime  untilOffset = 0,
bool  collision = false,
MSRouteIterator searchStart = 0 
)
virtual

Adds a stop.

The stop is put into the sorted list.

Parameters
[in]stopThe stop to add
Returns
Whether the stop could be added

Implements SUMOVehicle.

Definition at line 1513 of file MSVehicle.cpp.

References ACCEL2SPEED, MSLane::allowsVehicleClass(), SUMOVehicleParameter::Stop::awaitedContainers, SUMOVehicleParameter::Stop::awaitedPersons, basePos(), MSCFModel::brakeGap(), SUMOVehicleParameter::Stop::busstop, MSVehicle::Stop::busstop, SUMOVehicleParameter::Stop::chargingStation, MSVehicle::Stop::chargingStation, MSVehicle::Stop::collision, SUMOVehicleParameter::Stop::containerstop, MSVehicle::Stop::containerstop, SUMOVehicleParameter::Stop::containerTriggered, MSVehicle::Stop::containerTriggered, DEPART_POS_BASE, DEPART_POS_DEFAULT, DEPART_POS_GIVEN, SUMOVehicleParameter::departPos, SUMOVehicleParameter::departPosProcedure, MSLane::dictionary(), SUMOVehicleParameter::Stop::duration, MSVehicle::Stop::duration, MSVehicle::Stop::edge, MSRoute::end(), SUMOVehicleParameter::Stop::endPos, getCarFollowModel(), MSLane::getEdge(), Named::getID(), MSNet::getInstance(), MSVehicleType::getLength(), MSBaseVehicle::getLength(), MSLane::getLength(), MSLane::getNextNormal(), MSEdge::getNormalBefore(), getSpeed(), MSNet::getStoppingPlace(), MSVehicleType::getVehicleClass(), MSBaseVehicle::hasDeparted(), SUMOVehicleParameter::id, SUMOVehicleParameter::Stop::index, Position::INVALID, MSEdge::isInternal(), SUMOVehicleParameter::Stop::lane, MSVehicle::Stop::lane, MSCFModel::maximumSafeStopSpeed(), MIN2(), myCachedPosition, MSBaseVehicle::myCurrEdge, MSBaseVehicle::myParameter, MSVehicle::State::myPos, MSBaseVehicle::myRoute, MSVehicle::State::mySpeed, myState, myStops, MSBaseVehicle::myType, MSVehicle::Stop::numExpectedContainer, MSVehicle::Stop::numExpectedPerson, SUMOVehicleParameter::Stop::parkingarea, MSVehicle::Stop::parkingarea, MSVehicle::Stop::pars, SUMOVehicleParameter::Stop::startPos, STOP_INDEX_END, STOP_INDEX_FIT, SUMO_TAG_BUS_STOP, SUMO_TAG_CHARGING_STATION, SUMO_TAG_CONTAINER_STOP, SUMO_TAG_PARKING_AREA, SUMOVehicleParameter::Stop::triggered, MSVehicle::Stop::triggered, SUMOVehicleParameter::Stop::until, and MSNet::warnOnce().

Referenced by addTraciStop(), addTraciStopAtStoppingPlace(), MSLane::handleCollisionBetween(), replaceRoute(), and GUIVehicle::rerouteDRTStop().

◆ addStops()

void MSBaseVehicle::addStops ( const bool  ignoreStopErrors)
inherited

Adds stops to the built vehicle.

This code needs to be separated from the MSBaseVehicle constructor since it is not allowed to call virtual functions from a constructor

Parameters
[in]ignoreStopErrorswhether invalid stops trigger a warning only

Definition at line 593 of file MSBaseVehicle.cpp.

References SUMOVehicle::addStop(), SUMOVehicleParameter::depart, MSRoute::getStops(), MSBaseVehicle::myParameter, MSBaseVehicle::myRoute, SUMOVehicleParameter::repetitionOffset, SUMOVehicleParameter::repetitionsDone, SUMOVehicleParameter::stops, and WRITE_WARNING.

Referenced by GUIMEVehicleControl::buildVehicle(), MEVehicleControl::buildVehicle(), GUIVehicleControl::buildVehicle(), MSVehicleControl::buildVehicle(), replaceRoute(), and MEVehicle::replaceRoute().

◆ addTraciStop()

bool MSVehicle::addTraciStop ( MSLane *const  lane,
const double  startPos,
const double  endPos,
const SUMOTime  duration,
const SUMOTime  until,
const bool  parking,
const bool  triggered,
const bool  containerTriggered,
std::string &  errorMsg 
)

schedule a new stop for the vehicle; each time a stop is reached, the vehicle will wait for the given duration before continuing on its route

Parameters
lanelane on wich to stop
startPosstart position on the given lane at wich to stop
endPosend position on the given lane at wich to stop
durationwaiting time duration
untiltime step at which the stop shall end
parkinga flag indicating whether the traci stop is used for parking or not
triggereda flag indicating whether the traci stop is triggered or not
containerTriggereda flag indicating whether the traci stop is triggered by a container or not

XXX handle stops added out of order

Definition at line 5700 of file MSVehicle.cpp.

References addStop(), SUMOVehicleParameter::Stop::containerTriggered, SUMOVehicleParameter::Stop::duration, SUMOVehicleParameter::Stop::endPos, Named::getID(), SUMOVehicleParameter::Stop::index, SUMOVehicleParameter::Stop::lane, myLane, MSBaseVehicle::myParameter, myStops, SUMOVehicleParameter::Stop::parametersSet, SUMOVehicleParameter::Stop::parking, POSITION_EPS, SUMOVehicleParameter::Stop::startPos, STOP_CONTAINER_TRIGGER_SET, STOP_DURATION_SET, STOP_END_SET, STOP_INDEX_FIT, STOP_PARKING_SET, STOP_START_SET, STOP_TRIGGER_SET, STOP_UNTIL_SET, SUMOVehicleParameter::stops, SUMOVehicleParameter::Stop::triggered, SUMOVehicleParameter::Stop::until, and updateBestLanes().

Referenced by libsumo::Vehicle::setStop().

◆ addTraciStopAtStoppingPlace()

bool MSVehicle::addTraciStopAtStoppingPlace ( const std::string &  stopId,
const SUMOTime  duration,
const SUMOTime  until,
const bool  parking,
const bool  triggered,
const bool  containerTriggered,
const SumoXMLTag  stoppingPlaceType,
std::string &  errorMsg 
)

schedule a new stop for the vehicle; each time a stop is reached, the vehicle will wait for the given duration before continuing on its route

Parameters
stopIdbus or container stop id
durationwaiting time duration
untiltime step at which the stop shall end
parkinga flag indicating whether the traci stop is used for parking or not
triggereda flag indicating whether the traci stop is triggered or not
containerTriggereda flag indicating whether the traci stop is triggered by a container or not
stoppingPlaceTypea flag indicating the type of stopping place

Definition at line 5759 of file MSVehicle.cpp.

References addStop(), SUMOVehicleParameter::Stop::busstop, SUMOVehicleParameter::Stop::chargingStation, SUMOVehicleParameter::Stop::containerstop, SUMOVehicleParameter::Stop::containerTriggered, SUMOVehicleParameter::Stop::duration, SUMOVehicleParameter::Stop::endPos, MSStoppingPlace::getBeginLanePosition(), MSStoppingPlace::getEndLanePosition(), Named::getID(), MSBaseVehicle::getID(), MSNet::getInstance(), MSStoppingPlace::getLane(), MSNet::getStoppingPlace(), SUMOVehicleParameter::Stop::index, SUMOVehicleParameter::Stop::lane, myLane, myStops, SUMOVehicleParameter::Stop::parametersSet, SUMOVehicleParameter::Stop::parking, SUMOVehicleParameter::Stop::parkingarea, SUMOVehicleParameter::Stop::startPos, STOP_CONTAINER_TRIGGER_SET, STOP_INDEX_FIT, STOP_PARKING_SET, STOP_TRIGGER_SET, SUMO_TAG_BUS_STOP, SUMO_TAG_CHARGING_STATION, SUMO_TAG_CONTAINER_STOP, SUMO_TAG_PARKING_AREA, toString(), SUMOVehicleParameter::Stop::triggered, SUMOVehicleParameter::Stop::until, and updateBestLanes().

Referenced by libsumo::Vehicle::setStop().

◆ basePos()

double MSVehicle::basePos ( const MSEdge edge) const

departure position where the vehicle fits fully onto the edge (if possible)

Definition at line 2099 of file MSVehicle.cpp.

References MSRoute::begin(), MSBaseVehicle::getLength(), MSEdge::getLength(), MSBaseVehicle::getVehicleType(), hasStops(), MAX2(), MIN2(), MSBaseVehicle::myRoute, myStops, and POSITION_EPS.

Referenced by addStop(), and MSLane::insertVehicle().

◆ calculateArrivalParams()

◆ canReverse()

bool MSVehicle::canReverse ( double  speedThreshold = SUMO_const_haltingSpeed) const
protected

◆ checkActionStep()

bool MSVehicle::checkActionStep ( const SUMOTime  t)

Returns whether the vehicle is supposed to take action in the current simulation step Updates myActionStep and myLastActionTime in case that the current simstep is an action step.

Parameters
[in]t

Definition at line 2111 of file MSVehicle.cpp.

References isActionStep(), myActionStep, and myLastActionTime.

Referenced by planMove(), and setApproachingForAllLinks().

◆ checkLinkLeader()

◆ checkLinkLeaderCurrentAndParallel()

void MSVehicle::checkLinkLeaderCurrentAndParallel ( const MSLink link,
const MSLane lane,
double  seen,
DriveProcessItem *const  lastLink,
double &  v,
double &  vLinkPass,
double &  vLinkWait,
bool &  setRequest 
) const
protected

checks for link leaders of the current link as well as the parallel link (if there is one)

Definition at line 2832 of file MSVehicle.cpp.

References checkLinkLeader(), getLaneChangeModel(), MSLink::getParallelLink(), and MSGlobals::gUsingInternalLanes.

Referenced by planMoveInternal().

◆ checkRewindLinkLanes()

void MSVehicle::checkRewindLinkLanes ( const double  lengthsInFront,
DriveItemVector lfLinks 
) const
protected

runs heuristic for keeping the intersection clear in case of downstream jamming

Definition at line 4175 of file MSVehicle.cpp.

References ACCEL2SPEED, MSVehicle::DriveProcessItem::availableSpace, MSCFModel::brakeGap(), DEBUG_COND, getBackPositionOnLane(), MSLane::getBruttoVehLenSum(), getCarFollowModel(), MSLane::getEdge(), MSCFModel::getHeadwayTime(), Named::getID(), MSBaseVehicle::getID(), Named::getIDSecure(), MSBaseVehicle::getImpatience(), MSLink::getLane(), getLaneChangeModel(), MSLane::getLastAnyVehicle(), getLateralPositionOnLane(), MSVehicle::DriveProcessItem::getLeaveSpeed(), MSVehicleType::getLength(), MSLane::getLength(), MSVehicleType::getLengthWithGap(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), MSVehicle::Influencer::getRespectJunctionPriority(), getSpaceTillLastStanding(), getSpeed(), MSBaseVehicle::getVehicleType(), MSLink::getViaLane(), MSLink::getViaLaneOrLane(), getWaitingTime(), MSGlobals::gUsingInternalLanes, MSVehicle::DriveProcessItem::hadStoppedVehicle, MSLink::havePriority(), MSLink::haveRed(), MSLink::isCont(), MSEdge::isInternal(), MSLink::isInternalJunctionLink(), MSAbstractLaneChangeModel::isOpposite(), MSEdge::isRoundabout(), isStopped(), keepClear(), MSVehicle::DriveProcessItem::myArrivalSpeed, MSVehicle::DriveProcessItem::myArrivalTime, myHaveToWaitOnNextLink, myInfluencer, myLane, MSVehicle::DriveProcessItem::myLink, MSVehicle::DriveProcessItem::mySetRequest, MSVehicle::State::mySpeed, myState, MSLink::opened(), signalSet(), SIMTIME, and VEH_SIGNAL_BRAKELIGHT.

Referenced by planMove().

◆ collisionStopTime()

SUMOTime MSVehicle::collisionStopTime ( ) const

Returns the remaining time a vehicle needs to stop due to a collision. A negative value indicates that the vehicle is not stopping due to a collision (or at all)

Definition at line 1774 of file MSVehicle.cpp.

References MAX2(), myCollisionImmunity, and myStops.

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

◆ computeAngle()

◆ congested()

bool MSVehicle::congested ( ) const
inline

Returns true if vehicle's speed is below 60km/h. This is only relevant on highways. Overtaking on the right is allowed then.

Definition at line 717 of file MSVehicle.h.

References MSVehicle::State::mySpeed, and myState.

Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::checkStrategicChange(), MSAbstractLaneChangeModel::congested(), MSLCM_LC2013::informFollower(), MSLCM_SL2015::informFollower(), MSLCM_LC2013::informLeader(), and MSLCM_SL2015::informLeader().

◆ createDevice()

◆ drawOutsideNetwork()

virtual void MSVehicle::drawOutsideNetwork ( bool  )
inlineprotectedvirtual

register vehicle for drawing while outside the network

Reimplemented in GUIVehicle.

Definition at line 1920 of file MSVehicle.h.

Referenced by MSVehicle::Influencer::postProcessRemoteControl().

◆ enterLaneAtInsertion()

void MSVehicle::enterLaneAtInsertion ( MSLane enteredLane,
double  pos,
double  speed,
double  posLat,
MSMoveReminder::Notification  notification 
)

◆ enterLaneAtLaneChange()

◆ enterLaneAtMove()

bool MSVehicle::enterLaneAtMove ( MSLane enteredLane,
bool  onTeleporting = false 
)

◆ estimateLeaveSpeed()

double MSVehicle::estimateLeaveSpeed ( const MSLink *const  link,
const double  vLinkPass 
) const
inlineprotected

◆ executeMove()

bool MSVehicle::executeMove ( )

Executes planned vehicle movements with regards to right-of-way.

This method goes through all DriveProcessItems in myLFLinkLanes in order to find a speed that is safe for all upcoming links.

Using this speed the position is updated and the vehicle is moved to the next lane (myLane is updated) if the end of the current lane is reached (this may happen multiple times in this method)

The vehicle also sets the lanes it is in-lapping into and informs them about it.

Returns
Whether the vehicle has moved to the next edge

Definition at line 3728 of file MSVehicle.cpp.

References ACCEL2SPEED, MSAbstractLaneChangeModel::changedToOpposite(), computeAngle(), DEBUG_COND, DELTA_T, MSCFModel::finalizeSpeed(), gDebugFlag1, getBackLane(), getCarFollowModel(), MSNet::getCurrentTimeStep(), MSLane::getEdge(), Named::getID(), MSBaseVehicle::getID(), MSNet::getInstance(), getLaneChangeModel(), getLateralOverlap(), getLateralPositionOnLane(), MSLane::getLength(), MSLane::getOpposite(), MSLane::getOppositePos(), getPositionOnLane(), getSpeed(), MSVehicleType::getVehicleClass(), MSNet::getVehicleControl(), MSGlobals::gLateralResolution, MSGlobals::gSemiImplicitEulerUpdate, hasArrived(), MSNet::informVehicleStateListener(), Position::INVALID, MSEdge::isVaporizing(), MAX2(), myAcceleration, myActionStep, myAngle, MSVehicle::State::myBackPos, myCachedPosition, myCollisionImmunity, myFurtherLanes, myFurtherLanesPosLat, myLane, MSVehicle::State::myLastCoveredDist, MSVehicle::State::myPos, MSVehicle::State::mySpeed, myState, MSBaseVehicle::myType, NUMERICAL_EPS_SPEED, POSITION_EPS, MSAbstractLaneChangeModel::prepareStep(), processLaneAdvances(), processLinkApproaches(), processTraCISpeedControl(), MSVehicleControl::registerEmergencyStop(), setBlinkerInformation(), setBrakingSignals(), setEmergencyBlueLight(), SIMTIME, SPEED2ACCEL, SVC_EMERGENCY, time2string(), toString(), updateBestLanes(), updateFurtherLanes(), MSAbstractLaneChangeModel::updateShadowLane(), updateState(), MSAbstractLaneChangeModel::updateTargetLane(), updateTimeLoss(), updateWaitingTime(), MSNet::VEHICLE_STATE_EMERGENCYSTOP, workOnMoveReminders(), and WRITE_WARNING.

Referenced by MSLane::executeMovements().

◆ fixPosition()

void MSVehicle::fixPosition ( )

repair errors in vehicle position after changing between internal edges

Definition at line 5105 of file MSVehicle.cpp.

References getLaneChangeModel(), MSGlobals::gLaneChangeDuration, MSVehicle::State::myPosLat, and myState.

Referenced by MSAbstractLaneChangeModel::endLaneChangeManeuver().

◆ getAcceleration()

◆ getAccumulatedWaitingSeconds()

double MSVehicle::getAccumulatedWaitingSeconds ( ) const
inline

Returns the number of seconds waited (speed was lesser than 0.1m/s) within the last millisecs.

Returns
The time the vehicle was standing within the last t millisecs

Definition at line 666 of file MSVehicle.h.

References getAccumulatedWaitingTime(), and STEPS2TIME.

Referenced by libsumo::Vehicle::getAccumulatedWaitingTime(), GUIVehicle::getColorValue(), GUIVehicle::getParameterWindow(), and keepClear().

◆ getAccumulatedWaitingTime()

SUMOTime MSVehicle::getAccumulatedWaitingTime ( ) const
inlinevirtual

Returns the SUMOTime waited (speed was lesser than 0.1m/s) within the last t millisecs.

Returns
The time the vehicle was standing within the configured memory interval

Implements SUMOVehicle.

Definition at line 646 of file MSVehicle.h.

References MSVehicle::WaitingTimeCollector::cumulatedWaitingTime(), MSGlobals::gWaitingTimeMemory, and myWaitingTimeCollector.

Referenced by getAccumulatedWaitingSeconds().

◆ getActionStepLength()

SUMOTime MSVehicle::getActionStepLength ( ) const
inline

Returns the vehicle's action step length in millisecs, i.e. the interval between two action points.

Returns
The current action step length in ms.

Definition at line 504 of file MSVehicle.h.

References MSVehicleType::getActionStepLength(), and MSBaseVehicle::myType.

Referenced by MSLaneChanger::checkChange(), MSLeaderInfo::getSubLanes(), isActionStep(), processNextStop(), setActionStepLength(), and MSLaneChangerSublane::startChangeSublane().

◆ getActionStepLengthSecs()

◆ getAngle()

double MSVehicle::getAngle ( ) const
inlinevirtual

◆ getArrivalPos()

virtual double MSBaseVehicle::getArrivalPos ( ) const
inlinevirtualinherited

Returns this vehicle's desired arrivalPos for its current route (may change on reroute)

Returns
This vehicle's real arrivalPos

Implements SUMOVehicle.

Definition at line 282 of file MSBaseVehicle.h.

References MSBaseVehicle::myArrivalPos.

Referenced by MSLCM_SL2015::_wantsChangeSublane(), MSLane::isInsertionSuccess(), and rerouteParkingArea().

◆ getBackLane()

const MSLane * MSVehicle::getBackLane ( ) const
protected

Definition at line 3976 of file MSVehicle.cpp.

References myFurtherLanes, and myLane.

Referenced by executeMove().

◆ getBackPosition()

◆ getBackPositionOnLane() [1/2]

double MSVehicle::getBackPositionOnLane ( ) const
inline

Get the vehicle's position relative to its current lane.

Returns
The back position of the vehicle (in m from the current lane's begin)

Definition at line 421 of file MSVehicle.h.

References myLane.

Referenced by getBackPosition(), and getPositionOnLane().

◆ getBackPositionOnLane() [2/2]

double MSVehicle::getBackPositionOnLane ( const MSLane lane) const
virtual

Get the vehicle's position relative to the given lane.

Returns
The back position of the vehicle (in m from the given lane's begin)
Note
It is assumed that this function is only called for a vehicle that has a relation to the lane which makes it 'directly' relevant for car-following behavior on that lane, i.e., either it occupies part of the lanes surface (regular or partial vehicle for the lane), or (for the sublane model) it issued a maneuver reservation for a lane change.

Implements SUMOTrafficObject.

Definition at line 4057 of file MSVehicle.cpp.

References DEBUG_COND, getFurtherLanes(), MSAbstractLaneChangeModel::getFurtherTargetLanes(), Named::getID(), MSBaseVehicle::getID(), Named::getIDSecure(), MSNet::getInstance(), getLaneChangeModel(), MSVehicleType::getLength(), MSAbstractLaneChangeModel::getShadowFurtherLanes(), MSVehicle::State::myBackPos, myFurtherLanes, myFurtherLanesPosLat, myLane, MSVehicle::State::myPos, myState, MSBaseVehicle::myType, SIMTIME, SOFT_ASSERT, time2string(), toString(), and WRITE_WARNING.

Referenced by adaptToLeaders(), MSLaneChanger::checkChange(), MSLaneChangerSublane::checkChangeSublane(), MSLaneChangerSublane::checkChangeToNewLane(), checkRewindLinkLanes(), MSDevice_SSM::classifyEncounter(), MSLane::detectCollisionBetween(), MSLane::detectCollisions(), MSLane::freeInsertion(), MSLaneChanger::getColumnleader(), MSLane::getCriticalLeader(), MSLane::getLeader(), getLeader(), MSLink::getLeaderInfo(), MSLane::getLeaderOnConsecutive(), MSLaneChangerSublane::getLeaders(), MSLane::getLeadersOnConsecutive(), MSLane::getOppositeFollower(), MSLaneChanger::getRealFollower(), MSLaneChanger::getRealLeader(), getSpaceTillLastStanding(), MSPModel_Striping::getVehicleObstacles(), MSLane::isInsertionSuccess(), MSLane::lastInsertion(), MSLane::vehicle_position_sorter::operator()(), MSLane::vehicle_natural_position_sorter::operator()(), MSLaneChangerSublane::outputLCEnded(), MSLaneChangerSublane::outputLCStarted(), and MSLane::safeInsertionSpeed().

◆ getBestLaneOffset()

int MSVehicle::getBestLaneOffset ( ) const

Definition at line 5087 of file MSVehicle.cpp.

References myBestLanes.

Referenced by MSLCM_LC2013::changed(), MSLCM_SL2015::changed(), and GUIVehicle::getColorValue().

◆ getBestLanes()

const std::vector< MSVehicle::LaneQ > & MSVehicle::getBestLanes ( ) const

Returns the description of best lanes to use in order to continue the route.

Returns
The LaneQ for all lanes of the current edge

Definition at line 4692 of file MSVehicle.cpp.

References myBestLanes.

Referenced by MSLane::appropriate(), MSLaneChanger::change(), MSLaneChanger::changeOpposite(), MSLaneChangerSublane::checkChangeHelper(), MSDevice_ToC::checkDynamicToC(), libsumo::Vehicle::getBestLanes(), MSEdge::getDepartLane(), and MSLCM_SL2015::updateExpectedSublaneSpeeds().

◆ getBestLanesContinuation() [1/2]

◆ getBestLanesContinuation() [2/2]

const std::vector< MSLane * > & MSVehicle::getBestLanesContinuation ( const MSLane *const  l) const

Returns the best sequence of lanes to continue the route starting at the given lane.

Returns
The bestContinuations of the LaneQ for the given lane (see LaneQ)

Definition at line 5067 of file MSVehicle.cpp.

References MSLane::getEdge(), MSLane::getLinkCont(), MSEdge::isInternal(), myBestLanes, and myEmptyLaneVector.

◆ getBoundingBox()

◆ getBoundingPoly()

◆ getBrakeGap()

double MSVehicle::getBrakeGap ( ) const
protectedvirtual

get distance for coming to a stop (used for rerouting checks)

Implements SUMOVehicle.

Definition at line 2093 of file MSVehicle.cpp.

References MSCFModel::brakeGap(), getCarFollowModel(), and getSpeed().

◆ getCarFollowModel()

const MSCFModel& MSVehicle::getCarFollowModel ( ) const
inline

Returns the vehicle's car following model definition.

This is simply a wrapper around the vehicle type's car-following model retrieval for a shorter access.

Returns
The vehicle's car following model definition

Definition at line 893 of file MSVehicle.h.

References MSVehicleType::getCarFollowModel(), and MSBaseVehicle::myType.

Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSLCM_LC2013::adaptSpeedToPedestrians(), MSPModel_Striping::addCrossingVehs(), MSCriticalFollowerDistanceInfo::addFollower(), addStop(), MSLaneChanger::changeOpposite(), MSLCM_SL2015::checkBlockingVehicles(), MSLaneChanger::checkChange(), MSLane::checkFailure(), MSLane::checkForPedestrians(), checkRewindLinkLanes(), MSLCM_SL2015::checkStrategicChange(), MSLCM_SL2015::commitFollowSpeed(), MSLCM_SL2015::commitManoeuvre(), MSLaneChanger::computeOvertakingTime(), MSLink::couldBrakeForLeader(), MSLane::detectCollisionBetween(), MSDevice_SSM::estimateConflictTimes(), estimateLeaveSpeed(), executeMove(), MSLane::freeInsertion(), getBrakeGap(), MSLaneChanger::getColumnleader(), MSLane::getCriticalLeader(), getCurrentApparentDecel(), MSLane::getLeader(), getLeader(), MSLane::getLeaderOnConsecutive(), MSLaneChangerSublane::getLeaders(), MSLane::getLeadersOnConsecutive(), MSLane::getMissingRearGap(), libsumo::Vehicle::getParameter(), MSLaneChanger::getRealLeader(), getRerouteOrigin(), getSafeFollowSpeed(), MSCFModel_CACC::getSecureGap(), getSpaceTillLastStanding(), GUIVehicle::getTypeParameterWindow(), MSLink::getZipperSpeed(), MSLane::handleCollisionBetween(), MSVehicle::Influencer::implicitSpeedRemote(), MSLCM_DK2008::informBlocker(), MSLCM_LC2013::informFollower(), MSLCM_SL2015::informFollower(), MSLCM_LC2013::informLeader(), MSLCM_SL2015::informLeader(), MSLCM_SL2015::informLeaders(), MSLane::isInsertionSuccess(), MSLane::lastInsertion(), MSLCM_LC2013::overtakeDistance(), MSLCM_DK2008::patchSpeed(), planMoveInternal(), processLinkApproaches(), processNextStop(), MSAbstractLaneChangeModel::remainingTime(), MSDevice_ToC::requestToC(), MSLane::safeInsertionSpeed(), MSLCM_LC2013::saveBlockerLength(), MSLCM_SL2015::saveBlockerLength(), GUIVehicle::selectBlockingFoes(), setBlinkerInformation(), MSAbstractLaneChangeModel::setFollowerGaps(), MSAbstractLaneChangeModel::setLeaderGaps(), MSAbstractLaneChangeModel::setOrigLeaderGaps(), libsumo::Vehicle::setParameter(), MSDevice_ToC::setState(), MSLCM_LC2013::slowDownForBlocked(), MSLCM_SL2015::slowDownForBlocked(), MSCFModel_CACC::speedGapControl(), unsafeLinkAhead(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), updateState(), MSLCM_DK2008::wantsChangeToLeft(), and MSLCM_DK2008::wantsChangeToRight().

◆ getCarFollowVariables()

◆ getCenterOnEdge()

◆ getChosenSpeedFactor()

double MSBaseVehicle::getChosenSpeedFactor ( ) const
inlinevirtualinherited

Returns the precomputed factor by which the driver wants to be faster than the speed limit.

Returns
Speed limit factor

Implements SUMOTrafficObject.

Definition at line 426 of file MSBaseVehicle.h.

References MSBaseVehicle::myChosenSpeedFactor.

Referenced by MSLane::getDepartSpeed(), GUIVehicle::getParameterWindow(), GUIMEVehicle::getParameterWindow(), and GUISUMOViewParent::onUpdSpeedFactor().

◆ getCO2Emissions()

double MSVehicle::getCO2Emissions ( ) const

◆ getCOEmissions()

double MSVehicle::getCOEmissions ( ) const

◆ getContainerDevice()

const MSDevice_Transportable* MSBaseVehicle::getContainerDevice ( ) const
inlineinherited

Definition at line 497 of file MSBaseVehicle.h.

References MSBaseVehicle::myContainerDevice.

Referenced by GUIBaseVehicle::getNumContainers().

◆ getContainerNumber()

int MSBaseVehicle::getContainerNumber ( ) const
virtualinherited

◆ getContainers()

const std::vector< MSTransportable * > & MSBaseVehicle::getContainers ( ) const
virtualinherited

◆ getCurrentApparentDecel()

double MSVehicle::getCurrentApparentDecel ( ) const

get apparent deceleration based on vType parameters and current acceleration

Definition at line 6218 of file MSVehicle.cpp.

References MSCFModel::getApparentDecel(), and getCarFollowModel().

◆ getCurrentParkingArea()

MSParkingArea * MSVehicle::getCurrentParkingArea ( )

get the current parking area stop or nullptr

Definition at line 1727 of file MSVehicle.cpp.

References isParking(), and myStops.

Referenced by MSVehicleTransfer::checkInsertions(), and MSVehicle::Manoeuvre::configureExitManoeuvre().

◆ getCurrentRouteEdge()

const MSRouteIterator& MSBaseVehicle::getCurrentRouteEdge ( ) const
inlinevirtualinherited

Returns an iterator pointing to the current edge in this vehicles route.

Returns
The current route pointer

Implements SUMOVehicle.

Definition at line 205 of file MSBaseVehicle.h.

References MSBaseVehicle::myCurrEdge.

Referenced by MSDevice_SSM::findFoeConflictLane(), libsumo::Vehicle::getNextTLS(), MSRailSignal::hasOncomingRailTraffic(), libsumo::Vehicle::moveTo(), and libsumo::Vehicle::moveToXY().

◆ getDeltaPos()

double MSVehicle::getDeltaPos ( const double  accel) const

calculates the distance covered in the next integration step given an acceleration and assuming the current velocity. (gives different results for different integration methods, e.g., euler vs. ballistic)

Parameters
[in]accelthe assumed acceleration
Returns
distance covered in next integration step

Definition at line 2991 of file MSVehicle.cpp.

References ACCEL2SPEED, MSGlobals::gSemiImplicitEulerUpdate, MAX2(), MSVehicle::State::mySpeed, myState, and SPEED2DIST.

Referenced by updateState().

◆ getDepartDelay()

SUMOTime MSBaseVehicle::getDepartDelay ( ) const
inlinevirtualinherited

◆ getDepartPos()

double MSBaseVehicle::getDepartPos ( ) const
inlinevirtualinherited

Returns this vehicle's real departure position.

Returns
This vehicle's real departure position

Implements SUMOVehicle.

Definition at line 274 of file MSBaseVehicle.h.

References MSBaseVehicle::myDepartPos.

◆ getDeparture()

SUMOTime MSBaseVehicle::getDeparture ( ) const
inlinevirtualinherited

Returns this vehicle's real departure time.

Returns
This vehicle's real departure time

Implements SUMOVehicle.

Definition at line 261 of file MSBaseVehicle.h.

References MSBaseVehicle::myDeparture.

Referenced by MSBaseVehicle::getDepartDelay(), and MSVehicle::Influencer::postProcessRemoteControl().

◆ getDevice()

MSVehicleDevice * MSBaseVehicle::getDevice ( const std::type_info &  type) const
virtualinherited

◆ getDeviceParameter()

std::string MSBaseVehicle::getDeviceParameter ( const std::string &  deviceName,
const std::string &  key 
) const
inherited

try to retrieve the given parameter from any of the vehicles devices, raise InvalidArgument if no device parameter by that name exists

Definition at line 703 of file MSBaseVehicle.cpp.

References MSBaseVehicle::myDevices.

Referenced by libsumo::Vehicle::getParameter().

◆ getDevices()

const std::vector<MSVehicleDevice*>& MSBaseVehicle::getDevices ( ) const
inlinevirtualinherited

Returns this vehicle's devices.

Returns
This vehicle's devices

Implements SUMOVehicle.

Definition at line 341 of file MSBaseVehicle.h.

References MSBaseVehicle::myDevices.

◆ getDistanceToPosition()

double MSVehicle::getDistanceToPosition ( double  destPos,
const MSEdge destEdge 
) const

Compute distance that will be covered, if the vehicle moves to a given position on its route, starting at its current position.

Parameters
destPosposition on the destination edge that shall be reached
destEdgedestination edge that shall be reached
Returns
distance from the vehicles current position to the destination position, or a near infinite real value if the destination position is not contained within the vehicles route or the vehicle is not active

Definition at line 5113 of file MSVehicle.cpp.

References MSRoute::getDistanceBetween(), MSLane::getLength(), getPositionOnLane(), MSLane::isInternal(), isOnRoad(), MSBaseVehicle::myCurrEdge, myLane, and MSBaseVehicle::myRoute.

Referenced by MSVehicle::Influencer::gapControlSpeed(), MSVehicle::Influencer::implicitDeltaPosRemote(), and MSVehicle::Influencer::implicitSpeedRemote().

◆ getDriverState()

std::shared_ptr< MSSimpleDriverState > MSVehicle::getDriverState ( ) const

Returns the vehicle driver's state.

Returns
The vehicle driver's state

Definition at line 6212 of file MSVehicle.cpp.

References MSDevice_DriverState::getDriverState(), and myDriverState.

Referenced by MSCFModel::applyHeadwayAndSpeedDifferencePerceptionErrors(), MSCFModel::applyHeadwayPerceptionError(), and MSDevice_ToC::setAwareness().

◆ getEdge()

◆ getElectricityConsumption()

double MSVehicle::getElectricityConsumption ( ) const

◆ getEmissionParameters()

const std::map< int, double > * MSBaseVehicle::getEmissionParameters ( ) const
virtualinherited

Returns the vehicle's emission model parameter.

Returns
The vehicle's emission parameters

Implements SUMOVehicle.

Definition at line 149 of file MSBaseVehicle.cpp.

References MSBaseVehicle::getDevice(), and MSDevice_Battery::getEnergyParams().

◆ getFuelConsumption()

double MSVehicle::getFuelConsumption ( ) const

◆ getFurtherLanes()

const std::vector<MSLane*>& MSVehicle::getFurtherLanes ( ) const
inline

◆ getFurtherLanesPosLat()

const std::vector<double>& MSVehicle::getFurtherLanesPosLat ( ) const
inline

Definition at line 795 of file MSVehicle.h.

References myFurtherLanesPosLat.

Referenced by MSAbstractLaneChangeModel::updateShadowLane().

◆ getHarmonoise_NoiseEmissions()

double MSVehicle::getHarmonoise_NoiseEmissions ( ) const

◆ getHCEmissions()

double MSVehicle::getHCEmissions ( ) const

◆ getID()

const std::string & MSBaseVehicle::getID ( ) const
virtualinherited

Returns the name of the vehicle.

Implements SUMOTrafficObject.

Definition at line 138 of file MSBaseVehicle.cpp.

References SUMOVehicleParameter::id, and MSBaseVehicle::myParameter.

Referenced by MSLCM_LC2013::_patchSpeed(), MSLCM_SL2015::_patchSpeed(), MSCFModel_Wiedemann::_v(), MSCFModel_ACC::_v(), MSCFModel_CACC::_v(), MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSLaneChangerSublane::abortLCManeuver(), adaptToLeader(), adaptToLeaders(), MSVehicleTransfer::add(), MSPModel_Striping::addCrossingVehs(), MSLCM_SL2015::addLCSpeedAdvice(), addTraciStopAtStoppingPlace(), MSCFModel::applyHeadwayAndSpeedDifferencePerceptionErrors(), MSCFModel::applyHeadwayPerceptionError(), libsumo::Helper::applySubscriptionFilters(), MSBaseVehicle::calculateArrivalParams(), MSLaneChangerSublane::change(), MSLaneChanger::change(), MSLCM_SL2015::changed(), MSLaneChanger::changeOpposite(), MELoop::changeSegment(), libsumo::Vehicle::changeTarget(), MSLaneChanger::checkChange(), MSLaneChangerSublane::checkChangeSublane(), MSLane::checkFailure(), MSLane::checkForPedestrians(), GUIApplicationWindow::checkGamingEvents(), MSVehicleTransfer::checkInsertions(), checkLinkLeader(), checkRewindLinkLanes(), MSLCM_SL2015::checkStrategicChange(), MSLaneChanger::checkTraCICommands(), MSAbstractLaneChangeModel::checkTraCICommands(), MSDevice_SSM::classifyEncounter(), MSDevice_SSM::closeEncounter(), MSLCM_SL2015::commitManoeuvre(), computeAngle(), MSLCM_SL2015::computeSpeedLat(), MSDevice_SSM::computeSSMs(), MSVehicle::Manoeuvre::configureEntryManoeuvre(), MSVehicle::Manoeuvre::configureExitManoeuvre(), MSLaneChanger::continueChange(), MSLaneChangerSublane::continueChangeSublane(), MSLCM_SL2015::decideDirection(), MSLane::detectCollisionBetween(), MSLane::detectCollisions(), MSLane::detectPedestrianJunctionCollision(), MSDevice_SSM::Encounter::Encounter(), MSAbstractLaneChangeModel::endLaneChangeManeuver(), MSCalibrator::execute(), executeMove(), MSLane::executeMovements(), MSCFModel_Daniel1::finalizeSpeed(), MSCFModel::finalizeSpeed(), MSLaneChanger::findCandidate(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), MSDevice_SSM::flushGlobalMeasures(), MSCFModel_W99::followSpeed(), MSCFModel_CACC::followSpeed(), getBackPosition(), getBackPositionOnLane(), getCenterOnEdge(), GUIVehicle::getColorValue(), MSLaneChanger::getColumnleader(), MSLane::getCriticalLeader(), MSLane::getFirstVehicleInformation(), MSLane::getFollower(), MSLane::getFollowersOnConsecutive(), MSLane::getLastVehicleInformation(), getLatOffset(), MSLane::getLeader(), MSLink::getLeaderInfo(), MSLane::getLeaderOnConsecutive(), MSLaneChangerSublane::getLeaders(), MSLane::getLeadersOnConsecutive(), MSLane::getOppositeFollower(), MSLane::getOppositeLeader(), MSLane::getPartialBehind(), MSSimpleDriverState::getPerceivedHeadway(), MSSimpleDriverState::getPerceivedSpeedDifference(), MSCFModel_CC::getRadarMeasurements(), MSLaneChanger::getRealFollower(), MSLaneChanger::getRealLeader(), getSafeFollowSpeed(), MSAbstractLaneChangeModel::getShadowLane(), MSBaseVehicle::getSingularType(), MSDevice_SSM::getUpstreamVehicles(), MSPModel_Striping::getVehicleObstacles(), MSLink::getZipperSpeed(), MSLane::handleCollisionBetween(), haveValidStopEdges(), libsumo::Vehicle::highlight(), ignoreRed(), MSLCM_LC2013::inform(), MSLCM_SL2015::inform(), MSLCM_LC2013::informFollower(), MSLCM_SL2015::informFollower(), MSLCM_LC2013::informLeader(), MSLCM_SL2015::informLeader(), MESegment::initialise(), MSPedestrianPushButton::isActiveForEdge(), MSLane::isInsertionSuccess(), isLeader(), MSAbstractLaneChangeModel::laneChangeOutput(), lateralDistanceToLane(), leaveLane(), libsumo::Vehicle::moveToXY(), MSLCM_LC2013::MSLCM_LC2013(), MSSimpleDriverState::MSSimpleDriverState(), MSCalibrator::VehicleRemover::notifyEnter(), onRemovalFromNet(), MSLaneChangerSublane::outputLCStarted(), MSLCM_LC2013::patchSpeed(), MSLCM_SL2015::patchSpeed(), MSCFModel_CC::performAutoLaneChange(), planMove(), planMoveInternal(), MSLCM_SL2015::prepareStep(), MSAbstractLaneChangeModel::primaryLaneChanged(), TraCIServerAPI_GUI::processGet(), processLaneAdvances(), processLinkApproaches(), processNextStop(), processTraCISpeedControl(), removePassedDriveItems(), MSBaseVehicle::replaceRouteEdges(), MSBaseVehicle::reroute(), rerouteParkingArea(), MSLane::resetManeuverReservation(), MSLane::resetPartialOccupation(), libsumo::Vehicle::resume(), MSLane::safeInsertionSpeed(), MSLCM_LC2013::saveBlockerLength(), MSLCM_SL2015::saveBlockerLength(), MSBaseVehicle::saveState(), MSCalibrator::scheduleRemoval(), GUIVehicle::selectBlockingFoes(), setAngle(), setApproachingForAllLinks(), MSSimpleDriverState::setAwareness(), MSAbstractLaneChangeModel::setManeuverDist(), MSLane::setManeuverReservation(), MSLCM_SL2015::setOwnState(), MSDevice_ToC::setParameter(), MSCFModel_CC::setParameter(), MSLane::setPartialOccupation(), libsumo::Helper::setRemoteControlled(), libsumo::Vehicle::setRoute(), libsumo::Vehicle::setRouteID(), MSLCM_LC2013::slowDownForBlocked(), MSLCM_SL2015::slowDownForBlocked(), MSLaneChangerSublane::startChangeSublane(), MELoop::teleportVehicle(), METriggeredCalibrator::tryEmit(), MSSimpleDriverState::update(), updateBestLanes(), updateDriveItems(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), updateFurtherLanes(), MSLCM_SL2015::updateGaps(), MSAbstractLaneChangeModel::updateShadowLane(), updateState(), MSAbstractLaneChangeModel::updateTargetLane(), MSLCM_LC2013::wantsChange(), MSLCM_SL2015::wantsChange(), MSLCM_SL2015::wantsChangeSublane(), MSBatteryExport::write(), and MSXMLRawOut::writeVehicle().

◆ getImpatience()

◆ getInfluencer() [1/2]

◆ getInfluencer() [2/2]

const MSVehicle::Influencer * MSVehicle::getInfluencer ( ) const

Definition at line 5909 of file MSVehicle.cpp.

References myInfluencer.

◆ getLane()

MSLane* MSVehicle::getLane ( ) const
inlinevirtual

Returns the lane the vehicle is on.

Returns
The vehicle's current lane

Implements SUMOVehicle.

Definition at line 560 of file MSVehicle.h.

References myLane.

Referenced by MSLCM_LC2013::_patchSpeed(), MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), adaptToLeaders(), libsumo::Helper::applySubscriptionFilters(), MSLaneChangerSublane::change(), MSLaneChanger::changeOpposite(), MSLCM_SL2015::checkBlocking(), MSLaneChanger::checkChange(), MSLaneChangerSublane::checkChangeSublane(), MSLaneChangerSublane::checkChangeToNewLane(), MSDevice_ToC::checkDynamicToC(), MSVehicleTransfer::checkInsertions(), checkLinkLeader(), MSLCM_SL2015::checkStrategicChange(), MSDevice_SSM::classifyEncounter(), MSLCM_SL2015::commitManoeuvre(), MSLaneChanger::computeOvertakingTime(), MSLCM_SL2015::computeSpeedGain(), MSAbstractLaneChangeModel::congested(), MSLaneChanger::continueChange(), MSLane::detectCollisionBetween(), MSLane::detectCollisions(), MSAbstractLaneChangeModel::determineTargetLane(), MSVTypeProbe::execute(), MSLane::executeMovements(), MSCFModel_Daniel1::finalizeSpeed(), MSCFModel_IDM::finalizeSpeed(), MSCFModel::finalizeSpeed(), MSCFModel_CC::finalizeSpeed(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), MSCFModel_ACC::followSpeed(), MSCFModel_CACC::followSpeed(), MSCFModel_IDM::followSpeed(), MSCFModel_IDM::freeSpeed(), libsumo::Vehicle::getAllowedSpeed(), GUIVehicle::getColorValue(), MSLaneChanger::getColumnleader(), libsumo::Vehicle::getDrivingDistance(), MSLane::getFollowersOnConsecutive(), libsumo::Vehicle::getLaneID(), libsumo::Vehicle::getLaneIndex(), MSLCM_SL2015::getLateralDrift(), MSLink::getLeaderInfo(), MSLane::getLeaderOnConsecutive(), MSLaneChangerSublane::getLeaders(), libsumo::Vehicle::getNextTLS(), MSCFModel_CC::getParameter(), getPositionAlongBestLanes(), libsumo::Vehicle::getRoadID(), MSLCM_LC2013::getRoundaboutDistBonus(), MSAbstractLaneChangeModel::getShadowDirection(), getSpaceTillLastStanding(), MSVTKExport::getSpeed(), MSLCM_SL2015::getSublaneWidth(), MSLink::getZipperSpeed(), MSLane::handleCollisionBetween(), MSVehicle::Influencer::implicitSpeedRemote(), MSLCM_LC2013::informFollower(), MSCFModel_IDM::interactionGap(), MSCFModel::interactionGap(), isLeader(), MSLCM_SL2015::keepLatGap(), leaveLane(), libsumo::Vehicle::moveTo(), libsumo::Vehicle::moveToXY(), MSDevice_Vehroutes::notifyEnter(), MSDevice_ToC::notifyMove(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdRemoveObject(), GUIViewTraffic::onGamingClick(), MSLCM_DK2008::patchSpeed(), MSLCM_LC2013::patchSpeed(), MSLCM_SL2015::patchSpeed(), planMoveInternal(), MSVehicle::Influencer::postProcessRemoteControl(), MSLCM_LC2013::prepareStep(), MSLCM_SL2015::prepareStep(), MSVehicleTransfer::remove(), libsumo::Vehicle::remove(), MSCalibrator::removePending(), MSLane::removeVehicle(), MSAbstractLaneChangeModel::saveNeighbors(), setBlinkerInformation(), libsumo::Vehicle::setRoute(), libsumo::Vehicle::setRouteID(), MSLaneChangerSublane::startChangeSublane(), MSCFModel_IDM::stopSpeed(), MSLCM_SL2015::updateCFRelated(), MSLaneChangerSublane::updateChanger(), updateDriveItems(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MSAbstractLaneChangeModel::updateShadowLane(), MSAbstractLaneChangeModel::updateTargetLane(), MSLCM_LC2013::wantsChange(), MSLCM_SL2015::wantsChange(), MSLCM_SL2015::wantsChangeSublane(), MSLCM_DK2008::wantsChangeToLeft(), MSLCM_DK2008::wantsChangeToRight(), MSEmissionExport::write(), MSBatteryExport::write(), MSFCDExport::write(), MSQueueExport::writeLane(), and MSFullExport::writeVehicles().

◆ getLaneChangeModel() [1/2]

MSAbstractLaneChangeModel & MSVehicle::getLaneChangeModel ( )

Definition at line 4680 of file MSVehicle.cpp.

References myLaneChangeModel.

Referenced by MSLaneChangerSublane::abortLCManeuver(), adaptToLeaders(), MSVehicleTransfer::add(), MSLaneChanger::applyTraCICommands(), MSLaneChangerSublane::change(), MSLaneChanger::change(), MSLaneChanger::changeOpposite(), MSLaneChanger::checkChange(), MSLaneChangerSublane::checkChangeSublane(), MSLaneChangerSublane::checkChangeToNewLane(), checkLinkLeader(), checkLinkLeaderCurrentAndParallel(), checkRewindLinkLanes(), MSLaneChanger::checkTraCICommands(), MSAbstractLaneChangeModel::checkTraCICommands(), MSDevice_SSM::classifyEncounter(), computeAngle(), MSLaneChanger::computeOvertakingTime(), MSLaneChanger::continueChange(), MSLaneChangerSublane::continueChangeSublane(), MSLane::detectCollisionBetween(), MSLane::detectCollisions(), enterLaneAtInsertion(), executeMove(), MSCFModel_Daniel1::finalizeSpeed(), MSCFModel::finalizeSpeed(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), fixPosition(), getBackPosition(), getBackPositionOnLane(), getCenterOnEdge(), GUIVehicle::getColorValue(), MSLaneChanger::getColumnleader(), libsumo::Vehicle::getLaneChangeState(), GUIVehicle::getLastLaneChangeOffset(), libsumo::Vehicle::getLateralSpeed(), getLatOffset(), GUIVehicle::getLCStateLeft(), GUIVehicle::getLCStateRight(), MSLink::getLeaderInfo(), GUIVehicle::getManeuverDist(), libsumo::Vehicle::getNeighbors(), MSLane::getOppositeFollower(), MSLane::getOppositeLeader(), libsumo::Vehicle::getParameter(), GUIVehicle::getParameterWindow(), getPosition(), getPositionAlongBestLanes(), GUIVehicle::getShadowLaneID(), MSLeaderInfo::getSubLanes(), GUIVehicle::getTargetLaneID(), GUIVehicle::getTypeParameterWindow(), MSLane::handleCollisionBetween(), MSLCM_SL2015::inform(), MSAbstractLaneChangeModel::MSLCMessager::informLeader(), MSAbstractLaneChangeModel::MSLCMessager::informNeighFollower(), MSAbstractLaneChangeModel::MSLCMessager::informNeighLeader(), isFrontOnLane(), MSLane::isInsertionSuccess(), MSLaneChangerSublane::outputLCEnded(), MSLaneChangerSublane::outputLCStarted(), planMove(), planMoveInternal(), processLaneAdvances(), processLinkApproaches(), MSLaneChanger::registerUnchanged(), removeApproachingInformation(), MSLCM_LC2013::saveBlockerLength(), MSLCM_SL2015::saveBlockerLength(), GUIVehicle::selectBlockingFoes(), setApproachingForAllLinks(), setBlinkerInformation(), libsumo::Vehicle::setParameter(), MSLaneChanger::startChange(), MSLaneChangerSublane::startChangeSublane(), updateBestLanes(), MSLaneChangerSublane::updateChanger(), MSLCM_SL2015::updateGaps(), updateState(), and MSXMLRawOut::writeVehicle().

◆ getLaneChangeModel() [2/2]

const MSAbstractLaneChangeModel & MSVehicle::getLaneChangeModel ( ) const

Definition at line 4686 of file MSVehicle.cpp.

References myLaneChangeModel.

◆ getLaneIndex()

◆ getLastActionTime()

SUMOTime MSVehicle::getLastActionTime ( ) const
inline

Returns the time of the vehicle's last action point.

Returns
The time of the last action point

Definition at line 520 of file MSVehicle.h.

References myLastActionTime.

Referenced by MSLink::getZipperSpeed().

◆ getLastStepDist()

double MSVehicle::getLastStepDist ( ) const
inline

Get the distance the vehicle covered in the previous timestep.

Returns
The distance covered in the last timestep (in m)

Definition at line 399 of file MSVehicle.h.

References MSVehicle::State::lastCoveredDist(), and myState.

Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSDevice_SSM::checkConflictEntryAndExit(), and MSDevice_SSM::updatePassedEncounter().

◆ getLateralOverlap() [1/2]

double MSVehicle::getLateralOverlap ( ) const

return the amount by which the vehicle extends laterally outside it's primary lane

Definition at line 5493 of file MSVehicle.cpp.

References getLateralPositionOnLane().

Referenced by MSLCM_SL2015::checkStrategicChange(), executeMove(), MSAbstractLaneChangeModel::getShadowLane(), planMoveInternal(), and MSAbstractLaneChangeModel::updateShadowLane().

◆ getLateralOverlap() [2/2]

double MSVehicle::getLateralOverlap ( double  posLat) const

◆ getLateralPositionOnLane()

double MSVehicle::getLateralPositionOnLane ( ) const
inlinevirtual

Get the vehicle's lateral position on the lane.

Returns
The lateral position of the vehicle (in m relative to the centerline of the lane)

Reimplemented from MSBaseVehicle.

Definition at line 429 of file MSVehicle.h.

References MSVehicle::State::myPosLat, and myState.

Referenced by MSLCM_SL2015::_wantsChangeSublane(), MSLaneChangerSublane::checkChangeToNewLane(), MSLane::checkForPedestrians(), MSVehicleTransfer::checkInsertions(), checkRewindLinkLanes(), MSLCM_SL2015::checkStrategicChange(), MSDevice_SSM::classifyEncounter(), MSLaneChanger::continueChange(), MSAbstractLaneChangeModel::determineTargetLane(), executeMove(), MSLane::getCriticalLeader(), libsumo::Vehicle::getLateralLanePosition(), getLateralOverlap(), MSLink::getLeaderInfo(), MSLane::getLeaderOnConsecutive(), MSLane::getLeadersOnConsecutive(), GUIVehicle::getParameterWindow(), getPosition(), getPositionAlongBestLanes(), MSLCM_SL2015::getPosLat(), MSAbstractLaneChangeModel::getShadowLane(), MSLeaderInfo::getSubLanes(), MSPModel_Striping::getVehicleObstacles(), MSLCM_SL2015::keepLatGap(), lateralDistanceToLane(), MSLane::loadState(), MSDevice_Vehroutes::notifyEnter(), MSLane::vehicle_natural_position_sorter::operator()(), planMove(), MSLCM_LC2013::prepareStep(), MSAbstractLaneChangeModel::primaryLaneChanged(), processLinkApproaches(), GUIVehicle::selectBlockingFoes(), setAngle(), MSLaneChangerSublane::startChangeSublane(), validatePosition(), MSLCM_LC2013::wantsChange(), MSLCM_SL2015::wantsChange(), MSLCM_SL2015::wantsChangeSublane(), and MSXMLRawOut::writeVehicle().

◆ getLatOffset()

◆ getLeader()

std::pair< const MSVehicle *const, double > MSVehicle::getLeader ( double  dist = 0) const

Returns the leader of the vehicle looking for a fixed distance.

If the distance is not given it is calculated from the brake gap. The gap returned does not include the minGap.

Parameters
distup to which distance to look for a leader
Returns
The leading vehicle together with the gap; (0, -1) if no leader was found.

Definition at line 5130 of file MSVehicle.cpp.

References MSCFModel::brakeGap(), getBackPositionOnLane(), getBestLanesContinuation(), getCarFollowModel(), MSLane::getLeaderOnConsecutive(), MSLane::getLength(), MSVehicleType::getMinGap(), getPositionOnLane(), getSpeed(), MSLane::getVehiclesSecure(), MSBaseVehicle::getVehicleType(), myLane, and MSLane::releaseVehicles().

Referenced by MSDevice_SSM::computeGlobalMeasures(), MSVehicle::Influencer::gapControlSpeed(), libsumo::Vehicle::getLeader(), and getTimeGapOnLane().

◆ getLength()

◆ getManoeuvreType()

MSVehicle::ManoeuvreType MSVehicle::getManoeuvreType ( ) const

accessor function to myManoeuvre equivalent

Definition at line 6274 of file MSVehicle.cpp.

References MSVehicle::Manoeuvre::getManoeuvreType(), and myManoeuvre.

Referenced by planMove().

◆ getMaxSpeed()

double MSBaseVehicle::getMaxSpeed ( ) const
virtualinherited

◆ getMaxSpeedOnLane()

double MSVehicle::getMaxSpeedOnLane ( ) const
inline

Returns the maximal speed for the vehicle on its current lane (including speed factor and deviation, i.e., not necessarily the allowed speed limit)

Returns
The vehicle's max speed

Definition at line 570 of file MSVehicle.h.

References MSVehicleType::getMaxSpeed(), MSLane::getVehicleMaxSpeed(), myLane, and MSBaseVehicle::myType.

Referenced by MSDevice_SSM::estimateConflictTimes(), and MSLCM_LC2013::informFollower().

◆ getMyStops()

std::list< MSVehicle::Stop > MSVehicle::getMyStops ( )

returns the list of stops not yet reached in the stop queue

Returns
the list of upcoming stops

Definition at line 5895 of file MSVehicle.cpp.

References myStops.

Referenced by MSVehicle::Manoeuvre::configureEntryManoeuvre(), MSCFModel_CC::finalizeSpeed(), and libsumo::Vehicle::getNextStops().

◆ getNextParkingArea()

MSParkingArea * MSVehicle::getNextParkingArea ( )
virtual

get the upcoming parking area stop or nullptr

Implements SUMOVehicle.

Definition at line 1713 of file MSVehicle.cpp.

References myStops, MSVehicle::Stop::parkingarea, and MSVehicle::Stop::reached.

Referenced by rerouteParkingArea().

◆ getNextStop()

◆ getNextTurn()

const std::pair<double, LinkDirection>& MSVehicle::getNextTurn ( )
inline

Get the distance and direction of the next upcoming turn for the vehicle (within its look-ahead range)

Returns
The first entry of the returned pair is the distance for the upcoming turn, the second is the link direction

Definition at line 783 of file MSVehicle.h.

References myNextTurn.

Referenced by MSLCM_SL2015::_wantsChangeSublane().

◆ getNOxEmissions()

double MSVehicle::getNOxEmissions ( ) const

◆ getNumberReroutes()

int MSBaseVehicle::getNumberReroutes ( ) const
inlinevirtualinherited

Returns the number of new routes this vehicle got.

Returns
the number of new routes this vehicle got

Implements SUMOVehicle.

Definition at line 315 of file MSBaseVehicle.h.

References MSBaseVehicle::myNumberReroutes.

Referenced by GUIBaseVehicle::drawGLAdditional(), GUIMEVehicle::getColorValue(), GUIVehicle::getColorValue(), and MSBaseVehicle::replaceRouteEdges().

◆ getNumericalID()

NumericalID MSBaseVehicle::getNumericalID ( ) const
inlinevirtualinherited

return the numerical ID which is only for internal usage

Implements SUMOVehicle.

Definition at line 489 of file MSBaseVehicle.h.

References MSBaseVehicle::myNumericalID.

Referenced by MSLane::vehicle_position_sorter::operator()(), and MSVehicleTransfer::VehicleInformation::operator<().

◆ getOdometer()

double MSBaseVehicle::getOdometer ( ) const
inherited

Returns the distance that was already driven by this vehicle.

Returns
the distance driven [m]

Definition at line 405 of file MSBaseVehicle.cpp.

References SUMOTrafficObject::getPositionOnLane(), MSBaseVehicle::hasArrived(), MSBaseVehicle::myArrivalPos, MSBaseVehicle::myDepartPos, and MSBaseVehicle::myOdometer.

Referenced by libsumo::Vehicle::getDistance().

◆ getParameter()

◆ getPersonDevice()

const MSDevice_Transportable* MSBaseVehicle::getPersonDevice ( ) const
inlineinherited

Definition at line 493 of file MSBaseVehicle.h.

References MSBaseVehicle::myPersonDevice.

Referenced by GUIBaseVehicle::getNumPassengers().

◆ getPersonIDList()

std::vector< std::string > MSBaseVehicle::getPersonIDList ( ) const
virtualinherited

Returns the list of persons.

Returns
The list of passengers on-board

Implements SUMOVehicle.

Definition at line 623 of file MSBaseVehicle.cpp.

References MSBaseVehicle::getPersons().

Referenced by libsumo::Vehicle::getPersonIDList().

◆ getPersonNumber()

int MSBaseVehicle::getPersonNumber ( ) const
virtualinherited

◆ getPersons()

const std::vector< MSTransportable * > & MSBaseVehicle::getPersons ( ) const
virtualinherited

◆ getPMxEmissions()

double MSVehicle::getPMxEmissions ( ) const

◆ getPosition()

Position MSVehicle::getPosition ( const double  offset = 0) const
virtual

Return current position (x/y, cartesian)

If the vehicle's myLane is 0, Position::INVALID.

Parameters
[in]offsetoptional offset in longitudinal direction
Returns
The current position (in cartesian coordinates)
See also
myLane

Implements SUMOTrafficObject.

Definition at line 1269 of file MSVehicle.cpp.

References MSLane::geometryPositionAtOffset(), MSNet::getCurrentTimeStep(), MSLane::getEdge(), MSNet::getInstance(), getLaneChangeModel(), MSEdge::getLanes(), getLateralPositionOnLane(), getPositionOnLane(), MSLane::interpolateLanePosToGeometryPos(), Position::INVALID, MSAbstractLaneChangeModel::isChangingLanes(), isParking(), MSVehicle::Influencer::isRemoteAffected(), MSNet::lefthand(), PositionVector::move2side(), myCachedPosition, myInfluencer, myLane, MSVehicle::State::myPos, myState, myStops, PositionVector::positionAtOffset(), SUMO_const_laneWidth, and validatePosition().

Referenced by MSCFModel_CC::_v(), libsumo::Helper::applySubscriptionFilterFieldOfVision(), MSLink::checkWalkingAreaFoe(), computeAngle(), MSDevice_SSM::computeGlobalMeasures(), MSDevice_SSM::determineConflictPoint(), getBoundingBox(), getBoundingPoly(), MSCFModel_CC::getParameter(), libsumo::Vehicle::getPosition(), GUIVehicle::getPosition(), MSVTKExport::getPositions(), MSCFModel_CC::getVehicleInformation(), libsumo::Vehicle::highlight(), MSVehicle::Influencer::implicitDeltaPosRemote(), MSVehicle::Influencer::implicitSpeedRemote(), MSPModel_Striping::moveInDirection(), libsumo::Vehicle::moveToXY(), MSDevice_SSM::updateEncounter(), and MSBatteryExport::write().

◆ getPositionAlongBestLanes()

Position MSVehicle::getPositionAlongBestLanes ( double  offset) const

◆ getPositionOnLane() [1/2]

double MSVehicle::getPositionOnLane ( ) const
inlinevirtual

Get the vehicle's position along the lane.

Returns
The position of the vehicle (in m from the lane's begin)

Implements SUMOTrafficObject.

Definition at line 392 of file MSVehicle.h.

References MSVehicle::State::myPos, and myState.

Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSLCM_LC2013::adaptSpeedToPedestrians(), adaptToLeaders(), libsumo::Helper::applySubscriptionFilters(), MSLaneChanger::changeOpposite(), MSLaneChanger::checkChange(), MSDevice_ToC::checkDynamicToC(), MSVehicleTransfer::checkInsertions(), MSLCM_SL2015::checkStrategicChange(), MSDevice_SSM::classifyEncounter(), computeAngle(), MSLane::detectCollisionBetween(), MSLane::detectCollisions(), GUIVehicle::drawRouteHelper(), executeMove(), MSLane::executeMovements(), MSLaneChanger::findCandidate(), MSDevice_SSM::findFoeConflictLane(), MSDevice_SSM::findSurroundingVehicles(), MSLane::freeInsertion(), MSVehicle::Influencer::gapControlSpeed(), MSLane::getBruttoOccupancy(), MSLaneChanger::getCloserFollower(), MSLaneChanger::getColumnleader(), MSEdge::getDepartPosBound(), getDistanceToPosition(), libsumo::Vehicle::getDrivingDistance(), libsumo::Vehicle::getDrivingDistance2D(), MSLane::getFirstAnyVehicle(), MSLane::getFirstVehicleInformation(), MSLane::getFollower(), MSLane::getFollowersOnConsecutive(), MSEdge::getFreeLane(), libsumo::Vehicle::getLanePosition(), MSLane::getLastVehicleInformation(), MSLane::getLeader(), getLeader(), MSLaneChangerSublane::getLeaders(), MSLane::getNettoOccupancy(), libsumo::Vehicle::getNextTLS(), MSLane::getOppositeFollower(), MSLane::getOppositeLeader(), MSCFModel_CC::getParameter(), GUIVehicle::getParameterWindow(), MSLane::getPartialBehind(), getPosition(), MSLaneChanger::getRealFollower(), MSLaneChanger::getRealLeader(), MSLCM_LC2013::getRoundaboutDistBonus(), getSlope(), MSVTKExport::getSpeed(), MSDevice_SSM::getUpstreamVehicles(), MSLane::handleCollisionBetween(), haveValidStopEdges(), MSLane::isInsertionSuccess(), MSAbstractLaneChangeModel::laneChangeOutput(), MSVehicleTransfer::loadState(), MSLane::loadState(), libsumo::Vehicle::moveToXY(), MSLane::AnyVehicleIterator::nextIsMyVehicles(), MSLane::VehPosition::operator()(), MSLCM_LC2013::patchSpeed(), MSLCM_SL2015::patchSpeed(), planMove(), planMoveInternal(), MSAbstractLaneChangeModel::primaryLaneChanged(), MSCalibrator::remainingVehicleCapacity(), replaceRoute(), GUIVehicle::selectBlockingFoes(), setBlinkerInformation(), MSLCM_LC2013::slowDownForBlocked(), MSLCM_SL2015::slowDownForBlocked(), MSLaneChangerSublane::startChangeSublane(), unsafeLinkAhead(), MSLCM_SL2015::updateCFRelated(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MSLane::updateLeaderInfo(), validatePosition(), MSLCM_LC2013::wantsChange(), MSLCM_SL2015::wantsChange(), MSLCM_SL2015::wantsChangeSublane(), MSLCM_DK2008::wantsChangeToLeft(), MSLCM_DK2008::wantsChangeToRight(), MSBatteryExport::write(), MSFCDExport::write(), and MSQueueExport::writeLane().

◆ getPositionOnLane() [2/2]

double MSVehicle::getPositionOnLane ( const MSLane lane) const

Get the vehicle's front position relative to the given lane.

Returns
The front position of the vehicle (in m from the given lane's begin)

Definition at line 4140 of file MSVehicle.cpp.

References getBackPositionOnLane(), MSVehicleType::getLength(), and MSBaseVehicle::myType.

◆ getPreviousSpeed()

double MSVehicle::getPreviousSpeed ( ) const
inlinevirtual

Returns the vehicle's speed before the previous time step.

Returns
The vehicle's speed before the previous time step

Reimplemented from MSBaseVehicle.

Definition at line 484 of file MSVehicle.h.

References MSVehicle::State::myPreviousSpeed, and myState.

Referenced by canReverse(), and MSDevice_SSM::checkConflictEntryAndExit().

◆ getRerouteOrigin()

const MSEdge * MSVehicle::getRerouteOrigin ( ) const
virtual

Returns the starting point for reroutes (usually the current edge)

This differs from *myCurrEdge only if the vehicle is on an internal edge or very close to the junction

Returns
The rerouting start point

Reimplemented from MSBaseVehicle.

Definition at line 1386 of file MSVehicle.cpp.

References MSCFModel::brakeGap(), MSRoute::end(), getCarFollowModel(), MSLane::getLength(), MSLane::getNextNormal(), MSBaseVehicle::myCurrEdge, myLane, MSVehicle::State::myPos, MSBaseVehicle::myRoute, MSVehicle::State::mySpeed, and myState.

Referenced by libsumo::Vehicle::changeTarget().

◆ getRightSideOnEdge()

double MSVehicle::getRightSideOnEdge ( const MSLane lane = 0) const

Get the vehicle's lateral position on the edge of the given lane (or its current edge if lane == 0)

Returns
The lateral position of the vehicle (in m distance between right side of vehicle and ride side of edge

Definition at line 5327 of file MSVehicle.cpp.

References getCenterOnEdge(), MSBaseVehicle::getVehicleType(), and MSVehicleType::getWidth().

Referenced by MSLCM_SL2015::checkBlockingVehicles(), MSLane::detectCollisions(), GUIVehicle::getLeftSideOnEdge(), GUIVehicle::getRightSideOnEdge2(), and GUIVehicle::getRightSublaneOnEdge().

◆ getRightSideOnLane()

double MSVehicle::getRightSideOnLane ( ) const

Get the vehicle's lateral position on the lane:

Returns
The lateral position of the vehicle (in m distance between right side of vehicle and ride side of the lane it is on

Definition at line 5321 of file MSVehicle.cpp.

References MSBaseVehicle::getVehicleType(), MSVehicleType::getWidth(), MSLane::getWidth(), myLane, MSVehicle::State::myPosLat, and myState.

Referenced by MSLCM_LC2013::adaptSpeedToPedestrians(), MSLaneChanger::checkChange(), MSLane::checkForPedestrians(), and planMoveInternal().

◆ getRNG()

◆ getRNGIndex()

int MSBaseVehicle::getRNGIndex ( ) const
virtualinherited

◆ getRoute()

◆ getRoutePosition()

◆ getSafeFollowSpeed()

double MSVehicle::getSafeFollowSpeed ( const std::pair< const MSVehicle *, double >  leaderInfo,
const double  seen,
const MSLane *const  lane,
double  distToCrossing 
) const

◆ getSignals()

int MSVehicle::getSignals ( ) const
inline

Returns the signals.

Returns
The signals' states

Definition at line 1252 of file MSVehicle.h.

References mySignals.

Referenced by libsumo::Vehicle::getSignals(), and MSFCDExport::write().

◆ getSingularType()

MSVehicleType & MSBaseVehicle::getSingularType ( )
inherited

Replaces the current vehicle type with a new one used by this vehicle only.

If the currently used vehicle type is already marked as being used by this vehicle only, no new type is created.

Returns
The new modifiable vehicle type
See also
MSBaseVehicle::myType

Definition at line 736 of file MSBaseVehicle.cpp.

References MSVehicleType::buildSingularType(), MSBaseVehicle::getID(), MSVehicleType::getID(), MSVehicleType::isVehicleSpecific(), MSBaseVehicle::myType, and MSBaseVehicle::replaceVehicleType().

Referenced by TraCIServerAPI_Vehicle::processSet(), setActionStepLength(), MSDevice_ToC::setState(), and MSDevice_ToC::triggerMRM().

◆ getSlope()

◆ getSpaceTillLastStanding()

double MSVehicle::getSpaceTillLastStanding ( const MSLane l,
bool &  foundStopped 
) const
protected

◆ getSpeed()

double MSVehicle::getSpeed ( ) const
inlinevirtual

Returns the vehicle's current speed.

Returns
The vehicle's speed

Implements SUMOTrafficObject.

Definition at line 476 of file MSVehicle.h.

References MSVehicle::State::mySpeed, and myState.

Referenced by MSLCM_LC2013::_patchSpeed(), MSLCM_SL2015::_patchSpeed(), MSCFModel_Wiedemann::_v(), MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSLCM_LC2013::adaptSpeedToPedestrians(), MSPModel_Striping::addCrossingVehs(), MSCriticalFollowerDistanceInfo::addFollower(), MSLCM_LC2013::addLCSpeedAdvice(), MSLCM_SL2015::addLCSpeedAdvice(), addStop(), MSLaneChanger::changeOpposite(), MSLCM_SL2015::checkBlockingVehicles(), MSLaneChanger::checkChange(), MSDevice_SSM::checkConflictEntryAndExit(), MSDevice_ToC::checkDynamicToC(), GUIApplicationWindow::checkGamingEvents(), GUIApplicationWindow::checkGamingEventsDRT(), checkRewindLinkLanes(), MSLCM_SL2015::checkStrategicChange(), MSLCM_SL2015::commitFollowSpeed(), MSLCM_SL2015::commitManoeuvre(), MSDevice_SSM::computeDRAC(), MSDevice_SSM::computeGlobalMeasures(), MSLaneChanger::computeOvertakingTime(), MSLCM_LC2013::computeSpeedLat(), MSLCM_SL2015::computeSpeedLat(), MSLink::couldBrakeForLeader(), MSLane::detectCollisions(), MSDevice_SSM::determineTTCandDRAC(), MSDevice_SSM::estimateConflictTimes(), executeMove(), MSCFModel_Daniel1::finalizeSpeed(), MSCFModel_PWag2009::finalizeSpeed(), MSCFModel_Wiedemann::finalizeSpeed(), MSCFModel::finalizeSpeed(), MSCFModel_CC::finalizeSpeed(), MSLane::forceVehicleInsertion(), MSLane::freeInsertion(), MSVehicle::Influencer::gapControlSpeed(), MSCFModel_CC::getACCAcceleration(), getBrakeGap(), GUIVehicle::getColorValue(), MSLaneChanger::getColumnleader(), MSLane::getCriticalLeader(), MSLCM_SL2015::getLateralDrift(), MSLane::getLeader(), getLeader(), MSLane::getLeaderOnConsecutive(), MSLaneChangerSublane::getLeaders(), MSLane::getMissingRearGap(), MSCFModel_CC::getParameter(), GUIVehicle::getParameterWindow(), MSCFModel_CC::getRadarMeasurements(), MSLaneChanger::getRealLeader(), getSafeFollowSpeed(), getSpaceTillLastStanding(), libsumo::Vehicle::getSpeed(), MSVTKExport::getSpeed(), getTimeGapOnLane(), MSCFModel_CC::getVehicleInformation(), MSPModel_Striping::getVehicleObstacles(), MSLink::getZipperSpeed(), MSLane::handleCollisionBetween(), MSLCM_DK2008::informBlocker(), MSLCM_LC2013::informFollower(), MSLCM_SL2015::informFollower(), MSLCM_LC2013::informLeader(), MSLCM_SL2015::informLeader(), MSLCM_SL2015::informLeaders(), MSCFModel_IDM::interactionGap(), MSCFModel::interactionGap(), MSLane::isInsertionSuccess(), isLeader(), MSAbstractLaneChangeModel::laneChangeOutput(), MSLane::lastInsertion(), MSVehicleTransfer::loadState(), MSLane::loadState(), MSDevice_ToC::MRMExecutionStep(), MSLCM_LC2013::overtakeDistance(), MSLCM_DK2008::patchSpeed(), MSLCM_LC2013::patchSpeed(), MSLCM_SL2015::patchSpeed(), MSCFModel_KraussX::patchSpeedBeforeLC(), MSCFModel_SmartSK::patchSpeedBeforeLC(), planMove(), planMoveInternal(), MSVehicle::Influencer::postProcessRemoteControl(), MSAbstractLaneChangeModel::predInteraction(), MSLCM_LC2013::prepareStep(), processLinkApproaches(), processNextStop(), MSAbstractLaneChangeModel::remainingTime(), MSLane::safeInsertionSpeed(), MSLCM_LC2013::saveBlockerLength(), MSLCM_SL2015::saveBlockerLength(), setBrakingSignals(), MSAbstractLaneChangeModel::setFollowerGaps(), MSAbstractLaneChangeModel::setLeaderGaps(), MSAbstractLaneChangeModel::setOrigLeaderGaps(), libsumo::Vehicle::slowDown(), MSLCM_LC2013::slowDownForBlocked(), MSLCM_SL2015::slowDownForBlocked(), MSLaneChangerSublane::startChangeSublane(), unsafeLinkAhead(), MSSimpleDriverState::updateAssumedGaps(), MSLCM_SL2015::updateCFRelated(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MSLCM_SL2015::updateGaps(), MSLCM_LC2013::wantsChange(), MSLCM_SL2015::wantsChange(), MSLCM_SL2015::wantsChangeSublane(), MSLCM_DK2008::wantsChangeToLeft(), MSLCM_DK2008::wantsChangeToRight(), MSBatteryExport::write(), and MSQueueExport::writeLane().

◆ getSpeedWithoutTraciInfluence()

double MSVehicle::getSpeedWithoutTraciInfluence ( ) const

Returns the uninfluenced velocity.

If no influencer exists (myInfluencer==0) the vehicle's current speed is returned. Otherwise the speed returned from myInfluencer->getOriginalSpeed().

Returns
The vehicle's velocity as it would without an influence
See also
Influencer::getOriginalSpeed

Definition at line 5915 of file MSVehicle.cpp.

References MSVehicle::Influencer::getOriginalSpeed(), myInfluencer, MSVehicle::State::mySpeed, and myState.

Referenced by libsumo::Vehicle::getSpeedWithoutTraCI().

◆ getStopEdges()

const ConstMSEdgeVector MSVehicle::getStopEdges ( double &  firstPos,
double &  lastPos 
) const
protectedvirtual

Returns the list of still pending stop edges also returns the first and last stop position.

Implements MSBaseVehicle.

Definition at line 2030 of file MSVehicle.cpp.

References MSVehicle::Stop::edge, MSVehicle::Stop::getEndPos(), haveValidStopEdges(), and myStops.

◆ getStopIndices()

std::vector< std::pair< int, double > > MSVehicle::getStopIndices ( ) const
protectedvirtual

return list of route indices for the remaining stops

Implements SUMOVehicle.

Definition at line 2056 of file MSVehicle.cpp.

References MSRoute::begin(), MSBaseVehicle::myRoute, and myStops.

◆ getTimeGapOnLane()

double MSVehicle::getTimeGapOnLane ( ) const

Returns the time gap in seconds to the leader of the vehicle on the same lane.

If the distance is too big -1 is returned. The gap returned takes the minGap into account.

Returns
The time gap in seconds; -1 if no leader was found or speed is 0.

Definition at line 5160 of file MSVehicle.cpp.

References getLeader(), getSpeed(), and MSBaseVehicle::getVehicleType().

Referenced by GUIVehicle::getColorValue(), and GUIVehicle::getParameterWindow().

◆ getTimeLoss()

SUMOTime MSVehicle::getTimeLoss ( ) const
inline

Returns the SUMOTime lost (speed was lesser maximum speed)

Note
Intentional stopping does not count towards this time.
speedFactor is included so time loss can never be negative. The value is that of a driver who compares his travel time when the road is clear (which includes speed factor) with the actual travel time.
includes time lost due to low departSpeed and decelerating/accelerating for planned stops
Returns
The time the vehicle lost due to various effects

Definition at line 637 of file MSVehicle.h.

References myTimeLoss, and TIME2STEPS.

◆ getTimeLossSeconds()

double MSVehicle::getTimeLossSeconds ( ) const
inline

Returns the time loss in seconds.

Definition at line 672 of file MSVehicle.h.

References myTimeLoss.

Referenced by GUIVehicle::getColorValue(), and GUIVehicle::getParameterWindow().

◆ getVClass()

◆ getVehicleType()

const MSVehicleType& MSBaseVehicle::getVehicleType ( ) const
inlinevirtualinherited

Returns the vehicle's type definition.

Returns
The vehicle's type definition

Implements SUMOTrafficObject.

Definition at line 123 of file MSBaseVehicle.h.

References MSBaseVehicle::myType.

Referenced by MSLCM_LC2013::_patchSpeed(), MSLCM_SL2015::_patchSpeed(), MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSCFModel_ACC::accelGapControl(), MSLCM_LC2013::adaptSpeedToPedestrians(), adaptToLeaders(), MSPModel_Striping::addCrossingVehs(), libsumo::Helper::applySubscriptionFilters(), basePos(), MSLaneChanger::change(), MSLaneChanger::changeOpposite(), MSLCM_SL2015::checkBlocking(), MSLaneChanger::checkChange(), MSLaneChangerSublane::checkChangeToNewLane(), MSLane::checkFailure(), MSLane::checkForPedestrians(), GUIApplicationWindow::checkGamingEvents(), MSVehicleTransfer::checkInsertions(), checkRewindLinkLanes(), MSLCM_SL2015::checkStrategicChange(), MSDevice_SSM::classifyEncounter(), MSLCM_SL2015::commitManoeuvre(), MSLaneChanger::computeOvertakingTime(), MSLCM_SL2015::computeSpeedLat(), MSAbstractLaneChangeModel::computeSpeedLat(), MSLane::detectCollisionBetween(), MSLane::detectCollisions(), GUIVehicle::drawAction_drawCarriageClass(), GUIVehicle::drawAction_drawLinkItems(), GUIVehicle::drawAction_drawVehicleBlinker(), GUIVehicle::drawAction_drawVehicleBrakeLight(), GUIEdge::drawMesoVehicles(), MSLane::enteredByLaneChange(), enterLaneAtInsertion(), enterLaneAtLaneChange(), MSDevice_SSM::estimateConflictTimes(), MSAbstractLaneChangeModel::estimateLCDuration(), MEVehicle::estimateLeaveSpeed(), estimateLeaveSpeed(), MSLane::executeMovements(), MSLane::freeInsertion(), MSVehicle::Influencer::gapControlSpeed(), MEVehicle::getBackPositionOnLane(), MSLane::getBruttoOccupancy(), GUIBaseVehicle::getCenteringBoundary(), MSLaneChanger::getColumnleader(), MSLane::getCriticalLeader(), MSEdge::getDepartLane(), MSEdge::getDepartPosBound(), MSLane::getDepartPosLat(), libsumo::Vehicle::getDrivingDistance2D(), MSLane::getFollower(), MSLane::getFollowersOnConsecutive(), MSBaseVehicle::getImpatience(), getLateralOverlap(), MSLane::getLeader(), getLeader(), MSLink::getLeaderInfo(), MSLane::getLeaderOnConsecutive(), MSLaneChangerSublane::getLeaders(), MSLane::getLeadersOnConsecutive(), GUIVehicle::getLeftSideOnEdge(), MSLane::getNettoOccupancy(), MSLane::getOppositeFollower(), MSLane::getOppositeLeader(), MSLaneChanger::getRealFollower(), MSLaneChanger::getRealLeader(), getRightSideOnEdge(), getRightSideOnLane(), getSafeFollowSpeed(), MSLeaderInfo::getSubLanes(), getTimeGapOnLane(), MESegment::getTimeHeadway(), MSPModel_Striping::getVehicleObstacles(), libsumo::Helper::getVehicleType(), GUIBaseVehicle::getVType(), MSLCM_SL2015::getWidth(), MSLink::getZipperSpeed(), MSLane::handleCollisionBetween(), MESegment::hasSpaceFor(), ignoreRed(), MSVehicle::Influencer::implicitSpeedRemote(), MSLane::incorporateVehicle(), MSLCM_SL2015::informFollower(), MSLCM_SL2015::informLeader(), MSLCM_SL2015::informLeaders(), MSLane::insertVehicle(), MSLane::isInsertionSuccess(), MESegment::isOpen(), keepClear(), MSLCM_SL2015::keepLatGap(), MSAbstractLaneChangeModel::laneChangeOutput(), MSLane::lastInsertion(), MSLane::leftByLaneChange(), MESegment::loadState(), MSPModel_Striping::moveInDirection(), libsumo::Vehicle::moveToXY(), libsumo::Vehicle::openGap(), overlap(), MSLCM_LC2013::overtakeDistance(), MSLCM_DK2008::patchSpeed(), MSCFModel_Krauss::patchSpeedBeforeLC(), planMoveInternal(), MSVehicle::Influencer::postProcessRemoteControl(), processLinkApproaches(), processNextStop(), processTraCISpeedControl(), MESegment::receive(), MSLaneChanger::ChangeElem::registerHop(), MSLaneChanger::registerUnchanged(), MSAbstractLaneChangeModel::remainingTime(), MESegment::removeCar(), MSLane::removeVehicle(), MSLane::safeInsertionSpeed(), MSLCM_LC2013::saveBlockerLength(), MSLCM_SL2015::saveBlockerLength(), MSBaseVehicle::saveState(), GUIVehicle::selectBlockingFoes(), MSVehicleType::setActionStepLength(), MSAbstractLaneChangeModel::setFollowerGaps(), GUIBaseVehicle::setFunctionalColor(), MSAbstractLaneChangeModel::setLeaderGaps(), MSAbstractLaneChangeModel::setOrigLeaderGaps(), setTentativeLaneAndPosition(), MSLCM_LC2013::slowDownForBlocked(), MSLCM_SL2015::slowDownForBlocked(), MSCFModel_CACC::speedGapControl(), MSLaneChangerSublane::startChangeSublane(), unsafeLinkAhead(), MSLCM_SL2015::updateCFRelated(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MSLCM_SL2015::updateGaps(), MSLCM_DK2008::wantsChangeToLeft(), MSLCM_DK2008::wantsChangeToRight(), MSBatteryExport::write(), and MSQueueExport::writeLane().

◆ getVelocityVector()

Position MSVehicle::getVelocityVector ( ) const
inline

Returns the vehicle's direction in radians.

Returns
The vehicle's current angle

Definition at line 688 of file MSVehicle.h.

References myAngle, myState, and MSVehicle::State::speed().

Referenced by MSCFModel_CC::_consensus(), MSCFModel_CC::getParameter(), and MSDevice_SSM::updateEncounter().

◆ getWaitingSeconds()

double MSVehicle::getWaitingSeconds ( ) const
inline

Returns the number of seconds waited (speed was lesser than 0.1m/s)

The value is reset if the vehicle moves faster than 0.1m/s Intentional stopping does not count towards this time.

Returns
The time the vehicle is standing

Definition at line 656 of file MSVehicle.h.

References myWaitingTime, and STEPS2TIME.

Referenced by GUIVehicle::getColorValue(), GUIVehicle::getParameterWindow(), libsumo::Vehicle::getWaitingTime(), MSLCM_LC2013::informFollower(), MSLCM_SL2015::informFollower(), MSPedestrianPushButton::isActiveForEdge(), MSEmissionExport::write(), MSQueueExport::writeLane(), and MSFullExport::writeVehicles().

◆ getWaitingTime()

SUMOTime MSVehicle::getWaitingTime ( ) const
inlinevirtual

Returns the SUMOTime waited (speed was lesser than 0.1m/s)

The value is reset if the vehicle moves faster than 0.1m/s Intentional stopping does not count towards this time.

Returns
The time the vehicle is standing

Implements SUMOTrafficObject.

Definition at line 624 of file MSVehicle.h.

References myWaitingTime.

Referenced by checkLinkLeader(), checkRewindLinkLanes(), MSLane::executeMovements(), MSLink::getLeaderInfo(), processLinkApproaches(), GUIVehicle::selectBlockingFoes(), and setApproachingForAllLinks().

◆ getWeightsStorage() [1/2]

MSEdgeWeightsStorage & MSVehicle::getWeightsStorage ( )

Definition at line 1191 of file MSVehicle.cpp.

References _getWeightsStorage().

◆ getWeightsStorage() [2/2]

const MSEdgeWeightsStorage & MSVehicle::getWeightsStorage ( ) const

Returns the vehicle's internal edge travel times/efforts container.

If the vehicle does not have such a container, it is built.

Returns
The vehicle's knowledge about edge weights

Definition at line 1185 of file MSVehicle.cpp.

References _getWeightsStorage().

Referenced by libsumo::Vehicle::getAdaptedTraveltime(), libsumo::Vehicle::getEffort(), MSNet::getEffort(), MSNet::getTravelTime(), libsumo::Vehicle::setAdaptedTraveltime(), and libsumo::Vehicle::setEffort().

◆ getWidth()

◆ hasArrived()

bool MSVehicle::hasArrived ( ) const
virtual

Returns whether this vehicle has already arived (reached the arrivalPosition on its final edge)

Reimplemented from MSBaseVehicle.

Definition at line 1074 of file MSVehicle.cpp.

References MSRoute::end(), isRemoteControlled(), MSBaseVehicle::myArrivalPos, MSBaseVehicle::myCurrEdge, MSVehicle::State::myPos, MSBaseVehicle::myRoute, myState, myStops, and POSITION_EPS.

Referenced by enterLaneAtMove(), executeMove(), MSLane::executeMovements(), and processLaneAdvances().

◆ hasDeparted()

bool MSBaseVehicle::hasDeparted ( ) const
virtualinherited

◆ hasDevice()

bool MSBaseVehicle::hasDevice ( const std::string &  deviceName) const
inherited

check whether the vehicle is equiped with a device of the given type

Definition at line 673 of file MSBaseVehicle.cpp.

References MSBaseVehicle::myDevices.

Referenced by MSBaseVehicle::createDevice(), and libsumo::Vehicle::getParameter().

◆ hasDriverState()

bool MSVehicle::hasDriverState ( ) const
inline

Whether this vehicle is equipped with a MSDriverState.

Definition at line 1003 of file MSVehicle.h.

References myDriverState.

Referenced by MSCFModel::applyHeadwayAndSpeedDifferencePerceptionErrors(), MSCFModel::applyHeadwayPerceptionError(), and planMove().

◆ hasInfluencer()

◆ hasStops()

bool MSVehicle::hasStops ( ) const
inline

◆ hasValidRoute()

bool MSBaseVehicle::hasValidRoute ( std::string &  msg,
const MSRoute route = 0 
) const
virtualinherited

Validates the current or given route.

Parameters
[out]msgDescription why the route is not valid (if it is the case)
[in]routeThe route to check (or 0 if the current route shall be checked)
Returns
Whether the vehicle's current route is valid

Implements SUMOVehicle.

Definition at line 435 of file MSBaseVehicle.cpp.

References MSRoute::begin(), MSRoute::end(), MSVehicleType::getVehicleClass(), MSBaseVehicle::myCurrEdge, MSBaseVehicle::myRoute, and MSBaseVehicle::myType.

Referenced by MESegment::initialise(), libsumo::Vehicle::isRouteValid(), MSBaseVehicle::MSBaseVehicle(), MSBaseVehicle::replaceRouteEdges(), and libsumo::Vehicle::setRouteID().

◆ haveValidStopEdges()

bool MSVehicle::haveValidStopEdges ( ) const
protected

◆ ignoreRed()

◆ influenceChangeDecision()

◆ isActionStep()

bool MSVehicle::isActionStep ( SUMOTime  t) const
inline

Returns whether the next simulation step will be an action point for the vehicle.

Returns
Whether the vehicle has scheduled an action point for the next step.

Definition at line 597 of file MSVehicle.h.

References getActionStepLength(), and myLastActionTime.

Referenced by checkActionStep(), and GUIVehicle::getColorValue().

◆ isActive()

bool MSVehicle::isActive ( ) const
inline

Returns whether the current simulation step is an action point for the vehicle.

Returns
Whether the vehicle has an action point in the current step.

Definition at line 590 of file MSVehicle.h.

References myActionStep.

Referenced by MSLaneChangerSublane::change(), MSLaneChanger::change(), MSLaneChangerSublane::checkChangeToNewLane(), GUIVehicle::getColorValue(), MSLink::getZipperSpeed(), and MSLCM_SL2015::setOwnState().

◆ isFrontOnLane()

bool MSVehicle::isFrontOnLane ( const MSLane lane) const
virtual

Returns the information whether the front of the vehicle is on the given lane.

Returns
Whether the vehicle's front is on that lane

Reimplemented from MSBaseVehicle.

Definition at line 4146 of file MSVehicle.cpp.

References getLaneChangeModel(), MSAbstractLaneChangeModel::getShadowLane(), and myLane.

Referenced by MSLaneChanger::findCandidate(), MSLane::getFirstVehicleInformation(), MSLane::getFollowersOnConsecutive(), MSLink::getLeaderInfo(), MSLane::getLeadersOnConsecutive(), MSLane::getPartialBehind(), MSLane::getPartialBeyond(), and getSpaceTillLastStanding().

◆ isLeader()

◆ isOnRoad()

◆ isParking()

bool MSVehicle::isParking ( ) const
virtual

Returns whether the vehicle is parking.

Returns
whether the vehicle is parking

Implements SUMOVehicle.

Definition at line 1780 of file MSVehicle.cpp.

References isStopped(), and myStops.

Referenced by MSVehicleTransfer::add(), computeAngle(), MSLane::executeMovements(), getCurrentParkingArea(), getPosition(), and GUIVehicle::getStopInfo().

◆ isRemoteControlled()

bool MSVehicle::isRemoteControlled ( ) const
virtual

Returns the information whether the vehicle is fully controlled via TraCI.

Returns
Whether the vehicle is remote-controlled

Reimplemented from MSBaseVehicle.

Definition at line 5943 of file MSVehicle.cpp.

References MSVehicle::Influencer::isRemoteControlled(), and myInfluencer.

Referenced by hasArrived(), processLinkApproaches(), MSLaneChanger::startChange(), and MSLaneChangerSublane::startChangeSublane().

◆ isSelected()

virtual bool MSBaseVehicle::isSelected ( ) const
inlinevirtualinherited

whether this vehicle is selected in the GUI

Implements SUMOVehicle.

Reimplemented in GUIVehicle.

Definition at line 479 of file MSBaseVehicle.h.

Referenced by MSCFModel_Wiedemann::_v(), MSVehicle::Manoeuvre::configureEntryManoeuvre(), MSVehicle::Manoeuvre::configureExitManoeuvre(), and MSCFModel_IDM::followSpeed().

◆ isStopped()

◆ isStoppedInRange()

bool MSVehicle::isStoppedInRange ( const double  pos,
const double  tolerance 
) const
virtual

return whether the given position is within range of the current stop

Implements SUMOVehicle.

Definition at line 1793 of file MSVehicle.cpp.

References SUMOVehicleParameter::Stop::endPos, isStopped(), MIN_STOP_LENGTH, myStops, MSVehicle::Stop::pars, and SUMOVehicleParameter::Stop::startPos.

◆ isStoppedOnLane()

bool MSVehicle::isStoppedOnLane ( ) const

Definition at line 1748 of file MSVehicle.cpp.

References isStopped(), myLane, and myStops.

Referenced by MSLaneChangerSublane::change(), and MSLaneChanger::change().

◆ isStoppedTriggered()

bool MSVehicle::isStoppedTriggered ( ) const
virtual

Returns whether the vehicle is on a triggered stop.

Returns
whether the vehicle is on a triggered stop

Implements SUMOVehicle.

Definition at line 1787 of file MSVehicle.cpp.

References isStopped(), and myStops.

Referenced by keepStopping().

◆ isVehicle()

bool MSBaseVehicle::isVehicle ( ) const
inlinevirtualinherited

Get the vehicle's ID.

Returns
The the ID of the vehicle

Implements SUMOTrafficObject.

Definition at line 78 of file MSBaseVehicle.h.

◆ keepClear()

bool MSVehicle::keepClear ( const MSLink link) const
protected

◆ keepStopping()

bool MSVehicle::keepStopping ( bool  afterProcessing = false) const

Returns whether the vehicle is stopped and must continue to do so.

Definition at line 1753 of file MSVehicle.cpp.

References DELTA_T, isStopped(), isStoppedTriggered(), MSVehicle::State::myPos, myState, and myStops.

Referenced by MSVehicleTransfer::checkInsertions(), planMoveInternal(), and processNextStop().

◆ lateralDistanceToLane()

double MSVehicle::lateralDistanceToLane ( const int  offset) const

Get the minimal lateral distance required to move fully onto the lane at given offset.

Returns
The lateral distance to be covered to move the vehicle fully onto the lane (in m)

Definition at line 5443 of file MSVehicle.cpp.

References DEBUG_COND, MSBaseVehicle::getID(), getLateralPositionOnLane(), MSLane::getParallelLane(), MSBaseVehicle::getWidth(), MSLane::getWidth(), myLane, NUMERICAL_EPS, and SIMTIME.

Referenced by MSLCM_SL2015::_wantsChangeSublane(), and MSAbstractLaneChangeModel::checkTraCICommands().

◆ leaveLane()

◆ loadState()

◆ manoeuvreIsComplete()

bool MSVehicle::manoeuvreIsComplete ( ) const

accessor function to myManoeuvre equivalent

Definition at line 6396 of file MSVehicle.cpp.

References MSVehicle::Manoeuvre::manoeuvreIsComplete(), and myManoeuvre.

Referenced by planMove(), and planMoveInternal().

◆ nextLinkPriority()

int MSVehicle::nextLinkPriority ( const std::vector< MSLane * > &  conts)
static

get a numerical value for the priority of the upcoming link

Definition at line 5020 of file MSVehicle.cpp.

References MSLinkContHelper::getConnectingLink(), and MSLink::havePriority().

Referenced by updateBestLanes().

◆ nextStopDist()

double MSVehicle::nextStopDist ( ) const
inline

return the distance to the next stop or doubleMax if there is none.

Definition at line 1052 of file MSVehicle.h.

References myStopDist.

Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), and MSLaneChanger::changeOpposite().

◆ onDepart()

void MSBaseVehicle::onDepart ( )
virtualinherited

Called when the vehicle is inserted into the network.

Sets optional information about departure time, informs the vehicle control about a further running vehicle.

Implements SUMOVehicle.

Definition at line 371 of file MSBaseVehicle.cpp.

References MSNet::getCurrentTimeStep(), MSNet::getInstance(), SUMOTrafficObject::getPositionOnLane(), MSNet::getVehicleControl(), MSBaseVehicle::myDepartPos, MSBaseVehicle::myDeparture, and MSVehicleControl::vehicleDeparted().

Referenced by enterLaneAtInsertion(), MSVehicle::Influencer::postProcessRemoteControl(), and MESegment::receive().

◆ onFurtherEdge()

bool MSVehicle::onFurtherEdge ( const MSEdge edge) const

whether this vehicle has its back (and no its front) on the given edge

Definition at line 5616 of file MSVehicle.cpp.

References myFurtherLanes.

◆ onRemovalFromNet()

void MSVehicle::onRemovalFromNet ( const MSMoveReminder::Notification  reason)

Called when the vehicle is removed from the network.

Moves along work reminders and informs all devices about quitting. Calls "leaveLane" then.

Parameters
[in]reasonwhy the vehicle leaves (reached its destination, parking, teleport)

Definition at line 1060 of file MSVehicle.cpp.

References DEBUG_COND, MSBaseVehicle::getID(), MSVehicleTransfer::getInstance(), leaveLane(), myLFLinkLanes, MSVehicleTransfer::remove(), removeApproachingInformation(), SIMTIME, and toString().

Referenced by MSVehicleTransfer::add(), MSLane::detectCollisions(), MSLane::executeMovements(), libsumo::Vehicle::moveTo(), GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdRemoveObject(), MSVehicle::Influencer::postProcessRemoteControl(), libsumo::Vehicle::remove(), and MSCalibrator::removePending().

◆ operator=()

MSVehicle& MSVehicle::operator= ( const MSVehicle )
private

invalidated assignment operator

◆ overlap()

static bool MSVehicle::overlap ( const MSVehicle veh1,
const MSVehicle veh2 
)
inlinestatic

Returns true if the two vehicles overlap.

Definition at line 708 of file MSVehicle.h.

References MSVehicleType::getLengthWithGap(), MSBaseVehicle::getVehicleType(), MSVehicle::State::myPos, and myState.

◆ passingMinor()

bool MSVehicle::passingMinor ( ) const

decide whether the vehicle is passing a minor link or has comitted to do so

Definition at line 6011 of file MSVehicle.cpp.

References MSLane::getEdge(), MSLink::getFoeVisibilityDistance(), MSLane::getIncomingLanes(), MSLink::havePriority(), MSEdge::isInternal(), myLane, and myLFLinkLanes.

Referenced by MSCFModel_Krauss::patchSpeedBeforeLC().

◆ planMove()

void MSVehicle::planMove ( const SUMOTime  t,
const MSLeaderInfo ahead,
const double  lengthsInFront 
)

Compute safe velocities for the upcoming lanes based on positions and speeds from the last time step. Also registers ApproachingVehicleInformation for all links.

This method goes through the best continuation lanes of the current lane and computes the safe velocities for passing/stopping at the next link as a DriveProcessItem

Afterwards it checks if any DriveProcessItem should be discarded to avoid blocking a junction (checkRewindLinkLanes).

Finally the ApproachingVehicleInformation is registered for all links that shall be passed

Parameters
[in]tThe current timeStep
[in]aheadThe leaders (may be 0)
[in]lengthsInFrontSum of vehicle lengths in front of the vehicle

Definition at line 2146 of file MSVehicle.cpp.

References checkActionStep(), checkRewindLinkLanes(), DEBUG_COND, MSDevice_DriverState::getDriverState(), Named::getID(), MSBaseVehicle::getID(), getLaneChangeModel(), getLateralPositionOnLane(), getManoeuvreType(), getPositionOnLane(), getSpeed(), MSGlobals::gModelParkingManoeuver, gPrecision, hasDriverState(), MANOEUVRE_EXIT, MANOEUVRE_NONE, manoeuvreIsComplete(), myDriverState, myLane, myLFLinkLanes, myLFLinkLanesPrev, myNextDriveItem, myNextTurn, myStopDist, planMoveInternal(), removePassedDriveItems(), MSAbstractLaneChangeModel::resetChanged(), setActionStepLength(), setManoeuvreType(), SIMTIME, STEPS2TIME, and MSDevice_DriverState::update().

◆ planMoveInternal()

void MSVehicle::planMoveInternal ( const SUMOTime  t,
MSLeaderInfo  ahead,
DriveItemVector lfLinks,
double &  myStopDist,
std::pair< double, LinkDirection > &  myNextTurn 
) const
protected
Todo:
: documentation

Definition at line 2213 of file MSVehicle.cpp.

References MSVehicle::DriveProcessItem::adaptLeaveSpeed(), adaptToLeaders(), MSLeaderInfo::addLeader(), ARRIVAL_SPEED_GIVEN, SUMOVehicleParameter::arrivalSpeed, SUMOVehicleParameter::arrivalSpeedProcedure, MSCFModel::brakeGap(), canReverse(), checkLinkLeaderCurrentAndParallel(), MSLeaderInfo::clear(), MSVehicle::Influencer::considerSafeVelocity(), CRLL_LOOK_AHEAD, DEBUG_COND, DELTA_T, DIST_TO_STOPLINE_EXPECT_PRIORITY, MSRoute::end(), SUMOVehicleParameter::Stop::endPos, estimateLeaveSpeed(), MSCFModel::estimateSpeedAfterDistance(), MSCFModel::freeSpeed(), MSVehicle::Influencer::gapControlSpeed(), getBestLanesContinuation(), getCarFollowModel(), MSAbstractLaneChangeModel::getCommittedSpeed(), MSLane::getEdge(), MSVehicle::Stop::getEndPos(), Named::getID(), MSBaseVehicle::getID(), MSLane::getIncomingLanes(), MSNet::getInstance(), getLane(), getLaneChangeModel(), MSParkingArea::getLastFreePosWithReservation(), MSLane::getLastVehicleInformation(), getLateralOverlap(), MSVehicleType::getLength(), MSLane::getLength(), MSLane::getLinkCont(), MSCFModel::getMaxAccel(), MSCFModel::getMaxDecel(), MSCFModel::getMinimalArrivalSpeed(), MSCFModel::getMinimalArrivalSpeedEuler(), MSCFModel::getMinimalArrivalTime(), MSPModel::getModel(), MSLane::getOpposite(), MSLane::getOppositeLeader(), MSLane::getParallelLane(), MSBaseVehicle::getParameter(), MSEdge::getPersons(), getPositionOnLane(), MSLane::getRightSideOnEdge(), getRightSideOnLane(), MSBaseVehicle::getRNG(), MSAbstractLaneChangeModel::getShadowLane(), getSpeed(), MSLane::getStopOffset(), MSLane::getVehicleMaxSpeed(), MSLane::getVehicleNumber(), MSLane::getVehicleNumberWithPartials(), MSBaseVehicle::getVehicleType(), MSVehicleType::getWidth(), MSBaseVehicle::getWidth(), MSEdge::getWidth(), MSGlobals::gLateralResolution, MSGlobals::gModelParkingManoeuver, MSGlobals::gSemiImplicitEulerUpdate, MSPModel::hasPedestrians(), ignoreRed(), MSVehicle::Influencer::influenceSpeed(), MSEdge::isFringe(), MSEdge::isInternal(), MSLane::isInternal(), MSLane::isLinkEnd(), MSAbstractLaneChangeModel::isOpposite(), isRailway(), keepStopping(), LINKDIR_LEFT, LINKDIR_NODIR, LINKDIR_RIGHT, LINKDIR_STRAIGHT, LINKSTATE_EQUAL, manoeuvreIsComplete(), MAX2(), MSCFModel::maximumSafeStopSpeed(), MSCFModel::maxNextSpeed(), MIN2(), MSCFModel::minNextSpeed(), MSBaseVehicle::myArrivalPos, MSBaseVehicle::myCurrEdge, myFurtherLanes, myInfluencer, myLane, myNextTurn, MSBaseVehicle::myParameter, MSVehicle::State::myPos, MSBaseVehicle::myRoute, MSVehicle::State::mySpeed, myState, myStopDist, myStops, MSVehicle::DriveProcessItem::myVLinkWait, myWaitingTime, MSPModel::nextBlocking(), NUMERICAL_EPS, NUMERICAL_EPS_SPEED, MSVehicle::Stop::parkingarea, MSVehicle::Stop::pars, POSITION_EPS, RandHelper::rand(), MSVehicle::Stop::reached, SIMTIME, SUMOVehicleParameter::Stop::speed, SPEED2DIST, SUMOVehicleParameter::Stop::startPos, STEPS2TIME, MSCFModel::stopSpeed(), MSLane::succLinkSec(), SUMO_ATTR_JM_DRIVE_RED_SPEED, TIME2STEPS, and toString().

Referenced by planMove().

◆ processLaneAdvances()

void MSVehicle::processLaneAdvances ( std::vector< MSLane * > &  passedLanes,
bool &  moved,
std::string &  emergencyReason 
)
protected

This method checks if the vehicle has advanced over one or several lanes along its route and triggers the corresponding actions for the lanes and the vehicle. and adapts the given in/out parameters to the appropriate values.

Parameters
[out]passedLanesLanes, which the vehicle touched at some moment of the executed simstep
[out]movedWhether the vehicle did move to another lane
[out]emergencyReasonReason for a possible emergency stop

Definition at line 3595 of file MSVehicle.cpp.

References canReverse(), MSEdgeControl::checkCollisionForInactive(), DEBUG_COND, MSRoute::end(), MSAbstractLaneChangeModel::endLaneChangeManeuver(), enterLaneAtMove(), MSLinkContHelper::getConnectingLink(), MSNet::getCurrentTimeStep(), MSLink::getDirection(), MSLane::getEdge(), MSNet::getEdgeControl(), MSVehicle::Influencer::getEmergencyBrakeRedLight(), Named::getID(), MSBaseVehicle::getID(), MSNet::getInstance(), MSLink::getLaneBefore(), getLaneChangeModel(), MSVehicleType::getLength(), MSLane::getLength(), MSLane::getLinkCont(), MSLane::getStopOffset(), MSLink::getViaLane(), MSLink::getViaLaneOrLane(), MSGlobals::gUsingInternalLanes, hasArrived(), MSLink::haveRed(), ignoreRed(), MSLink::isConflictEntryLink(), MSLink::isEntryLink(), MSLink::isExitLink(), MSEdge::isVaporizing(), leaveLane(), LINKDIR_LEFT, LINKDIR_RIGHT, MSLane::mustCheckJunctionCollisions(), MSBaseVehicle::myCurrEdge, myFurtherLanes, myInfluencer, myJunctionConflictEntryTime, myJunctionEntryTime, myJunctionEntryTimeNeverYield, myLane, myLFLinkLanes, myNextDriveItem, MSVehicle::State::myPos, MSBaseVehicle::myRoute, MSVehicle::State::mySpeed, myState, MSBaseVehicle::myType, MSMoveReminder::NOTIFICATION_JUNCTION, MSMoveReminder::NOTIFICATION_VAPORIZED, NUMERICAL_EPS, SUMOTime_MAX, time2string(), and WRITE_WARNING.

Referenced by executeMove().

◆ processLinkApproaches()

void MSVehicle::processLinkApproaches ( double &  vSafe,
double &  vSafeMin,
double &  vSafeMinDist 
)
protected

This method iterates through the driveprocess items for the vehicle and adapts the given in/out parameters to the appropriate values.

Parameters
[in/out]vSafe The maximal safe (or admissible) velocity.
[in/out]vSafeMin The minimal safe (or admissible) velocity (used her for ensuring the clearing of junctions in time).
[in/out]vSafeMinDist The distance to the next link, which should either be crossed this step, or in front of which the vehicle need to stop.

Definition at line 3013 of file MSVehicle.cpp.

References ACCEL2SPEED, MSCFModel::brakeGap(), DEBUG_COND, DIST2SPEED, gDebugFlag1, getCarFollowModel(), MSLane::getEdge(), MSLink::getFoeVisibilityDistance(), Named::getID(), MSBaseVehicle::getID(), MSBaseVehicle::getImpatience(), MSLink::getInternalLaneBefore(), MSLink::getJunction(), MSLink::getLaneBefore(), getLaneChangeModel(), getLateralPositionOnLane(), MSVehicleType::getLength(), MSCFModel::getMaxDecel(), MSLink::getParallelLink(), MSVehicle::Influencer::getRespectJunctionPriority(), MSAbstractLaneChangeModel::getShadowDirection(), MSAbstractLaneChangeModel::getShadowLane(), getSpeed(), MSLink::getState(), MSLane::getStopOffset(), MSEdge::getToJunction(), MSBaseVehicle::getVehicleType(), MSLink::getViaLaneOrLane(), getWaitingTime(), MSLane::getWidth(), MSLink::getZipperSpeed(), MSGlobals::gSemiImplicitEulerUpdate, MSLink::havePriority(), MSLink::haveYellow(), ignoreRed(), MSLink::isCont(), MSLane::isInternal(), isRemoteControlled(), MSEdge::isRoundabout(), MSLink::lastWasContMajor(), LINKSTATE_ZIPPER, MIN2(), myHaveToWaitOnNextLink, myInfluencer, myJunctionConflictEntryTime, myJunctionEntryTime, myLane, myLFLinkLanes, MSVehicle::State::mySpeed, myState, NUMERICAL_EPS, MSLink::opened(), POSITION_EPS, SIMTIME, SUMO_const_haltingSpeed, and SUMOTime_MAX.

Referenced by executeMove().

◆ processNextStop()

double MSVehicle::processNextStop ( double  currentVelocity)

Processes stops, returns the velocity needed to reach the stop.

Returns
The velocity in dependance to the next/current stop
Todo:
Describe more detailed
See also
Stop
MSStoppingPlace
MSStoppingPlace

Definition at line 1806 of file MSVehicle.cpp.

References activateReminders(), MSStopOut::active(), MSBaseVehicle::addReminder(), MSEdge::addWaiting(), MSTransportableControl::boardAnyWaiting(), MSVehicle::Stop::busstop, MSVehicle::Stop::containerstop, MSVehicle::Stop::containerTriggered, DEBUG_COND, MSVehicle::Stop::duration, MSVehicle::Stop::edge, MSVehicle::Stop::endBoarding, MSStoppingPlace::enter(), MSParkingArea::enter(), MSVehicle::Manoeuvre::entryManoeuvreIsComplete(), SUMOVehicleParameter::Stop::extension, MSStoppingPlace::fits(), getActionStepLength(), MSStoppingPlace::getBeginLanePosition(), MSParkingArea::getCapacity(), getCarFollowModel(), MSNet::getContainerControl(), MSBaseVehicle::getContainerNumber(), MSNet::getCurrentTimeStep(), MSLane::getEdge(), MSVehicle::Stop::getEndPos(), Named::getID(), MSBaseVehicle::getID(), MSStopOut::getInstance(), MSNet::getInstance(), MSVehicleType::getLength(), MSCFModel::getMaxDecel(), MSVehicleType::getMinGap(), MSLane::getMoveReminders(), MSParkingArea::getOccupancy(), MSParkingArea::getOccupancyIncludingBlocked(), MSBaseVehicle::getParameter(), MSNet::getPersonControl(), MSBaseVehicle::getPersonNumber(), getSpeed(), MSDevice_Transportable::getTransportables(), MSNet::getVehicleControl(), MSBaseVehicle::getVehicleType(), MSGlobals::gModelParkingManoeuver, MSGlobals::gSemiImplicitEulerUpdate, MSNet::hasContainers(), MSNet::hasPersons(), MSNet::informVehicleStateListener(), isOnRoad(), keepStopping(), MSVehicle::Stop::lane, SUMOVehicleParameter::Stop::line, MSTransportableControl::loadAnyWaiting(), MAX2(), myAmRegisteredAsWaitingForContainer, myAmRegisteredAsWaitingForPerson, MSBaseVehicle::myContainerDevice, MSBaseVehicle::myCurrEdge, myLane, myLFLinkLanes, myManoeuvre, MSBaseVehicle::myPersonDevice, MSVehicle::State::myPos, myState, myStops, MSBaseVehicle::myType, MSMoveReminder::NOTIFICATION_PARKING_REROUTE, NUMERICAL_EPS, MSVehicle::Stop::numExpectedContainer, MSVehicle::Stop::numExpectedPerson, MSVehicle::Stop::parkingarea, MSVehicle::Stop::pars, MSVehicle::State::pos(), MSVehicle::Stop::reached, MSVehicleControl::registerOneWaiting(), MSStoppingPlace::removeTransportable(), resumeFromStopping(), SIMTIME, SUMOVehicleParameter::Stop::speed, SUMOVehicleParameter::Stop::startPos, STEPS2TIME, STOPPING_PLACE_OFFSET, MSStopOut::stopStarted(), SUMO_const_haltingSpeed, SUMOTime_MAX, MSVehicle::Stop::timeToBoardNextPerson, MSVehicle::Stop::timeToLoadNextContainer, MSVehicle::Stop::triggered, SUMOVehicleParameter::Stop::tripId, MSVehicleControl::unregisterOneWaiting(), SUMOVehicleParameter::Stop::until, MSNet::VEHICLE_STATE_STARTING_STOP, and WRITE_WARNING.

Referenced by MSVehicleTransfer::checkInsertions(), MSCFModel_Daniel1::finalizeSpeed(), MSCFModel::finalizeSpeed(), MSCFModel_CC::finalizeSpeed(), MSVehicleTransfer::loadState(), and MSLane::loadState().

◆ processTraCISpeedControl()

double MSVehicle::processTraCISpeedControl ( double  vSafe,
double  vNext 
)
protected

Check for speed advices from the traci client and adjust the speed vNext in the current (euler) / after the current (ballistic) simstep accordingly.

Parameters
[in]vSafeThe maximal safe (or admissible) velocity as determined from stops, junction approaches, car following, lane changing, etc.
[in]vNextThe next speed (possibly subject to traci influence)
Returns
updated vNext

Definition at line 3262 of file MSVehicle.cpp.

References DEBUG_COND2, MSVehicleType::getCarFollowModel(), MSBaseVehicle::getID(), MSNet::getInstance(), MSBaseVehicle::getVehicleType(), MSGlobals::gSemiImplicitEulerUpdate, MSVehicle::Influencer::implicitSpeedRemote(), MSVehicle::Influencer::influenceSpeed(), MSVehicle::Influencer::isRemoteControlled(), MAX2(), MSCFModel::maxNextSpeed(), MSCFModel::minNextSpeed(), myInfluencer, MSVehicle::State::mySpeed, myState, and SIMTIME.

Referenced by executeMove(), and MSVehicle::Influencer::postProcessRemoteControl().

◆ remainingStopDuration()

SUMOTime MSVehicle::remainingStopDuration ( ) const
virtual

Returns the remaining stop duration for a stopped vehicle or 0.

Implements SUMOVehicle.

Definition at line 1765 of file MSVehicle.cpp.

References isStopped(), and myStops.

Referenced by MSVehicle::Manoeuvre::configureExitManoeuvre().

◆ removeApproachingInformation()

void MSVehicle::removeApproachingInformation ( const DriveItemVector lfLinks) const
protected

unregister approach from all upcoming links

Definition at line 5499 of file MSVehicle.cpp.

References getLaneChangeModel(), and MSAbstractLaneChangeModel::removeShadowApproachingInformation().

Referenced by onRemovalFromNet(), setApproachingForAllLinks(), and ~MSVehicle().

◆ removePassedDriveItems()

void MSVehicle::removePassedDriveItems ( )
protected

Erase passed drive items from myLFLinkLanes (and unregister approaching information for corresponding links). Further, myNextDriveItem is reset.

Note
This is called in planMove() if the vehicle has no actionstep. All items until the position myNextDriveItem are deleted. This can happen if myNextDriveItem was increased in processLaneAdvances() of the previous step.

Definition at line 3290 of file MSVehicle.cpp.

References DEBUG_COND, Named::getID(), MSBaseVehicle::getID(), myLFLinkLanes, myNextDriveItem, and SIMTIME.

Referenced by planMove().

◆ removeReminder()

void MSBaseVehicle::removeReminder ( MSMoveReminder rem)
inherited

Removes a MoveReminder dynamically.

Parameters
[in]remthe reminder to remove
See also
MSMoveReminder

Definition at line 474 of file MSBaseVehicle.cpp.

References MSBaseVehicle::myMoveReminders.

◆ removeTransportable()

void MSBaseVehicle::removeTransportable ( MSTransportable t)
virtualinherited

removes a person or container

Implements SUMOVehicle.

Definition at line 640 of file MSBaseVehicle.cpp.

References MSBaseVehicle::myContainerDevice, MSBaseVehicle::myPersonDevice, and MSDevice_Transportable::removeTransportable().

◆ replaceParameter()

void MSBaseVehicle::replaceParameter ( const SUMOVehicleParameter newParameter)
virtualinherited

replace the vehicle parameter (deleting the old one)

Implements SUMOVehicle.

Definition at line 159 of file MSBaseVehicle.cpp.

References MSBaseVehicle::myParameter.

Referenced by rerouteParkingArea().

◆ replaceParkingArea()

◆ replaceRoute()

bool MSVehicle::replaceRoute ( const MSRoute route,
const std::string &  info,
bool  onInit = false,
int  offset = 0,
bool  addStops = true,
bool  removeStops = true 
)
virtual

Replaces the current route by the given one.

It is possible that the new route is not accepted, if it does not contain the vehicle's current edge.

Parameters
[in]routeThe new route to pass
[in]infoInformation regarding the replacement
[in]removeStopsWhether stops should be removed if they do not fit onto the new route
Returns
Whether the new route was accepted

Implements SUMOVehicle.

Definition at line 1083 of file MSVehicle.cpp.

References MSRoute::addReference(), addStop(), MSBaseVehicle::addStops(), MSRoute::begin(), MSBaseVehicle::calculateArrivalParams(), MSRoute::contains(), DEBUG_COND, MSGlobals::gCheckRoutes, MSLane::getEdge(), MSRoute::getEdges(), Named::getID(), MSNet::getInstance(), MSLane::getOutgoingViaLanes(), getPositionOnLane(), MSRoute::getStops(), haveValidStopEdges(), MSNet::informVehicleStateListener(), MSEdge::isInternal(), MSLane::isInternal(), MSBaseVehicle::myCurrEdge, myLane, myLastBestLanesEdge, myLastBestLanesInternalLane, MSBaseVehicle::myNumberReroutes, MSBaseVehicle::myRoute, myStops, MSRoute::release(), updateBestLanes(), MSNet::VEHICLE_STATE_NEWROUTE, and WRITE_WARNING.

Referenced by libsumo::Vehicle::setRouteID().

◆ replaceRouteEdges()

bool MSBaseVehicle::replaceRouteEdges ( ConstMSEdgeVector edges,
double  cost,
double  savings,
const std::string &  info,
bool  onInit = false,
bool  check = false,
bool  removeStops = true 
)
virtualinherited

Replaces the current route by the given edges.

It is possible that the new route is not accepted, if a) it does not contain the vehicle's current edge, or b) something fails on insertion into the routes container (see in-line comments).

Parameters
[in]edgesThe new list of edges to pass
[in]onInitWhether the vehicle starts with this route
[in]checkWhether the route should be checked for validity
[in]removeStopsWhether stops should be removed if they do not fit onto the new route
Returns
Whether the new route was accepted

Implements SUMOVehicle.

Definition at line 303 of file MSBaseVehicle.cpp.

References MSRoute::addReference(), MSRoute::begin(), RGBColor::DEFAULT_COLOR, MSRoute::dictionary(), StringUtils::endsWith(), MSGlobals::gCheckRoutes, MSRoute::getColor(), MSRoute::getEdges(), Named::getID(), MSBaseVehicle::getID(), MSBaseVehicle::getNumberReroutes(), MSBaseVehicle::getRerouteOrigin(), MSBaseVehicle::hasValidRoute(), MSBaseVehicle::myCurrEdge, MSBaseVehicle::myRoute, MSRoute::release(), SUMOVehicle::replaceRoute(), MSRoute::setCosts(), MSRoute::setSavings(), MSRoute::size(), SUMO_TAG_PARKING_ZONE_REROUTE, toString(), and WRITE_WARNING.

Referenced by libsumo::Vehicle::changeTarget(), MSVehicle::Influencer::postProcessRemoteControl(), MSBaseVehicle::reroute(), GUIVehicle::rerouteDRTStop(), rerouteParkingArea(), and libsumo::Vehicle::setRoute().

◆ replaceVehicleType()

void MSBaseVehicle::replaceVehicleType ( MSVehicleType type)
inherited

Replaces the current vehicle type by the one given.

If the currently used vehicle type is marked as being used by this vehicle only, it is deleted, first. The new, given type is then assigned to "myType".

Parameters
[in]typeThe new vehicle type
See also
MSBaseVehicle::myType

Definition at line 726 of file MSBaseVehicle.cpp.

References MSNet::getInstance(), MSNet::getVehicleControl(), MSVehicleType::isVehicleSpecific(), MSBaseVehicle::myType, and MSVehicleControl::removeVType().

Referenced by MSBaseVehicle::getSingularType(), libsumo::Vehicle::setType(), and MSDevice_ToC::switchHolderType().

◆ reroute()

void MSBaseVehicle::reroute ( SUMOTime  t,
const std::string &  info,
SUMOAbstractRouter< MSEdge, SUMOVehicle > &  router,
const bool  onInit = false,
const bool  withTaz = false,
const bool  silent = false 
)
virtualinherited

◆ rerouteParkingArea()

◆ resetActionOffset()

void MSVehicle::resetActionOffset ( const SUMOTime  timeUntilNextAction = 0)

Resets the action offset for the vehicle.

Parameters
[in]timeUntilNextActiontime interval from now for the next action, defaults to 0, which implies an immediate action point in the current step.

Definition at line 2121 of file MSVehicle.cpp.

References MSNet::getCurrentTimeStep(), MSNet::getInstance(), and myLastActionTime.

Referenced by MSVehicleType::setActionStepLength(), setActionStepLength(), and updateActionOffset().

◆ resetRoutePosition()

void MSBaseVehicle::resetRoutePosition ( int  index,
DepartLaneDefinition  departLaneProcedure 
)
inherited

◆ resumeFromStopping()

◆ saveState()

◆ setActionStepLength()

void MSVehicle::setActionStepLength ( double  actionStepLength,
bool  resetActionOffset = true 
)

Sets the action steplength of the vehicle.

Parameters
actionStepLengthNew value
resetActionOffsetwhether the action offset should be reset to zero, i.e., the next action step should follow immediately.

Definition at line 1422 of file MSVehicle.cpp.

References getActionStepLength(), MSBaseVehicle::getSingularType(), SUMOVehicleParserHelper::processActionStepLength(), resetActionOffset(), MSVehicleType::setActionStepLength(), and updateActionOffset().

Referenced by planMove().

◆ setAngle()

void MSVehicle::setAngle ( double  angle,
bool  straightenFurther = false 
)

◆ setApproachingForAllLinks()

◆ setArrivalPos()

virtual void MSBaseVehicle::setArrivalPos ( double  arrivalPos)
inlinevirtualinherited

Sets this vehicle's desired arrivalPos for its current route.

Implements SUMOVehicle.

Definition at line 288 of file MSBaseVehicle.h.

References MSBaseVehicle::myArrivalPos.

◆ setBlinkerInformation()

◆ setBrakingSignals()

void MSVehicle::setBrakingSignals ( double  vNext)
protected

◆ setChosenSpeedFactor()

void MSBaseVehicle::setChosenSpeedFactor ( const double  factor)
inlinevirtualinherited

Returns the precomputed factor by which the driver wants to be faster than the speed limit.

Returns
Speed limit factor

Implements SUMOVehicle.

Definition at line 433 of file MSBaseVehicle.h.

References MSBaseVehicle::myChosenSpeedFactor.

Referenced by MSCFModel_CC::finalizeSpeed(), and GUISUMOViewParent::onCmdSpeedFactor().

◆ setDeviceParameter()

void MSBaseVehicle::setDeviceParameter ( const std::string &  deviceName,
const std::string &  key,
const std::string &  value 
)
inherited

try to set the given parameter from any of the vehicles devices, raise InvalidArgument if no device parameter by that name exists

Definition at line 714 of file MSBaseVehicle.cpp.

References MSBaseVehicle::myDevices.

Referenced by libsumo::Vehicle::setParameter().

◆ setEmergencyBlueLight()

void MSVehicle::setEmergencyBlueLight ( SUMOTime  currentTime)
protected

sets the blue flashing light for emergency vehicles

Definition at line 5290 of file MSVehicle.cpp.

References signalSet(), switchOffSignal(), switchOnSignal(), and VEH_SIGNAL_EMERGENCY_BLUE.

Referenced by executeMove().

◆ setExitManoeuvre()

bool MSVehicle::setExitManoeuvre ( )

accessor function to myManoeuvre equivalent

Note
Setup of exit manoeuvre is invoked from MSVehicleTransfer

Definition at line 6225 of file MSVehicle.cpp.

References MSVehicle::Manoeuvre::configureExitManoeuvre(), and myManoeuvre.

Referenced by MSVehicleTransfer::checkInsertions().

◆ setLateralPositionOnLane()

void MSVehicle::setLateralPositionOnLane ( double  posLat)
inline

Definition at line 433 of file MSVehicle.h.

References MSVehicle::State::myPosLat, and myState.

Referenced by MSLCM_LC2013::prepareStep().

◆ setManoeuvreType()

void MSVehicle::setManoeuvreType ( const MSVehicle::ManoeuvreType  mType)

accessor function to myManoeuvre equivalent

Definition at line 6280 of file MSVehicle.cpp.

References myManoeuvre, and MSVehicle::Manoeuvre::setManoeuvreType().

Referenced by planMove().

◆ setRemoteState()

void MSVehicle::setRemoteState ( Position  xyPos)

sets position outside the road network

Definition at line 5937 of file MSVehicle.cpp.

References myCachedPosition.

Referenced by MSVehicle::Influencer::postProcessRemoteControl().

◆ setTentativeLaneAndPosition()

void MSVehicle::setTentativeLaneAndPosition ( MSLane lane,
double  pos,
double  posLat = 0 
)

set tentative lane and position during insertion to ensure that all cfmodels work (some of them require veh->getLane() to return a valid lane) Once the vehicle is sucessfully inserted the lane is set again (see enterLaneAtInsertion)

Definition at line 5311 of file MSVehicle.cpp.

References MSVehicleType::getLength(), MSBaseVehicle::getVehicleType(), MSVehicle::State::myBackPos, myLane, MSVehicle::State::myPos, MSVehicle::State::myPosLat, and myState.

Referenced by MSLane::freeInsertion(), MSLane::isInsertionSuccess(), MSLane::lastInsertion(), MSVehicleTransfer::loadState(), libsumo::Vehicle::moveTo(), and MSAbstractLaneChangeModel::primaryLaneChanged().

◆ signalSet()

bool MSVehicle::signalSet ( int  which) const
inline

Returns whether the given signal is on.

Parameters
[in]signalThe signal to return the value of
Returns
Whether the given signal is on

Definition at line 1261 of file MSVehicle.h.

References mySignals.

Referenced by MSVehicleTransfer::checkInsertions(), checkRewindLinkLanes(), GUIVehicle::drawAction_drawVehicleBlinker(), GUIVehicle::drawAction_drawVehicleBlueLight(), GUIVehicle::drawAction_drawVehicleBrakeLight(), and setEmergencyBlueLight().

◆ stopsAt()

bool MSVehicle::stopsAt ( MSStoppingPlace stop) const
virtual

Returns whether the vehicle stops at the given stopping place.

Implements SUMOVehicle.

Definition at line 2067 of file MSVehicle.cpp.

References myStops.

◆ stopsAtEdge()

bool MSVehicle::stopsAtEdge ( const MSEdge edge) const
virtual

Returns whether the vehicle stops at the given edge.

Implements SUMOVehicle.

Definition at line 2083 of file MSVehicle.cpp.

References myStops.

◆ succEdge()

const MSEdge * MSBaseVehicle::succEdge ( int  nSuccs) const
virtualinherited

Returns the nSuccs'th successor of edge the vehicle is currently at.

If the rest of the route (counted from the current edge) has less than nSuccs edges, 0 is returned.

Parameters
[in]nSuccsThe number of edge to look forward
Returns
The nSuccs'th following edge in the vehicle's route

Implements SUMOVehicle.

Definition at line 171 of file MSBaseVehicle.cpp.

References MSRoute::begin(), MSBaseVehicle::myCurrEdge, and MSBaseVehicle::myRoute.

Referenced by MSVehicleTransfer::add(), MSLane::appropriate(), MSVehicleTransfer::checkInsertions(), MESegment::getLink(), MSBaseVehicle::hasArrived(), MSPedestrianPushButton::isActiveForEdge(), MELoop::nextSegment(), and MESegment::receive().

◆ switchOffSignal()

void MSVehicle::switchOffSignal ( int  signal)
inline

Switches the given signal off.

Parameters
[in]signalThe signal to mark as being switched off

Definition at line 1244 of file MSVehicle.h.

References mySignals.

Referenced by MSAbstractLaneChangeModel::endLaneChangeManeuver(), setBlinkerInformation(), setBrakingSignals(), setEmergencyBlueLight(), libsumo::Vehicle::setSignals(), and MSAbstractLaneChangeModel::startLaneChangeManeuver().

◆ switchOnSignal()

void MSVehicle::switchOnSignal ( int  signal)
inline

Switches the given signal on.

Parameters
[in]signalThe signal to mark as being switched on

Definition at line 1236 of file MSVehicle.h.

References mySignals.

Referenced by MSVehicleTransfer::checkInsertions(), setBlinkerInformation(), setBrakingSignals(), setEmergencyBlueLight(), libsumo::Vehicle::setSignals(), and MSAbstractLaneChangeModel::startLaneChangeManeuver().

◆ unsafeLinkAhead()

◆ updateActionOffset()

void MSVehicle::updateActionOffset ( const SUMOTime  oldActionStepLength,
const SUMOTime  newActionStepLength 
)

Process an updated action step length value (only affects the vehicle's action offset, The actionStepLength is stored in the (singular) vtype)

Parameters
[in]oldActionStepLengthThe action step length previous to the update
[in]actionStepLengthThe new action step length (stored in the vehicle's vtype).
Note
The current action step length is updated. This implies an immediate action point, if the new step length is smaller than the length of the currently running action interval (the difference between now and the last action time).

Definition at line 2127 of file MSVehicle.cpp.

References MSNet::getCurrentTimeStep(), MSNet::getInstance(), myLastActionTime, and resetActionOffset().

Referenced by MSVehicleType::setActionStepLength(), and setActionStepLength().

◆ updateBestLanes()

void MSVehicle::updateBestLanes ( bool  forceRebuild = false,
const MSLane startLane = 0 
)

computes the best lanes to use in order to continue the route

The information is rebuilt if the vehicle is on a different edge than the one stored in "myLastBestLanesEdge" or "forceRebuild" is true.

Otherwise, only the density changes on the stored lanes are adapted to the container only.

A rebuild must be done if the vehicle leaves a stop; then, another lane may become the best one.

If no starting lane ("startLane") is given, the vehicle's current lane ("myLane") is used as start of best lanes building.

Parameters
[in]forceRebuildWhether the best lanes container shall be rebuilt even if the vehicle's edge has not changed
[in]startLaneThe lane the process shall start at ("myLane" will be used if ==0)

Definition at line 4698 of file MSVehicle.cpp.

References MSEdge::allowedLanes(), MSVehicle::LaneQ::allowsContinuation, MSLane::allowsVehicleClass(), ARRIVAL_LANE_GIVEN, SUMOVehicleParameter::arrivalLaneProcedure, MSVehicle::LaneQ::bestContinuations, MSVehicle::LaneQ::bestLaneOffset, MSEdge::clear(), MSVehicle::LaneQ::currentLength, DEBUG_COND, MSVehicle::Stop::edge, MSRoute::end(), getBestLanesContinuation(), MSLane::getEdge(), Named::getID(), MSBaseVehicle::getID(), Named::getIDSecure(), getLaneChangeModel(), MSEdge::getLanes(), MSLane::getLength(), MSLane::getLinkCont(), MSLane::getLogicalPredecessorLane(), MSLane::getNextNormal(), MSLane::getNormalPredecessorLane(), MSLane::getOpposite(), MSVehicleType::getVehicleClass(), MSEdge::isInternal(), MSLane::isInternal(), MSVehicle::LaneQ::lane, MSVehicle::Stop::lane, MSVehicle::LaneQ::length, MAX2(), MIN2(), MSBaseVehicle::myArrivalLane, MSBaseVehicle::myArrivalPos, myBestLanes, MSBaseVehicle::myCurrEdge, myCurrentLaneInBestLanes, myLane, myLastBestLanesEdge, myLastBestLanesInternalLane, MSBaseVehicle::myParameter, MSBaseVehicle::myRoute, myStops, MSBaseVehicle::myType, nextLinkPriority(), MSVehicle::LaneQ::nextOccupation, MSVehicle::LaneQ::occupation, MSVehicle::Stop::pars, POSITION_EPS, SIMTIME, SUMOVehicleParameter::Stop::startPos, toString(), and updateOccupancyAndCurrentBestLane().

Referenced by addTraciStop(), addTraciStopAtStoppingPlace(), MSLaneChangerSublane::change(), MSLaneChanger::change(), enterLaneAtLaneChange(), executeMove(), MSLane::forceVehicleInsertion(), MSEdge::getDepartLane(), MSLane::isInsertionSuccess(), MSLane::lastInsertion(), MSLane::loadState(), MSVehicle::Influencer::postProcessRemoteControl(), replaceRoute(), resumeFromStopping(), and libsumo::Vehicle::updateBestLanes().

◆ updateDriveItems()

void MSVehicle::updateDriveItems ( )

Check whether the drive items (myLFLinkLanes) are up to date, and update them if required.

Note
This is the case if a lane change was completed. Only the links corresponding to the drive items are updated to the corresponding parallel links.

Definition at line 3344 of file MSVehicle.cpp.

References DEBUG_COND, getBestLanesContinuation(), Named::getID(), MSBaseVehicle::getID(), getLane(), MSLink::getLaneBefore(), MSLane::getLinkTo(), MSLink::getParallelLink(), MSLink::getViaLaneOrLane(), MSLane::isInternal(), myLane, myLFLinkLanes, myNextDriveItem, MSLink::removeApproaching(), MSLink::setApproaching(), and SIMTIME.

Referenced by MSAbstractLaneChangeModel::primaryLaneChanged().

◆ updateFurtherLanes()

double MSVehicle::updateFurtherLanes ( std::vector< MSLane * > &  furtherLanes,
std::vector< double > &  furtherLanesPosLat,
const std::vector< MSLane * > &  passedLanes 
)

◆ updateOccupancyAndCurrentBestLane()

void MSVehicle::updateOccupancyAndCurrentBestLane ( const MSLane startLane)
protected

updates LaneQ::nextOccupation and myCurrentLaneInBestLanes

Definition at line 5036 of file MSVehicle.cpp.

References DEBUG_COND, myBestLanes, and myCurrentLaneInBestLanes.

Referenced by updateBestLanes().

◆ updateState()

void MSVehicle::updateState ( double  vNext)
protected

updates the vehicles state, given a next value for its speed. This value can be negative in case of the ballistic update to indicate a stop within the next timestep. (You can call this a 'hack' to emulate reasoning based on accelerations: The assumed constant acceleration a within the next time step is then a = (vNext - vCurrent)/TS )

Parameters
[in]vNextspeed in the next time step

Definition at line 3914 of file MSVehicle.cpp.

References DEBUG_COND, MSGlobals::gEmergencyDecelWarningThreshold, getCarFollowModel(), getDeltaPos(), MSBaseVehicle::getID(), MSNet::getInstance(), getLaneChangeModel(), MSCFModel::getMaxDecel(), MSLane::getOpposite(), MSLane::getOppositePos(), MSGlobals::gSemiImplicitEulerUpdate, MSVehicle::Influencer::implicitDeltaPosRemote(), Position::INVALID, MSVehicle::Influencer::isRemoteControlled(), MAX2(), myAcceleration, myCachedPosition, myInfluencer, myLane, MSVehicle::State::myLastCoveredDist, myNextTurn, MSVehicle::State::myPos, MSVehicle::State::myPreviousSpeed, MSVehicle::State::mySpeed, myState, NUMERICAL_EPS, SIMTIME, SPEED2ACCEL, SPEED2DIST, time2string(), toString(), and WRITE_WARNING.

Referenced by executeMove().

◆ updateTimeLoss()

void MSVehicle::updateTimeLoss ( double  vNext)
protected

Updates the vehicle's time loss.

Definition at line 3529 of file MSVehicle.cpp.

References MSLane::getVehicleMaxSpeed(), isStopped(), myLane, myTimeLoss, and TS.

Referenced by executeMove().

◆ updateWaitingTime()

void MSVehicle::updateWaitingTime ( double  vNext)
protected

Updates the vehicle's waiting time counters (accumulated and consecutive)

Definition at line 3517 of file MSVehicle.cpp.

References DELTA_T, isStopped(), myWaitingTime, myWaitingTimeCollector, MSVehicle::WaitingTimeCollector::passTime(), and SUMO_const_haltingSpeed.

Referenced by executeMove(), and MSVehicle::Influencer::postProcessRemoteControl().

◆ validatePosition()

Position MSVehicle::validatePosition ( Position  result,
double  offset = 0 
) const
protected

ensure that a vehicle-relative position is not invalid

Definition at line 1365 of file MSVehicle.cpp.

References MSLane::geometryPositionAtOffset(), getLateralPositionOnLane(), MSLane::getLength(), getPositionOnLane(), Position::INVALID, and myFurtherLanes.

Referenced by getPosition().

◆ wasRemoteControlled()

bool MSVehicle::wasRemoteControlled ( SUMOTime  lookBack = DELTA_T) const
virtual

Returns the information whether the vehicle is fully controlled via TraCI within the lookBack time.

Reimplemented from MSBaseVehicle.

Definition at line 5949 of file MSVehicle.cpp.

References MSNet::getCurrentTimeStep(), MSNet::getInstance(), MSVehicle::Influencer::getLastAccessTimeStep(), and myInfluencer.

◆ willStop()

bool MSVehicle::willStop ( ) const

Returns whether the vehicle will stop on the current edge.

Definition at line 1743 of file MSVehicle.cpp.

References MSLane::getEdge(), isStopped(), myLane, and myStops.

Referenced by MSLink::getLeaderInfo().

◆ workOnMoveReminders()

void MSVehicle::workOnMoveReminders ( double  oldPos,
double  newPos,
double  newSpeed 
)

Processes active move reminder.

This method goes through all active move reminder, both those for the current lane, stored in "myMoveReminders" and those of prior lanes stored in "myOldLaneMoveReminders" calling "MSMoveReminder::notifyMove".

When processing move reminder from "myOldLaneMoveReminders", the offsets (prior lane lengths) are used, which are stored in "myOldLaneMoveReminderOffsets".

Each move reminder which is no longer active is removed from the container.

Parameters
[in]oldPosThe position the vehicle had before it has moved
[in]newPosThe position the vehicle has after it has moved
[in]newSpeedThe vehicle's speed within this move
See also
MSMoveReminder

Definition at line 1207 of file MSVehicle.cpp.

References MAX2(), and MSBaseVehicle::myMoveReminders.

Referenced by executeMove().

Friends And Related Function Documentation

◆ MSLaneChanger

friend class MSLaneChanger
friend

the lane changer sets myLastLaneChangeOffset

Definition at line 83 of file MSVehicle.h.

◆ MSLaneChangerSublane

friend class MSLaneChangerSublane
friend

Definition at line 84 of file MSVehicle.h.

Field Documentation

◆ myAcceleration

◆ myActionStep

bool MSVehicle::myActionStep
protected

The flag myActionStep indicates whether the current time step is an action point for the vehicle.

Definition at line 1936 of file MSVehicle.h.

Referenced by checkActionStep(), executeMove(), and isActive().

◆ myAmOnNet

bool MSVehicle::myAmOnNet
protected

Whether the vehicle is on the network (not parking, teleported, vaporized, or arrived)

Definition at line 1984 of file MSVehicle.h.

Referenced by enterLaneAtInsertion(), enterLaneAtLaneChange(), enterLaneAtMove(), isOnRoad(), and leaveLane().

◆ myAmRegisteredAsWaitingForContainer

bool MSVehicle::myAmRegisteredAsWaitingForContainer
protected

Whether this vehicle is registered as waiting for a container (for deadlock-recognition)

Definition at line 1990 of file MSVehicle.h.

Referenced by processNextStop(), and resumeFromStopping().

◆ myAmRegisteredAsWaitingForPerson

bool MSVehicle::myAmRegisteredAsWaitingForPerson
protected

Whether this vehicle is registered as waiting for a person (for deadlock-recognition)

Definition at line 1987 of file MSVehicle.h.

Referenced by processNextStop(), and resumeFromStopping().

◆ myAngle

double MSVehicle::myAngle
protected

the angle in radians (

Todo:
consider moving this into myState)

Definition at line 1995 of file MSVehicle.h.

Referenced by MSLaneChanger::continueChange(), enterLaneAtInsertion(), enterLaneAtLaneChange(), executeMove(), getAngle(), getVelocityVector(), and setAngle().

◆ myArrivalLane

int MSBaseVehicle::myArrivalLane
protectedinherited

The destination lane where the vehicle stops.

Definition at line 560 of file MSBaseVehicle.h.

Referenced by MSBaseVehicle::calculateArrivalParams(), and updateBestLanes().

◆ myArrivalPos

double MSBaseVehicle::myArrivalPos
protectedinherited

◆ myBestLanes

std::vector<std::vector<LaneQ> > MSVehicle::myBestLanes
protected

◆ myCachedPosition

◆ myCFVariables

MSCFModel::VehicleVariables* MSVehicle::myCFVariables
private

The per vehicle variables of the car following model.

Definition at line 2173 of file MSVehicle.h.

Referenced by getCarFollowVariables(), and MSVehicle().

◆ myChosenSpeedFactor

double MSBaseVehicle::myChosenSpeedFactor
protectedinherited

A precomputed factor by which the driver wants to be faster than the speed limit.

Definition at line 524 of file MSBaseVehicle.h.

Referenced by MSBaseVehicle::getChosenSpeedFactor(), MSBaseVehicle::saveState(), and MSBaseVehicle::setChosenSpeedFactor().

◆ myCollisionImmunity

SUMOTime MSVehicle::myCollisionImmunity
protected

amount of time for which the vehicle is immune from collisions

Definition at line 2001 of file MSVehicle.h.

Referenced by collisionStopTime(), executeMove(), and resumeFromStopping().

◆ myContainerDevice

◆ myCurrEdge

◆ myCurrentLaneInBestLanes

std::vector<LaneQ>::iterator MSVehicle::myCurrentLaneInBestLanes
protected

Definition at line 1961 of file MSVehicle.h.

Referenced by updateBestLanes(), and updateOccupancyAndCurrentBestLane().

◆ myCurrentNumericalIndex

SUMOVehicle::NumericalID MSBaseVehicle::myCurrentNumericalIndex = 0
staticprivateinherited

Definition at line 578 of file MSBaseVehicle.h.

◆ myDepartPos

double MSBaseVehicle::myDepartPos
protectedinherited

◆ myDeparture

SUMOTime MSBaseVehicle::myDeparture
protectedinherited

◆ myDevices

◆ myDriverState

MSDevice_DriverState* MSVehicle::myDriverState
protected

This vehicle's driver state.

See also
MSDriverState

Definition at line 1933 of file MSVehicle.h.

Referenced by getDriverState(), hasDriverState(), MSVehicle(), and planMove().

◆ myEdgeWeights

MSEdgeWeightsStorage* MSVehicle::myEdgeWeights
mutableprivate

Definition at line 2170 of file MSVehicle.h.

Referenced by _getWeightsStorage(), and ~MSVehicle().

◆ myEmptyLaneVector

std::vector< MSLane * > MSVehicle::myEmptyLaneVector
staticprotected

Definition at line 1963 of file MSVehicle.h.

Referenced by getBestLanesContinuation().

◆ myEmptyTransportableVector

std::vector< MSTransportable * > MSBaseVehicle::myEmptyTransportableVector
staticprotectedinherited

Definition at line 573 of file MSBaseVehicle.h.

Referenced by MSBaseVehicle::getContainers(), and MSBaseVehicle::getPersons().

◆ myFurtherLanes

◆ myFurtherLanesPosLat

std::vector<double> MSVehicle::myFurtherLanesPosLat
protected

◆ myHaveToWaitOnNextLink

bool MSVehicle::myHaveToWaitOnNextLink
protected

Definition at line 1992 of file MSVehicle.h.

Referenced by checkRewindLinkLanes(), and processLinkApproaches().

◆ myInfluencer

◆ myJunctionConflictEntryTime

SUMOTime MSVehicle::myJunctionConflictEntryTime
protected

◆ myJunctionEntryTime

SUMOTime MSVehicle::myJunctionEntryTime
protected

time at which the current junction was entered

Definition at line 2006 of file MSVehicle.h.

Referenced by checkLinkLeader(), isLeader(), processLaneAdvances(), and processLinkApproaches().

◆ myJunctionEntryTimeNeverYield

SUMOTime MSVehicle::myJunctionEntryTimeNeverYield
protected

Definition at line 2007 of file MSVehicle.h.

Referenced by checkLinkLeader(), isLeader(), and processLaneAdvances().

◆ myLane

◆ myLaneChangeModel

MSAbstractLaneChangeModel* MSVehicle::myLaneChangeModel
protected

◆ myLastActionTime

SUMOTime MSVehicle::myLastActionTime
protected

Action offset (actions are taken at time myActionOffset + N*getActionStepLength()) Initialized to 0, to be set at insertion.

Definition at line 1939 of file MSVehicle.h.

Referenced by checkActionStep(), enterLaneAtInsertion(), getLastActionTime(), isActionStep(), loadState(), resetActionOffset(), saveState(), and updateActionOffset().

◆ myLastBestLanesEdge

const MSEdge* MSVehicle::myLastBestLanesEdge
protected

Definition at line 1948 of file MSVehicle.h.

Referenced by enterLaneAtMove(), replaceRoute(), and updateBestLanes().

◆ myLastBestLanesInternalLane

const MSLane* MSVehicle::myLastBestLanesInternalLane
protected

Definition at line 1949 of file MSVehicle.h.

Referenced by replaceRoute(), and updateBestLanes().

◆ myLFLinkLanes

◆ myLFLinkLanesPrev

DriveItemVector MSVehicle::myLFLinkLanesPrev
protected

planned speeds from the previous step for un-registering from junctions after the new container is filled

Definition at line 2075 of file MSVehicle.h.

Referenced by planMove(), and setApproachingForAllLinks().

◆ myManoeuvre

Manoeuvre MSVehicle::myManoeuvre

◆ myMoveReminders

◆ myNextDriveItem

DriveItemVector::iterator MSVehicle::myNextDriveItem
protected

iterator pointing to the next item in myLFLinkLanes

Note
This is updated whenever the vehicle advances to a subsequent lane (see processLaneAdvances()) and used for inter-actionpoint actualization of myLFLinkLanes (i.e. deletion of passed items) in planMove().

Definition at line 2082 of file MSVehicle.h.

Referenced by MSVehicle(), planMove(), processLaneAdvances(), removePassedDriveItems(), and updateDriveItems().

◆ myNextTurn

std::pair<double, LinkDirection> MSVehicle::myNextTurn
protected

the upcoming turn for the vehicle

Todo:
calculate during plan move

Definition at line 1973 of file MSVehicle.h.

Referenced by getNextTurn(), planMove(), planMoveInternal(), and updateState().

◆ myNumberReroutes

int MSBaseVehicle::myNumberReroutes
protectedinherited

The number of reroutings.

Definition at line 563 of file MSBaseVehicle.h.

Referenced by MSBaseVehicle::getNumberReroutes(), replaceRoute(), and MEVehicle::replaceRoute().

◆ myNumericalID

const NumericalID MSBaseVehicle::myNumericalID
privateinherited

Definition at line 576 of file MSBaseVehicle.h.

Referenced by MSBaseVehicle::getNumericalID().

◆ myOdometer

double MSBaseVehicle::myOdometer
protectedinherited

A simple odometer to keep track of the length of the route already driven.

Definition at line 566 of file MSBaseVehicle.h.

Referenced by MSBaseVehicle::getOdometer(), leaveLane(), and MEVehicle::updateDetectors().

◆ myParameter

◆ myPersonDevice

◆ myRoute

◆ mySignals

int MSVehicle::mySignals
protected

State of things of the vehicle that can be on or off.

Definition at line 1981 of file MSVehicle.h.

Referenced by getSignals(), setBlinkerInformation(), signalSet(), switchOffSignal(), and switchOnSignal().

◆ myState

◆ myStopDist

double MSVehicle::myStopDist
protected

distance to the next stop or doubleMax if there is none

Definition at line 1998 of file MSVehicle.h.

Referenced by nextStopDist(), planMove(), planMoveInternal(), and setBlinkerInformation().

◆ myStops

◆ myTimeLoss

double MSVehicle::myTimeLoss
protected

the time loss in seconds due to driving with less than maximum speed

Definition at line 1927 of file MSVehicle.h.

Referenced by getTimeLoss(), getTimeLossSeconds(), and updateTimeLoss().

◆ myType

◆ myWaitingTime

SUMOTime MSVehicle::myWaitingTime
protected

The time the vehicle waits (is not faster than 0.1m/s) in seconds.

Definition at line 1920 of file MSVehicle.h.

Referenced by getWaitingSeconds(), getWaitingTime(), leaveLane(), loadState(), planMoveInternal(), resumeFromStopping(), saveState(), and updateWaitingTime().

◆ myWaitingTimeCollector

WaitingTimeCollector MSVehicle::myWaitingTimeCollector
protected

Definition at line 1924 of file MSVehicle.h.

Referenced by getAccumulatedWaitingTime(), and updateWaitingTime().

◆ NOT_YET_DEPARTED

const SUMOTime MSBaseVehicle::NOT_YET_DEPARTED = SUMOTime_MAX
staticprotectedinherited

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