SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MSBaseVehicle Class Referenceabstract

The base class for microscopic and mesoscopic vehicles. More...

#include <MSBaseVehicle.h>

Inheritance diagram for MSBaseVehicle:
SUMOVehicle MSVehicle GUIVehicle

Public Member Functions

virtual void activateReminders (const MSMoveReminder::Notification reason)
 "Activates" all current move reminder More...
 
virtual void addPerson (MSPerson *person)
 Adds a person to this vehicle. More...
 
void addReminder (MSMoveReminder *rem)
 Adds a MoveReminder dynamically. More...
 
virtual bool addStop (const SUMOVehicleParameter::Stop &stopPar, SUMOTime untilOffset=0)=0
 Adds a stop. More...
 
virtual SUMOReal getAcceleration () const
 Returns the vehicle's acceleration. More...
 
virtual SUMOReal getArrivalPos () const
 Returns this vehicle's desired arrivalPos for its current route (may change on reroute) More...
 
SUMOReal getChosenSpeedFactor () const
 Returns the precomputed factor by which the driver wants to be faster than the speed limit. More...
 
SUMOTime getDeparture () const
 Returns this vehicle's real departure time. More...
 
const std::vector< MSDevice * > & getDevices () const
 Returns this vehicle's devices. More...
 
const MSEdgegetEdge () const
 Returns the edge the vehicle is currently at. More...
 
const std::string & getID () const
 Returns the name of the vehicle. More...
 
SUMOReal getMaxSpeed () const
 Returns the maximum speed. More...
 
unsigned int getNumberReroutes () const
 Returns the number of new routes this vehicle got. More...
 
const SUMOVehicleParametergetParameter () const
 Returns the vehicle's parameter (including departure definition) More...
 
virtual SUMOReal getPositionOnLane () const =0
 Get the vehicle's position along the lane. More...
 
const MSRoutegetRoute () const
 Returns the current route. More...
 
virtual SUMOReal getSpeed () const =0
 Returns the vehicle's current speed. More...
 
const MSVehicleTypegetVehicleType () const
 Returns the vehicle's type definition. More...
 
virtual bool hasArrived () const
 Returns whether this vehicle has already arived (by default this is true if the vehicle has reached its final edge) More...
 
bool hasDeparted () const
 Returns whether this vehicle has already departed. More...
 
bool hasValidRoute (std::string &msg) const
 Validates the current route. More...
 
virtual bool isOnRoad () const
 Returns the information whether the vehicle is on a road (is simulated) More...
 
virtual bool isStopped () const =0
 Returns whether the vehicle is at a stop. More...
 
 MSBaseVehicle (SUMOVehicleParameter *pars, const MSRoute *route, const MSVehicleType *type, SUMOReal speedFactor)
 Constructor. More...
 
void onDepart ()
 Called when the vehicle is inserted into the network. More...
 
void removeReminder (MSMoveReminder *rem)
 Removes a MoveReminder dynamically. More...
 
virtual bool replaceRoute (const MSRoute *route, bool onInit=false)=0
 Replaces the current route by the given one. More...
 
bool replaceRouteEdges (const MSEdgeVector &edges, bool onInit=false)
 Replaces the current route by the given edges. More...
 
void reroute (SUMOTime t, SUMOAbstractRouter< MSEdge, SUMOVehicle > &router, bool withTaz=false)
 Performs a rerouting using the given router. More...
 
const MSEdgesuccEdge (unsigned int nSuccs) const
 Returns the nSuccs'th successor of edge the vehicle is currently at. More...
 
virtual ~MSBaseVehicle ()
 Destructor. More...
 

Protected Member Functions

void calculateArrivalPos ()
 (Re-)Calculates the arrival position from the vehicle parameters More...
 

Protected Attributes

SUMOReal myArrivalPos
 the position on the destination lane where the vehicle stops More...
 
