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

Changes the speed allowed on a set of lanes. More...

#include <MSLaneSpeedTrigger.h>

Inheritance diagram for MSLaneSpeedTrigger:
MSTrigger SUMOSAXHandler Command Named GenericSAXHandler DefaultHandler GUILaneSpeedTrigger

Public Member Functions

void characters (const XMLCh *const chars, const XERCES3_SIZE_t length)
 The inherited method called when characters occured.
void endElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname)
 The inherited method called when a tag is being closed.
SUMOTime execute (SUMOTime currentTime)
 Executes a switch command.
SUMOReal getCurrentSpeed () const
 Returns the current speed.
SUMOReal getDefaultSpeed () const
const std::string & getFileName () const
 returns the current file name
const std::string & getID () const
 Returns the id.
SUMOReal getLoadedSpeed ()
 MSLaneSpeedTrigger (const std::string &id, const std::vector< MSLane * > &destLanes, const std::string &file)
 Constructor.
SUMOTime processCommand (bool move2next, SUMOTime currentTime)
void registerParent (const int tag, GenericSAXHandler *handler)
 Assigning a parent handler which is enabled when the specified tag is closed.
void setFileName (const std::string &name)
 Sets the current file name.
void setID (const std::string &newID)
 resets the id
void setOverriding (bool val)
void setOverridingValue (SUMOReal val)
void startElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const Attributes &attrs)
 The inherited method called when a new tag opens.
virtual ~MSLaneSpeedTrigger ()
 Destructor.
SAX ErrorHandler callbacks
void warning (const SAXParseException &exception)
 Handler for XML-warnings.
void error (const SAXParseException &exception)
 Handler for XML-errors.
void fatalError (const SAXParseException &exception)
 Handler for XML-errors.

Protected Member Functions

std::string buildErrorMessage (const SAXParseException &exception)
 Builds an error message.
virtual void myCharacters (int element, const std::string &chars)
 Callback method for characters to implement by derived classes.
inherited from GenericSAXHandler
virtual void myStartElement (int element, const SUMOSAXAttributes &attrs)
 Called on the opening of a tag;.
virtual void myEndElement (int element)
 Called on the closing of a tag;.

Protected Attributes

bool myAmOverriding
 The information whether the read speed shall be overridden.
std::vector< std::pair
< SUMOTime, SUMOReal >
>::iterator 
myCurrentEntry
SUMOReal myCurrentSpeed
SUMOReal myDefaultSpeed
 The original speed allowed on the lanes.
std::vector< MSLane * > myDestLanes
std::string myID
 The name of the object.
std::vector< std::pair
< SUMOTime, SUMOReal > > 
myLoadedSpeeds
SUMOReal mySpeedOverrideValue
 The speed to use if overriding the read speed.

Private Member Functions

void init ()
 MSLaneSpeedTrigger (const MSLaneSpeedTrigger &)
 Invalidated copy constructor.
MSLaneSpeedTriggeroperator= (const MSLaneSpeedTrigger &)
 Invalidated assignment operator.

Private Attributes

bool myDidInit
 The information whether init was called.

Detailed Description

Changes the speed allowed on a set of lanes.

This trigger reads the next maximum velocity of the lane he is responsible for from a file and sets it. Lanes with variable speeds are so possible.

Definition at line 61 of file MSLaneSpeedTrigger.h.


Constructor & Destructor Documentation

MSLaneSpeedTrigger::MSLaneSpeedTrigger ( const std::string &  id,
const std::vector< MSLane * > &  destLanes,
const std::string &  file 
)

Constructor.

Parameters:
[in]idThe id of the lane speed trigger
[in]netThe net the lane speed trigger belongs to
[in]destLanesList of lanes affected by this speed trigger
[in]fileName of the file to read the speeds to set from

Definition at line 62 of file MSLaneSpeedTrigger.cpp.

References init(), myCurrentSpeed, myDidInit, and XMLSubSys::runParser().

MSLaneSpeedTrigger::~MSLaneSpeedTrigger ( )
virtual

Destructor.

Definition at line 100 of file MSLaneSpeedTrigger.cpp.

MSLaneSpeedTrigger::MSLaneSpeedTrigger ( const MSLaneSpeedTrigger )
private

Invalidated copy constructor.


Member Function Documentation

