![]() |
SUMO - Simulation of Urban MObility
|
Builds trigger objects for guisim. More...
#include <GUITriggerBuilder.h>
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 | addLotEntry (double x, double y, double z, double width, double length, double angle) |
Add a lot entry to current parking area. More... | |
void | addAccess (MSNet &net, const SUMOSAXAttributes &attrs) |
Parses the values and adds an access point to the currently parsed stopping place. More... | |
void | parseAndBeginParkingArea (MSNet &net, const SUMOSAXAttributes &attrs) |
Parses his values and builds a parking area. More... | |
void | parseAndAddLotEntry (const SUMOSAXAttributes &attrs) |
Parses his values and adds a lot entry to current parking area. 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 | |
virtual void | endParkingArea () |
End a parking area (it must be added to the SUMORTree after all parking spaces are loaded. More... | |
building methods | |
Override NLTriggerBuilder-methods for building guisim-objects
| |
virtual MSLaneSpeedTrigger * | buildLaneSpeedTrigger (MSNet &net, const std::string &id, const std::vector< MSLane *> &destLanes, const std::string &file) |
Builds a lane speed trigger. More... | |
virtual MSTriggeredRerouter * | buildRerouter (MSNet &net, const std::string &id, MSEdgeVector &edges, double prob, const std::string &file, bool off, SUMOTime timeThreshold) |
builds an rerouter More... | |
virtual void | buildStoppingPlace (MSNet &net, std::string id, std::vector< std::string > lines, MSLane *lane, double frompos, double topos, const SumoXMLTag element, std::string string) |
Builds a bus stop. More... | |
virtual void | beginParkingArea (MSNet &net, const std::string &id, const std::vector< std::string > &lines, MSLane *lane, double frompos, double topos, unsigned int capacity, double width, double length, double angle) |
Builds a parking area. More... | |
virtual void | buildChargingStation (MSNet &net, const std::string &id, MSLane *lane, double frompos, double topos, double chargingPower, double efficiency, bool chargeInTransit, int chargeDelay) |
Builds a charging station. More... | |
virtual MSCalibrator * | buildCalibrator (MSNet &net, const std::string &id, MSEdge *edge, MSLane *lane, double 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 void | buildChargingStation (MSNet &net, const std::string &id, MSLane *lane, double frompos, double topos, double chargingPower, double efficiency, bool chargeInTransit, double chargeDelay) |
Builds a charging Station. More... | |
virtual METriggeredCalibrator * | buildMECalibrator (MSNet &net, const std::string &id, const MSEdge *edge, double 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... | |
MSLane * | getLane (const SUMOSAXAttributes &attrs, const std::string &tt, const std::string &tid) |
Returns the lane defined by attribute "lane". More... | |
double | getPosition (const SUMOSAXAttributes &attrs, MSLane *lane, const std::string &tt, const std::string &tid, MSEdge *edge=0) |
returns the position on the lane checking it More... | |
Protected Attributes | |
MSStoppingPlace * | myCurrentStop |
The currently parsed stop to add access points to. More... | |
NLHandler * | myHandler |
The parent handler to set for subhandlers. More... | |
MSParkingArea * | myParkingArea |
definition of the currently parsed parking area More... | |
Builds trigger objects for guisim.
Definition at line 56 of file GUITriggerBuilder.h.
GUITriggerBuilder::GUITriggerBuilder | ( | ) |
Constructor.
Definition at line 49 of file GUITriggerBuilder.cpp.
GUITriggerBuilder::~GUITriggerBuilder | ( | ) |
Destructor.
Definition at line 52 of file GUITriggerBuilder.cpp.
|
inherited |
Parses the values and adds an access point to the currently parsed stopping place.
[in] | net | The network the stop belongs to |
[in] | attrs | SAX-attributes which define the access |
InvalidArgument | If 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 toString().
Referenced by NLHandler::myStartElement().
|
inherited |
Add a lot entry to current parking area.
Simply calls the addLotEntry method for current parking area.
[in] | x | X position of the lot center |
[in] | y | Y position of the lot center |
[in] | z | Z position of the lot center |
[in] | width | Width of the lot rectangle |
[in] | length | Length of the lot rectangle |
[in] | angle | Angle of the lot rectangle |
InvalidArgument | If the current parking area is 0 |
Definition at line 462 of file NLTriggerBuilder.cpp.
References MSParkingArea::addLotEntry(), and NLTriggerBuilder::myParkingArea.
Referenced by NLTriggerBuilder::parseAndAddLotEntry().
|
protectedvirtual |
Builds a parking area.
Simply calls the GUIParkingArea constructor.
[in] | net | The net the parking area belongs to |
[in] | id | The id of the parking area |
[in] | lines | Names of the lines that halt on this parking area |
[in] | lane | The lane the parking area is placed on |
[in] | frompos | Begin position of the parking area on the lane |
[in] | topos | End position of the parking area on the lane |
[in] | capacity | Capacity of the parking area |
[in] | width | Width of the default lot rectangle |
[in] | length | Length of the default lot rectangle |
[in] | angle | Angle of the default lot rectangle |
InvalidArgument | If the parking area can not be added to the net (is duplicate) |
Reimplemented from NLTriggerBuilder.
Definition at line 95 of file GUITriggerBuilder.cpp.
References MSNet::addStoppingPlace(), NLTriggerBuilder::myParkingArea, and SUMO_TAG_PARKING_AREA.
|
protectedvirtual |
builds a microscopic calibrator
Simply calls the MSCalibrator constructor.
[in] | net | The net the calibrator belongs to |
[in] | id | The id of the calibrator |
[in] | edge | The edge the calibrator is placed at |
[in] | pos | The position on the edge the calibrator lies at |
[in] | file | The file to read the flows from |
Reimplemented from NLTriggerBuilder.
Definition at line 123 of file GUITriggerBuilder.cpp.
|
protectedvirtual |
Builds a charging station.
Simply calls the ChrgSTN constructor.
[in] | net | The net the charging station belongs to |
[in] | id | The id of the charging station |
[in] | lane | The lane the charging station is placed on |
[in] | frompos | Begin position of the charging station on the lane |
[in] | topos | End position of the charging station on the lane |
[in] | chargingPower | energy charged in every timeStep |
[in] | efficiency | efficiency of the charge |
[in] | chargeInTransit | enable or disable charge in transit |
[in] | chargeDelay | delay in the charge |
InvalidArgument | If the charging station can not be added to the net (is duplicate) |
Definition at line 112 of file GUITriggerBuilder.cpp.
References MSNet::addStoppingPlace(), and SUMO_TAG_CHARGING_STATION.
|
protectedvirtualinherited |
Builds a charging Station.
Simply calls the MSBusStop constructor.
[in] | net | The net the charging Station belongs to |
[in] | id | The id of the charging Station |
[in] | lane | The lane the charging Station is placed on |
[in] | frompos | Begin position of the charging Station on the lane |
[in] | topos | End position of the charging Station on the lane |
[in] | chargingPower | |
[in] | efficiency | |
[in] | chargeInTransit | |
[in] | chargeDelay |
InvalidArgument | If the charging Station can not be added to the net (is duplicate) |
Definition at line 483 of file NLTriggerBuilder.cpp.
References MSNet::addStoppingPlace(), and SUMO_TAG_CHARGING_STATION.
Referenced by NLTriggerBuilder::parseAndBuildChargingStation().
|
protectedvirtual |
Builds a lane speed trigger.
Simply calls the GUILaneSpeedTrigger constructor.
[in] | net | The net the lane speed trigger belongs to |
[in] | id | The id of the lane speed trigger |
[in] | destLanes | List of lanes affected by this speed trigger |
[in] | file | Name of the file to read the speeds to set from |
ProcessError | If the XML definition file is errornous |
Reimplemented from NLTriggerBuilder.
Definition at line 56 of file GUITriggerBuilder.cpp.
|
protectedvirtualinherited |
builds a mesoscopic calibrator
Simply calls the METriggeredCalibrator constructor.
[in] | net | The net the calibrator belongs to |
[in] | id | The id of the calibrator |
[in] | edge | The edge the calibrator is placed at |
[in] | pos | The position on the edge the calibrator lies at |
[in] | file | The file to read the flows from |
Definition at line 401 of file NLTriggerBuilder.cpp.
References MSGlobals::gMesoNet.
Referenced by NLTriggerBuilder::parseAndBuildCalibrator().
|
protectedvirtual |
builds an rerouter
Simply calls the GUITriggeredRerouter constructor.
[in] | net | The net the rerouter belongs to |
[in] | id | The id of the rerouter |
[in] | edges | The edges the rerouter is placed at |
[in] | prob | The probability the rerouter reoutes vehicles with |
[in] | file | The file to read the reroute definitions from |
Reimplemented from NLTriggerBuilder.
Definition at line 66 of file GUITriggerBuilder.cpp.
|
protectedvirtual |
Builds a bus stop.
Simply calls the GUIBusStop / GUIContainerStop constructor.
[in] | net | The net the stop belongs to |
[in] | id | The id of the stop |
[in] | lines | Names of the lines that halt on this stop |
[in] | lane | The lane the stop is placed on |
[in] | frompos | Begin position of the stop on the lane |
[in] | topos | End position of the stop on the lane |
[in] | element | which kind of stop is to be built |
InvalidArgument | If the stop can not be added to the net (is duplicate) |
Reimplemented from NLTriggerBuilder.
Definition at line 77 of file GUITriggerBuilder.cpp.
References MSNet::addStoppingPlace(), NLTriggerBuilder::myCurrentStop, SUMO_TAG_CONTAINER_STOP, and toString().
|
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.
[in] | attrs | SAX-attributes which define the vaporizer |
Definition at line 79 of file NLTriggerBuilder.cpp.
References 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().
|
protectedvirtual |
End a parking area (it must be added to the SUMORTree after all parking spaces are loaded.
Reimplemented from NLTriggerBuilder.
Definition at line 136 of file GUITriggerBuilder.cpp.
References MSNet::getInstance(), and NLTriggerBuilder::myParkingArea.
|
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.
[in] | attrs | The attributes to obtain the file name from |
[in] | base | The base path (the path the loaded additional file lies in) |
Definition at line 493 of file NLTriggerBuilder.cpp.
References FileHelpers::getConfigurationRelative(), SUMOSAXAttributes::getOpt(), FileHelpers::isAbsolute(), and SUMO_ATTR_FILE.
Referenced by NLTriggerBuilder::parseAndBuildCalibrator(), NLTriggerBuilder::parseAndBuildLaneSpeedTrigger(), and NLTriggerBuilder::parseAndBuildRerouter().
|
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.
[in] | attrs | The attributes to obtain the lane id from |
[in] | tt | The trigger type (for user output) |
[in] | tid | The trigger id (for user output) |
InvalidArgument | If the named lane does not exist or a lane is not named |
Definition at line 514 of file NLTriggerBuilder.cpp.
References MSLane::dictionary(), SUMOSAXAttributes::get(), and SUMO_ATTR_LANE.
Referenced by NLTriggerBuilder::addAccess(), NLTriggerBuilder::parseAndBeginParkingArea(), NLTriggerBuilder::parseAndBuildCalibrator(), NLTriggerBuilder::parseAndBuildChargingStation(), and NLTriggerBuilder::parseAndBuildStoppingPlace().
|
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.
[in] | attrs | The attributes to obtain the position from |
[in] | lane | The lane the position shall be valid for |
[in] | tt | The trigger type (for user output) |
[in] | tid | The trigger id (for user output) |
InvalidArgument | If the position is beyond the lane |
Definition at line 528 of file NLTriggerBuilder.cpp.
References SUMOSAXAttributes::get(), Named::getID(), MSLane::getLength(), MSEdge::getLength(), SUMOSAXAttributes::getOpt(), SUMO_ATTR_FRIENDLY_POS, and SUMO_ATTR_POSITION.
Referenced by NLTriggerBuilder::parseAndBuildCalibrator().
|
inherited |
Parses his values and adds a lot entry to current parking area.
[in] | attrs | SAX-attributes which define the lot entry |
Definition at line 264 of file NLTriggerBuilder.cpp.
References NLTriggerBuilder::addLotEntry(), SUMOSAXAttributes::get(), MSParkingArea::getAngle(), MSParkingArea::getLength(), SUMOSAXAttributes::getOpt(), MSParkingArea::getWidth(), NLTriggerBuilder::myParkingArea, SUMO_ATTR_ANGLE, SUMO_ATTR_LENGTH, SUMO_ATTR_WIDTH, SUMO_ATTR_X, SUMO_ATTR_Y, and SUMO_ATTR_Z.
Referenced by NLHandler::myStartElement().
|
inherited |
Parses his values and builds a parking area.
[in] | net | The network the parking area belongs to |
[in] | attrs | SAX-attributes which define the trigger |
InvalidArgument | If a parameter (lane/position) is not valid |
Definition at line 234 of file NLTriggerBuilder.cpp.
References NLTriggerBuilder::beginParkingArea(), SUMORouteHandler::checkStopPos(), SUMOSAXAttributes::get(), NLTriggerBuilder::getLane(), MSLane::getLength(), SUMOSAXAttributes::getOpt(), NLTriggerBuilder::myHandler, SUMOSAXAttributes::parseStringVector(), POSITION_EPS, SUMO_ATTR_ANGLE, SUMO_ATTR_ENDPOS, SUMO_ATTR_FRIENDLY_POS, SUMO_ATTR_ID, SUMO_ATTR_LENGTH, SUMO_ATTR_LINES, SUMO_ATTR_ROADSIDE_CAPACITY, SUMO_ATTR_STARTPOS, and SUMO_ATTR_WIDTH.
Referenced by NLHandler::myStartElement().
|
inherited |
Parses his values and builds a mesoscopic or microscopic calibrator.
[in] | net | The network the calibrator belongs to |
[in] | attrs | SAX-attributes which define the trigger |
[in] | base | The base path |
InvalidArgument | If a parameter (edge/position) is not valid |
Definition at line 289 of file NLTriggerBuilder.cpp.
References NLTriggerBuilder::buildCalibrator(), NLTriggerBuilder::buildMECalibrator(), DELTA_T, MSEdge::dictionary(), SUMOSAXAttributes::get(), NamedObjectCont< T >::get(), MSNet::getDetectorControl(), MSLane::getEdge(), NLTriggerBuilder::getFileName(), Named::getID(), NLTriggerBuilder::getLane(), MSEdge::getLanes(), SUMOSAXAttributes::getOpt(), SUMOSAXAttributes::getOptSUMOTimeReporting(), NLTriggerBuilder::getPosition(), MSDetectorControl::getTypedDetectors(), MSGlobals::gUseMesoSim, SUMOSAXAttributes::hasAttribute(), NLTriggerBuilder::myHandler, GenericSAXHandler::registerParent(), SUMO_ATTR_EDGE, SUMO_ATTR_FREQUENCY, SUMO_ATTR_ID, SUMO_ATTR_LANE, SUMO_ATTR_OUTPUT, SUMO_ATTR_ROUTEPROBE, SUMO_TAG_CALIBRATOR, SUMO_TAG_ROUTEPROBE, and WRITE_WARNING.
Referenced by NLHandler::myStartElement().
|
inherited |
Parses his values and builds a charging station.
[in] | net | The network the charging station belongs to |
[in] | attrs | SAXattributes which define the trigger |
InvalidArgument | If a parameter (lane/position) is not valid |
Definition at line 154 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, and SUMO_ATTR_STARTPOS.
Referenced by NLHandler::myStartElement().
|
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.
[in] | net | The network the lane speed trigger belongs to |
[in] | attrs | SAX-attributes which define the trigger |
[in] | base | The base path |
InvalidArgument | If a parameter (lane/position) is not valid or the read definition is errornous |
Definition at line 115 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().
|
inherited |
Parses his values and builds a rerouter.
[in] | net | The network the rerouter belongs to |
[in] | attrs | SAX-attributes which define the trigger |
[in] | base | The base path |
InvalidArgument | If a parameter (edge) is not valid |
Definition at line 346 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_HALTING_TIME_THRESHOLD, SUMO_ATTR_ID, SUMO_ATTR_OFF, SUMO_ATTR_PROB, SUMO_TAG_REROUTER, and TIME2STEPS.
Referenced by NLHandler::myStartElement().
|
inherited |
Parses the values and builds a stopping places for busses, trains or container vehicles.
[in] | net | The network the stop belongs to |
[in] | attrs | SAX-attributes which define the stop |
[in] | element | which kind of stop is to be built |
InvalidArgument | If a parameter (lane/position) is not valid |
Definition at line 187 of file NLTriggerBuilder.cpp.
References NLTriggerBuilder::buildStoppingPlace(), SUMORouteHandler::checkStopPos(), SUMOSAXAttributes::get(), NLTriggerBuilder::getLane(), SUMOSAXAttributes::getOpt(), NLTriggerBuilder::myHandler, SUMOSAXAttributes::parseStringVector(), POSITION_EPS, SUMO_ATTR_ENDPOS, SUMO_ATTR_FRIENDLY_POS, SUMO_ATTR_ID, SUMO_ATTR_LINES, SUMO_ATTR_NAME, SUMO_ATTR_STARTPOS, and toString().
Referenced by NLHandler::myStartElement().
|
inherited |
Sets the parent handler to use for nested parsing.
[in] | handler | The netload handler to set |
Definition at line 73 of file NLTriggerBuilder.cpp.
References NLTriggerBuilder::myHandler.
Referenced by NLBuilder::init(), and GUILoadThread::run().
|
protectedinherited |
The currently parsed stop to add access points to.
Definition at line 403 of file NLTriggerBuilder.h.
Referenced by NLTriggerBuilder::addAccess(), buildStoppingPlace(), and NLTriggerBuilder::buildStoppingPlace().
|
protectedinherited |
The parent handler to set for subhandlers.
Definition at line 399 of file NLTriggerBuilder.h.
Referenced by NLTriggerBuilder::addAccess(), NLTriggerBuilder::parseAndBeginParkingArea(), NLTriggerBuilder::parseAndBuildCalibrator(), NLTriggerBuilder::parseAndBuildChargingStation(), NLTriggerBuilder::parseAndBuildLaneSpeedTrigger(), NLTriggerBuilder::parseAndBuildRerouter(), NLTriggerBuilder::parseAndBuildStoppingPlace(), and NLTriggerBuilder::setHandler().
|
protectedinherited |
definition of the currently parsed parking area
Definition at line 401 of file NLTriggerBuilder.h.
Referenced by NLTriggerBuilder::addLotEntry(), beginParkingArea(), NLTriggerBuilder::beginParkingArea(), endParkingArea(), NLTriggerBuilder::endParkingArea(), and NLTriggerBuilder::parseAndAddLotEntry().