SUMOReal myChosenSpeedFactor
 A precomputed factor by which the driver wants to be faster than the speed limit. More...
 
MSRouteIterator myCurrEdge
 Iterator to current route-edge. More...
 
SUMOTime myDeparture
 The real departure time. More...
 
std::vector< MSDevice * > myDevices
 The devices this vehicle has. More...
 
unsigned int myNumberReroutes
 The number of reroutings. More...
 
const SUMOVehicleParametermyParameter
 This Vehicle's parameter. More...
 
const MSRoutemyRoute
 This Vehicle's route. More...
 
const MSVehicleTypemyType
 This Vehicle's type. More...
 

Static Private Attributes

static const SUMOTime NOT_YET_DEPARTED = SUMOTime_MAX
 

Move reminder structures

typedef std::vector< std::pair
< MSMoveReminder *, SUMOReal > > 
MoveReminderCont
 Definition of a move reminder container. More...
 
MoveReminderCont myMoveReminders
 Current lane's move reminder. More...
 

Detailed Description

The base class for microscopic and mesoscopic vehicles.

Definition at line 56 of file MSBaseVehicle.h.

Member Typedef Documentation

typedef std::vector< std::pair<MSMoveReminder*, SUMOReal> > MSBaseVehicle::MoveReminderCont
protected

Definition of a move reminder container.

Definition at line 274 of file MSBaseVehicle.h.

Constructor & Destructor Documentation

MSBaseVehicle::MSBaseVehicle ( SUMOVehicleParameter pars,
const MSRoute route,
const MSVehicleType type,
SUMOReal  speedFactor 
)

Constructor.

Parameters
[in]parsThe vehicle description
[in]routeThe vehicle's route
[in]typeThe vehicle's type
[in]speedFactorThe factor for driven lane's speed limits
Exceptions
ProcessErrorIf a value is wrong

Definition at line 60 of file MSBaseVehicle.cpp.

References MSRoute::addReference(), MSDevice_Tripinfo::buildVehicleDevices(), MSDevice_Vehroutes::buildVehicleDevices(), MSDevice_HBEFA::buildVehicleDevices(), MSDevice_Routing::buildVehicleDevices(), calculateArrivalPos(), myDevices, myMoveReminders, and myRoute.

MSBaseVehicle::~MSBaseVehicle ( )
virtual

Destructor.

Definition at line 83 of file MSBaseVehicle.cpp.

References myDevices, myParameter, myRoute, and MSRoute::release().

Member Function Documentation

void MSBaseVehicle::activateReminders ( const MSMoveReminder::Notification  reason)
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
See Also
MSMoveReminder
MSMoveReminder::notifyEnter
MSMoveReminder::Notification

Reimplemented in MSVehicle.

Definition at line 255 of file MSBaseVehicle.cpp.

References myMoveReminders.

void MSBaseVehicle::addPerson ( MSPerson person)
virtual

Adds a person to this vehicle.

The default implementation does nothing since persons are not supported by default

Parameters
[in]personThe person to add

Implements SUMOVehicle.

Reimplemented in MSVehicle.

Definition at line 211 of file MSBaseVehicle.cpp.

void MSBaseVehicle::addReminder ( MSMoveReminder rem)

Adds a MoveReminder dynamically.

Parameters
[in]remthe reminder to add
See Also
MSMoveReminder

Definition at line 238 of file MSBaseVehicle.cpp.

References myMoveReminders.

Referenced by MSVehicle::adaptLaneEntering2MoveReminder(), MSVehicle::enterLaneAtInsertion(), and MSVehicle::enterLaneAtLaneChange().

virtual bool SUMOVehicle::addStop ( const SUMOVehicleParameter::Stop stopPar,
SUMOTime  untilOffset = 0 
)
pure virtualinherited

Adds a stop.

The stop is put into the sorted list.

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

Implemented in MSVehicle.

void MSBaseVehicle::calculateArrivalPos ( )
protected
SUMOReal MSBaseVehicle::getAcceleration ( ) const
virtual