std::string GenericSAXHandler::buildErrorMessage ( const SAXParseException &  exception)
protectedinherited

Builds an error message.

The error message includes the file name and the line/column information as supported by the given SAXParseException

Parameters:
[in]exceptionThe name of the currently processed file
Returns:
A string describing the given exception

Definition at line 193 of file GenericSAXHandler.cpp.

References GenericSAXHandler::getFileName().

Referenced by GenericSAXHandler::error(), GenericSAXHandler::fatalError(), and GenericSAXHandler::warning().

void GenericSAXHandler::characters ( const XMLCh *const  chars,
const XERCES3_SIZE_t  length 
)
inherited

The inherited method called when characters occured.

The retrieved characters are converted into a string and appended into a private buffer. They are reported as soon as the element ends.

Todo:

recheck/describe what happens with characters when a new element is opened

describe characters processing in the class' head

Definition at line 176 of file GenericSAXHandler.cpp.

References GenericSAXHandler::myCharactersVector.

void GenericSAXHandler::endElement ( const XMLCh *const  uri,
const XMLCh *const  localname,
const XMLCh *const  qname 
)
inherited

The inherited method called when a tag is being closed.

This method calls the user-implemented methods myCharacters with the previously collected and converted characters.

Then, myEndElement is called, supplying it the qname converted to its enum- and string-representations.

Todo:

recheck/describe encoding of the string-representation

do not generate and report the string-representation

Definition at line 126 of file GenericSAXHandler.cpp.

References GenericSAXHandler::convertTag(), GenericSAXHandler::myCharacters(), GenericSAXHandler::myCharactersVector, GenericSAXHandler::myEndElement(), GenericSAXHandler::myParentHandler, GenericSAXHandler::myParentIndicator, XMLSubSys::setHandler(), SUMO_TAG_INCLUDE, and SUMO_TAG_NOTHING.

void GenericSAXHandler::error ( const SAXParseException &  exception)
inherited

Handler for XML-errors.

The message is built using buildErrorMessage and thrown within a ProcessError.

Parameters:
[in]exceptionThe occured exception to process
Exceptions:
ProcessErrorOn any call

Definition at line 212 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage().

Referenced by NLHandler::getLanesFromIndices().

SUMOTime MSLaneSpeedTrigger::execute ( SUMOTime  currentTime)
virtual

Executes a switch command.

Calls processCommand()

Parameters:
[in]currentTimeThe current simulation time
See also:
Command
MSEventControl

Implements Command.

Definition at line 104 of file MSLaneSpeedTrigger.cpp.

References processCommand().

Referenced by init().

void GenericSAXHandler::fatalError ( const SAXParseException &  exception)
inherited

Handler for XML-errors.

The message is built using buildErrorMessage and thrown within a ProcessError.

Exceptions:
ProcessErrorOn any call
Parameters:
[in]exceptionThe occured exception to process

Definition at line 218 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage().

SUMOReal MSLaneSpeedTrigger::getDefaultSpeed ( ) const

Definition at line 181 of file MSLaneSpeedTrigger.cpp.

References myDefaultSpeed.

const std::string& Named::getID ( ) const
inlineinherited

Returns the id.

Returns:
The stored id

Reimplemented in MS_E2_ZS_CollectorOverLanes.

Definition at line 61 of file Named.h.

References Named::myID.

