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

Builds trigger objects for guisim. More...

#include <GUITriggerBuilder.h>

Inheritance diagram for GUITriggerBuilder:
Inheritance graph
Collaboration diagram for GUITriggerBuilder:
Collaboration graph

Public Member Functions

void buildVaporizer (const SUMOSAXAttributes &attrs)
 Builds a vaporization. More...
 
 GUITriggerBuilder ()
 Constructor. More...
 
void setHandler (NLHandler *handler)
 Sets the parent handler to use for nested parsing. More...
 
 ~GUITriggerBuilder ()
 Destructor. More...
 
parsing methods

These methods parse the attributes for each of the described trigger and call the according methods to build the trigger

void parseAndBuildLaneSpeedTrigger (MSNet &net, const SUMOSAXAttributes &attrs, const std::string &base)
 Parses his values and builds a lane speed trigger. More...
 
void parseAndBuildRerouter (MSNet &net, const SUMOSAXAttributes &attrs, const std::string &base)
 Parses his values and builds a rerouter. More...
 
void parseAndBuildStoppingPlace (MSNet &net, const SUMOSAXAttributes &attrs, const SumoXMLTag element)
 Parses the values and builds a stopping places for busses, trains or container vehicles. More...
 
void addAccess (MSNet &net, const SUMOSAXAttributes &attrs)
 Parses the values and adds an access point to the currently parsed stopping place. More...
 
void parseAndBuildChargingStation (MSNet &net, const SUMOSAXAttributes &attrs)
 Parses his values and builds a charging station. More...
 
void parseAndBuildCalibrator (MSNet &net, const SUMOSAXAttributes &attrs, const std::string &base)
 Parses his values and builds a mesoscopic or microscopic calibrator. More...
 

Protected Member Functions

building methods

Override NLTriggerBuilder-methods for building guisim-objects

See also
NLTriggerBuilder
virtual MSLaneSpeedTriggerbuildLaneSpeedTrigger (MSNet &net, const std::string &id, const std::vector< MSLane * > &destLanes, const std::string &file)
 Builds a lane speed trigger. More...
 
virtual MSTriggeredRerouterbuildRerouter (MSNet &net, const std::string &id, MSEdgeVector &edges, SUMOReal prob, const std::string &file, bool off)
 builds an rerouter More...
 
virtual void buildStoppingPlace (MSNet &net, const std::string &id, const std::vector< std::string > &lines, MSLane *lane, SUMOReal frompos, SUMOReal topos, const SumoXMLTag element)
 Builds a bus stop. More...
 
virtual void buildChargingStation (MSNet &net, const std::string &id, MSLane *lane, SUMOReal frompos, SUMOReal topos, SUMOReal chargingPower, SUMOReal efficiency, bool chargeInTransit, int chargeDelay)
 Builds a charging station. More...
 
virtual MSCalibratorbuildCalibrator (MSNet &net, const std::string &id, MSEdge *edge, SUMOReal pos, const std::string &file, const std::string &outfile, const SUMOTime freq, const MSRouteProbe *probe)
 builds a microscopic calibrator More...
 
building methods

Called with parsed values, these methods build the trigger.

These methods should be overriden for the gui loader in order to build visualizable versions of the triggers.

In most cases, these methods only call the constructor.

virtual METriggeredCalibratorbuildMECalibrator (MSNet &net, const std::string &id, const MSEdge *edge, SUMOReal pos, const std::string &file, const std::string &outfile, const SUMOTime freq, MSRouteProbe *probe)
 builds a mesoscopic calibrator More...
 
helper method for obtaining and checking values
std::string getFileName (const SUMOSAXAttributes &attrs, const std::string &base, const bool allowEmpty=false)
 Helper method to obtain the filename. More...
 
MSLanegetLane (const SUMOSAXAttributes &attrs, const std::string &tt, const std::string &tid)
 Returns the lane defined by attribute "lane". More...
 
SUMOReal getPosition (const SUMOSAXAttributes &attrs, MSLane *lane, const std::string &tt, const std::string &tid)
 returns the position on the lane checking it More...
 

