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

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
SUMOReal adaptMaxSpeed (SUMOReal referenceSpeed)
 Adapts the current maximum speed using the distribution given in the type.
virtual void addPerson (MSPerson *person)
 Adds a person to this vehicle.
void addReminder (MSMoveReminder *rem)
 Adds a MoveReminder dynamically.
virtual bool addStop (const SUMOVehicleParameter::Stop &stopPar, SUMOTime untilOffset=0)=0
 Adds a stop.
SUMOTime getDeparture () const
 Returns this vehicle's real departure time.
const std::vector< MSDevice * > & getDevices () const
 Returns this vehicle's devices.
const MSEdgegetEdge () const
 Returns the edge the vehicle is currently at.
const std::string & getID () const
 Returns the name of the vehicle.
SUMOReal getMaxSpeed () const
 Returns the current maximum speed.
unsigned int getNumberReroutes () const
 Returns the number of new routes this vehicle got.
const SUMOVehicleParametergetParameter () const
 Returns the vehicle's parameter (including departure definition)
virtual SUMOReal getPositionOnLane () const =0
 Get the vehicle's position along the lane.
virtual SUMOReal getPreDawdleAcceleration () const
 Returns the vehicle's acceleration before dawdling.
const MSRoutegetRoute () const
 Returns the current route.
virtual SUMOReal getSpeed () const =0
 Returns the vehicle's current speed.
const MSVehicleTypegetVehicleType () const
 Returns the vehicle's type definition.
bool hasValidRoute (std::string &msg) const
 Validates the current route.
virtual bool isOnRoad () const
 Returns the information whether the vehicle is on a road (is simulated)
virtual bool isStopped () const =0
 Returns whether the vehicle is at a stop.
 MSBaseVehicle (SUMOVehicleParameter *pars, const MSRoute *route, const MSVehicleType *type)
 Constructor.
void onDepart ()
 Called when the vehicle is inserted into the network.
void removeReminder (MSMoveReminder *rem)
 Removes a MoveReminder dynamically.
virtual bool replaceRoute (const MSRoute *route, bool onInit=false)=0
 Replaces the current route by the given one.
bool replaceRouteEdges (const MSEdgeVector &edges, bool onInit=false)
 Replaces the current route by the given edges.
void reroute (SUMOTime t, SUMOAbstractRouter< MSEdge, SUMOVehicle > &router, bool withTaz=false)
 Performs a rerouting using the given router.
const MSEdgesuccEdge (unsigned int nSuccs) const
 Returns the nSuccs'th successor of edge the vehicle is currently at.
virtual ~MSBaseVehicle ()
 Destructor.

Protected Member Functions

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

Protected Attributes

SUMOReal myArrivalPos
 the position on the destination lane where the vehicle stops
MSRouteIterator myCurrEdge
 Iterator to current route-edge.
SUMOTime myDeparture
 The real departure time.
std::vector< MSDevice * > myDevices
 The devices this vehicle has.
bool myHasIndividualMaxSpeed
 is true if there has an individual speed been set
SUMOReal myIndividualMaxSpeed
unsigned int myNumberReroutes
 The number of reroutings.
const SUMOVehicleParametermyParameter
 This Vehicle's parameter.
SUMOReal myReferenceSpeed
 the speed which served as reference when calculating the individual maxspeed
const MSRoutemyRoute
 This Vehicle's route.
const MSVehicleTypemyType
 This Vehicle's type.

Move reminder structures

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

Detailed Description

The base class for microscopic and mesoscopic vehicles.

Definition at line 57 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 257 of file MSBaseVehicle.h.


Constructor & Destructor Documentation

MSBaseVehicle::~MSBaseVehicle ( )
virtual

Destructor.

Definition at line 80 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 269 of file MSBaseVehicle.cpp.

References myMoveReminders.

SUMOReal MSBaseVehicle::adaptMaxSpeed ( SUMOReal  referenceSpeed)
virtual

Adapts the current maximum speed using the distribution given in the type.

Returns:
The vehicle's new maximum speed

Implements SUMOVehicle.

Definition at line 123 of file MSBaseVehicle.cpp.

References MSVehicleType::getMaxSpeed(), MSVehicleType::getMaxSpeedWithDeviation(), MSVehicleType::hasSpeedDeviation(), MIN2(), myHasIndividualMaxSpeed, myIndividualMaxSpeed, myReferenceSpeed, and myType.

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 225 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 252 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
SUMOTime MSBaseVehicle::getDeparture ( ) const
virtual

Returns this vehicle's real departure time.

Returns:
This vehicle's real departure time

Implements SUMOVehicle.

Definition at line 213 of file MSBaseVehicle.cpp.

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

References myCurrEdge.

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

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

Returns the number of new routes this vehicle got.

Returns:
the number of new routes this vehicle got

Implements SUMOVehicle.

Definition at line 219 of file MSBaseVehicle.cpp.

References myNumberReroutes.

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

const SUMOVehicleParameter & MSBaseVehicle::getParameter ( ) const
virtual

Returns the vehicle's parameter (including departure definition)

Returns:
The vehicle's parameter

Implements SUMOVehicle.

Definition at line 96 of file MSBaseVehicle.cpp.

References myParameter.

Referenced by MSPersonControl::boardAnyWaiting(), MSEdge::getDepartLane(), GUIVehicle::getParameterWindow(), MSLane::insertVehicle(), TraCIServerAPI_Vehicle::processGet(), and GUIVehicle::setFunctionalColor().