Returns the vehicle's acceleration.

This default implementation returns always 0.

Returns
The acceleration

Implements SUMOVehicle.

Reimplemented in MSVehicle.

Definition at line 187 of file MSBaseVehicle.cpp.

virtual SUMOReal MSBaseVehicle::getArrivalPos ( ) const
inlinevirtual

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 174 of file MSBaseVehicle.h.

References myArrivalPos.

SUMOReal MSBaseVehicle::getChosenSpeedFactor ( ) const
inlinevirtual

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 244 of file MSBaseVehicle.h.

References myChosenSpeedFactor.

Referenced by GUIVehicle::getParameterWindow().

SUMOTime MSBaseVehicle::getDeparture ( ) const
inlinevirtual

Returns this vehicle's real departure time.

Returns
This vehicle's real departure time

Implements SUMOVehicle.

Definition at line 166 of file MSBaseVehicle.h.

References myDeparture.

const std::vector<MSDevice*>& MSBaseVehicle::getDevices ( ) const
inlinevirtual

Returns this vehicle's devices.

Returns
This vehicle's devices

Implements SUMOVehicle.

Definition at line 197 of file MSBaseVehicle.h.

References myDevices.

const MSEdge * MSBaseVehicle::getEdge ( ) const
virtual

Returns the edge the vehicle is currently at.

Returns
The current edge in the vehicle's route

Implements SUMOVehicle.

Definition at line 133 of file MSBaseVehicle.cpp.

References myCurrEdge.

Referenced by MSVehicleTransfer::addVeh(), MSVehicleTransfer::checkInsertions(), TraCIServerAPI_Vehicle::commandDistanceRequest(), and TraCIServerAPI_Vehicle::processSet().

SUMOReal MSBaseVehicle::getMaxSpeed ( ) const
virtual
unsigned int MSBaseVehicle::getNumberReroutes ( ) const
inlinevirtual

Returns the number of new routes this vehicle got.

Returns
the number of new routes this vehicle got

Implements SUMOVehicle.

Definition at line 190 of file MSBaseVehicle.h.

References myNumberReroutes.

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

const SUMOVehicleParameter & MSBaseVehicle::getParameter ( ) const
virtual
virtual SUMOReal SUMOVehicle::getPositionOnLane ( ) const
pure virtualinherited

Get the vehicle's position along the lane.

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

Implemented in MSVehicle.

Referenced by MSDevice_Tripinfo::notifyEnter(), MSE2Collector::notifyEnter(), MSE2Collector::by_vehicle_position_sorter::operator()(), and MSXMLRawOut::writeVehicle().

virtual SUMOReal SUMOVehicle::getSpeed ( ) const
pure virtualinherited
const MSVehicleType & MSBaseVehicle::getVehicleType ( ) const
virtual

Returns the vehicle's type definition.

Returns
The vehicle's type definition

Implements SUMOVehicle.

Definition at line 111 of file MSBaseVehicle.cpp.

References myType.