Protected Attributes

MSStoppingPlacemyCurrentStop
 The currently parsed stop to add access points to. More...
 
NLHandlermyHandler
 The parent handler to set for subhandlers. More...
 

Detailed Description

Builds trigger objects for guisim.

Definition at line 57 of file GUITriggerBuilder.h.

Constructor & Destructor Documentation

GUITriggerBuilder::GUITriggerBuilder ( )

Constructor.

Definition at line 53 of file GUITriggerBuilder.cpp.

GUITriggerBuilder::~GUITriggerBuilder ( )

Destructor.

Definition at line 56 of file GUITriggerBuilder.cpp.

Member Function Documentation

void NLTriggerBuilder::addAccess ( MSNet net,
const SUMOSAXAttributes attrs 
)
inherited

Parses the values and adds an access point to the currently parsed stopping place.

Parameters
[in]netThe network the stop belongs to
[in]attrsSAX-attributes which define the access
Exceptions
InvalidArgumentIf a parameter (lane/position) is not valid

Definition at line 216 of file NLTriggerBuilder.cpp.

References MSStoppingPlace::addAccess(), SUMORouteHandler::checkStopPos(), Named::getID(), NLTriggerBuilder::getLane(), MSLane::getLength(), SUMOSAXAttributes::getOpt(), NLTriggerBuilder::myCurrentStop, NLTriggerBuilder::myHandler, SUMO_ATTR_FRIENDLY_POS, SUMO_ATTR_POSITION, and SUMOReal.

Referenced by NLHandler::myStartElement().

MSCalibrator * GUITriggerBuilder::buildCalibrator ( MSNet net,
const std::string &  id,
MSEdge edge,
SUMOReal  pos,
const std::string &  file,
const std::string &  outfile,
const SUMOTime  freq,
const MSRouteProbe probe 
)
protectedvirtual

builds a microscopic calibrator

Simply calls the MSCalibrator constructor.

Parameters
[in]netThe net the calibrator belongs to
[in]idThe id of the calibrator
[in]edgeThe edge the calibrator is placed at
[in]posThe position on the edge the calibrator lies at
[in]fileThe file to read the flows from
Todo:
Is the position correct/needed

Reimplemented from NLTriggerBuilder.

Definition at line 117 of file GUITriggerBuilder.cpp.

void GUITriggerBuilder::buildChargingStation ( MSNet net,
const std::string &  id,
MSLane lane,
SUMOReal  frompos,
SUMOReal  topos,
SUMOReal  chargingPower,
SUMOReal  efficiency,
bool  chargeInTransit,
int  chargeDelay 
)
protectedvirtual

Builds a charging station.

Simply calls the ChrgSTN constructor.

Parameters
[in]netThe net the charging station belongs to
[in]idThe id of the charging station
[in]laneThe lane the charging station is placed on
[in]fromposBegin position of the charging station on the lane
[in]toposEnd position of the charging station on the lane
[in]chargingPowerenergy charged in every timeStep
[in]efficiencyefficiency of the charge
[in]chargeInTransitenable or disable charge in transit
[in]chargeDelaydelay in the charge
Exceptions
InvalidArgumentIf the charging station can not be added to the net (is duplicate)

Reimplemented from NLTriggerBuilder.

Definition at line 104 of file GUITriggerBuilder.cpp.

References MSNet::addChargingStation().

MSLaneSpeedTrigger * GUITriggerBuilder::buildLaneSpeedTrigger ( MSNet net,
const std::string &  id,
const std::vector< MSLane * > &  destLanes,
const std::string &  file 
)
protectedvirtual

Builds a lane speed trigger.

Simply calls the GUILaneSpeedTrigger constructor.

Parameters
[in]netThe net the lane speed trigger belongs to
[in]idThe id of the lane speed trigger
[in]destLanesList of lanes affected by this speed trigger
[in]fileName of the file to read the speeds to set from
See also
MSLaneSpeedTrigger
Exceptions
ProcessErrorIf the XML definition file is errornous