virtual SUMOReal SUMOVehicle::getPositionOnLane ( ) const
pure virtualinherited
SUMOReal MSBaseVehicle::getPreDawdleAcceleration ( ) const
virtual

Returns the vehicle's acceleration before dawdling.

This default implementation returns always 0.

Returns:
The acceleration before dawdling

Implements SUMOVehicle.

Reimplemented in MSVehicle.

Definition at line 200 of file MSBaseVehicle.cpp.

const MSRoute & MSBaseVehicle::getRoute ( ) const
virtual
const MSVehicleType & MSBaseVehicle::getVehicleType ( ) const
virtual

Returns the vehicle's type definition.

Returns:
The vehicle's type definition

Implements SUMOVehicle.

Definition at line 108 of file MSBaseVehicle.cpp.

References myType.

Referenced by MSLaneChanger::change(), MSVehicleTransfer::checkInsertions(), MSVehicle::checkRewindLinkLanes(), MSLane::detectCollisions(), MSE2Collector::detectorUpdate(), drawAction_drawBlinker(), drawAction_drawVehicleAsBoxPlus(), drawAction_drawVehicleAsPoly(), drawAction_drawVehicleAsTrianglePlus(), drawAction_drawVehicleBlinker(), drawAction_drawVehicleBrakeLight(), GUIVehicle::drawGL(), MSLane::enteredByLaneChange(), MSVehicle::enterLaneAtLaneChange(), MSVTypeProbe::execute(), MSLane::freeInsertion(), MSVehicle::gap2pred(), MSEdge::getDepartLane(), MSLane::getFollowerOnConsecutive(), MSLane::getLastVehicleInformation(), MSLane::getLeaderOnConsecutive(), MSLaneChanger::getRealFollower(), MSLaneChanger::getRealLeader(), MSLaneChanger::getRealThisLeader(), MSLane::incorporateVehicle(), MSLane::insertVehicle(), MSLane::integrateNewVehicle(), MSLane::isInsertionSuccess(), MSLane::leftByLaneChange(), MSCFModel::leftVehicleVsafe(), MSLane::maxSpeedGapInsertion(), MSVehicle::moveChecked(), MSVehicle::moveRegardingCritical(), MSVehicle::overlap(), MSLCM_DK2004::patchSpeed(), MSAbstractLaneChangeModel::predInteraction(), TraCIServerAPI_Vehicle::processGet(), MSVehicle::processNextStop(), MSLane::pWagGenericInsertion(), MSLane::pWagSimpleInsertion(), MSLane::removeVehicle(), MSLane::setCritical(), GUIVehicle::setFunctionalColor(), MSVehicle::vsafeCriticalCont(), MSLCM_DK2004::wantsChangeToLeft(), and MSLCM_DK2004::wantsChangeToRight().

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 230 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 121 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 206 of file MSBaseVehicle.cpp.

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

Referenced by traci::TraCIServer::commandAddVehicle().

void MSBaseVehicle::removeReminder ( MSMoveReminder rem)

Removes a MoveReminder dynamically.

Parameters:
[in]remthe reminder to remove
See also:
MSMoveReminder

Definition at line 258 of file MSBaseVehicle.cpp.

References myMoveReminders.

virtual bool SUMOVehicle::replaceRoute ( const MSRoute route,
bool  onInit = false 
)
pure virtualinherited
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 174 of file MSBaseVehicle.cpp.

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

Referenced by 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 153 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.

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

References myCurrEdge.

Referenced by MSVehicleTransfer::addVeh(), and MSVehicleTransfer::checkInsertions().


Field Documentation

SUMOReal MSBaseVehicle::myArrivalPos
protected

the position on the destination lane where the vehicle stops

Definition at line 270 of file MSBaseVehicle.h.

Referenced by calculateArrivalPos(), MSVehicle::ends(), MSVehicle::getBestLanes(), MSVehicle::moveRegardingCritical(), and MSVehicle::vsafeCriticalCont().

SUMOTime MSBaseVehicle::myDeparture
protected

The real departure time.

Definition at line 267 of file MSBaseVehicle.h.

Referenced by getDeparture(), and onDepart().

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

The devices this vehicle has.

Definition at line 264 of file MSBaseVehicle.h.

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

bool MSBaseVehicle::myHasIndividualMaxSpeed
protected

is true if there has an individual speed been set

Definition at line 248 of file MSBaseVehicle.h.

Referenced by adaptMaxSpeed(), getMaxSpeed(), MSVehicle::setIndividualMaxSpeed(), and MSVehicle::unsetIndividualMaxSpeed().

SUMOReal MSBaseVehicle::myIndividualMaxSpeed
protected

An individual speed for an vehicle that is used (iff set) instead of the maximal speed of the vehicle class. NOTE: This is just a little workaround for allowing an external influence on the actual speed

Definition at line 245 of file MSBaseVehicle.h.

Referenced by adaptMaxSpeed(), getMaxSpeed(), and MSVehicle::setIndividualMaxSpeed().

unsigned int MSBaseVehicle::myNumberReroutes
protected

The number of reroutings.

Definition at line 273 of file MSBaseVehicle.h.

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

SUMOReal MSBaseVehicle::myReferenceSpeed
protected

the speed which served as reference when calculating the individual maxspeed

Definition at line 251 of file MSBaseVehicle.h.

Referenced by adaptMaxSpeed().


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