Referenced by MSLaneChanger::change(), MSVehicleTransfer::checkInsertions(), MSVehicle::checkRewindLinkLanes(), MSLane::detectCollisions(), MSE2Collector::detectorUpdate(), drawAction_drawBlinker(), GUIVehicle::drawAction_drawRailCarriages(), GUIVehicle::drawAction_drawVehicleAsBoxPlus(), GUIVehicle::drawAction_drawVehicleAsImage(), GUIVehicle::drawAction_drawVehicleAsPoly(), GUIVehicle::drawAction_drawVehicleAsTrianglePlus(), drawAction_drawVehicleBlinker(), drawAction_drawVehicleBrakeLight(), GUIVehicle::drawGL(), GUIVehicle::drawGLAdditional(), MSLane::enteredByLaneChange(), MSVehicle::enterLaneAtLaneChange(), MSVehicle::estimateSpeedAfterDistance(), MSVTypeProbe::execute(), MSVehicle::executeMove(), MSLane::executeMovements(), MSLane::freeInsertion(), MSVehicle::gap2pred(), MSEdge::getDepartLane(), MSLane::getFollowerOnConsecutive(), MSLane::getLastVehicleInformation(), MSLane::getLeaderOnConsecutive(), MSLane::getMissingRearGap(), MSLaneChanger::getRealFollower(), MSLaneChanger::getRealLeader(), MSLaneChanger::getRealThisLeader(), MSLane::incorporateVehicle(), MSLane::insertVehicle(), MSLane::integrateNewVehicle(), MSLane::isInsertionSuccess(), MSLane::leftByLaneChange(), MSCFModel::leftVehicleVsafe(), MSLane::maxSpeedGapInsertion(), MSLink::maybeOccupied(), MSVehicle::overlap(), MSLCM_DK2004::patchSpeed(), MSVehicle::planMove(), MSAbstractLaneChangeModel::predInteraction(), TraCIServerAPI_Vehicle::processGet(), MSVehicle::processNextStop(), MSLane::pWagGenericInsertion(), MSLane::pWagSimpleInsertion(), MSLane::removeVehicle(), GUIVehicle::setFunctionalColor(), MSLCM_DK2004::wantsChangeToLeft(), MSLCM_DK2004::wantsChangeToRight(), MSEmissionExport::write(), MSFCDExport::write(), MSQueueExport::writeLane(), and MSFullExport::writeVehicles().

bool MSBaseVehicle::hasArrived ( ) const
virtual

Returns whether this vehicle has already arived (by default this is true if the vehicle has reached its final edge)

Implements SUMOVehicle.

Reimplemented in MSVehicle.

Definition at line 206 of file MSBaseVehicle.cpp.

References succEdge().

bool MSBaseVehicle::hasDeparted ( ) const
virtual

Returns whether this vehicle has already departed.

Implements SUMOVehicle.

Definition at line 200 of file MSBaseVehicle.cpp.

References myDeparture, and NOT_YET_DEPARTED.

Referenced by TraCIServerAPI_Vehicle::processSet().

bool MSBaseVehicle::hasValidRoute ( std::string &  msg) const

Validates the current route.

Parameters
[out]msgDescription why the route is not valid (if it is the case)
Returns
Whether the vehicle's current route is valid

Definition at line 216 of file MSBaseVehicle.cpp.

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

Referenced by MSVehicle::enterLaneAtInsertion(), and TraCIServerAPI_Vehicle::processGet().

virtual bool MSBaseVehicle::isOnRoad ( ) const
inlinevirtual

Returns the information whether the vehicle is on a road (is simulated)

Returns
Whether the vehicle is simulated

Implements SUMOVehicle.

Reimplemented in MSVehicle.

Definition at line 119 of file MSBaseVehicle.h.

Referenced by MSXMLRawOut::writeVehicle().

virtual bool SUMOVehicle::isStopped ( ) const
pure virtualinherited

Returns whether the vehicle is at a stop.

Returns
Whether the has stopped

Implemented in MSVehicle.

Referenced by MSDevice_Person::notifyMove().

void MSBaseVehicle::onDepart ( )
virtual

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 193 of file MSBaseVehicle.cpp.

References MSNet::getCurrentTimeStep(), MSNet::getInstance(), MSNet::getVehicleControl(), myDeparture, and MSVehicleControl::vehicleDeparted().

Referenced by traci::TraCIServer::commandAddVehicle(), and MSCalibrator::execute().

void MSBaseVehicle::removeReminder ( MSMoveReminder rem)

Removes a MoveReminder dynamically.

Parameters
[in]remthe reminder to remove
See Also
MSMoveReminder

Definition at line 244 of file MSBaseVehicle.cpp.

References myMoveReminders.