Reimplemented from NLTriggerBuilder.

Definition at line 60 of file GUITriggerBuilder.cpp.

METriggeredCalibrator * NLTriggerBuilder::buildMECalibrator ( MSNet net,
const std::string &  id,
const MSEdge edge,
SUMOReal  pos,
const std::string &  file,
const std::string &  outfile,
const SUMOTime  freq,
MSRouteProbe probe 
)
protectedvirtualinherited

builds a mesoscopic calibrator

Simply calls the METriggeredCalibrator constructor.

Parameters
[in]netThe net the calibrator belongs to
[in]idThe id of the calibrator
[in]edgeThe edge the calibrator is placed at
[in]posThe position on the edge the calibrator lies at
[in]fileThe file to read the flows from
Todo:
Is the position correct/needed

Definition at line 320 of file NLTriggerBuilder.cpp.

References MSGlobals::gMesoNet.

Referenced by NLTriggerBuilder::parseAndBuildCalibrator().

MSTriggeredRerouter * GUITriggerBuilder::buildRerouter ( MSNet net,
const std::string &  id,
MSEdgeVector edges,
SUMOReal  prob,
const std::string &  file,
bool  off 
)
protectedvirtual

builds an rerouter

Simply calls the GUITriggeredRerouter constructor.

Parameters
[in]netThe net the rerouter belongs to
[in]idThe id of the rerouter
[in]edgesThe edges the rerouter is placed at
[in]probThe probability the rerouter reoutes vehicles with
[in]fileThe file to read the reroute definitions from

Reimplemented from NLTriggerBuilder.

Definition at line 70 of file GUITriggerBuilder.cpp.

void GUITriggerBuilder::buildStoppingPlace ( MSNet net,
const std::string &  id,
const std::vector< std::string > &  lines,
MSLane lane,
SUMOReal  frompos,
SUMOReal  topos,
const SumoXMLTag  element 
)
protectedvirtual

Builds a bus stop.

Simply calls the GUIBusStop / GUIContainerStop constructor.

Parameters
[in]netThe net the stop belongs to
[in]idThe id of the stop
[in]linesNames of the lines that halt on this stop
[in]laneThe lane the stop is placed on
[in]fromposBegin position of the stop on the lane
[in]toposEnd position of the stop on the lane
[in]elementwhich kind of stop is to be built
Exceptions
InvalidArgumentIf the stop can not be added to the net (is duplicate)

Reimplemented from NLTriggerBuilder.

Definition at line 80 of file GUITriggerBuilder.cpp.

References MSNet::addBusStop(), MSNet::addContainerStop(), NLTriggerBuilder::myCurrentStop, SUMO_TAG_CONTAINER_STOP, and toString().

void NLTriggerBuilder::buildVaporizer ( const SUMOSAXAttributes attrs)
inherited

Builds a vaporization.

Parses the attributes, reporting errors if the time values are false or the edge is not known. Instatiates events for enabling and disabling the vaporization otherwise.

Parameters
[in]attrsSAX-attributes which define the vaporizer
Note
recheck throwing the exception

Definition at line 83 of file NLTriggerBuilder.cpp.

References MSEventControl::ADAPT_AFTER_EXECUTION, MSEventControl::addEvent(), MSEdge::decVaporization(), MSEdge::dictionary(), SUMOSAXAttributes::get(), MSNet::getBeginOfTimestepEvents(), MSNet::getInstance(), OptionsCont::getOptions(), SUMOSAXAttributes::getSUMOTimeReporting(), MSEdge::incVaporization(), string2time(), SUMO_ATTR_BEGIN, SUMO_ATTR_END, SUMO_ATTR_ID, and WRITE_ERROR.

Referenced by NLHandler::myStartElement().

std::string NLTriggerBuilder::getFileName ( const SUMOSAXAttributes attrs,
const std::string &  base,
const bool  allowEmpty = false 
)
protectedinherited

Helper method to obtain the filename.

Retrieves "file" from attributes, checks whether it is absolute and extends it by the given base path if not. Returns this information.

