SUMO - Simulation of Urban MObility
|
A device which collects info on the vehicle trip (mainly on departure and arrival) More...
#include <MSDevice_Vehroutes.h>
Data Structures | |
class | RouteReplaceInfo |
Information about a replaced route. More... | |
class | StateListener |
Public Types | |
enum | Notification { NOTIFICATION_DEPARTED, NOTIFICATION_JUNCTION, NOTIFICATION_SEGMENT, NOTIFICATION_LANE_CHANGE, NOTIFICATION_TELEPORT, NOTIFICATION_PARKING, NOTIFICATION_ARRIVED, NOTIFICATION_VAPORIZED, NOTIFICATION_TELEPORT_ARRIVED } |
Definition of a vehicle state. More... | |
Public Member Functions | |
void | addTo (const StoringVisitor &cont) const |
Adds this object to the given container. More... | |
void | generateOutput () const |
Called on writing tripinfo output. More... | |
SUMOVehicle & | getHolder () const |
Returns the vehicle that holds this device. More... | |
const std::string & | getID () const |
Returns the id. More... | |
const MSLane * | getLane () const |
Returns the lane the reminder works on. More... | |
const MSRoute * | getRoute (int index) const |
Called on route retrieval. More... | |
virtual void | notifyMoveInternal (SUMOVehicle &veh, SUMOReal timeOnLane, SUMOReal speed) |
Internal notification about the vehicle moves. More... | |
void | setID (const std::string &newID) |
resets the id More... | |
~MSDevice_Vehroutes () | |
Destructor. More... | |
Methods called on vehicle movement / state change, overwriting MSDevice | |
bool | notifyEnter (SUMOVehicle &veh, MSMoveReminder::Notification reason) |
Does nothing, returns true only if exit times should be collected. More... | |
bool | notifyLeave (SUMOVehicle &veh, SUMOReal lastPos, Notification reason) |
Saves exit times if needed. More... | |
Interface methods, to be derived by subclasses | |
virtual bool | notifyMove (SUMOVehicle &veh, SUMOReal oldPos, SUMOReal newPos, SUMOReal newSpeed) |
Checks whether the reminder still has to be notified about the vehicle moves. More... | |
Static Public Member Functions | |
static MSDevice_Vehroutes * | buildVehicleDevices (SUMOVehicle &v, std::vector< MSDevice * > &into, unsigned int maxRoutes=INT_MAX) |
Build devices for the given vehicle, if needed. More... | |
static void | generateOutputForUnfinished () |
generate vehroute output for vehicles which are still in the network More... | |
static void | init () |
Static intialization. More... | |
Protected Attributes | |
SUMOVehicle & | myHolder |
The vehicle that stores the device. More... | |
std::string | myID |
The name of the object. More... | |
MSLane *const | myLane |
Lane on which the reminder works. More... | |
Private Member Functions | |
void | addRoute () |
Called on route change. More... | |
MSDevice_Vehroutes (SUMOVehicle &holder, const std::string &id, unsigned int maxRoutes) | |
Constructor. More... | |
MSDevice_Vehroutes (const MSDevice_Vehroutes &) | |
Invalidated copy constructor. More... | |
MSDevice_Vehroutes & | operator= (const MSDevice_Vehroutes &) |
Invalidated assignment operator. More... | |
void | writeXMLRoute (OutputDevice &os, int index=-1) const |
Called on route output. More... | |
Private Attributes | |
const MSRoute * | myCurrentRoute |
std::vector< SUMOTime > | myExits |
const MSEdge * | myLastSavedAt |
const unsigned int | myMaxRoutes |
std::vector< RouteReplaceInfo > | myReplacedRoutes |
Static Private Attributes | |
static std::map< const SUMOTime, int > | myDepartureCounts |
static bool | myLastRouteOnly = false |
A shortcut for the Option "vehroute-output.last-route". More... | |
static std::map< const SUMOTime, std::string > | myRouteInfos |
static bool | mySaveExits = false |
A shortcut for the Option "vehroute-output.exit-times". More... | |
static bool | mySorted = false |
A shortcut for the Option "vehroute-output.sorted". More... | |
static StateListener | myStateListener |
static bool | myWithTaz = false |
A shortcut for the Option "device.routing.with-taz". More... | |
A device which collects info on the vehicle trip (mainly on departure and arrival)
Each device collects departure time, lane and speed and the same for arrival.
Definition at line 57 of file MSDevice_Vehroutes.h.
|
inherited |
Definition of a vehicle state.
Definition at line 93 of file MSMoveReminder.h.
MSDevice_Vehroutes::~MSDevice_Vehroutes | ( | ) |
Destructor.
Definition at line 115 of file MSDevice_Vehroutes.cpp.
References myCurrentRoute, MSDevice_Vehroutes::StateListener::myDevices, MSDevice::myHolder, myReplacedRoutes, myStateListener, and MSRoute::release().
|
private |
Constructor.
[in] | holder | The vehicle that holds this device |
[in] | id | The ID of the device |
Definition at line 109 of file MSDevice_Vehroutes.cpp.
References MSRoute::addReference(), and myCurrentRoute.
Referenced by buildVehicleDevices().
|
private |
Invalidated copy constructor.
|
private |
Called on route change.
Definition at line 259 of file MSDevice_Vehroutes.cpp.
References MSRoute::addReference(), MSNet::getCurrentTimeStep(), SUMOVehicle::getEdge(), MSNet::getInstance(), SUMOVehicle::getRoute(), SUMOVehicle::hasDeparted(), myCurrentRoute, MSDevice::myHolder, myMaxRoutes, myReplacedRoutes, and MSRoute::release().
|
inlineinherited |
Adds this object to the given container.
in,filled] | cont The container to add this item to |
Definition at line 114 of file Named.h.
References Named::StoringVisitor::add().
|
static |
Build devices for the given vehicle, if needed.
The options are read and evaluated whether a vehroutes-device shall be built for the given vehicle.
The built device is stored in the given vector.
[in] | v | The vehicle for which a device may be built |
in,filled] | into The vector to store the built device in |
Definition at line 79 of file MSDevice_Vehroutes.cpp.
References SUMOVehicle::getID(), OptionsCont::getOptions(), OptionsCont::isSet(), MSDevice_Vehroutes(), MSDevice_Vehroutes::StateListener::myDevices, myLastRouteOnly, and myStateListener.
Referenced by GUIVehicle::GUIVehicle(), and MSBaseVehicle::MSBaseVehicle().
|
virtual |
Called on writing tripinfo output.
[in] | os | The stream to write the information into |
IOError | not yet implemented |
Reimplemented from MSDevice.
Definition at line 211 of file MSDevice_Vehroutes.cpp.
References DEFAULT_VTYPE_ID, SUMOVehicleParameter::fromTaz, SUMOVehicle::getDeparture(), OutputDevice::getDeviceByOption(), SUMOVehicle::getID(), MSVehicleType::getID(), MSNet::getInstance(), SUMOVehicle::getParameter(), SUMOVehicle::getVehicleType(), SUMOVehicle::hasArrived(), OutputDevice::isBinary(), myDepartureCounts, MSDevice::myHolder, myReplacedRoutes, myRouteInfos, mySorted, myWithTaz, OutputDevice::openTag(), SUMO_ATTR_DEPART, SUMO_ATTR_FROM_TAZ, SUMO_ATTR_ID, SUMO_ATTR_TO_TAZ, SUMO_ATTR_TYPE, SUMO_TAG_ROUTE_DISTRIBUTION, SUMO_TAG_VEHICLE, time2string(), SUMOVehicleParameter::toTaz, OutputDevice::writeAttr(), and writeXMLRoute().
|
static |
generate vehroute output for vehicles which are still in the network
Definition at line 279 of file MSDevice_Vehroutes.cpp.
References MSDevice_Vehroutes::StateListener::myDevices, and myStateListener.
Referenced by MSNet::closeSimulation().
|
inlineinherited |
Returns the vehicle that holds this device.
Definition at line 85 of file MSDevice.h.
References MSDevice::myHolder.
|
inlineinherited |
Returns the id.
Definition at line 60 of file Named.h.
References Named::myID.
Referenced by Named::StoringVisitor::add(), MSDetectorControl::add(), RORouteDef::addAlternative(), MSNet::addBusStop(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), RONet::addEdge(), ROJTREdge::addFollowerProbability(), RONet::addNode(), NIImporter_SUMO::addPhase(), RONet::addRouteDef(), NBDistrict::addSink(), NBDistrict::addSource(), NBTrafficLightLogic::addStep(), MSRouteHandler::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), MSPerson::MSPersonStage_Driving::beginEventOutput(), MSPerson::MSPersonStage_Waiting::beginEventOutput(), NIVisumTL::build(), RODFNet::buildApproachList(), MS_E2_ZS_CollectorOverLanes::buildCollector(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), RODFNet::buildEdgeFlowMap(), NBEdge::buildInnerEdges(), NGEdge::buildNBEdge(), NIVissimEdge::buildNBEdge(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), MSVehicleTransfer::checkInsertions(), ODDistrictHandler::closeDistrict(), NLHandler::closeEdge(), RORouteHandler::closeRouteDistribution(), RORouteHandler::closeVehicle(), NBTrafficLightDefinition::collectAllLinks(), NBTrafficLightDefinition::collectEdges(), ROJTRRouter::compute(), NBTrafficLightDefinition::compute(), NBNode::computeInternalLaneShape(), NBEdge::computeLaneShapes(), NBNode::computeLogic(), NBNode::computeNodeShape(), NBTrafficLightLogicCont::computeSingleLogic(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NGNet::connect(), NBEdge::connections_sorter(), NLDetectorBuilder::convUncontE2PosLength(), MSLane::detectCollisions(), NIVissimDistrictConnection::dict_BuildDistricts(), MSPerson::MSPersonStage_Driving::endEventOutput(), MSPerson::MSPersonStage_Waiting::endEventOutput(), MSE3Collector::enter(), MSCalibrator::execute(), Command_SaveTLSSwitches::execute(), MSVTypeProbe::execute(), MSVehicle::executeMove(), MSLane::executeMovements(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), NBEdgeCont::extract(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSNet::getBusStopID(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), AGStreet::getName(), NIImporter_VISUM::getNamedEdgeContinuating(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), NBNode::getPossiblySplittedIncoming(), NBNode::getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), NBEdgeCont::ignoreFilterMatch(), MSActuatedTrafficLightLogic::init(), MSAgentbasedTrafficLightLogic::init(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBTrafficLightLogicCont::insert(), NBNodeCont::insert(), NBEdgeCont::insert(), NBEdgeCont::joinSameNodeConnectingEdges(), MSE3Collector::leave(), NIImporter_OpenDrive::loadNetwork(), NBRampsComputer::moveRampRight(), MSPerson::MSPersonStage_Waiting::MSPersonStage_Waiting(), MSVehicle::MSVehicle(), NBOwnTLDef::myCompute(), NBLoadedTLDef::myCompute(), NIXMLTrafficLightsHandler::myEndElement(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSDevice_Tripinfo::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), MSDevice_Person::notifyLeave(), RORouteHandler::openRoute(), Named::ComparatorIdLess::operator()(), NBTurningDirectionsComputer::combination_by_angle_sorter::operator()(), RODFNet::idComp::operator()(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBContHelper::same_connection_edge_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), MSEdge::by_id_sorter::operator()(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIImporter_VISUM::parse_Turns(), NIImporter_VISUM::parse_TurnsToSignalGroups(), NIXMLConnectionsHandler::parseDeprecatedLaneDefinition(), NIXMLConnectionsHandler::parseLaneBound(), NBLoadedTLDef::SignalGroup::patchTYellow(), AGStreet::print(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Vehicle::processSet(), NWWriter_SUMO::prohibitionConnection(), NBEdgeCont::recheckPostProcessConnections(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), NBLoadedSUMOTLDef::removeConnection(), NBNode::removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBNodeCont::rename(), NBEdgeCont::rename(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), PCPolyContainer::save(), RONet::saveAndRemoveRoutesUntil(), NBNodeCont::setAsTLControlled(), NBEdge::setControllingTLInformation(), NIXMLEdgesHandler::setNodes(), NBOwnTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), NIXMLConnectionsHandler::validateLaneInfo(), TraCIServerAPI_Vehicle::vtdMap_matchingEdgeLane(), TraCIServerAPI_Vehicle::vtdMap_matchingRoutePosition(), MSEmissionExport::write(), MSFCDExport::write(), MSInstantInductLoop::write(), NBSign::writeAsPOI(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_SUMO::writeInternalConnections(), NWWriter_SUMO::writeJunction(), MSQueueExport::writeLane(), MSFullExport::writeLane(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), NWWriter_DlrNavteq::writeNodesUnsplitted(), MSInductLoop::writeTypedXMLOutput(), MSFullExport::writeVehicles(), MSRouteProbe::writeXMLOutput(), and MSE2Collector::writeXMLOutput().
|
inlineinherited |
Returns the lane the reminder works on.
Definition at line 87 of file MSMoveReminder.h.
References MSMoveReminder::myLane.
Referenced by GUIInstantInductLoop::buildDetectorGUIRepresentation(), GUIInductLoop::buildDetectorGUIRepresentation(), MSE2Collector::detectorUpdate(), TraCIServerAPI_InductionLoop::getPosition(), TraCIServerAPI_InductionLoop::getTree(), GUI_E2_ZS_Collector::MyWrapper::MyWrapper(), MSDevice_Tripinfo::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), TraCIServerAPI_InductionLoop::processGet(), and MSMeanData::writeEdge().
Called on route retrieval.
[in] | index | The index of the route to retrieve |
Definition at line 253 of file MSDevice_Vehroutes.cpp.
References myReplacedRoutes.
Referenced by GUIVehicle::drawRoute().
|
static |
Static intialization.
Definition at line 66 of file MSDevice_Vehroutes.cpp.
References MSNet::addVehicleStateListener(), OutputDevice::createDeviceByOption(), OptionsCont::getBool(), MSNet::getInstance(), OptionsCont::getOptions(), myLastRouteOnly, mySaveExits, mySorted, myStateListener, and myWithTaz.
Referenced by MSFrame::buildStreams().
|
virtual |
Does nothing, returns true only if exit times should be collected.
[in] | veh | The entering vehicle. |
[in] | reason | how the vehicle enters the lane |
Reimplemented from MSMoveReminder.
Definition at line 125 of file MSDevice_Vehroutes.cpp.
References MSNet::getCurrentTimeStep(), MSNet::getInstance(), myDepartureCounts, MSDevice_Vehroutes::StateListener::myDevices, mySaveExits, mySorted, myStateListener, and MSMoveReminder::NOTIFICATION_DEPARTED.
|
virtual |
Saves exit times if needed.
The exit time is collected on all occasions except for lane change.
[in] | veh | The leaving vehicle. |
[in] | lastPos | Position on the lane when leaving. |
[in] | reason | how the vehicle leaves the lane |
Reimplemented from MSMoveReminder.
Definition at line 134 of file MSDevice_Vehroutes.cpp.
References MSNet::getCurrentTimeStep(), SUMOVehicle::getEdge(), MSNet::getInstance(), myExits, myLastSavedAt, mySaveExits, MSMoveReminder::NOTIFICATION_LANE_CHANGE, and MSMoveReminder::NOTIFICATION_TELEPORT.
|
inlinevirtualinherited |
Checks whether the reminder still has to be notified about the vehicle moves.
Indicator if the reminders is still active for the passed vehicle/parameters. If false, the vehicle will erase this reminder from it's reminder-container.
[in] | veh | Vehicle that asks this reminder. |
[in] | oldPos | Position before move. |
[in] | newPos | Position after move with newSpeed. |
[in] | newSpeed | Moving speed. |
Reimplemented in MSE3Collector::MSE3LeaveReminder, MSE2Collector, MSInductLoop, MSMeanData::MeanDataValues, MSDevice_HBEFA, MSE3Collector::MSE3EntryReminder, MSInstantInductLoop, MSDevice_Person, and MSDevice_Tripinfo.
Definition at line 148 of file MSMoveReminder.h.
References UNUSED_PARAMETER.
|
inlinevirtualinherited |
Internal notification about the vehicle moves.
Indicator if the reminders is still active for the passed vehicle/parameters. If false, the vehicle will erase this reminder from it's reminder-container.
[in] | veh | Vehicle that asks this reminder. |
[in] | timeOnLane | time the vehicle spent on the lane. |
[in] | speed | Moving speed. |
Reimplemented in MSMeanData::MeanDataValueTracker, MSMeanData_Net::MSLaneMeanDataValues, MSMeanData_Harmonoise::MSLaneMeanDataValues, and MSMeanData_HBEFA::MSLaneMeanDataValues.
Definition at line 200 of file MSMoveReminder.h.
References UNUSED_PARAMETER.
|
private |
Invalidated assignment operator.
|
inlineinherited |
resets the id
[in] | newID | The new id of this object |
Definition at line 68 of file Named.h.
References Named::myID.
Referenced by NBNodeCont::rename(), and NBEdgeCont::rename().
|
private |
Called on route output.
[in] | os | the device to write into |
[in] | index | The index of the route to write (-1 writes the current route) |
Definition at line 148 of file MSDevice_Vehroutes.cpp.
References MSRoute::begin(), SUMOVehicle::getNumberReroutes(), myCurrentRoute, myExits, MSDevice::myHolder, myReplacedRoutes, mySaveExits, OutputDevice::openTag(), MSRoute::size(), SUMO_TAG_ROUTE, time2string(), and MSRoute::writeEdgeIDs().
Referenced by generateOutput().
|
private |
Definition at line 215 of file MSDevice_Vehroutes.h.
Referenced by addRoute(), MSDevice_Vehroutes(), writeXMLRoute(), and ~MSDevice_Vehroutes().
Definition at line 182 of file MSDevice_Vehroutes.h.
Referenced by generateOutput(), and notifyEnter().
|
private |
Definition at line 217 of file MSDevice_Vehroutes.h.
Referenced by notifyLeave(), and writeXMLRoute().
|
protectedinherited |
The vehicle that stores the device.
Definition at line 108 of file MSDevice.h.
Referenced by addRoute(), MSDevice_Tripinfo::generateOutput(), generateOutput(), MSDevice::getHolder(), MSDevice_Tripinfo::notifyLeave(), MSDevice_Routing::preInsertionReroute(), MSDevice_Routing::wrappedRerouteCommandExecute(), writeXMLRoute(), and ~MSDevice_Vehroutes().
|
protectedinherited |
The name of the object.
Definition at line 121 of file Named.h.
Referenced by NGEdge::buildNBEdge(), NGNode::buildNBNode(), MSCalibrator::execute(), Named::getID(), NBEdge::getLaneID(), NBEdge::getLaneIDInsecure(), ROEdge::getStoredEffort(), ROEdge::getTravelTime(), MSCalibrator::init(), NBEdge::init(), MSCalibrator::myStartElement(), MSCalibrator::VehicleRemover::notifyEnter(), RORouteDef::preComputeCurrentRoute(), NBEdge::reinitNodes(), MSRoute::release(), RORouteDef::repairCurrentRoute(), Named::setID(), NBEdge::splitGeometry(), MSXMLRawOut::writeLane(), NBNode::writeLogic(), MSCalibrator::writeXMLOutput(), MSE3Collector::writeXMLOutput(), and MSMeanData::writeXMLOutput().
|
protectedinherited |
Lane on which the reminder works.
Definition at line 215 of file MSMoveReminder.h.
Referenced by MSE2Collector::detectorUpdate(), MSMoveReminder::getLane(), MSE2Collector::MSE2Collector(), and MSMoveReminder::MSMoveReminder().
|
staticprivate |
A shortcut for the Option "vehroute-output.last-route".
Definition at line 157 of file MSDevice_Vehroutes.h.
Referenced by buildVehicleDevices(), and init().
|
private |
Definition at line 219 of file MSDevice_Vehroutes.h.
Referenced by notifyLeave().
|
private |
Definition at line 218 of file MSDevice_Vehroutes.h.
Referenced by addRoute().
|
private |
Definition at line 216 of file MSDevice_Vehroutes.h.
Referenced by addRoute(), generateOutput(), getRoute(), writeXMLRoute(), and ~MSDevice_Vehroutes().
|
staticprivate |
Definition at line 184 of file MSDevice_Vehroutes.h.
Referenced by generateOutput().
|
staticprivate |
A shortcut for the Option "vehroute-output.exit-times".
Definition at line 154 of file MSDevice_Vehroutes.h.
Referenced by init(), notifyEnter(), notifyLeave(), and writeXMLRoute().
|
staticprivate |
A shortcut for the Option "vehroute-output.sorted".
Definition at line 160 of file MSDevice_Vehroutes.h.
Referenced by generateOutput(), init(), and notifyEnter().
|
staticprivate |
Definition at line 180 of file MSDevice_Vehroutes.h.
Referenced by buildVehicleDevices(), generateOutputForUnfinished(), init(), notifyEnter(), and ~MSDevice_Vehroutes().
|
staticprivate |
A shortcut for the Option "device.routing.with-taz".
Definition at line 163 of file MSDevice_Vehroutes.h.
Referenced by generateOutput(), and init().