virtual bool SUMOVehicle::replaceRoute ( const MSRoute route,
bool  onInit = false 
)
pure virtualinherited

Replaces the current route by the given one.

Implemented in MSVehicle.

Referenced by MSTriggeredRerouter::notifyEnter(), MSDevice_Routing::preInsertionReroute(), and replaceRouteEdges().

bool MSBaseVehicle::replaceRouteEdges ( const MSEdgeVector edges,
bool  onInit = false 
)
virtual

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]simTimeThe time at which the route was replaced
Returns
Whether the new route was accepted

Implements SUMOVehicle.

Definition at line 160 of file MSBaseVehicle.cpp.

References MSRoute::addReference(), RGBColor::DEFAULT_COLOR, MSRoute::dictionary(), MSRoute::getColor(), Named::getID(), getID(), getNumberReroutes(), MSRoute::getStops(), myRoute, MSRoute::release(), SUMOVehicle::replaceRoute(), and toString().

Referenced by MSVehicle::Influencer::postProcessVTD(), TraCIServerAPI_Vehicle::processSet(), and reroute().

void MSBaseVehicle::reroute ( SUMOTime  t,
SUMOAbstractRouter< MSEdge, SUMOVehicle > &  router,
bool  withTaz = false 
)
virtual

Performs a rerouting using the given router.

Tries to find a new route between the current edge and the destination edge, first. Tries to replace the current route by the new one using replaceRoute.

Parameters
[in]tThe time for which the route is computed
[in]routerThe router to use
See Also
replaceRoute

Implements SUMOVehicle.

Definition at line 139 of file MSBaseVehicle.cpp.

References SUMOAbstractRouter< E, V >::compute(), MSEdge::dictionary(), SUMOVehicleParameter::fromTaz, getID(), MSRoute::getLastEdge(), myCurrEdge, myParameter, myRoute, replaceRouteEdges(), SUMOVehicleParameter::toTaz, and WRITE_WARNING.

Referenced by TraCIServerAPI_Vehicle::processSet().

const MSEdge * MSBaseVehicle::succEdge ( unsigned int  nSuccs) const
virtual

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 123 of file MSBaseVehicle.cpp.

References myCurrEdge.

Referenced by MSVehicleTransfer::addVeh(), MSVehicleTransfer::checkInsertions(), hasArrived(), and TraCIServerAPI_Vehicle::processSet().

Field Documentation

SUMOReal MSBaseVehicle::myArrivalPos
protected

the position on the destination lane where the vehicle stops

Definition at line 287 of file MSBaseVehicle.h.

Referenced by calculateArrivalPos(), getArrivalPos(), MSVehicle::getBestLanes(), MSVehicle::hasArrived(), MSVehicle::planMove(), and MSVehicle::resetRoutePosition().

SUMOReal MSBaseVehicle::myChosenSpeedFactor
protected

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

Definition at line 267 of file MSBaseVehicle.h.

Referenced by getChosenSpeedFactor().

SUMOTime MSBaseVehicle::myDeparture
protected

The real departure time.

Definition at line 284 of file MSBaseVehicle.h.

Referenced by getDeparture(), hasDeparted(), and onDepart().

std::vector<MSDevice*> MSBaseVehicle::myDevices
protected

The devices this vehicle has.

Definition at line 281 of file MSBaseVehicle.h.

Referenced by MSVehicle::addPerson(), getDevices(), GUIVehicle::GUIVehicle(), MSBaseVehicle(), and ~MSBaseVehicle().

unsigned int MSBaseVehicle::myNumberReroutes
protected

The number of reroutings.

Definition at line 290 of file MSBaseVehicle.h.

Referenced by getNumberReroutes(), and MSVehicle::replaceRoute().

const SUMOTime MSBaseVehicle::NOT_YET_DEPARTED = SUMOTime_MAX
staticprivate

Definition at line 296 of file MSBaseVehicle.h.

Referenced by hasDeparted().


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