SUMOXMLDefinitions.cpp

Go to the documentation of this file.
00001 /****************************************************************************/
00007 // Definitions of elements and attributes known by SUMO
00008 /****************************************************************************/
00009 // SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/
00010 // Copyright 2001-2010 DLR (http://www.dlr.de/) and contributors
00011 /****************************************************************************/
00012 //
00013 //   This program is free software; you can redistribute it and/or modify
00014 //   it under the terms of the GNU General Public License as published by
00015 //   the Free Software Foundation; either version 2 of the License, or
00016 //   (at your option) any later version.
00017 //
00018 /****************************************************************************/
00019 
00020 
00021 // ===========================================================================
00022 // included modules
00023 // ===========================================================================
00024 #ifdef _MSC_VER
00025 #include <windows_config.h>
00026 #else
00027 #include <config.h>
00028 #endif
00029 
00030 #include <utils/xml/GenericSAXHandler.h>
00031 #include "SUMOXMLDefinitions.h"
00032 #include <utils/common/SUMOVehicleClass.h>
00033 
00034 #ifdef CHECK_MEMORY_LEAKS
00035 #include <foreign/nvwa/debug_new.h>
00036 #endif // CHECK_MEMORY_LEAKS
00037 
00038 
00039 // ===========================================================================
00040 // definitions
00041 // ===========================================================================
00042 GenericSAXHandler::Tag sumotags[] = {
00043     { "edge",             SUMO_TAG_EDGE },
00044     { "lane",             SUMO_TAG_LANE },
00045     { "poi",              SUMO_TAG_POI },
00046     { "poly",             SUMO_TAG_POLY },
00047     { "junction",         SUMO_TAG_JUNCTION },
00048     { "detector",         SUMO_TAG_DETECTOR },
00049     { "e1-detector",      SUMO_TAG_E1DETECTOR },
00050     { "e2-detector",      SUMO_TAG_E2DETECTOR },
00051     { "e3-detector",      SUMO_TAG_E3DETECTOR },
00052     { "meandata-edge",    SUMO_TAG_MEANDATA_EDGE },
00053     { "meandata-lane",    SUMO_TAG_MEANDATA_LANE },
00054 
00055 #ifdef _MESSAGES
00056     { "msgemitter",       SUMO_TAG_MSG_EMITTER },
00057     { "e4-detector",      SUMO_TAG_MSG },
00058 #endif
00059     { "det_entry",        SUMO_TAG_DET_ENTRY },
00060     { "det_exit",         SUMO_TAG_DET_EXIT },
00061     { "variableSpeedSign",SUMO_TAG_VSS },
00062     { "emitter",          SUMO_TAG_EMITTER },
00063     { "calibrator",       SUMO_TAG_CALIBRATOR },
00064     { "rerouter",         SUMO_TAG_REROUTER },
00065     { "busStop",          SUMO_TAG_BUS_STOP },
00066     { "vtypeprobe",       SUMO_TAG_VTYPEPROBE },
00067     { "routeprobe",       SUMO_TAG_ROUTEPROBE },
00068     { "vehicle",          SUMO_TAG_VEHICLE },
00069     { "vtype",            SUMO_TAG_VTYPE },
00070     { "cfmodel",          SUMO_TAG_CFMODEL },
00071     { "route",            SUMO_TAG_ROUTE },
00072     { "succ",             SUMO_TAG_SUCC },
00073     { "succlane",         SUMO_TAG_SUCCLANE },
00074     { "key",              SUMO_TAG_KEY },
00075     { "requestsize",      SUMO_TAG_REQUESTSIZE },
00076     { "lanenumber",       SUMO_TAG_LANENUMBER },
00077     { "logicitem",        SUMO_TAG_LOGICITEM },
00078     { "row-logic",        SUMO_TAG_ROWLOGIC },
00079     { "source",           SUMO_TAG_SOURCE },
00080     { "district",         SUMO_TAG_DISTRICT },
00081     { "dsource",          SUMO_TAG_DSOURCE },
00082     { "dsink",            SUMO_TAG_DSINK },
00083     { "tl-logic",         SUMO_TAG_TLLOGIC },
00084     { "offset",           SUMO_TAG_OFFSET },
00085     { "phase",            SUMO_TAG_PHASE },
00086     { "tripdef",          SUMO_TAG_TRIPDEF },
00087     { "flow",             SUMO_TAG_FLOW },
00088     { "subkey",           SUMO_TAG_SUBKEY },
00089     { "trigger",          SUMO_TAG_TRIGGER },
00090     { "step",             SUMO_TAG_STEP },
00091     { "interval",         SUMO_TAG_INTERVAL },
00092     { "shape",            SUMO_TAG_SHAPE },
00093     { "timed_event",      SUMO_TAG_TIMEDEVENT },
00094     { "inclanes",         SUMO_TAG_INCOMING_LANES },
00095     { "intlanes",         SUMO_TAG_INTERNAL_LANES },
00096     { "fromedge",         SUMO_TAG_FROMEDGE },
00097     { "toedge",           SUMO_TAG_TOEDGE },
00098     { "sink",             SUMO_TAG_SINK },
00099     { "supplementary-weights", SUMO_TAG_SUPPLEMENTARY_WEIGHTS },
00100     { "param",            SUMO_TAG_PARAM },
00101     { "WAUT",             SUMO_TAG_WAUT },
00102     { "wautSwitch",       SUMO_TAG_WAUT_SWITCH },
00103     { "wautJunction",     SUMO_TAG_WAUT_JUNCTION },
00104     { "net-offset",       SUMO_TAG_NET_OFFSET },
00105     { "conv-boundary",    SUMO_TAG_CONV_BOUNDARY },
00106     { "orig-boundary",    SUMO_TAG_ORIG_BOUNDARY },
00107     { "orig-proj",        SUMO_TAG_ORIG_PROJ },
00108     { "routedistelem",    SUMO_TAG_ROUTEDISTELEM },
00109     { "vtypedistelem",    SUMO_TAG_VTYPEDISTELEM },
00110     { "emit",             SUMO_TAG_EMIT },
00111     { "reset",            SUMO_TAG_RESET },
00112     { "stop",             SUMO_TAG_STOP },
00113     { "dest_prob_reroute", SUMO_TAG_DEST_PROB_REROUTE },
00114     { "closing_reroute",  SUMO_TAG_CLOSING_REROUTE },
00115     { "route_prob_reroute", SUMO_TAG_ROUTE_PROB_REROUTE },
00116     { "polytype",         SUMO_TAG_POLYTYPE },
00117     { "connection",       SUMO_TAG_CONNECTION },
00118     { "prohibition",      SUMO_TAG_PROHIBITION },
00119     { "split",            SUMO_TAG_SPLIT },
00120     { "node",             SUMO_TAG_NODE },
00121     { "type",             SUMO_TAG_TYPE },
00122     { "detector_definition", SUMO_TAG_DETECTOR_DEFINITION },
00123     { "routeDistribution", SUMO_TAG_ROUTE_DISTRIBUTION },
00124     { "vtypeDistribution", SUMO_TAG_VTYPE_DISTRIBUTION },
00125     { "vaporizer",        SUMO_TAG_VAPORIZER },
00126 
00127     { "way",              SUMO_TAG_WAY },
00128     { "nd",               SUMO_TAG_ND },
00129     { "tag",              SUMO_TAG_TAG },
00130 
00131     { "decal",            SUMO_TAG_VIEWSETTINGS_DECAL },
00132     { "scheme",           SUMO_TAG_VIEWSETTINGS_SCHEME },
00133     { "opengl",           SUMO_TAG_VIEWSETTINGS_OPENGL },
00134     { "background",       SUMO_TAG_VIEWSETTINGS_BACKGROUND },
00135     { "edges",            SUMO_TAG_VIEWSETTINGS_EDGES },
00136     { "nlcC",             SUMO_TAG_VIEWSETTINGS_EDGE_COLOR_ITEM },
00137     { "vehicles",         SUMO_TAG_VIEWSETTINGS_VEHICLES },
00138     { "nvcC",             SUMO_TAG_VIEWSETTINGS_VEHICLE_COLOR_ITEM },
00139     { "junctions",        SUMO_TAG_VIEWSETTINGS_JUNCTIONS },
00140     { "additionals",      SUMO_TAG_VIEWSETTINGS_ADDITIONALS },
00141     { "pois",             SUMO_TAG_VIEWSETTINGS_POIS },
00142     { "legend",           SUMO_TAG_VIEWSETTINGS_LEGEND },
00143     { "include",          SUMO_TAG_INCLUDE },
00144     { "xi:include",       SUMO_TAG_INCLUDE },
00145     { "delay",            SUMO_TAG_DELAY },
00146     { "viewport",         SUMO_TAG_VIEWPORT },
00147     { "snapshot",         SUMO_TAG_SNAPSHOT },
00148     { "location",         SUMO_TAG_LOCATION },
00149     { "colorScheme",      SUMO_TAG_COLORSCHEME },
00150     { "entry",            SUMO_TAG_ENTRY },
00151 
00152     { CF_MODEL_KRAUSS_STR, SUMO_TAG_CF_KRAUSS },
00153     { CF_MODEL_KRAUSS_ORIG1_STR, SUMO_TAG_CF_KRAUSS_ORIG1 },
00154     { CF_MODEL_IDM_STR,    SUMO_TAG_CF_IDM },
00155     { CF_MODEL_PWAGNER2009_STR,    SUMO_TAG_CF_PWAGNER2009 },
00156     { CF_MODEL_BKERNER_STR,    SUMO_TAG_CF_BKERNER },
00157 
00158     { "header",           SUMO_TAG_OPENDRIVE_HEADER },
00159     { "road",             SUMO_TAG_OPENDRIVE_ROAD },
00160     { "predecessor",      SUMO_TAG_OPENDRIVE_PREDECESSOR },
00161     { "successor",        SUMO_TAG_OPENDRIVE_SUCCESSOR },
00162     { "geometry",         SUMO_TAG_OPENDRIVE_GEOMETRY },
00163     { "line",             SUMO_TAG_OPENDRIVE_LINE },
00164     { "spiral",           SUMO_TAG_OPENDRIVE_SPIRAL },
00165     { "arc",              SUMO_TAG_OPENDRIVE_ARC },
00166     { "poly3",            SUMO_TAG_OPENDRIVE_POLY3 },
00167     { "laneSection",      SUMO_TAG_OPENDRIVE_LANESECTION },
00168     { "left",             SUMO_TAG_OPENDRIVE_LEFT },
00169     { "center",           SUMO_TAG_OPENDRIVE_CENTER },
00170     { "right",            SUMO_TAG_OPENDRIVE_RIGHT },
00171     { "lane",             SUMO_TAG_OPENDRIVE_LANE },
00172 
00173     { "person",           SUMO_TAG_PERSON },
00174     { "ride",             SUMO_TAG_RIDE },
00175     { "walk",             SUMO_TAG_WALK },
00176 
00177     { "",                 SUMO_TAG_NOTHING }
00178 };
00179 
00180 
00181 GenericSAXHandler::Attr sumoattrs[] = {
00182     { "id",             SUMO_ATTR_ID },
00183     { "refid",          SUMO_ATTR_REFID },
00184     { "name",           SUMO_ATTR_NAME },
00185     { "type",           SUMO_ATTR_TYPE },
00186     { "priority",       SUMO_ATTR_PRIORITY },
00187     { "nolanes",        SUMO_ATTR_NOLANES },
00188     { "speed",          SUMO_ATTR_SPEED },
00189 
00190     { "length",         SUMO_ATTR_LENGTH },
00191     { "fromnode",       SUMO_ATTR_FROMNODE },
00192     { "tonode",         SUMO_ATTR_TONODE },
00193     { "xfrom",          SUMO_ATTR_XFROM },
00194     { "yfrom",          SUMO_ATTR_YFROM },
00195     { "xto",            SUMO_ATTR_XTO },
00196     { "yto",            SUMO_ATTR_YTO },
00197 
00198     { "x",              SUMO_ATTR_X },
00199     { "y",              SUMO_ATTR_Y },
00200 
00201     { "key",            SUMO_ATTR_KEY },
00202     { "requestSize",    SUMO_ATTR_REQUESTSIZE },
00203     { "laneNumber",     SUMO_ATTR_LANENUMBER },
00204     { "request",        SUMO_ATTR_REQUEST },
00205     { "response",       SUMO_ATTR_RESPONSE },
00206     { "programID",      SUMO_ATTR_PROGRAMID },
00207     { "offset",         SUMO_ATTR_OFFSET },
00208     { "incLanes",       SUMO_ATTR_INCLANES },
00209     { "intLanes",       SUMO_ATTR_INTLANES },
00210 
00211     { "weight",         SUMO_ATTR_WEIGHT },
00212     { "edge",           SUMO_ATTR_EDGE },
00213     { "edges",          SUMO_ATTR_EDGES },
00214 
00215     { "depart",         SUMO_ATTR_DEPART },
00216     { "departlane",     SUMO_ATTR_DEPARTLANE },
00217     { "departpos",      SUMO_ATTR_DEPARTPOS },
00218     { "departspeed",    SUMO_ATTR_DEPARTSPEED },
00219     { "arrivallane",    SUMO_ATTR_ARRIVALLANE },
00220     { "arrivalpos",     SUMO_ATTR_ARRIVALPOS },
00221     { "arrivalspeed",   SUMO_ATTR_ARRIVALSPEED },
00222     { "route",          SUMO_ATTR_ROUTE },
00223     { "maxspeed",       SUMO_ATTR_MAXSPEED },
00224     { "accel",          SUMO_ATTR_ACCEL },
00225     { "decel",          SUMO_ATTR_DECEL },
00226     { "vclass",         SUMO_ATTR_VCLASS },
00227     { "repno",          SUMO_ATTR_REPNUMBER },
00228     { "speedFactor",    SUMO_ATTR_SPEEDFACTOR },
00229     { "speedDev",       SUMO_ATTR_SPEEDDEV },
00230     { "laneChangeModel", SUMO_ATTR_LANE_CHANGE_MODEL },
00231 
00232     { "carFollowModel", SUMO_ATTR_CAR_FOLLOW_MODEL },
00233     { "sigma",          SUMO_ATTR_SIGMA },
00234     { "tau",            SUMO_ATTR_TAU },
00235     { "timeHeadWay",    SUMO_ATTR_TIME_HEADWAY_GAP },
00236     { "mingap",         SUMO_ATTR_MINIMUM_DISTANCE },
00237 
00238     { "last",           SUMO_ATTR_LAST },
00239     { "cost",           SUMO_ATTR_COST },
00240     { "probability",    SUMO_ATTR_PROB },
00241     { "routes",         SUMO_ATTR_ROUTES },
00242     { "vtypes",         SUMO_ATTR_VTYPES },
00243 
00244     { "lane",           SUMO_ATTR_LANE },
00245     { "lanes",          SUMO_ATTR_LANES },
00246     { "from",           SUMO_ATTR_FROM },
00247     { "to",             SUMO_ATTR_TO },
00248     { "period",         SUMO_ATTR_PERIOD },
00249     { "fromtaz",        SUMO_ATTR_FROM_TAZ },
00250     { "totaz",          SUMO_ATTR_TO_TAZ },
00251 
00252     { "function",       SUMO_ATTR_FUNCTION },
00253     { "pos",            SUMO_ATTR_POSITION },
00254     { "freq",           SUMO_ATTR_FREQUENCY },
00255     { "style",          SUMO_ATTR_STYLE },
00256     { "file",           SUMO_ATTR_FILE },
00257     { "junction",       SUMO_ATTR_JUNCTION },
00258     { "yield",          SUMO_ATTR_YIELD },
00259     { "no",             SUMO_ATTR_NO },
00260     { "phase",          SUMO_ATTR_PHASE },
00261     { "brake",          SUMO_ATTR_BRAKE },
00262     { "yellow",         SUMO_ATTR_YELLOW },
00263     { "duration",       SUMO_ATTR_DURATION },
00264     { "until",          SUMO_ATTR_UNTIL },
00265 
00266     { "objecttype",     SUMO_ATTR_OBJECTTYPE },
00267     { "attr",           SUMO_ATTR_ATTR },
00268     { "objectid",       SUMO_ATTR_OBJECTID },
00269     { "time",           SUMO_ATTR_TIME },
00270     { "begin",          SUMO_ATTR_BEGIN },
00271     { "end",            SUMO_ATTR_END },
00272     { "tl",             SUMO_ATTR_TLID },
00273     { "linkno",         SUMO_ATTR_TLLINKNO },
00274     { "shape",          SUMO_ATTR_SHAPE },
00275     { "spread_type",    SUMO_ATTR_SPREADFUNC },
00276     { "color",          SUMO_ATTR_COLOR },
00277     { "dir",            SUMO_ATTR_DIR },
00278     { "state",          SUMO_ATTR_STATE },
00279     { "layer",          SUMO_ATTR_LAYER },
00280     { "fill",           SUMO_ATTR_FILL },
00281     { "prefix",         SUMO_ATTR_PREFIX },
00282     { "discard",        SUMO_ATTR_DISCARD },
00283 
00284     { "dest",           SUMO_ATTR_DEST },
00285     { "source",         SUMO_ATTR_SOURCE },
00286     { "via",            SUMO_ATTR_VIA },
00287     { "int_end",        SUMO_ATTR_INTERNALEND },
00288 
00289 #ifdef _MESSAGES
00290     { "msg",            SUMO_ATTR_MSG },
00291     { "emit_msg",       SUMO_ATTR_EVENTS },
00292     { "reverse",        SUMO_ATTR_REVERSE },
00293     { "table",          SUMO_ATTR_TABLE },
00294     { "xy",             SUMO_ATTR_XY },
00295     { "step",           SUMO_ATTR_STEP },
00296 #endif
00297     { "min_dur",        SUMO_ATTR_MINDURATION },
00298     { "max_dur",        SUMO_ATTR_MAXDURATION },
00299     { "foes",           SUMO_ATTR_FOES },
00300     { "measures",       SUMO_ATTR_MEASURES },
00301 
00302     { "cont",           SUMO_ATTR_CONT },
00303     { "time_treshold",  SUMO_ATTR_HALTING_TIME_THRESHOLD },
00304     { "speed_treshold", SUMO_ATTR_HALTING_SPEED_THRESHOLD },
00305     { "jam_treshold",   SUMO_ATTR_JAM_DIST_THRESHOLD },
00306     { "keep_for",       SUMO_ATTR_DELETE_DATA_AFTER_SECONDS },
00307     { "det_offset",     SUMO_ATTR_DET_OFFSET },
00308 
00309     { "wautID",         SUMO_ATTR_WAUT_ID },
00310     { "junctionID",     SUMO_ATTR_JUNCTION_ID },
00311     { "procedure",      SUMO_ATTR_PROCEDURE },
00312     { "synchron",       SUMO_ATTR_SYNCHRON },
00313     { "refTime",        SUMO_ATTR_REF_TIME },
00314     { "startProg",      SUMO_ATTR_START_PROG },
00315     { "off",            SUMO_ATTR_OFF },
00316     { "friendly_pos",   SUMO_ATTR_FRIENDLY_POS },
00317     { "uncontrolled",   SUMO_ATTR_UNCONTROLLED },
00318     { "pass",           SUMO_ATTR_PASS },
00319     { "forceLength",    SUMO_ATTR_FORCE_LENGTH },
00320     { "bus_stop",       SUMO_ATTR_BUS_STOP },
00321     { "line",           SUMO_ATTR_LINE },
00322     { "lines",          SUMO_ATTR_LINES },
00323     { "vclasses",       SUMO_ATTR_VCLASSES },
00324     { "value",          SUMO_ATTR_VALUE },
00325     { "prohibitor",     SUMO_ATTR_PROHIBITOR },
00326     { "prohibited",     SUMO_ATTR_PROHIBITED },
00327     { "allow",          SUMO_ATTR_ALLOW },
00328     { "disallow",       SUMO_ATTR_DISALLOW },
00329     { "prefer",         SUMO_ATTR_PREFER },
00330     { "controlled_inner", SUMO_ATTR_CONTROLLED_INNER },
00331     { "vehsPerHour",    SUMO_ATTR_VEHSPERHOUR },
00332     { "output",         SUMO_ATTR_OUTPUT },
00333     { "guiWidth",       SUMO_ATTR_GUIWIDTH },
00334     { "guiOffset",      SUMO_ATTR_GUIOFFSET },
00335     { "guiShape",       SUMO_ATTR_GUISHAPE },
00336     { "emissionClass",  SUMO_ATTR_EMISSIONCLASS },
00337 
00338     { "entering",       SUMO_ATTR_ENTERING },
00339     { "excludeEmpty",   SUMO_ATTR_EXCLUDE_EMPTY },
00340     { "withInternal",   SUMO_ATTR_WITH_INTERNAL },
00341     { "trackVehicles",  SUMO_ATTR_TRACK_VEHICLES },
00342     { "maxTraveltime",  SUMO_ATTR_MAX_TRAVELTIME },
00343     { "minSamples",     SUMO_ATTR_MIN_SAMPLES },
00344 
00345     { "lon",            SUMO_ATTR_LON },
00346     { "lat",            SUMO_ATTR_LAT },
00347     { "k",              SUMO_ATTR_K },
00348     { "v",              SUMO_ATTR_V },
00349     { "ref",            SUMO_ATTR_REF },
00350     { "href",           SUMO_ATTR_HREF },
00351     { "zoom",           SUMO_ATTR_ZOOM },
00352     { "interpolated",   SUMO_ATTR_INTERPOLATED },
00353     { "threshold",      SUMO_ATTR_THRESHOLD },
00354 
00355     { "netOffset",      SUMO_ATTR_NET_OFFSET },
00356     { "convBoundary",   SUMO_ATTR_CONV_BOUNDARY },
00357     { "origBoundary",   SUMO_ATTR_ORIG_BOUNDARY },
00358     { "projParameter",  SUMO_ATTR_ORIG_PROJ },
00359 
00360     { "timeHeadWay",    SUMO_ATTR_CF_IDM_TIMEHEADWAY },
00361     { "minGap",         SUMO_ATTR_CF_IDM_MINGAP },
00362     //{ "k",              SUMO_ATTR_CF_KERNER_K },
00363     { "phi",            SUMO_ATTR_CF_KERNER_PHI },
00364 
00365     { "revMajor",       SUMO_ATTR_OPENDRIVE_REVMAJOR },
00366     { "revMinor",       SUMO_ATTR_OPENDRIVE_REVMINOR },
00367     { "ID",             SUMO_ATTR_OPENDRIVE_ID },
00368     { "length",         SUMO_ATTR_OPENDRIVE_LENGTH },
00369     { "junction",       SUMO_ATTR_OPENDRIVE_JUNCTION },
00370     { "elementType",    SUMO_ATTR_OPENDRIVE_ELEMENTTYPE },
00371     { "elementId",      SUMO_ATTR_OPENDRIVE_ELEMENTID },
00372     { "contactPoint",   SUMO_ATTR_OPENDRIVE_CONTACTPOINT },
00373     { "s",              SUMO_ATTR_OPENDRIVE_S },
00374     { "x",              SUMO_ATTR_OPENDRIVE_X },
00375     { "y",              SUMO_ATTR_OPENDRIVE_Y },
00376     { "hdg",            SUMO_ATTR_OPENDRIVE_HDG },
00377     { "curvStart",      SUMO_ATTR_OPENDRIVE_CURVSTART },
00378     { "curvEnd",        SUMO_ATTR_OPENDRIVE_CURVEND },
00379     { "curvature",      SUMO_ATTR_OPENDRIVE_CURVATURE },
00380     { "a",              SUMO_ATTR_OPENDRIVE_A },
00381     { "b",              SUMO_ATTR_OPENDRIVE_B },
00382     { "c",              SUMO_ATTR_OPENDRIVE_C },
00383     { "d",              SUMO_ATTR_OPENDRIVE_D },
00384     { "type",           SUMO_ATTR_OPENDRIVE_TYPE },
00385     { "level",          SUMO_ATTR_OPENDRIVE_LEVEL },
00386 
00387     { "generateWalks",  SUMO_ATTR_GENERATE_WALKS },
00388 
00389     { "",               SUMO_ATTR_NOTHING }
00390 };
00391 
00392 
00393 
00394 /****************************************************************************/
00395 

Generated on Wed May 5 00:06:37 2010 for Sumo - Simulation of Urban MObility by  doxygen 1.5.6