62 #ifdef CHECK_MEMORY_LEAKS 64 #endif // CHECK_MEMORY_LEAKS 71 : myHandler(0), myParkingArea(0) {}
92 WRITE_ERROR(
"Unknown edge ('" +
id +
"') referenced in a vaporizer.");
101 WRITE_ERROR(
"A vaporization begin time is negative (edge id='" +
id +
"').");
105 WRITE_ERROR(
"A vaporization ends before it starts (edge id='" +
id +
"').");
120 const std::string& base) {
132 throw InvalidArgument(
"The lanes to use within MSLaneSpeedTrigger '" +
id +
"' are not known.");
134 std::vector<MSLane*> lanes;
135 std::vector<std::string> laneIDs;
137 for (std::vector<std::string>::iterator i = laneIDs.begin(); i != laneIDs.end(); ++i) {
140 throw InvalidArgument(
"The lane to use within MSLaneSpeedTrigger '" +
id +
"' is not known.");
142 lanes.push_back(lane);
144 if (lanes.size() == 0) {
145 throw InvalidArgument(
"No lane defined for MSLaneSpeedTrigger '" +
id +
"'.");
182 throw InvalidArgument(
"Invalid position for Charging Station '" +
id +
"'.");
186 buildChargingStation(net,
id, lane, frompos, topos, chargingPower, efficiency, chargeInTransit, ChargeDelay);
208 std::vector<std::string> lines;
250 throw InvalidArgument(
"Invalid position for parking area '" +
id +
"'.");
253 std::vector<std::string> lines;
256 beginParkingArea(net,
id, lines, lane, frompos, topos, capacity, width, length, angle);
288 const std::string& base) {
303 if (routeProbe !=
"") {
322 const std::string& base) {
333 throw InvalidArgument(
"The edge to use within MSTriggeredRerouter '" +
id +
"' is not known.");
336 std::vector<std::string> edgeIDs;
338 for (std::vector<std::string>::iterator i = edgeIDs.begin(); i != edgeIDs.end(); ++i) {
341 throw InvalidArgument(
"The edge to use within MSTriggeredRerouter '" +
id +
"' is not known.");
343 edges.push_back(edge);
345 if (edges.size() == 0) {
346 throw InvalidArgument(
"No edges found for MSTriggeredRerouter '" +
id +
"'.");
351 throw InvalidArgument(
"Could not parse MSTriggeredRerouter '" +
id +
"'.");
368 const std::vector<MSLane*>& destLanes,
369 const std::string& file) {
377 const std::string& file,
378 const std::string& outfile,
387 const std::string& file,
388 const std::string& outfile,
397 SUMOReal prob,
const std::string& file,
bool off) {
404 const std::vector<std::string>& lines,
417 const std::vector<std::string>& lines,
419 unsigned int capacity,
426 throw InvalidArgument(
"Could not build parking area '" +
id +
"'; probably declared twice.");
439 throw InvalidArgument(
"Could not add lot entry outside a parking area.");
449 throw InvalidArgument(
"Could not end a parking area that is not opened.");
456 SUMOReal chargingPower,
SUMOReal efficiency,
bool chargeInTransit,
int ChargeDelay) {
460 delete chargingStation;
461 throw InvalidArgument(
"Could not build Charging Station '" +
id +
"'; probably declared twice.");
467 const std::string& base,
468 const bool allowEmpty) {
488 const std::string& tt,
489 const std::string& tid) {
494 throw InvalidArgument(
"The lane " + objectid +
" to use within the " + tt +
" '" + tid +
"' is not known.");
503 const std::string& tt,
const std::string& tid) {
517 throw InvalidArgument(
"The position of " + tt +
" '" + tid +
"' lies beyond the lane's '" + lane->
getID() +
"' length.");
void setHandler(NLHandler *handler)
Sets the parent handler to use for nested parsing.
void parseAndAddLotEntry(const SUMOSAXAttributes &attrs)
Parses his values and adds a lot entry to current parking area.
A lane area vehicles can halt at.
void parseAndBuildCalibrator(MSNet &net, const SUMOSAXAttributes &attrs, const std::string &base)
Parses his values and builds a mesoscopic or microscopic calibrator.
SumoXMLTag
Numbers representing SUMO-XML - element names.
MSEdge & getEdge() const
Returns the lane's edge.
virtual MSCalibrator * 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)
builds a microscopic calibrator
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.
static std::string getConfigurationRelative(const std::string &configPath, const std::string &path)
Returns the second path as a relative path to the first file.
void addAccess(MSNet &net, const SUMOSAXAttributes &attrs)
Parses the values and adds an access point to the currently parsed stopping place.
A lane area vehicles can halt at.
Writes routes of vehicles passing a certain edge.
Allow/disallow charge in transit in Charging Stations.
SUMOReal getLength() const
Returns the lane's length.
void parseAndBuildChargingStation(MSNet &net, const SUMOSAXAttributes &attrs)
Parses his values and builds a charging station.
void parseAndBuildRerouter(MSNet &net, const SUMOSAXAttributes &attrs, const std::string &base)
Parses his values and builds a rerouter.
static bool checkStopPos(SUMOReal &startPos, SUMOReal &endPos, const SUMOReal laneLength, const SUMOReal minLength, const bool friendlyPos)
check start and end position of a stop
weights: time range begin
bool addBusStop(MSStoppingPlace *busStop)
Adds a bus stop.
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
static bool dictionary(const std::string &id, MSEdge *edge)
Inserts edge into the static dictionary Returns true if the key id isn't already in the dictionary...
bool addParkingArea(MSParkingArea *parkingArea)
Adds a parking area.
SUMOTime incVaporization(SUMOTime t)
Enables vaporization.
NLTriggerBuilder()
Constructor.
Base (microsim) event class.
MSParkingArea * myParkingArea
definition of the currently parsed parking area
static bool runParser(GenericSAXHandler &handler, const std::string &file, const bool isNet=false)
Runs the given handler on the given file; returns if everything's ok.
virtual ~NLTriggerBuilder()
Destructor.
SUMOTime decVaporization(SUMOTime t)
Disables vaporization.
void parseAndBeginParkingArea(MSNet &net, const SUMOSAXAttributes &attrs)
Parses his values and builds a parking area.
The simulated network and simulation perfomer.
static OptionsCont & getOptions()
Retrieves the options.
SUMOTime getOptSUMOTimeReporting(int attr, const char *objectid, bool &ok, SUMOTime defaultValue, bool report=true) const
Tries to read given attribute assuming it is a SUMOTime.
Changes the speed allowed on a set of lanes.
T get(const std::string &id) const
Retrieves an item.
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 stopping place.
const std::string & getID() const
Returns the id.
A road/street connecting two junctions.
const NamedObjectCont< MSDetectorFileOutput * > & getTypedDetectors(SumoXMLTag type) const
Returns the list of detectors of the given type.
static void parseStringVector(const std::string &def, std::vector< std::string > &into)
Splits the given string.
SUMOReal getLength() const
return the length of the edge
SUMOReal getPosition(const SUMOSAXAttributes &attrs, MSLane *lane, const std::string &tt, const std::string &tid)
returns the position on the lane checking it
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
Encapsulated SAX-Attributes.
Calibrates the flow on a segment to a specified one.
NLHandler * myHandler
The parent handler to set for subhandlers.
static bool isAbsolute(const std::string &path)
Returns the information whether the given path is absolute.
void endParkingArea()
End a parking area.
MSEventControl * getBeginOfTimestepEvents()
Returns the event control for events executed at the begin of a time step.
A wrapper for a Command function.
void parseAndBuildLaneSpeedTrigger(MSNet &net, const SUMOSAXAttributes &attrs, const std::string &base)
Parses his values and builds a lane speed trigger.
void registerParent(const int tag, GenericSAXHandler *handler)
Assigning a parent handler which is enabled when the specified tag is closed.
MSStoppingPlace * myCurrentStop
The currently parsed stop to add access points to.
SUMOTime string2time(const std::string &r)
void parseAndBuildStoppingPlace(MSNet &net, const SUMOSAXAttributes &attrs, const SumoXMLTag element)
Parses the values and builds a stopping places for busses, trains or container vehicles.
SUMOReal getAngle() const
Returns the lot rectangle angle.
virtual void addAccess(MSLane *lane, const SUMOReal pos)
adds an access point to this stop
SUMOTime getSUMOTimeReporting(int attr, const char *objectid, bool &ok, bool report=true) const
Tries to read given attribute assuming it is a SUMOTime.
MSDetectorControl & getDetectorControl()
Returns the detector control.
std::string getFileName(const SUMOSAXAttributes &attrs, const std::string &base, const bool allowEmpty=false)
Helper method to obtain the filename.
virtual SUMOTime addEvent(Command *operation, SUMOTime execTimeStep, AdaptType type)
Adds an Event.
SUMOReal getLength() const
Returns the lot rectangle length.
The XML-Handler for network loading.
Reroutes vehicles passing an edge.
SUMOReal getWidth() const
Returns the lot rectangle width.
static bool dictionary(const std::string &id, MSLane *lane)
Static (sic!) container methods {.
bool addContainerStop(MSStoppingPlace *containerStop)
Adds a container stop.
bool addChargingStation(MSChargingStation *chargingStation)
Adds a chargingg station.
virtual METriggeredCalibrator * 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)
builds a mesoscopic calibrator
void addLotEntry(SUMOReal x, SUMOReal y, SUMOReal z, SUMOReal width, SUMOReal length, SUMOReal angle)
Add a lot entry to parking area.
static MELoop * gMesoNet
mesoscopic simulation infrastructure
Calibrates the flow on a segment to a specified one.
Patch the time in a way that it is at least as high as the simulation begin time. ...
Eficiency of the charge in Charging Stations.
void addLotEntry(SUMOReal x, SUMOReal y, SUMOReal z, SUMOReal width, SUMOReal length, SUMOReal angle)
Add a lot entry to current parking area.
virtual MSTriggeredRerouter * buildRerouter(MSNet &net, const std::string &id, MSEdgeVector &edges, SUMOReal prob, const std::string &file, bool off)
builds an rerouter
T getOpt(int attr, const char *objectid, bool &ok, T defaultValue, bool report=true) const
Tries to read given attribute assuming it is an int.
virtual MSLaneSpeedTrigger * buildLaneSpeedTrigger(MSNet &net, const std::string &id, const std::vector< MSLane * > &destLanes, const std::string &file)
Builds a lane speed trigger.
Delay in the charge of charging stations.
std::vector< MSEdge * > MSEdgeVector
T get(int attr, const char *objectid, bool &ok, bool report=true) const
Tries to read given attribute assuming it is an int.
virtual void beginParkingArea(MSNet &net, const std::string &id, const std::vector< std::string > &lines, MSLane *lane, SUMOReal frompos, SUMOReal topos, unsigned int capacity, SUMOReal width, SUMOReal length, SUMOReal angle)
Begin a parking area.
Representation of a lane in the micro simulation.
void buildVaporizer(const SUMOSAXAttributes &attrs)
Builds a vaporization.
MSLane * getLane(const SUMOSAXAttributes &attrs, const std::string &tt, const std::string &tid)
Returns the lane defined by attribute "lane".