Referenced by MSDetectorControl::add(), ShapeContainer::add(), RORouteDef_Alternatives::addAlternative(), MSNet::addBusStop(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), NIImporter_OpenDrive::addE2EConnectionsSecure(), RONet::addNode(), NIImporter_SUMO::addPhase(), RONet::addRouteDef(), NBDistrict::addSink(), NBDistrict::addSource(), MSRouteHandler::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), NIVisumTL::build(), MS_E2_ZS_CollectorOverLanes::buildCollector(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), NBEdge::buildInnerEdges(), NIVissimEdge::buildNBEdge(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), ODDistrictHandler::closeDistrict(), NBTrafficLightDefinition::collectEdges(), NBOwnTLDef::collectLinks(), NBTrafficLightDefinition::compute(), NBNode::computeInternalLaneShape(), NBEdge::computeLaneShapes(), NBNode::computeLogic(), NBNode::computeNodeShape(), NBTrafficLightLogicCont::computeSingleLogic(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NBEdge::connections_sorter(), MSLane::detectCollisions(), NIVissimDistrictConnection::dict_BuildDistricts(), MSE3Collector::enter(), Command_SaveTLSSwitches::execute(), MSVTypeProbe::execute(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), NBEdgeCont::extract(), MSNet::getBusStopID(), NIImporter_VISUM::getNamedEdgeContinuating(), NLTriggerBuilder::getPosition(), 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(), MSLane::moveCritical(), MSVehicle::MSVehicle(), RORDLoader_SUMOBase::myCharacters(), NBOwnTLDef::myCompute(), NBLoadedTLDef::myCompute(), NIXMLTrafficLightsHandler::myEndElement(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), myStartElement(), MSTriggeredRerouter::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSDevice_Tripinfo::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), Named::ComparatorIdLess::operator()(), NBTurningDirectionsComputer::combination_by_angle_sorter::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()(), 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(), RORouteDef_Complete::preComputeCurrentRoute(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_Vehicle::processGet(), NWWriter_SUMO::prohibitionConnection(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), NBLoadedSUMOTLDef::removeConnection(), NBNode::removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBNodeCont::rename(), NBEdgeCont::rename(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), NBNodeCont::setAsTLControlled(), NBEdge::setControllingTLInformation(), MSLane::setCritical(), NIXMLEdgesHandler::setNodes(), NBOwnTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), RORDLoader_SUMOBase::startRoute(), NBEdge::startShapeAt(), NIXMLConnectionsHandler::validateLaneInfo(), MSInstantInductLoop::write(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_SUMO::writeInternalConnections(), NWWriter_SUMO::writeJunction(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), MSInductLoop::writeTypedXMLOutput(), MSRouteProbe::writeXMLOutput(), and MSE2Collector::writeXMLOutput().

SUMOReal MSLaneSpeedTrigger::getLoadedSpeed ( )

Definition at line 201 of file MSLaneSpeedTrigger.cpp.

References myCurrentEntry, and myLoadedSpeeds.

void GenericSAXHandler::myCharacters ( int  element,
const std::string &  chars 
)
protectedvirtualinherited

Callback method for characters to implement by derived classes.

Called by "endElement" (see there).

Parameters:
[in]elementThe opened element, given as a int
[in]charsThe complete embedded character string ProcessError These method may throw a ProcessError if something fails

Reimplemented in NIImporter_OpenDrive, NIImporter_SUMO, PCNetProjectionLoader, NIImporter_ITSUMO::Handler, PCLoaderXML, RORDLoader_SUMOBase, and ROJTRTurnDefLoader.

Definition at line 228 of file GenericSAXHandler.cpp.

Referenced by GenericSAXHandler::endElement().

void MSLaneSpeedTrigger::myEndElement ( int  element)
protectedvirtual

Called on the closing of a tag;.

Parameters:
[in]elementID of the currently closed element
Exceptions:
ProcessErrorIf something fails
See also:
GenericSAXHandler::myEndElement

Reimplemented from GenericSAXHandler.

Definition at line 173 of file MSLaneSpeedTrigger.cpp.

References init(), myDidInit, and SUMO_TAG_VSS.

void MSLaneSpeedTrigger::myStartElement ( int  element,
const SUMOSAXAttributes attrs 
)
protectedvirtual

Called on the opening of a tag;.

Parameters:
[in]elementID of the currently opened element
[in]attrsAttributes within the currently opened element
Exceptions:
ProcessErrorIf something fails
See also:
GenericSAXHandler::myStartElement

Reimplemented from GenericSAXHandler.

Definition at line 143 of file MSLaneSpeedTrigger.cpp.

References Named::getID(), SUMOSAXAttributes::getOptSUMORealReporting(), SUMOSAXAttributes::getSUMOTimeReporting(), myLoadedSpeeds, SUMO_ATTR_SPEED, SUMO_ATTR_TIME, SUMO_TAG_STEP, SUMOReal, time2string(), WRITE_ERROR, and WRITE_WARNING.

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

Invalidated assignment operator.

SUMOTime MSLaneSpeedTrigger::processCommand ( bool  move2next,
SUMOTime  currentTime 
)
void GenericSAXHandler::registerParent ( const int  tag,
GenericSAXHandler handler 
)
inherited

Assigning a parent handler which is enabled when the specified tag is closed.

Definition at line 168 of file GenericSAXHandler.cpp.

References GenericSAXHandler::myParentHandler, GenericSAXHandler::myParentIndicator, and XMLSubSys::setHandler().

Referenced by NLTriggerBuilder::parseAndBuildLaneSpeedTrigger(), and NLTriggerBuilder::parseAndBuildRerouter().

void GenericSAXHandler::setFileName ( const std::string &  name)
inherited
void Named::setID ( const std::string &  newID)
inlineinherited

resets the id

Definition at line 67 of file Named.h.

References Named::myID.

Referenced by NBNodeCont::rename(), and NBEdgeCont::rename().

void MSLaneSpeedTrigger::setOverriding ( bool  val)
void GenericSAXHandler::startElement ( const XMLCh *const  uri,
const XMLCh *const  localname,
const XMLCh *const  qname,
const Attributes &  attrs 
)
inherited

The inherited method called when a new tag opens.

The method parses the supplied XMLCh*-qname using the internal name/enum-map to obtain the enum representation of the attribute name.

Then, "myStartElement" is called supplying the enumeration value, the string-representation of the name and the attributes.

Todo:

recheck/describe encoding of the string-representation

do not generate and report the string-representation

Definition at line 105 of file GenericSAXHandler.cpp.

References GenericSAXHandler::convertTag(), FileHelpers::getConfigurationRelative(), GenericSAXHandler::getFileName(), SUMOSAXAttributesImpl_Xerces::getString(), FileHelpers::isAbsolute(), GenericSAXHandler::myCharactersVector, GenericSAXHandler::myPredefinedTags, GenericSAXHandler::myPredefinedTagsMML, GenericSAXHandler::myStartElement(), XMLSubSys::runParser(), SUMO_ATTR_HREF, and SUMO_TAG_INCLUDE.

void GenericSAXHandler::warning ( const SAXParseException &  exception)
inherited

Handler for XML-warnings.

The message is built using buildErrorMessage and reported to the warning-instance of the MsgHandler.

Parameters:
[in]exceptionThe occured exception to process

Definition at line 206 of file GenericSAXHandler.cpp.

References GenericSAXHandler::buildErrorMessage(), and WRITE_WARNING.


Field Documentation

bool MSLaneSpeedTrigger::myAmOverriding
protected

The information whether the read speed shall be overridden.

Definition at line 137 of file MSLaneSpeedTrigger.h.

Referenced by getCurrentSpeed(), and setOverriding().

std::vector<std::pair<SUMOTime, SUMOReal> >::iterator MSLaneSpeedTrigger::myCurrentEntry
protected

Definition at line 143 of file MSLaneSpeedTrigger.h.

Referenced by getCurrentSpeed(), getLoadedSpeed(), init(), and processCommand().

SUMOReal MSLaneSpeedTrigger::myCurrentSpeed
protected

the speed that will be set on the next call

Definition at line 131 of file MSLaneSpeedTrigger.h.

Referenced by init(), and MSLaneSpeedTrigger().

SUMOReal MSLaneSpeedTrigger::myDefaultSpeed
protected

The original speed allowed on the lanes.

Definition at line 134 of file MSLaneSpeedTrigger.h.

Referenced by getCurrentSpeed(), getDefaultSpeed(), and GUILaneSpeedTrigger::GUILaneSpeedTrigger().

std::vector<MSLane*> MSLaneSpeedTrigger::myDestLanes
protected

the lane the trigger is responsible for

Definition at line 128 of file MSLaneSpeedTrigger.h.

Referenced by processCommand().

bool MSLaneSpeedTrigger::myDidInit
private

The information whether init was called.

Definition at line 157 of file MSLaneSpeedTrigger.h.

Referenced by init(), MSLaneSpeedTrigger(), and myEndElement().

std::vector<std::pair<SUMOTime, SUMOReal> > MSLaneSpeedTrigger::myLoadedSpeeds
protected
SUMOReal MSLaneSpeedTrigger::mySpeedOverrideValue
protected

The speed to use if overriding the read speed.

Definition at line 140 of file MSLaneSpeedTrigger.h.

Referenced by getCurrentSpeed(), GUILaneSpeedTrigger::GUILaneSpeedTrigger(), and setOverridingValue().


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