![]() |
SUMO - Simulation of Urban MObility
|
Helper methods for parsing vehicle attributes. More...
#include <SUMOVehicleParserHelper.h>
Static Public Member Functions | |
static SUMOVTypeParameter * | beginVTypeParsing (const SUMOSAXAttributes &attrs, const std::string &file) |
Starts to parse a vehicle type. More... | |
static SUMOVehicleParameter * | parseFlowAttributes (const SUMOSAXAttributes &attrs, const SUMOTime beginDefault, const SUMOTime endDefault) |
Parses a flow's attributes. More... | |
static SUMOVehicleShape | parseGuiShape (const SUMOSAXAttributes &attrs, const std::string &id) |
Parses the vehicle class. More... | |
static void | parseJMParams (SUMOVTypeParameter &into, const SUMOSAXAttributes &attrs) |
Parses junction model attributes. More... | |
static void | parseLCParams (SUMOVTypeParameter &into, LaneChangeModel model, const SUMOSAXAttributes &attrs) |
Parses lane change model attributes. More... | |
static SUMOVehicleParameter * | parseVehicleAttributes (const SUMOSAXAttributes &attrs, const bool optionalID=false, const bool skipDepart=false, const bool isPerson=false) |
Parses a vehicle's attributes. More... | |
static SUMOVehicleClass | parseVehicleClass (const SUMOSAXAttributes &attrs, const std::string &id) |
Parses the vehicle class. More... | |
static void | parseVTypeEmbedded (SUMOVTypeParameter &into, const SumoXMLTag element, const SUMOSAXAttributes &attrs, const bool fromVType=false) |
Parses an element embedded in vtype definition. More... | |
static double | parseWalkPos (SumoXMLAttr attr, const std::string &id, double maxPos, const std::string &val, std::mt19937 *rng=0) |
parse departPos or arrivalPos for a walk More... | |
static SUMOTime | processActionStepLength (double given) |
Checks and converts given value for the action step length from seconds to miliseconds assuring it being a positive multiple of the simulation step width. More... | |
Private Types | |
typedef std::map< SumoXMLTag, std::set< SumoXMLAttr > > | CFAttrMap |
typedef std::map< LaneChangeModel, std::set< SumoXMLAttr > > | LCAttrMap |
Static Private Member Functions | |
static const CFAttrMap & | getAllowedCFModelAttrs () |
static void | parseCommonAttributes (const SUMOSAXAttributes &attrs, SUMOVehicleParameter *ret, std::string element) |
Parses attributes common to vehicles and flows. More... | |
Static Private Attributes | |
static CFAttrMap | allowedCFModelAttrs |
static std::set< SumoXMLAttr > | allowedJMAttrs |
static LCAttrMap | allowedLCModelAttrs |
Helper methods for parsing vehicle attributes.
This class supports helper methods for parsing a vehicle's attributes.
Definition at line 52 of file SUMOVehicleParserHelper.h.
|
private |
Definition at line 175 of file SUMOVehicleParserHelper.h.
|
private |
Definition at line 176 of file SUMOVehicleParserHelper.h.
|
static |
Starts to parse a vehicle type.
[in] | attr | The SAX-attributes to get vehicle parameter from |
[in] | file | The name of the file being parsed (for resolving paths) |
ProcessError | If an attribute's value is invalid |
Definition at line 350 of file SUMOVehicleParserHelper.cpp.
References SUMOVTypeParameter::actionStepLength, SUMOVTypeParameter::boardingDuration, SUMOXMLDefinitions::CarFollowModels, SUMOVTypeParameter::cfModel, SUMOVTypeParameter::color, SUMOVTypeParameter::containerCapacity, SUMOVTypeParameter::defaultProbability, SUMOVTypeParameter::emissionClass, SUMOSAXAttributes::get(), StringBijection< T >::get(), PollutantsInterface::getClassByName(), FileHelpers::getConfigurationRelative(), SUMOSAXAttributes::getOpt(), Distribution_Parameterized::getParameter(), SUMOSAXAttributes::getSUMOTimeReporting(), SUMOSAXAttributes::hasAttribute(), SUMOVTypeParameter::hasDriverState, SUMOVTypeParameter::height, SUMOVTypeParameter::id, SUMOVTypeParameter::imgFile, SUMOVTypeParameter::impatience, FileHelpers::isAbsolute(), Distribution_Parameterized::isValid(), SUMOXMLDefinitions::isValidTypeID(), SUMOXMLDefinitions::LaneChangeModels, SUMOVTypeParameter::latAlignment, SUMOXMLDefinitions::LateralAlignments, SUMOVTypeParameter::lcModel, SUMOVTypeParameter::length, SUMOVTypeParameter::loadingDuration, SUMOVTypeParameter::maxSpeed, SUMOVTypeParameter::maxSpeedLat, SUMOVTypeParameter::minGap, SUMOVTypeParameter::minGapLat, SUMOVTypeParameter::osgFile, SUMOVTypeParameter::parametersSet, Distribution_Parameterized::parse(), parseGuiShape(), parseJMParams(), parseLCParams(), parseVehicleClass(), parseVTypeEmbedded(), SUMOVTypeParameter::personCapacity, processActionStepLength(), SUMOVTypeParameter::shape, SUMOVTypeParameter::speedFactor, SUMO_ATTR_ACTIONSTEPLENGTH, SUMO_ATTR_BOARDING_DURATION, SUMO_ATTR_CAR_FOLLOW_MODEL, SUMO_ATTR_COLOR, SUMO_ATTR_CONTAINER_CAPACITY, SUMO_ATTR_EMISSIONCLASS, SUMO_ATTR_GUISHAPE, SUMO_ATTR_HASDRIVERSTATE, SUMO_ATTR_HEIGHT, SUMO_ATTR_ID, SUMO_ATTR_IMGFILE, SUMO_ATTR_IMPATIENCE, SUMO_ATTR_LANE_CHANGE_MODEL, SUMO_ATTR_LATALIGNMENT, SUMO_ATTR_LENGTH, SUMO_ATTR_LOADING_DURATION, SUMO_ATTR_MAXSPEED, SUMO_ATTR_MAXSPEED_LAT, SUMO_ATTR_MINGAP, SUMO_ATTR_MINGAP_LAT, SUMO_ATTR_OSGFILE, SUMO_ATTR_PERSON_CAPACITY, SUMO_ATTR_PROB, SUMO_ATTR_SPEEDDEV, SUMO_ATTR_SPEEDFACTOR, SUMO_ATTR_VCLASS, SUMO_ATTR_WIDTH, SVC_PASSENGER, VTYPEPARS_ACTIONSTEPLENGTH_SET, VTYPEPARS_BOARDING_DURATION, VTYPEPARS_CAR_FOLLOW_MODEL, VTYPEPARS_COLOR_SET, VTYPEPARS_CONTAINER_CAPACITY, VTYPEPARS_EMISSIONCLASS_SET, VTYPEPARS_HASDRIVERSTATE_SET, VTYPEPARS_HEIGHT_SET, VTYPEPARS_IMGFILE_SET, VTYPEPARS_IMPATIENCE_SET, VTYPEPARS_LANE_CHANGE_MODEL_SET, VTYPEPARS_LATALIGNMENT_SET, VTYPEPARS_LENGTH_SET, VTYPEPARS_LOADING_DURATION, VTYPEPARS_MAXSPEED_LAT_SET, VTYPEPARS_MAXSPEED_SET, VTYPEPARS_MINGAP_LAT_SET, VTYPEPARS_MINGAP_SET, VTYPEPARS_OSGFILE_SET, VTYPEPARS_PERSON_CAPACITY, VTYPEPARS_PROBABILITY_SET, VTYPEPARS_SHAPE_SET, VTYPEPARS_SPEEDFACTOR_SET, VTYPEPARS_VEHICLECLASS_SET, VTYPEPARS_WIDTH_SET, SUMOVTypeParameter::width, WRITE_ERROR, WRITE_WARNING, and RGBColor::YELLOW.
Referenced by SUMORouteHandler::myStartElement().
|
staticprivate |
Definition at line 551 of file SUMOVehicleParserHelper.cpp.
References allowedCFModelAttrs, SUMO_ATTR_ACCEL, SUMO_ATTR_APPARENTDECEL, SUMO_ATTR_CA_GAIN_GAP_CACC, SUMO_ATTR_CA_GAIN_GAP_DOT_CACC, SUMO_ATTR_CA_GAIN_SPACE, SUMO_ATTR_CA_GAIN_SPEED, SUMO_ATTR_CF_IDM_DELTA, SUMO_ATTR_CF_IDM_STEPPING, SUMO_ATTR_CF_IDMM_ADAPT_FACTOR, SUMO_ATTR_CF_IDMM_ADAPT_TIME, SUMO_ATTR_CF_KERNER_PHI, SUMO_ATTR_CF_PWAGNER2009_APPROB, SUMO_ATTR_CF_PWAGNER2009_TAULAST, SUMO_ATTR_CF_WIEDEMANN_ESTIMATION, SUMO_ATTR_CF_WIEDEMANN_SECURITY, SUMO_ATTR_COLLISION_MINGAP_FACTOR, SUMO_ATTR_DECEL, SUMO_ATTR_EMERGENCYDECEL, SUMO_ATTR_GC_GAIN_GAP_CACC, SUMO_ATTR_GC_GAIN_GAP_DOT_CACC, SUMO_ATTR_GC_GAIN_SPACE, SUMO_ATTR_GC_GAIN_SPEED, SUMO_ATTR_GCC_GAIN_GAP_CACC, SUMO_ATTR_GCC_GAIN_GAP_DOT_CACC, SUMO_ATTR_GCC_GAIN_SPACE, SUMO_ATTR_GCC_GAIN_SPEED, SUMO_ATTR_K, SUMO_ATTR_SC_GAIN, SUMO_ATTR_SC_GAIN_CACC, SUMO_ATTR_SIGMA, SUMO_ATTR_TAU, SUMO_ATTR_TMP1, SUMO_ATTR_TMP2, SUMO_ATTR_TMP3, SUMO_ATTR_TMP4, SUMO_ATTR_TMP5, SUMO_ATTR_TRAIN_TYPE, SUMO_TAG_CF_ACC, SUMO_TAG_CF_BKERNER, SUMO_TAG_CF_CACC, SUMO_TAG_CF_DANIEL1, SUMO_TAG_CF_IDM, SUMO_TAG_CF_IDMM, SUMO_TAG_CF_KRAUSS, SUMO_TAG_CF_KRAUSS_ORIG1, SUMO_TAG_CF_KRAUSS_PLUS_SLOPE, SUMO_TAG_CF_KRAUSSX, SUMO_TAG_CF_PWAGNER2009, SUMO_TAG_CF_RAIL, SUMO_TAG_CF_SMART_SK, SUMO_TAG_CF_WIEDEMANN, and SUMO_TAG_NOTHING.
Referenced by parseVTypeEmbedded().
|
staticprivate |
Parses attributes common to vehicles and flows.
Parses all attributes stored in "SUMOVehicleParameter".
[in] | attr | The SAX-attributes to get vehicle parameter from |
[out] | ret | The parameter to parse into |
[in] | element | The name of the element (vehicle or flow) |
ProcessError | If an attribute's value is invalid |
Definition at line 223 of file SUMOVehicleParserHelper.cpp.
References SUMOVehicleParameter::arrivalLane, SUMOVehicleParameter::arrivalLaneProcedure, SUMOVehicleParameter::arrivalPos, SUMOVehicleParameter::arrivalPosLat, SUMOVehicleParameter::arrivalPosLatProcedure, SUMOVehicleParameter::arrivalPosProcedure, SUMOVehicleParameter::arrivalSpeed, SUMOVehicleParameter::arrivalSpeedProcedure, SUMOVehicleParameter::color, SUMOVehicleParameter::containerNumber, RGBColor::DEFAULT_COLOR, SUMOVehicleParameter::departLane, SUMOVehicleParameter::departLaneProcedure, SUMOVehicleParameter::departPos, SUMOVehicleParameter::departPosLat, SUMOVehicleParameter::departPosLatProcedure, SUMOVehicleParameter::departPosProcedure, SUMOVehicleParameter::departSpeed, SUMOVehicleParameter::departSpeedProcedure, SUMOVehicleParameter::fromTaz, SUMOSAXAttributes::get(), SUMOSAXAttributes::getOpt(), SUMOSAXAttributes::hasAttribute(), SUMOVehicleParameter::id, SUMOVehicleParameter::line, SUMOVehicleParameter::parametersSet, SUMOVehicleParameter::parseArrivalLane(), SUMOVehicleParameter::parseArrivalPos(), SUMOVehicleParameter::parseArrivalPosLat(), SUMOVehicleParameter::parseArrivalSpeed(), SUMOVehicleParameter::parseDepartLane(), SUMOVehicleParameter::parseDepartPos(), SUMOVehicleParameter::parseDepartPosLat(), SUMOVehicleParameter::parseDepartSpeed(), SUMOVehicleParameter::personNumber, SUMOVehicleParameter::routeid, SUMO_ATTR_ARRIVALLANE, SUMO_ATTR_ARRIVALPOS, SUMO_ATTR_ARRIVALPOS_LAT, SUMO_ATTR_ARRIVALSPEED, SUMO_ATTR_COLOR, SUMO_ATTR_CONTAINER_NUMBER, SUMO_ATTR_DEPARTLANE, SUMO_ATTR_DEPARTPOS, SUMO_ATTR_DEPARTPOS_LAT, SUMO_ATTR_DEPARTSPEED, SUMO_ATTR_FROM_TAZ, SUMO_ATTR_LINE, SUMO_ATTR_PERSON_NUMBER, SUMO_ATTR_REROUTE, SUMO_ATTR_ROUTE, SUMO_ATTR_TO_TAZ, SUMO_ATTR_TYPE, SUMOVehicleParameter::toTaz, VEHPARS_ARRIVALLANE_SET, VEHPARS_ARRIVALPOS_SET, VEHPARS_ARRIVALPOSLAT_SET, VEHPARS_ARRIVALSPEED_SET, VEHPARS_COLOR_SET, VEHPARS_CONTAINER_NUMBER_SET, VEHPARS_DEPARTLANE_SET, VEHPARS_DEPARTPOS_SET, VEHPARS_DEPARTPOSLAT_SET, VEHPARS_DEPARTSPEED_SET, VEHPARS_FORCE_REROUTE, VEHPARS_FROM_TAZ_SET, VEHPARS_LINE_SET, VEHPARS_PERSON_NUMBER_SET, VEHPARS_ROUTE_SET, VEHPARS_TO_TAZ_SET, VEHPARS_VTYPE_SET, and SUMOVehicleParameter::vtypeid.
Referenced by parseFlowAttributes(), and parseVehicleAttributes().
|
static |
Parses a flow's attributes.
Parses all attributes stored in "SUMOVehicleParameter".
[in] | attr | The SAX-attributes to get vehicle parameter from |
ProcessError | If an attribute's value is invalid |
Definition at line 52 of file SUMOVehicleParserHelper.cpp.
References SUMOSAXAttributes::get(), SUMOSAXAttributes::getName(), SUMOSAXAttributes::getSUMOTimeReporting(), SUMOSAXAttributes::hasAttribute(), SUMOXMLDefinitions::isValidVehicleID(), parseCommonAttributes(), SUMO_ATTR_BEGIN, SUMO_ATTR_END, SUMO_ATTR_ID, SUMO_ATTR_NUMBER, SUMO_ATTR_PERIOD, SUMO_ATTR_PROB, SUMO_ATTR_VEHSPERHOUR, SUMOTime_MAX, TIME2STEPS, VEHPARS_PERIODFREQ_SET, and WRITE_WARNING.
Referenced by SUMORouteHandler::myStartElement().
|
static |
Parses the vehicle class.
When given, the vehicle class is parsed using getVehicleShapeID. Exceptions occuring within this process are catched and reported.
If no vehicle class is available in the attributes, the default class (SVS_UNKNOWN) is returned.
[in] | attrs | The attributes to read the class from |
[in] | id | The id of the parsed element, for error message generation |
Definition at line 808 of file SUMOVehicleParserHelper.cpp.
References SUMOSAXAttributes::getObjectType(), SUMOSAXAttributes::getOpt(), SUMO_ATTR_GUISHAPE, SumoVehicleShapeStrings, SVS_UNKNOWN, WRITE_ERROR, and WRITE_WARNING.
Referenced by beginVTypeParsing().
|
static |
Parses junction model attributes.
Definition at line 760 of file SUMOVehicleParserHelper.cpp.
References allowedJMAttrs, SUMOSAXAttributes::get(), SUMOSAXAttributes::hasAttribute(), SUMOVTypeParameter::id, SUMOVTypeParameter::jmParameter, SUMO_ATTR_JM_CROSSING_GAP, SUMO_ATTR_JM_DRIVE_AFTER_RED_TIME, SUMO_ATTR_JM_DRIVE_RED_SPEED, SUMO_ATTR_JM_IGNORE_FOE_PROB, SUMO_ATTR_JM_IGNORE_FOE_SPEED, SUMO_ATTR_JM_IGNORE_KEEPCLEAR_TIME, SUMO_ATTR_JM_SIGMA_MINOR, and SUMO_ATTR_JM_TIMEGAP_MINOR.
Referenced by beginVTypeParsing().
|
static |
Parses lane change model attributes.
Definition at line 712 of file SUMOVehicleParserHelper.cpp.
References allowedLCModelAttrs, SUMOSAXAttributes::get(), SUMOSAXAttributes::hasAttribute(), SUMOVTypeParameter::id, LCM_DEFAULT, LCM_DK2008, LCM_LC2013, LCM_SL2015, SUMOVTypeParameter::lcParameter, SUMO_ATTR_LCA_ACCEL_LAT, SUMO_ATTR_LCA_ASSERTIVE, SUMO_ATTR_LCA_COOPERATIVE_PARAM, SUMO_ATTR_LCA_EXPERIMENTAL1, SUMO_ATTR_LCA_IMPATIENCE, SUMO_ATTR_LCA_KEEPRIGHT_PARAM, SUMO_ATTR_LCA_LOOKAHEADLEFT, SUMO_ATTR_LCA_MAXSPEEDLATFACTOR, SUMO_ATTR_LCA_MAXSPEEDLATSTANDING, SUMO_ATTR_LCA_OPPOSITE_PARAM, SUMO_ATTR_LCA_PUSHY, SUMO_ATTR_LCA_PUSHYGAP, SUMO_ATTR_LCA_SPEEDGAIN_PARAM, SUMO_ATTR_LCA_SPEEDGAINRIGHT, SUMO_ATTR_LCA_STRATEGIC_PARAM, SUMO_ATTR_LCA_SUBLANE_PARAM, SUMO_ATTR_LCA_TIME_TO_IMPATIENCE, and SUMO_ATTR_LCA_TURN_ALIGNMENT_DISTANCE.
Referenced by beginVTypeParsing().
|
static |
Parses a vehicle's attributes.
Parses all attributes stored in "SUMOVehicleParameter".
[in] | attr | The SAX-attributes to get vehicle parameter from |
[in] | optionalID | Whether the id shall be skipped |
[in] | skipDepart | Whether parsing the departure time shall be skipped |
[in] | isPerson | Whether a person is parsed |
ProcessError | If an attribute's value is invalid |
Definition at line 189 of file SUMOVehicleParserHelper.cpp.
References DEFAULT_PEDTYPE_ID, SUMOVehicleParameter::depart, SUMOVehicleParameter::departProcedure, SUMOSAXAttributes::get(), SUMOSAXAttributes::getOpt(), SUMOVehicleParameter::id, SUMOXMLDefinitions::isValidVehicleID(), parseCommonAttributes(), SUMOVehicleParameter::parseDepart(), SUMO_ATTR_DEPART, SUMO_ATTR_ID, and SUMOVehicleParameter::vtypeid.
Referenced by ROMARouteHandler::myStartElement(), SUMORouteHandler::myStartElement(), and MSCalibrator::myStartElement().
|
static |
Parses the vehicle class.
When given, the vehicle class is parsed using getVehicleClassID. Exceptions occuring within this process are catched and reported.
If no vehicle class is available in the attributes, the default class (SVC_IGNORING) is returned.
[in] | attrs | The attributes to read the class from |
[in] | id | The id of the parsed element, for error message generation |
Definition at line 785 of file SUMOVehicleParserHelper.cpp.
References SUMOSAXAttributes::getObjectType(), SUMOSAXAttributes::getOpt(), getVehicleClassID(), SUMO_ATTR_VCLASS, SumoVehicleClassStrings, SVC_IGNORING, WRITE_ERROR, and WRITE_WARNING.
Referenced by beginVTypeParsing().
|
static |
Parses an element embedded in vtype definition.
Definition at line 516 of file SUMOVehicleParserHelper.cpp.
References SUMOVTypeParameter::cfModel, SUMOVTypeParameter::cfParameter, DELTA_T, SUMOSAXAttributes::get(), getAllowedCFModelAttrs(), gSimulation, SUMOSAXAttributes::hasAttribute(), SUMOVTypeParameter::id, SUMOVTypeParameter::parametersSet, string2time(), SUMO_ATTR_TAU, SUMOXMLDefinitions::Tags, toString(), VTYPEPARS_CAR_FOLLOW_MODEL, WRITE_ERROR, and WRITE_WARNING.
Referenced by beginVTypeParsing(), and SUMORouteHandler::myStartElement().
|
static |
parse departPos or arrivalPos for a walk
Definition at line 826 of file SUMOVehicleParserHelper.cpp.
References ARRIVAL_POS_CENTER, ARRIVAL_POS_MAX, ARRIVAL_POS_RANDOM, SUMOVehicleParameter::interpretEdgePos(), SUMOVehicleParameter::parseArrivalPos(), RandHelper::rand(), SUMO_TAG_WALK, and toString().
Referenced by RORouteHandler::addPersonTrip(), RORouteHandler::addWalk(), and MSRouteHandler::parseWalkPositions().
|
static |
Checks and converts given value for the action step length from seconds to miliseconds assuring it being a positive multiple of the simulation step width.
[in] | given | The value parsed from the configuration (seconds). |
Definition at line 846 of file SUMOVehicleParserHelper.cpp.
References DELTA_T, MAX2(), NUMERICAL_EPS, STEPS2TIME, TIME2STEPS, and WRITE_WARNING.
Referenced by beginVTypeParsing(), libsumo::VehicleType::getParameter(), libsumo::Vehicle::moveTo(), MSFrame::setMSGlobals(), and libsumo::Person::setParameter().
|
staticprivate |
Definition at line 182 of file SUMOVehicleParserHelper.h.
Referenced by getAllowedCFModelAttrs().
|
staticprivate |
Definition at line 186 of file SUMOVehicleParserHelper.h.
Referenced by parseJMParams().
|
staticprivate |
Definition at line 184 of file SUMOVehicleParserHelper.h.
Referenced by parseLCParams().