SUMO - Simulation of Urban MObility
|
A device that performs vehicle rerouting based on current edge speeds. More...
#include <MSDevice_Routing.h>
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... | |
virtual void | generateOutput () const |
Called on writing tripinfo output. More... | |
const std::string & | getDescription () const |
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... | |
virtual void | notifyMoveInternal (SUMOVehicle &veh, SUMOReal timeOnLane, SUMOReal speed) |
Internal notification about the vehicle moves. More... | |
void | setDescription (const std::string &description) |
void | setID (const std::string &newID) |
resets the id More... | |
~MSDevice_Routing () | |
Destructor. More... | |
Methods called on vehicle movement / state change, overwriting MSDevice | |
bool | notifyEnter (SUMOVehicle &veh, MSMoveReminder::Notification reason) |
Computes a new route on vehicle insertion. 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... | |
virtual bool | notifyLeave (SUMOVehicle &veh, SUMOReal lastPos, Notification reason) |
Called if the vehicle leaves the reminder's lane. More... | |
Static Public Member Functions | |
static void | buildVehicleDevices (SUMOVehicle &v, std::vector< MSDevice * > &into) |
Build devices for the given vehicle, if needed. More... | |
static void | cleanup () |
deletes the router instance More... | |
static void | insertOptions (OptionsCont &oc) |
Inserts MSDevice_Routing-options. More... | |
Static Protected Member Functions | |
Helper methods for device assignment | |
static void | insertDefaultAssignmentOptions (const std::string &deviceName, const std::string &optionsTopic, OptionsCont &oc) |
Adds common command options that allow to assign devices to vehicles. More... | |
static bool | equippedByDefaultAssignmentOptions (const OptionsCont &oc, const std::string &deviceName, SUMOVehicle &v) |
Determines whether a vehicle should get a certain device. More... | |
Protected Attributes | |
std::string | myDescription |
a description of this moveReminder More... | |
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 | |
MSDevice_Routing (SUMOVehicle &holder, const std::string &id, SUMOTime period, SUMOTime preInsertionPeriod) | |
Constructor. More... | |
MSDevice_Routing (const MSDevice_Routing &) | |
Invalidated copy constructor. More... | |
MSDevice_Routing & | operator= (const MSDevice_Routing &) |
Invalidated assignment operator. More... | |
SUMOTime | preInsertionReroute (SUMOTime currentTime) |
Performs rerouting at insertion into the network. More... | |
SUMOTime | wrappedRerouteCommandExecute (SUMOTime currentTime) |
Performs rerouting after a period. More... | |
Static Private Member Functions | |
static SUMOReal | getEffort (const MSEdge *const e, const SUMOVehicle *const v, SUMOReal t) |
Returns the effort to pass an edge. More... | |
static SUMOAbstractRouter < MSEdge, SUMOVehicle > & | getRouter () |
get the router, initialize on first use More... | |
Network state adaptation | |
static SUMOTime | adaptEdgeEfforts (SUMOTime currentTime) |
Adapt edge efforts by the current edge states. More... | |
Private Attributes | |
SUMOTime | myPeriod |
The period with which a vehicle shall be rerouted. More... | |
SUMOTime | myPreInsertionPeriod |
The period with which a vehicle shall be rerouted before insertion. More... | |
WrappingCommand < MSDevice_Routing > * | myRerouteCommand |
The (optional) command responsible for rerouting. More... | |
Static Private Attributes | |
static SUMOTime | myAdaptationInterval |
Information which weight prior edge efforts have. More... | |
static SUMOReal | myAdaptationWeight |
Information which weight prior edge efforts have. More... | |
static std::map< std::pair < const MSEdge *, const MSEdge * > , const MSRoute * > | myCachedRoutes |
The container of pre-calculated routes. More... | |
static std::map< const MSEdge *, SUMOReal > | myEdgeEfforts |
The container of edge efforts. More... | |
static Command * | myEdgeWeightSettingCommand = 0 |
The weights adaptation/overwriting command. More... | |
static SUMOAbstractRouter < MSEdge, SUMOVehicle > * | myRouter = 0 |
The router to use. More... | |
static bool | myWithTaz |
whether taz shall be used at initial rerouting More... | |
A device that performs vehicle rerouting based on current edge speeds.
The routing-device system consists of in-vehicle devices that perform a routing and a simulation-wide (static) methods for colecting edge weights.
The edge weights container "myEdgeEfforts" is pre-initialised as soon as one device is built and is kept updated via an event that adapts it to the current mean speed on the simulated network's edges.
A device is assigned to a vehicle using the common explicit/probability - procedure.
A device computes a new route for a vehicle as soon as the vehicle is inserted (within "enterLaneAtInsertion") - and, if the given period is larger than 0 - each x time steps where x is the period. This is triggered by an event that executes "wrappedRerouteCommandExecute".
Definition at line 70 of file MSDevice_Routing.h.
|
inherited |
Definition of a vehicle state.
Definition at line 94 of file MSMoveReminder.h.
MSDevice_Routing::~MSDevice_Routing | ( | ) |
Destructor.
Definition at line 167 of file MSDevice_Routing.cpp.
References WrappingCommand< T >::deschedule(), and myRerouteCommand.
|
private |
Constructor.
[in] | holder | The vehicle that holds this device |
[in] | id | The ID of the device |
[in] | period | The period with which a new route shall be searched |
[in] | preInsertionPeriod | The route search period before insertion |
Definition at line 155 of file MSDevice_Routing.cpp.
References MSEventControl::ADAPT_AFTER_EXECUTION, MSEventControl::addEvent(), SUMOVehicleParameter::depart, MSNet::getInsertionEvents(), MSNet::getInstance(), SUMOVehicle::getParameter(), myRerouteCommand, myWithTaz, and preInsertionReroute().
Referenced by buildVehicleDevices().
|
private |
Invalidated copy constructor.
Adapt edge efforts by the current edge states.
This method is called by the event handler at the end of a simulation step. The current edge weights are combined with the previously stored.
[in] | currentTime | The current simulation time |
Definition at line 234 of file MSDevice_Routing.cpp.
References MSNet::getEdgeControl(), MSEdgeControl::getEdges(), MSNet::getInstance(), myAdaptationInterval, myAdaptationWeight, myCachedRoutes, myEdgeEfforts, and SUMOReal.
Referenced by buildVehicleDevices().
|
inlineinherited |
Adds this object to the given container.
in,filled] | cont The container to add this item to |
Definition at line 121 of file Named.h.
References Named::StoringVisitor::add().
|
static |
Build devices for the given vehicle, if needed.
The options are read and evaluated whether rerouting-devices shall be built for the given vehicle.
When the first device is built, the static container of edge weights used for routing is initialised with the mean speed the edges allow. In addition, an event is generated which updates these weights is built and added to the list of events to execute at a simulation end.
For each seen vehicle, the global vehicle index is increased.
The built device is stored in the given vector.
[in] | v | The vehicle for which a device may be built |
filled] | into The vector to store the built device in |
Definition at line 101 of file MSDevice_Routing.cpp.
References MSEventControl::ADAPT_AFTER_EXECUTION, adaptEdgeEfforts(), MSEventControl::addEvent(), MSEdge::dictionary(), MSDevice::equippedByDefaultAssignmentOptions(), SUMOVehicleParameter::fromTaz, OptionsCont::getBool(), MSNet::getEdgeControl(), MSEdgeControl::getEdges(), MSNet::getEndOfTimestepEvents(), OptionsCont::getFloat(), SUMOVehicle::getID(), MSNet::getInstance(), OptionsCont::getOptions(), SUMOVehicle::getParameter(), OptionsCont::getString(), MSNet::getTravelTime(), OptionsCont::isSet(), MSDevice_Routing(), myAdaptationInterval, myAdaptationWeight, myEdgeEfforts, myEdgeWeightSettingCommand, myWithTaz, STEPS2TIME, string2time(), SUMOReal, SUMOVehicleParameter::toTaz, VEHPARS_FORCE_REROUTE, SUMOVehicleParameter::wasSet(), and WRITE_ERROR.
Referenced by MSDevice::buildVehicleDevices().
|
static |
deletes the router instance
Definition at line 268 of file MSDevice_Routing.cpp.
References myRouter.
Referenced by MSNet::clearAll().
|
staticprotectedinherited |
Determines whether a vehicle should get a certain device.
[in] | oc | The options container to get the information about assignment from |
[in] | deviceName | The name of the device type |
[in] | v | The vehicle to determine whether it shall be equipped or not |
Definition at line 97 of file MSDevice.cpp.
References TplConvert::_2bool(), OptionsCont::exists(), OptionsCont::getBool(), OptionsCont::getFloat(), SUMOVehicle::getID(), MSNet::getInstance(), OptionsCont::getOptions(), Parameterised::getParameter(), SUMOVehicle::getParameter(), MSVehicleType::getParameter(), OptionsCont::getStringVector(), MSNet::getVehicleControl(), SUMOVehicle::getVehicleType(), MSVehicleControl::isInQuota(), OptionsCont::isSet(), Parameterised::knowsParameter(), MSDevice::myExplicitIDs, and RandHelper::rand().
Referenced by MSDevice_Example::buildVehicleDevices(), MSDevice_BTsender::buildVehicleDevices(), MSDevice_BTreceiver::buildVehicleDevices(), and buildVehicleDevices().
|
inlinevirtualinherited |
Called on writing tripinfo output.
The device may write some statistics into the tripinfo output. It is assumed that the written information is a valid xml-snipplet, which will be embedded within the vehicle's information.
The device should use the openTag / closeTag methods of the OutputDevice for correct indentation.
[in] | os | The stream to write the information into |
IOError | not yet implemented |
Reimplemented in MSDevice_Example, MSDevice_Vehroutes, MSDevice_Tripinfo, and MSDevice_Emissions.
Definition at line 121 of file MSDevice.h.
|
inlineinherited |
Definition at line 213 of file MSMoveReminder.h.
References MSMoveReminder::myDescription.
|
staticprivate |
Returns the effort to pass an edge.
This method is given to the used router in order to obtain the efforts to pass an edge from the internal edge weights container.
The time is not used, here, as the current simulation state is used in an aggregated way.
[in] | e | The edge for which the effort to be passed shall be returned |
[in] | v | The vehicle that is rerouted |
[in] | t | The time for which the effort shall be returned |
Definition at line 225 of file MSDevice_Routing.cpp.
References MSEdge::getMinimumTravelTime(), MAX2(), and myEdgeEfforts.
Referenced by getRouter().
|
inlineinherited |
Returns the vehicle that holds this device.
Definition at line 104 of file MSDevice.h.
References MSDevice::myHolder.
|
inlineinherited |
Returns the id.
Definition at line 60 of file Named.h.
References Named::myID.
Referenced by NIImporter_SUMO::_loadNetwork(), TraCIServerAPI_Lane::StoringVisitor::add(), Named::StoringVisitor::add(), MSDetectorControl::add(), RORouteDef::addAlternative(), MSNet::addBusStop(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), RODFDetectorCon::addDetector(), RONet::addEdge(), ROJTREdge::addFollowerProbability(), MSTLLogicControl::TLSLogicVariants::addLogic(), RONet::addNode(), NIImporter_SUMO::addPhase(), RONet::addRouteDef(), NBDistrict::addSink(), NBDistrict::addSource(), NBTrafficLightLogic::addStep(), MSRouteHandler::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), MSVehicleTransfer::addVeh(), GUITrafficLightLogicWrapper::begin2TrackPhases(), 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(), MSSimpleTrafficLightLogic::changeStepAndDuration(), NBEdge::checkGeometry(), 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(), RODFNet::computeRoutesFor(), NBTrafficLightLogicCont::computeSingleLogic(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NGNet::connect(), MSAbstractLaneChangeModel::continueLaneChangeManeuver(), NLDetectorBuilder::convUncontE2PosLength(), GUINet::createTLWrapper(), MSLane::detectCollisions(), NIVissimDistrictConnection::dict_BuildDistricts(), MSPerson::MSPersonStage_Driving::endEventOutput(), MSPerson::MSPersonStage_Waiting::endEventOutput(), MSE3Collector::enter(), MSCalibrator::execute(), Command_SaveTLSState::execute(), Command_SaveTLSSwitchStates::execute(), Command_SaveTLSSwitches::execute(), MSVTypeProbe::execute(), MSVehicle::executeMove(), MSLane::executeMovements(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), NBEdgeCont::extract(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSNet::getBusStopID(), RODFNet::getDetectorEdge(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), AGStreet::getName(), NIImporter_VISUM::getNamedEdgeContinuating(), GUIVehicle::getParameterWindow(), GUITrafficLightLogicWrapper::getPopUpMenu(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), NBNode::getPossiblySplittedIncoming(), NBNode::getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), RODFDetectorCon::guessEmptyFlows(), GUITLLogicPhasesTrackerWindow::GUITLLogicPhasesTrackerWindow(), NBEdgeCont::ignoreFilterMatch(), MSActuatedTrafficLightLogic::init(), MSAgentbasedTrafficLightLogic::init(), MSTrafficLightLogic::init(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBTrafficLightLogicCont::insert(), NBNodeCont::insert(), NBEdgeCont::insert(), NBNode::invalidateTLS(), MSTLLogicControl::isActive(), RODFNet::isDestination(), RODFNet::isFalseSource(), RODFNet::isSource(), NBEdgeCont::joinSameNodeConnectingEdges(), MSE3Collector::leave(), NIImporter_OpenDrive::loadNetwork(), NBRampsComputer::moveRampRight(), MSCalibrator::MSCalibrator(), 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_BTreceiver::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSDevice_BTsender::notifyEnter(), MSDevice_Example::notifyEnter(), MSCalibrator::VehicleRemover::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), MSDevice_Person::notifyLeave(), MSDevice_Example::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_Example::notifyMove(), MSDevice_BTreceiver::notifyMove(), MSDevice_BTsender::notifyMove(), GUIViewTraffic::onGamingClick(), 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(), MSLCM_JE2013::patchSpeed(), NBLoadedTLDef::SignalGroup::patchTYellow(), AGStreet::print(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_Vehicle::processSet(), NWWriter_SUMO::prohibitionConnection(), NBEdgeCont::recheckPostProcessConnections(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), NBLoadedSUMOTLDef::removeConnection(), MSCalibrator::removePending(), NBNode::removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBNodeCont::rename(), NBEdgeCont::rename(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), RODFNet::revalidateFlows(), PCPolyContainer::save(), RONet::saveAndRemoveRoutesUntil(), MSBaseVehicle::saveState(), NBNodeCont::setAsTLControlled(), NBEdge::setControllingTLInformation(), NIXMLEdgesHandler::setNodes(), NBOwnTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), MSLane::succLinkSec(), GUITrafficLightLogicWrapper::switchTLSLogic(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), TraCIServerAPI_Vehicle::vtdMap_matchingEdgeLane(), TraCIServerAPI_Vehicle::vtdMap_matchingRoutePosition(), MSLCM_JE2013::wantsChange(), MSFCDExport::write(), MSEmissionExport::write(), MSInstantInductLoop::write(), NBSign::writeAsPOI(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), RODFDetector::writeEmitterDefinition(), RODFDetectorCon::writeEmitterPOIs(), RODFDetectorCon::writeEmitters(), RODFDetectorCon::writeEndRerouterDetectors(), NWWriter_SUMO::writeInternalConnections(), NWWriter_SUMO::writeJunction(), MSQueueExport::writeLane(), MSFullExport::writeLane(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), NWWriter_DlrNavteq::writeNodesUnsplitted(), NWWriter_SUMO::writeRoundabout(), RODFDetectorCon::writeSpeedTrigger(), NWWriter_DlrNavteq::writeTrafficSignals(), MSInductLoop::writeTypedXMLOutput(), RODFDetectorCon::writeValidationDetectors(), MSFullExport::writeVehicles(), MSRouteProbe::writeXMLOutput(), and MSE2Collector::writeXMLOutput().
|
inlineinherited |
Returns the lane the reminder works on.
Definition at line 88 of file MSMoveReminder.h.
References MSMoveReminder::myLane.
Referenced by MSE2Collector::detectorUpdate(), TraCIServerAPI_InductionLoop::getPosition(), TraCIServerAPI_InductionLoop::getTree(), GUIInstantInductLoop::MyWrapper::MyWrapper(), GUI_E2_ZS_Collector::MyWrapper::MyWrapper(), GUIInductLoop::MyWrapper::MyWrapper(), MSDevice_BTreceiver::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSDevice_BTsender::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_BTreceiver::notifyMove(), MSDevice_BTsender::notifyMove(), TraCIServerAPI_InductionLoop::processGet(), and MSMeanData::writeEdge().
|
staticprivate |
get the router, initialize on first use
Definition at line 250 of file MSDevice_Routing.cpp.
References getEffort(), OptionsCont::getOptions(), OptionsCont::getString(), myRouter, and MSEdge::numericalDictSize().
Referenced by preInsertionReroute(), and wrappedRerouteCommandExecute().
|
staticprotectedinherited |
Adds common command options that allow to assign devices to vehicles.
[in] | deviceName | The name of the device type |
[in] | optionsTopic | The options topic into which the options shall be added |
filled] | oc The options container to add the options to |
!! describe
!! describe
!! describe
Definition at line 83 of file MSDevice.cpp.
References OptionsCont::addDescription(), OptionsCont::addSynonyme(), and OptionsCont::doRegister().
Referenced by MSDevice_BTsender::insertOptions(), MSDevice_BTreceiver::insertOptions(), and insertOptions().
|
static |
Inserts MSDevice_Routing-options.
filled] | oc The options container to add the options to |
Definition at line 68 of file MSDevice_Routing.cpp.
References OptionsCont::addDescription(), OptionsCont::addOptionSubTopic(), OptionsCont::addSynonyme(), OptionsCont::doRegister(), MSDevice::insertDefaultAssignmentOptions(), myEdgeEfforts, and myEdgeWeightSettingCommand.
Referenced by MSDevice::insertOptions().
|
virtual |
Computes a new route on vehicle insertion.
A new route is computed by calling the vehicle's "reroute" method, supplying "getEffort" as the edge effort retrieval method.
If the reroute period is larger than 0, an event is generated and added to the list of simulation step begin events which executes "wrappedRerouteCommandExecute".
[in] | veh | The entering vehicle. |
[in] | reason | how the vehicle enters the lane |
Reimplemented from MSMoveReminder.
Definition at line 176 of file MSDevice_Routing.cpp.
References MSEventControl::ADAPT_AFTER_EXECUTION, MSEventControl::addEvent(), WrappingCommand< T >::deschedule(), MSNet::getBeginOfTimestepEvents(), MSNet::getInstance(), myPeriod, myPreInsertionPeriod, myRerouteCommand, myWithTaz, MSMoveReminder::NOTIFICATION_DEPARTED, and wrappedRerouteCommandExecute().
|
inlinevirtualinherited |
Called if the vehicle leaves the reminder's lane.
Informs if vehicle leaves reminder lane (due to lane change, removal from the network, or leaving to the next lane). The default is to do nothing.
[in] | veh | The leaving vehicle. |
[in] | lastPos | Position on the lane when leaving. |
[in] | reason | how the vehicle leaves the lane |
Reimplemented in MSMeanData::MeanDataValueTracker, MSE3Collector::MSE3LeaveReminder, MSE2Collector, MSInductLoop, MSMeanData::MeanDataValues, MSDevice_BTsender, MSDevice_BTreceiver, MSDevice_Example, MSInstantInductLoop, MSDevice_Vehroutes, MSE3Collector::MSE3EntryReminder, MSDevice_Person, MSDevice_Tripinfo, and MSMeanData_Net::MSLaneMeanDataValues.
Definition at line 174 of file MSMoveReminder.h.
References UNUSED_PARAMETER.
|
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_BTsender, MSDevice_BTreceiver, MSDevice_Emissions, MSE3Collector::MSE3EntryReminder, MSInstantInductLoop, MSDevice_Example, MSDevice_Person, and MSDevice_Tripinfo.
Definition at line 149 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_Emissions::MSLaneMeanDataValues.
Definition at line 201 of file MSMoveReminder.h.
References UNUSED_PARAMETER.
|
private |
Invalidated assignment operator.
Performs rerouting at insertion into the network.
A new route is computed by calling the vehicle's "reroute" method, supplying "getEffort" as the edge effort retrieval method.
[in] | currentTime | The current simulation time |
Definition at line 200 of file MSDevice_Routing.cpp.
References MSRoute::addReference(), MSEdge::dictionary(), SUMOVehicleParameter::fromTaz, SUMOVehicle::getParameter(), SUMOVehicle::getRoute(), getRouter(), myCachedRoutes, MSDevice::myHolder, myPreInsertionPeriod, SUMOVehicle::replaceRoute(), SUMOVehicle::reroute(), and SUMOVehicleParameter::toTaz.
Referenced by MSDevice_Routing().
|
inlineinherited |
Definition at line 209 of file MSMoveReminder.h.
References MSMoveReminder::myDescription.
Referenced by MSCalibrator::MSCalibrator().
|
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().
Performs rerouting after a period.
A new route is computed by calling the vehicle's "reroute" method, supplying "getEffort" as the edge effort retrieval method.
This method is called from the event handler at the begin of a simulation step after the rerouting period is over. The reroute period is returned.
[in] | currentTime | The current simulation time |
Definition at line 218 of file MSDevice_Routing.cpp.
References getRouter(), MSDevice::myHolder, myPeriod, and SUMOVehicle::reroute().
Referenced by notifyEnter().
|
staticprivate |
Information which weight prior edge efforts have.
Definition at line 238 of file MSDevice_Routing.h.
Referenced by adaptEdgeEfforts(), and buildVehicleDevices().
|
staticprivate |
Information which weight prior edge efforts have.
Definition at line 235 of file MSDevice_Routing.h.
Referenced by adaptEdgeEfforts(), and buildVehicleDevices().
|
staticprivate |
The container of pre-calculated routes.
Definition at line 244 of file MSDevice_Routing.h.
Referenced by adaptEdgeEfforts(), and preInsertionReroute().
|
protectedinherited |
a description of this moveReminder
Definition at line 222 of file MSMoveReminder.h.
Referenced by MSMoveReminder::getDescription(), and MSMoveReminder::setDescription().
The container of edge efforts.
Definition at line 232 of file MSDevice_Routing.h.
Referenced by adaptEdgeEfforts(), buildVehicleDevices(), getEffort(), and insertOptions().
|
staticprivate |
The weights adaptation/overwriting command.
Definition at line 229 of file MSDevice_Routing.h.
Referenced by buildVehicleDevices(), and insertOptions().
|
protectedinherited |
The vehicle that stores the device.
Definition at line 152 of file MSDevice.h.
Referenced by MSDevice_Vehroutes::addRoute(), MSDevice_Tripinfo::generateOutput(), MSDevice_Vehroutes::generateOutput(), MSDevice::getHolder(), MSDevice_Tripinfo::notifyLeave(), preInsertionReroute(), wrappedRerouteCommandExecute(), MSDevice_Vehroutes::writeXMLRoute(), and MSDevice_Vehroutes::~MSDevice_Vehroutes().
|
protectedinherited |
The name of the object.
Definition at line 128 of file Named.h.
Referenced by GUI_E2_ZS_CollectorOverLanes::buildCollector(), RODFDetector::buildDestinationDistribution(), NGEdge::buildNBEdge(), NGNode::buildNBNode(), NBNode::computeNodeShape(), MSCalibrator::execute(), Named::getID(), NBEdge::getLaneID(), NBEdge::getLaneIDInsecure(), ROEdge::getStoredEffort(), ROEdge::getTravelTime(), MSActuatedTrafficLightLogic::init(), MSAgentbasedTrafficLightLogic::init(), MSCalibrator::init(), NBEdge::init(), MSCalibrator::myStartElement(), MSCalibrator::VehicleRemover::notifyEnter(), RORouteDef::preComputeCurrentRoute(), NBEdge::reinitNodes(), MSRoute::release(), RORouteDef::repairCurrentRoute(), Named::setID(), NBEdge::splitGeometry(), RODFDetector::writeEmitterDefinition(), MSXMLRawOut::writeLane(), NBNode::writeLogic(), RODFDetector::writeSingleSpeedTrigger(), MSCalibrator::writeXMLOutput(), MSE3Collector::writeXMLOutput(), and MSMeanData::writeXMLOutput().
|
protectedinherited |
Lane on which the reminder works.
Definition at line 220 of file MSMoveReminder.h.
Referenced by MSE2Collector::detectorUpdate(), MSMoveReminder::getLane(), MSE2Collector::MSE2Collector(), and MSMoveReminder::MSMoveReminder().
|
private |
The period with which a vehicle shall be rerouted.
Definition at line 220 of file MSDevice_Routing.h.
Referenced by notifyEnter(), and wrappedRerouteCommandExecute().
|
private |
The period with which a vehicle shall be rerouted before insertion.
Definition at line 223 of file MSDevice_Routing.h.
Referenced by notifyEnter(), and preInsertionReroute().
|
private |
The (optional) command responsible for rerouting.
Definition at line 226 of file MSDevice_Routing.h.
Referenced by MSDevice_Routing(), notifyEnter(), and ~MSDevice_Routing().
|
staticprivate |
The router to use.
Definition at line 247 of file MSDevice_Routing.h.
Referenced by cleanup(), and getRouter().
|
staticprivate |
whether taz shall be used at initial rerouting
Definition at line 241 of file MSDevice_Routing.h.
Referenced by buildVehicleDevices(), MSDevice_Routing(), and notifyEnter().