Parameters
[in]attrsThe attributes to obtain the file name from
[in]baseThe base path (the path the loaded additional file lies in)
Returns
The (expanded) path to the named file
Todo:
Recheck usage of the helper class

Definition at line 372 of file NLTriggerBuilder.cpp.

References FileHelpers::getConfigurationRelative(), SUMOSAXAttributes::getOpt(), FileHelpers::isAbsolute(), and SUMO_ATTR_FILE.

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

MSLane * NLTriggerBuilder::getLane ( const SUMOSAXAttributes attrs,
const std::string &  tt,
const std::string &  tid 
)
protectedinherited

Returns the lane defined by attribute "lane".

Retrieves the lane id from the given attrs. Tries to retrieve the lane, throws an InvalidArgument if it does not exist.

Parameters
[in]attrsThe attributes to obtain the lane id from
[in]ttThe trigger type (for user output)
[in]tidThe trigger id (for user output)
Returns
The named lane if it is known
Exceptions
InvalidArgumentIf the named lane does not exist or a lane is not named

Definition at line 393 of file NLTriggerBuilder.cpp.

References MSLane::dictionary(), SUMOSAXAttributes::get(), and SUMO_ATTR_LANE.

Referenced by NLTriggerBuilder::addAccess(), NLTriggerBuilder::parseAndBuildCalibrator(), NLTriggerBuilder::parseAndBuildChargingStation(), and NLTriggerBuilder::parseAndBuildStoppingPlace().

SUMOReal NLTriggerBuilder::getPosition ( const SUMOSAXAttributes attrs,
MSLane lane,
const std::string &  tt,
const std::string &  tid 
)
protectedinherited

returns the position on the lane checking it

This method extracts the position, checks whether it shall be mirrored and checks whether it is within the lane. If not, an error is reported and a InvalidArgument is thrown.

Parameters
[in]attrsThe attributes to obtain the position from
[in]laneThe lane the position shall be valid for
[in]ttThe trigger type (for user output)
[in]tidThe trigger id (for user output)
Returns
The position on the lane
Exceptions
InvalidArgumentIf the position is beyond the lane

Definition at line 407 of file NLTriggerBuilder.cpp.

References SUMOSAXAttributes::get(), Named::getID(), MSLane::getLength(), SUMOSAXAttributes::getOpt(), SUMO_ATTR_FRIENDLY_POS, SUMO_ATTR_POSITION, and SUMOReal.

Referenced by NLTriggerBuilder::parseAndBuildCalibrator().

void NLTriggerBuilder::parseAndBuildCalibrator ( MSNet net,
const SUMOSAXAttributes attrs,
const std::string &  base 
)
inherited
void NLTriggerBuilder::parseAndBuildChargingStation ( MSNet net,
const SUMOSAXAttributes attrs 
)
inherited

Parses his values and builds a charging station.

Parameters
[in]netThe network the charging station belongs to
[in]attrsSAXattributes which define the trigger
Exceptions
InvalidArgumentIf a parameter (lane/position) is not valid

Definition at line 158 of file NLTriggerBuilder.cpp.

References NLTriggerBuilder::buildChargingStation(), SUMORouteHandler::checkStopPos(), SUMOSAXAttributes::get(), NLTriggerBuilder::getLane(), MSLane::getLength(), SUMOSAXAttributes::getOpt(), NLTriggerBuilder::myHandler, POSITION_EPS, SUMO_ATTR_CHARGEDELAY, SUMO_ATTR_CHARGEINTRANSIT, SUMO_ATTR_CHARGINGPOWER, SUMO_ATTR_EFFICIENCY, SUMO_ATTR_ENDPOS, SUMO_ATTR_FRIENDLY_POS, SUMO_ATTR_ID, SUMO_ATTR_STARTPOS, and SUMOReal.

Referenced by NLHandler::myStartElement().

void NLTriggerBuilder::parseAndBuildLaneSpeedTrigger ( MSNet net,
const SUMOSAXAttributes attrs,
const std::string &  base 
)
inherited

Parses his values and builds a lane speed trigger.

If one of the declaration values is errornous, an InvalidArgument is thrown.

If the XML-file parsed during initialisation is errornous, and the MSLaneSpeedTrigger-constructor throws a ProcessError due to this, this exception is catched and an InvalidArgument with the message given in the ProcessError is thrown.

Parameters
[in]netThe network the lane speed trigger belongs to
[in]attrsSAX-attributes which define the trigger
[in]baseThe base path
Exceptions
InvalidArgumentIf a parameter (lane/position) is not valid or the read definition is errornous
See also
buildLaneSpeedTrigger

Definition at line 119 of file NLTriggerBuilder.cpp.

References NLTriggerBuilder::buildLaneSpeedTrigger(), MSLane::dictionary(), SUMOSAXAttributes::get(), NLTriggerBuilder::getFileName(), NLTriggerBuilder::myHandler, SUMOSAXAttributes::parseStringVector(), GenericSAXHandler::registerParent(), SUMO_ATTR_ID, SUMO_ATTR_LANES, and SUMO_TAG_VSS.

Referenced by NLHandler::myStartElement().

void NLTriggerBuilder::parseAndBuildRerouter ( MSNet net,
const SUMOSAXAttributes attrs,
const std::string &  base 
)
inherited

Parses his values and builds a rerouter.

Parameters
[in]netThe network the rerouter belongs to
[in]attrsSAX-attributes which define the trigger
[in]baseThe base path
Exceptions
InvalidArgumentIf a parameter (edge) is not valid

Definition at line 266 of file NLTriggerBuilder.cpp.

References NLTriggerBuilder::buildRerouter(), MSEdge::dictionary(), SUMOSAXAttributes::get(), NLTriggerBuilder::getFileName(), SUMOSAXAttributes::getOpt(), NLTriggerBuilder::myHandler, SUMOSAXAttributes::parseStringVector(), GenericSAXHandler::registerParent(), XMLSubSys::runParser(), SUMO_ATTR_EDGES, SUMO_ATTR_ID, SUMO_ATTR_OFF, SUMO_ATTR_PROB, SUMO_TAG_REROUTER, and SUMOReal.

Referenced by NLHandler::myStartElement().

void NLTriggerBuilder::parseAndBuildStoppingPlace ( MSNet net,
const SUMOSAXAttributes attrs,
const SumoXMLTag  element 
)
inherited

Parses the values and builds a stopping places for busses, trains or container vehicles.

Parameters
[in]netThe network the stop belongs to
[in]attrsSAX-attributes which define the stop
[in]elementwhich kind of stop is to be built
Exceptions
InvalidArgumentIf a parameter (lane/position) is not valid

Definition at line 191 of file NLTriggerBuilder.cpp.

References NLTriggerBuilder::buildStoppingPlace(), SUMORouteHandler::checkStopPos(), SUMOSAXAttributes::get(), NLTriggerBuilder::getLane(), MSLane::getLength(), SUMOSAXAttributes::getOpt(), NLTriggerBuilder::myHandler, SUMOSAXAttributes::parseStringVector(), POSITION_EPS, SUMO_ATTR_ENDPOS, SUMO_ATTR_FRIENDLY_POS, SUMO_ATTR_ID, SUMO_ATTR_LINES, SUMO_ATTR_STARTPOS, SUMOReal, and toString().

Referenced by NLHandler::myStartElement().

void NLTriggerBuilder::setHandler ( NLHandler handler)
inherited

Sets the parent handler to use for nested parsing.

Parameters
[in]handlerThe netload handler to set

Definition at line 77 of file NLTriggerBuilder.cpp.

References NLTriggerBuilder::myHandler.

Referenced by load(), and GUILoadThread::run().

Field Documentation

MSStoppingPlace* NLTriggerBuilder::myCurrentStop
protectedinherited

The currently parsed stop to add access points to.

Definition at line 340 of file NLTriggerBuilder.h.

Referenced by NLTriggerBuilder::addAccess(), buildStoppingPlace(), and NLTriggerBuilder::buildStoppingPlace().


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