SUMO - Simulation of Urban MObility
SUMOXMLDefinitions.cpp
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2002-2018 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
20 // Definitions of elements and attributes known by SUMO
21 /****************************************************************************/
22 
23 
24 // ===========================================================================
25 // included modules
26 // ===========================================================================
27 #include <config.h>
28 
29 #include <cassert>
32 
33 #include "SUMOXMLDefinitions.h"
34 
35 // ===========================================================================
36 // definitions
37 // ===========================================================================
38 
40  // Simulation elements
41  { "net", SUMO_TAG_NET },
42  { "edge", SUMO_TAG_EDGE },
43  { "lane", SUMO_TAG_LANE },
44  { "neigh", SUMO_TAG_NEIGH },
45  { "poi", SUMO_TAG_POI },
46  { "poiLane", SUMO_TAG_POILANE },
47  { "poly", SUMO_TAG_POLY },
48  { "junction", SUMO_TAG_JUNCTION },
49  { "restriction", SUMO_TAG_RESTRICTION },
50  { "e1Detector", SUMO_TAG_E1DETECTOR },
51  { "inductionLoop", SUMO_TAG_INDUCTION_LOOP },
52  { "e2Detector", SUMO_TAG_E2DETECTOR },
53  { "laneAreaDetector", SUMO_TAG_LANE_AREA_DETECTOR },
54  { "e3Detector", SUMO_TAG_E3DETECTOR },
55  { "entryExitDetector", SUMO_TAG_ENTRY_EXIT_DETECTOR },
56  { "edgeData", SUMO_TAG_MEANDATA_EDGE },
57  { "laneData", SUMO_TAG_MEANDATA_LANE },
58  { "detEntry", SUMO_TAG_DET_ENTRY },
59  { "detExit", SUMO_TAG_DET_EXIT },
60  { "edgeFollowDetector", SUMO_TAG_EDGEFOLLOWDETECTOR },
61  { "instantInductionLoop", SUMO_TAG_INSTANT_INDUCTION_LOOP },
62  { "variableSpeedSign", SUMO_TAG_VSS },
63  { "calibrator", SUMO_TAG_CALIBRATOR },
64  { "laneCalibrator", SUMO_TAG_LANECALIBRATOR },
65  { "rerouter", SUMO_TAG_REROUTER },
66  { "busStop", SUMO_TAG_BUS_STOP },
67  { "trainStop", SUMO_TAG_TRAIN_STOP },
68  { "ptLine", SUMO_TAG_PT_LINE },
69  { "access", SUMO_TAG_ACCESS },
70  { "containerStop", SUMO_TAG_CONTAINER_STOP },
71  { "parkingArea", SUMO_TAG_PARKING_AREA },
72  { "space", SUMO_TAG_PARKING_SPACE },
73  { "chargingStation", SUMO_TAG_CHARGING_STATION },
74  { "vTypeProbe", SUMO_TAG_VTYPEPROBE },
75  { "routeProbe", SUMO_TAG_ROUTEPROBE },
76  { "routes", SUMO_TAG_ROUTES },
77  { "vehicle", SUMO_TAG_VEHICLE },
78  { "vType", SUMO_TAG_VTYPE },
79  { "route", SUMO_TAG_ROUTE },
80  { "request", SUMO_TAG_REQUEST },
81  { "source", SUMO_TAG_SOURCE },
82  { "taz", SUMO_TAG_TAZ },
83  { "tazSource", SUMO_TAG_TAZSOURCE },
84  { "tazSink", SUMO_TAG_TAZSINK },
85  { "trafficLight", SUMO_TAG_TRAFFIC_LIGHT },
86  { "tlLogic", SUMO_TAG_TLLOGIC },
87  { "phase", SUMO_TAG_PHASE },
88  { "trip", SUMO_TAG_TRIP },
89  { "flow", SUMO_TAG_FLOW },
90  { "flowState", SUMO_TAG_FLOWSTATE },
91  { "step", SUMO_TAG_STEP },
92  { "interval", SUMO_TAG_INTERVAL },
93  { "timedEvent", SUMO_TAG_TIMEDEVENT },
94  { "fromEdge", SUMO_TAG_FROMEDGE },
95  { "toEdge", SUMO_TAG_TOEDGE },
96  { "sink", SUMO_TAG_SINK },
97  { "param", SUMO_TAG_PARAM },
98  { "WAUT", SUMO_TAG_WAUT },
99  { "wautSwitch", SUMO_TAG_WAUT_SWITCH },
100  { "wautJunction", SUMO_TAG_WAUT_JUNCTION },
101  { "segment", SUMO_TAG_SEGMENT },
102  { "delete", SUMO_TAG_DELETE },
103  { "stop", SUMO_TAG_STOP },
104  { "destProbReroute", SUMO_TAG_DEST_PROB_REROUTE },
105  { "closingReroute", SUMO_TAG_CLOSING_REROUTE },
106  { "closingLaneReroute", SUMO_TAG_CLOSING_LANE_REROUTE },
107  { "routeProbReroute", SUMO_TAG_ROUTE_PROB_REROUTE },
108  { "parkingAreaReroute", SUMO_TAG_PARKING_ZONE_REROUTE },
109  { "polygonType", SUMO_TAG_POLYTYPE },
110  { "connection", SUMO_TAG_CONNECTION },
111  { "prohibition", SUMO_TAG_PROHIBITION },
112  { "split", SUMO_TAG_SPLIT },
113  { "node", SUMO_TAG_NODE },
114  { "type", SUMO_TAG_TYPE },
115  { "detectorDefinition", SUMO_TAG_DETECTOR_DEFINITION },
116  { "routeDistribution", SUMO_TAG_ROUTE_DISTRIBUTION },
117  { "vTypeDistribution", SUMO_TAG_VTYPE_DISTRIBUTION },
118  { "vaporizer", SUMO_TAG_VAPORIZER },
119  { "roundabout", SUMO_TAG_ROUNDABOUT },
120  { "join", SUMO_TAG_JOIN },
121  { "joinExclude", SUMO_TAG_JOINEXCLUDE },
122  { "crossing", SUMO_TAG_CROSSING },
123  { "walkingArea", SUMO_TAG_WALKINGAREA },
124  { "stopOffset", SUMO_TAG_STOPOFFSET },
125  // OSM
126  { "way", SUMO_TAG_WAY },
127  { "nd", SUMO_TAG_ND },
128  { "tag", SUMO_TAG_TAG },
129  { "relation", SUMO_TAG_RELATION },
130  { "member", SUMO_TAG_MEMBER },
131  // View
132  { "viewsettings", SUMO_TAG_VIEWSETTINGS },
133  { "decal", SUMO_TAG_VIEWSETTINGS_DECAL },
134  { "light", SUMO_TAG_VIEWSETTINGS_LIGHT },
135  { "scheme", SUMO_TAG_VIEWSETTINGS_SCHEME },
136  { "opengl", SUMO_TAG_VIEWSETTINGS_OPENGL },
137  { "background", SUMO_TAG_VIEWSETTINGS_BACKGROUND },
138  { "edges", SUMO_TAG_VIEWSETTINGS_EDGES },
139  { "vehicles", SUMO_TAG_VIEWSETTINGS_VEHICLES },
140  { "persons", SUMO_TAG_VIEWSETTINGS_PERSONS },
141  { "containers", SUMO_TAG_VIEWSETTINGS_CONTAINERS },
142  { "junctions", SUMO_TAG_VIEWSETTINGS_JUNCTIONS },
143  { "additionals", SUMO_TAG_VIEWSETTINGS_ADDITIONALS },
144  { "pois", SUMO_TAG_VIEWSETTINGS_POIS },
145  { "polys", SUMO_TAG_VIEWSETTINGS_POLYS },
146  { "legend", SUMO_TAG_VIEWSETTINGS_LEGEND },
147  { "event", SUMO_TAG_VIEWSETTINGS_EVENT },
149  { "include", SUMO_TAG_INCLUDE },
150  { "delay", SUMO_TAG_DELAY },
151  { "viewport", SUMO_TAG_VIEWPORT },
152  { "snapshot", SUMO_TAG_SNAPSHOT },
153  { "breakpoints-file", SUMO_TAG_BREAKPOINTS_FILE },
154  { "breakpoint", SUMO_TAG_BREAKPOINT },
155  { "location", SUMO_TAG_LOCATION },
156  { "colorScheme", SUMO_TAG_COLORSCHEME },
157  { "scalingScheme", SUMO_TAG_SCALINGSCHEME },
158  { "entry", SUMO_TAG_ENTRY },
159  { "rngState", SUMO_TAG_RNGSTATE },
160  { "vehicleTransfer", SUMO_TAG_VEHICLETRANSFER },
161  { "device", SUMO_TAG_DEVICE },
162  // Cars
163  { "carFollowing-IDM", SUMO_TAG_CF_IDM },
164  { "carFollowing-IDMM", SUMO_TAG_CF_IDMM },
165  { "carFollowing-Krauss", SUMO_TAG_CF_KRAUSS },
166  { "carFollowing-KraussPS", SUMO_TAG_CF_KRAUSS_PLUS_SLOPE },
167  { "carFollowing-KraussOrig1", SUMO_TAG_CF_KRAUSS_ORIG1 },
168  { "carFollowing-KraussX", SUMO_TAG_CF_KRAUSSX },
169  { "carFollowing-SmartSK", SUMO_TAG_CF_SMART_SK },
170  { "carFollowing-Daniel1", SUMO_TAG_CF_DANIEL1 },
171  { "carFollowing-PWagner2009", SUMO_TAG_CF_PWAGNER2009 },
172  { "carFollowing-BKerner", SUMO_TAG_CF_BKERNER },
173  { "carFollowing-Wiedemann", SUMO_TAG_CF_WIEDEMANN },
174  { "carFollowing-Rail", SUMO_TAG_CF_RAIL },
175  { "carFollowing-ACC", SUMO_TAG_CF_ACC },
176  // Person
177  { "person", SUMO_TAG_PERSON },
178  { "personTrip", SUMO_TAG_PERSONTRIP },
179  { "ride", SUMO_TAG_RIDE },
180  { "walk", SUMO_TAG_WALK },
181  // Transport
182  { "container", SUMO_TAG_CONTAINER },
183  { "transport", SUMO_TAG_TRANSPORT },
184  { "tranship", SUMO_TAG_TRANSHIP },
185  //Trajectories
186  { "trajectories", SUMO_TAG_TRAJECTORIES },
187  { "timestep", SUMO_TAG_TIMESTEP },
188  { "timeSlice", SUMO_TAG_TIMESLICE },
189  { "actorConfig", SUMO_TAG_ACTORCONFIG },
190  { "motionState", SUMO_TAG_MOTIONSTATE },
191  { "odPair", SUMO_TAG_OD_PAIR },
192  // ActivityGen statistics file
193  { "general", AGEN_TAG_GENERAL },
194  { "street", AGEN_TAG_STREET },
195  { "workHours", AGEN_TAG_WORKHOURS },
196  { "opening", AGEN_TAG_OPENING },
197  { "closing", AGEN_TAG_CLOSING },
198  { "schools", AGEN_TAG_SCHOOLS },
199  { "school", AGEN_TAG_SCHOOL },
200  { "busStation", AGEN_TAG_BUSSTATION },
201  { "busLine", AGEN_TAG_BUSLINE },
202  { "stations", AGEN_TAG_STATIONS },
203  { "revStations", AGEN_TAG_REV_STATIONS },
204  { "station", AGEN_TAG_STATION },
205  { "frequency", AGEN_TAG_FREQUENCY },
206  { "population", AGEN_TAG_POPULATION },
207  { "bracket", AGEN_TAG_BRACKET },
208  { "cityGates", AGEN_TAG_CITYGATES },
209  { "entrance", AGEN_TAG_ENTRANCE },
210  { "parameters", AGEN_TAG_PARAM },
211  // Other
212  { "", SUMO_TAG_NOTHING } //< must be the last one
213 };
214 
215 
217  // Edge
218  { "id", SUMO_ATTR_ID },
219  { "refId", SUMO_ATTR_REFID },
220  { "name", SUMO_ATTR_NAME },
221  { "type", SUMO_ATTR_TYPE },
222  { "priority", SUMO_ATTR_PRIORITY },
223  { "numLanes", SUMO_ATTR_NUMLANES },
224  { "speed", SUMO_ATTR_SPEED },
225  { "oneway", SUMO_ATTR_ONEWAY },
226  { "width", SUMO_ATTR_WIDTH },
227  { "sidewalkWidth", SUMO_ATTR_SIDEWALKWIDTH },
228  { "bikeLaneWidth", SUMO_ATTR_BIKELANEWIDTH },
229  { "remove", SUMO_ATTR_REMOVE },
230  { "length", SUMO_ATTR_LENGTH },
231  // Split
232  { "idBefore", SUMO_ATTR_ID_BEFORE },
233  { "idAfter", SUMO_ATTR_ID_AFTER },
234  // Positions
235  { "x", SUMO_ATTR_X },
236  { "y", SUMO_ATTR_Y },
237  { "z", SUMO_ATTR_Z },
238  { "centerX", SUMO_ATTR_CENTER_X },
239  { "centerY", SUMO_ATTR_CENTER_Y },
240  { "centerZ", SUMO_ATTR_CENTER_Z },
241 
242  { "key", SUMO_ATTR_KEY },
243  { "requestSize", SUMO_ATTR_REQUESTSIZE },
244  { "request", SUMO_ATTR_REQUEST },
245  { "response", SUMO_ATTR_RESPONSE },
246  { "programID", SUMO_ATTR_PROGRAMID },
247  { "offset", SUMO_ATTR_OFFSET },
248  { "endOffset", SUMO_ATTR_ENDOFFSET },
249  { "incLanes", SUMO_ATTR_INCLANES },
250  { "intLanes", SUMO_ATTR_INTLANES },
251 
252  { "weight", SUMO_ATTR_WEIGHT },
253  { "node", SUMO_ATTR_NODE },
254  { "edge", SUMO_ATTR_EDGE },
255  { "edges", SUMO_ATTR_EDGES },
256  // Vehicle
257  { "depart", SUMO_ATTR_DEPART },
258  { "departLane", SUMO_ATTR_DEPARTLANE },
259  { "departPos", SUMO_ATTR_DEPARTPOS },
260  { "departPosLat", SUMO_ATTR_DEPARTPOS_LAT },
261  { "departSpeed", SUMO_ATTR_DEPARTSPEED },
262  { "arrivalLane", SUMO_ATTR_ARRIVALLANE },
263  { "arrivalPos", SUMO_ATTR_ARRIVALPOS },
264  { "arrivalPosLat", SUMO_ATTR_ARRIVALPOS_LAT },
265  { "arrivalSpeed", SUMO_ATTR_ARRIVALSPEED },
266  { "route", SUMO_ATTR_ROUTE },
267  { "maxSpeed", SUMO_ATTR_MAXSPEED },
268  { "maxSpeedLat", SUMO_ATTR_MAXSPEED_LAT },
269  { "latAlignment", SUMO_ATTR_LATALIGNMENT },
270  { "minGapLat", SUMO_ATTR_MINGAP_LAT },
271  { "accel", SUMO_ATTR_ACCEL },
272  { "decel", SUMO_ATTR_DECEL },
273  { "emergencyDecel", SUMO_ATTR_EMERGENCYDECEL },
274  { "apparentDecel", SUMO_ATTR_APPARENTDECEL },
275  { "actionStepLength", SUMO_ATTR_ACTIONSTEPLENGTH },
276  { "hasDriverState", SUMO_ATTR_HASDRIVERSTATE },
277  { "vClass", SUMO_ATTR_VCLASS },
278  { "vClasses", SUMO_ATTR_VCLASSES },
279  { "exceptions", SUMO_ATTR_EXCEPTIONS },
280  { "repno", SUMO_ATTR_REPNUMBER },
281  { "speedFactor", SUMO_ATTR_SPEEDFACTOR },
282  { "speedDev", SUMO_ATTR_SPEEDDEV },
283  { "laneChangeModel", SUMO_ATTR_LANE_CHANGE_MODEL },
284  { "carFollowModel", SUMO_ATTR_CAR_FOLLOW_MODEL },
285  { "minGap", SUMO_ATTR_MINGAP },
286  { "collisionMinGapFactor", SUMO_ATTR_COLLISION_MINGAP_FACTOR },
287  { "boardingDuration", SUMO_ATTR_BOARDING_DURATION },
288  { "loadingDuration", SUMO_ATTR_LOADING_DURATION },
289  // Charging Station
290  { "power", SUMO_ATTR_CHARGINGPOWER },
291  { "efficiency", SUMO_ATTR_EFFICIENCY },
292  { "chargeInTransit", SUMO_ATTR_CHARGEINTRANSIT },
293  { "chargeDelay", SUMO_ATTR_CHARGEDELAY},
294  // MSDevice_Battery
295  { "actualBatteryCapacity", SUMO_ATTR_ACTUALBATTERYCAPACITY },
296  { "maximumBatteryCapacity", SUMO_ATTR_MAXIMUMBATTERYCAPACITY },
297  { "maximumPower", SUMO_ATTR_MAXIMUMPOWER },
298  { "vehicleMass", SUMO_ATTR_VEHICLEMASS },
299  { "frontSurfaceArea", SUMO_ATTR_FRONTSURFACEAREA },
300  { "airDragCoefficient", SUMO_ATTR_AIRDRAGCOEFFICIENT },
301  { "internalMomentOfInertia", SUMO_ATTR_INTERNALMOMENTOFINERTIA },
302  { "radialDragCoefficient", SUMO_ATTR_RADIALDRAGCOEFFICIENT },
303  { "rollDragCoefficient", SUMO_ATTR_ROLLDRAGCOEFFICIENT },
304  { "constantPowerIntake", SUMO_ATTR_CONSTANTPOWERINTAKE },
305  { "propulsionEfficiency", SUMO_ATTR_PROPULSIONEFFICIENCY },
306  { "recuperationEfficiency", SUMO_ATTR_RECUPERATIONEFFICIENCY },
307  { "stoppingTreshold", SUMO_ATTR_STOPPINGTRESHOLD },
308  // MSBatteryExport
309  { "energyConsumed", SUMO_ATTR_ENERGYCONSUMED },
310  { "chargingStationId", SUMO_ATTR_CHARGINGSTATIONID },
311  { "energyCharged", SUMO_ATTR_ENERGYCHARGED },
312  { "energyChargedInTransit", SUMO_ATTR_ENERGYCHARGEDINTRANSIT },
313  { "energyChargedStopped", SUMO_ATTR_ENERGYCHARGEDSTOPPED },
314  { "posOnLane", SUMO_ATTR_POSONLANE },
315  { "timeStopped", SUMO_ATTR_TIMESTOPPED },
316  // ChargingStation output
317  { "chargingStatus", SUMO_ATTR_CHARGING_STATUS },
318  { "totalEnergyCharged", SUMO_ATTR_TOTALENERGYCHARGED },
319  { "chargingSteps", SUMO_ATTR_CHARGINGSTEPS },
320  { "totalEnergyChargedIntoVehicle", SUMO_ATTR_TOTALENERGYCHARGED_VEHICLE },
321  { "chargingBegin", SUMO_ATTR_CHARGINGBEGIN },
322  { "chargingEnd", SUMO_ATTR_CHARGINGEND },
323  { "partialCharge", SUMO_ATTR_PARTIALCHARGE },
324 
325  { "sigma", SUMO_ATTR_SIGMA },
326  { "tau", SUMO_ATTR_TAU },
327  { "tmp1", SUMO_ATTR_TMP1 },
328  { "tmp2", SUMO_ATTR_TMP2 },
329  { "tmp3", SUMO_ATTR_TMP3 },
330  { "tmp4", SUMO_ATTR_TMP4 },
331  { "tmp5", SUMO_ATTR_TMP5 },
332 
333  { "speedControlGain", SUMO_ATTR_SC_GAIN },
334  { "gapClosingControlGainSpeed", SUMO_ATTR_GCC_GAIN_SPEED },
335  { "gapClosingControlGainSpace", SUMO_ATTR_GCC_GAIN_SPACE },
336  { "gapControlGainSpeed", SUMO_ATTR_GC_GAIN_SPEED },
337  { "gapControlGainSpace", SUMO_ATTR_GC_GAIN_SPACE },
338  { "collisionAvoidanceGainSpeed", SUMO_ATTR_CA_GAIN_SPEED },
339  { "collisionAvoidanceGainSpace", SUMO_ATTR_CA_GAIN_SPACE },
340 
341  { "trainType", SUMO_ATTR_TRAIN_TYPE },
342 
343  { "lcStrategic", SUMO_ATTR_LCA_STRATEGIC_PARAM },
344  { "lcCooperative", SUMO_ATTR_LCA_COOPERATIVE_PARAM },
345  { "lcSpeedGain", SUMO_ATTR_LCA_SPEEDGAIN_PARAM },
346  { "lcKeepRight", SUMO_ATTR_LCA_KEEPRIGHT_PARAM },
347  { "lcSublane", SUMO_ATTR_LCA_SUBLANE_PARAM },
348  { "lcPushy", SUMO_ATTR_LCA_PUSHY },
349  { "lcPushyGap", SUMO_ATTR_LCA_PUSHYGAP },
350  { "lcAssertive", SUMO_ATTR_LCA_ASSERTIVE },
351  { "lcImpatience", SUMO_ATTR_LCA_IMPATIENCE },
352  { "lcTimeToImpatience", SUMO_ATTR_LCA_TIME_TO_IMPATIENCE },
353  { "lcAccelLat", SUMO_ATTR_LCA_ACCEL_LAT },
354  { "lcTurnAlignmentDistance", SUMO_ATTR_LCA_TURN_ALIGNMENT_DISTANCE },
355  { "lcLookaheadLeft", SUMO_ATTR_LCA_LOOKAHEADLEFT },
356  { "lcSpeedGainRight", SUMO_ATTR_LCA_SPEEDGAINRIGHT },
357  { "lcMaxSpeedLatStanding", SUMO_ATTR_LCA_MAXSPEEDLATSTANDING },
358  { "lcMaxSpeedLatFactor", SUMO_ATTR_LCA_MAXSPEEDLATFACTOR },
359  { "lcExperimental1", SUMO_ATTR_LCA_EXPERIMENTAL1 },
360 
361  { "jmCrossingGap", SUMO_ATTR_JM_CROSSING_GAP },
362  { "jmDriveAfterRedTime", SUMO_ATTR_JM_DRIVE_AFTER_RED_TIME },
363  { "jmDriveRedSpeed", SUMO_ATTR_JM_DRIVE_RED_SPEED },
364  { "jmIgnoreKeepClearTime", SUMO_ATTR_JM_IGNORE_KEEPCLEAR_TIME },
365  { "jmIgnoreFoeSpeed", SUMO_ATTR_JM_IGNORE_FOE_SPEED },
366  { "jmIgnoreFoeProb", SUMO_ATTR_JM_IGNORE_FOE_PROB },
367  { "jmSigmaMinor", SUMO_ATTR_JM_SIGMA_MINOR },
368  { "jmTimegapMinor", SUMO_ATTR_JM_TIMEGAP_MINOR },
369 
370  { "last", SUMO_ATTR_LAST },
371  { "cost", SUMO_ATTR_COST },
372  { "probability", SUMO_ATTR_PROB },
373  { "probabilities", SUMO_ATTR_PROBS },
374  { "routes", SUMO_ATTR_ROUTES },
375  { "vTypes", SUMO_ATTR_VTYPES },
376 
377  { "lane", SUMO_ATTR_LANE },
378  { "lanes", SUMO_ATTR_LANES },
379  { "from", SUMO_ATTR_FROM },
380  { "to", SUMO_ATTR_TO },
381  { "period", SUMO_ATTR_PERIOD },
382  { "fromTaz", SUMO_ATTR_FROM_TAZ },
383  { "toTaz", SUMO_ATTR_TO_TAZ },
384  { "reroute", SUMO_ATTR_REROUTE },
385  { "personCapacity", SUMO_ATTR_PERSON_CAPACITY },
386  { "containerCapacity", SUMO_ATTR_CONTAINER_CAPACITY },
387  { "personNumber", SUMO_ATTR_PERSON_NUMBER },
388  { "containerNumber", SUMO_ATTR_CONTAINER_NUMBER },
389  { "modes", SUMO_ATTR_MODES },
390  { "walkFactor", SUMO_ATTR_WALKFACTOR },
391 
392  { "function", SUMO_ATTR_FUNCTION },
393  { "pos", SUMO_ATTR_POSITION },
394  { "posLat", SUMO_ATTR_POSITION_LAT },
395  { "freq", SUMO_ATTR_FREQUENCY },
396  { "style", SUMO_ATTR_STYLE },
397  { "file", SUMO_ATTR_FILE },
398  { "junction", SUMO_ATTR_JUNCTION },
399  { "number", SUMO_ATTR_NUMBER },
400  { "duration", SUMO_ATTR_DURATION },
401  { "until", SUMO_ATTR_UNTIL },
402  { "routeProbe", SUMO_ATTR_ROUTEPROBE },
403  { "crossingEdges", SUMO_ATTR_CROSSING_EDGES },
404  // Traffic light & Nodes
405  { "time", SUMO_ATTR_TIME },
406  { "begin", SUMO_ATTR_BEGIN },
407  { "end", SUMO_ATTR_END },
408  { "tl", SUMO_ATTR_TLID },
409  { "tlType", SUMO_ATTR_TLTYPE },
410  { "linkIndex", SUMO_ATTR_TLLINKINDEX },
411  { "linkIndex2", SUMO_ATTR_TLLINKINDEX2 },
412  { "shape", SUMO_ATTR_SHAPE },
413  { "spreadType", SUMO_ATTR_SPREADTYPE },
414  { "radius", SUMO_ATTR_RADIUS },
415  { "customShape", SUMO_ATTR_CUSTOMSHAPE },
416  { "keepClear", SUMO_ATTR_KEEP_CLEAR },
417  { "color", SUMO_ATTR_COLOR },
418  { "dir", SUMO_ATTR_DIR },
419  { "state", SUMO_ATTR_STATE },
420  { "layer", SUMO_ATTR_LAYER },
421  { "fill", SUMO_ATTR_FILL },
422  { "prefix", SUMO_ATTR_PREFIX },
423  { "discard", SUMO_ATTR_DISCARD },
424 
425  { "fromLane", SUMO_ATTR_FROM_LANE },
426  { "toLane", SUMO_ATTR_TO_LANE },
427  { "dest", SUMO_ATTR_DEST },
428  { "source", SUMO_ATTR_SOURCE },
429  { "via", SUMO_ATTR_VIA },
430  { "nodes", SUMO_ATTR_NODES },
431  { "visibility", SUMO_ATTR_VISIBILITY_DISTANCE },
432 
433  { "minDur", SUMO_ATTR_MINDURATION },
434  { "maxDur", SUMO_ATTR_MAXDURATION },
435  { "foes", SUMO_ATTR_FOES },
436  // E2 detector
437  { "cont", SUMO_ATTR_CONT },
438  { "contPos", SUMO_ATTR_CONTPOS },
439  { "timeThreshold", SUMO_ATTR_HALTING_TIME_THRESHOLD },
440  { "speedThreshold", SUMO_ATTR_HALTING_SPEED_THRESHOLD },
441  { "jamThreshold", SUMO_ATTR_JAM_DIST_THRESHOLD },
442  // E3 detector
443  { "openEntry", SUMO_ATTR_OPEN_ENTRY },
444 
445  { "wautID", SUMO_ATTR_WAUT_ID },
446  { "junctionID", SUMO_ATTR_JUNCTION_ID },
447  { "procedure", SUMO_ATTR_PROCEDURE },
448  { "synchron", SUMO_ATTR_SYNCHRON },
449  { "refTime", SUMO_ATTR_REF_TIME },
450  { "startProg", SUMO_ATTR_START_PROG },
451  { "off", SUMO_ATTR_OFF },
452  { "friendlyPos", SUMO_ATTR_FRIENDLY_POS },
453  { "splitByType", SUMO_ATTR_SPLIT_VTYPE },
454  { "uncontrolled", SUMO_ATTR_UNCONTROLLED },
455  { "pass", SUMO_ATTR_PASS },
456  { "busStop", SUMO_ATTR_BUS_STOP },
457  { "containerStop", SUMO_ATTR_CONTAINER_STOP },
458  { "parkingArea", SUMO_ATTR_PARKING_AREA },
459  { "roadsideCapacity", SUMO_ATTR_ROADSIDE_CAPACITY },
460  { "chargingStation", SUMO_ATTR_CHARGING_STATION},
461  { "line", SUMO_ATTR_LINE },
462  { "lines", SUMO_ATTR_LINES },
463  { "intended", SUMO_ATTR_INTENDED },
464  { "value", SUMO_ATTR_VALUE },
465  { "prohibitor", SUMO_ATTR_PROHIBITOR },
466  { "prohibited", SUMO_ATTR_PROHIBITED },
467  { "allow", SUMO_ATTR_ALLOW },
468  { "disallow", SUMO_ATTR_DISALLOW },
469  { "prefer", SUMO_ATTR_PREFER },
470  { "controlledInner", SUMO_ATTR_CONTROLLED_INNER },
471  { "vehsPerHour", SUMO_ATTR_VEHSPERHOUR },
472  { "output", SUMO_ATTR_OUTPUT },
473  { "height", SUMO_ATTR_HEIGHT },
474  { "guiShape", SUMO_ATTR_GUISHAPE },
475  { "osgFile", SUMO_ATTR_OSGFILE },
476  { "imgFile", SUMO_ATTR_IMGFILE },
477  { "relativePath", SUMO_ATTR_RELATIVEPATH },
478  { "angle", SUMO_ATTR_ANGLE },
479  { "emissionClass", SUMO_ATTR_EMISSIONCLASS },
480  { "impatience", SUMO_ATTR_IMPATIENCE },
481  { "startPos", SUMO_ATTR_STARTPOS },
482  { "endPos", SUMO_ATTR_ENDPOS },
483  { "triggered", SUMO_ATTR_TRIGGERED },
484  { "containerTriggered", SUMO_ATTR_CONTAINER_TRIGGERED },
485  { "parking", SUMO_ATTR_PARKING },
486  { "expected", SUMO_ATTR_EXPECTED },
487  { "expectedContainers", SUMO_ATTR_EXPECTED_CONTAINERS },
488  { "index", SUMO_ATTR_INDEX },
489 
490  { "entering", SUMO_ATTR_ENTERING },
491  { "excludeEmpty", SUMO_ATTR_EXCLUDE_EMPTY },
492  { "withInternal", SUMO_ATTR_WITH_INTERNAL },
493  { "trackVehicles", SUMO_ATTR_TRACK_VEHICLES },
494  { "maxTraveltime", SUMO_ATTR_MAX_TRAVELTIME },
495  { "minSamples", SUMO_ATTR_MIN_SAMPLES },
496 
497  { "lon", SUMO_ATTR_LON },
498  { "lat", SUMO_ATTR_LAT },
499  { "geo", SUMO_ATTR_GEO },
500  { "geoShape", SUMO_ATTR_GEOSHAPE },
501  { "lon/lat", SUMO_ATTR_GEOPOSITION },
502  { "k", SUMO_ATTR_K },
503  { "v", SUMO_ATTR_V },
504  { "ref", SUMO_ATTR_REF },
505  { "href", SUMO_ATTR_HREF },
506  { "zoom", SUMO_ATTR_ZOOM },
507  { "interpolated", SUMO_ATTR_INTERPOLATED },
508  { "threshold", SUMO_ATTR_THRESHOLD },
509 
510  { "netOffset", SUMO_ATTR_NET_OFFSET },
511  { "convBoundary", SUMO_ATTR_CONV_BOUNDARY },
512  { "origBoundary", SUMO_ATTR_ORIG_BOUNDARY },
513  { "projParameter", SUMO_ATTR_ORIG_PROJ },
514 
515  { "tauLast", SUMO_ATTR_CF_PWAGNER2009_TAULAST },
516  { "apProb", SUMO_ATTR_CF_PWAGNER2009_APPROB },
517  { "delta", SUMO_ATTR_CF_IDM_DELTA },
518  { "stepping", SUMO_ATTR_CF_IDM_STEPPING },
519  { "adaptFactor", SUMO_ATTR_CF_IDMM_ADAPT_FACTOR },
520  { "adaptTime", SUMO_ATTR_CF_IDMM_ADAPT_TIME },
521  { "phi", SUMO_ATTR_CF_KERNER_PHI },
522 
523  { "security", SUMO_ATTR_CF_WIEDEMANN_SECURITY },
524  { "estimation", SUMO_ATTR_CF_WIEDEMANN_ESTIMATION },
525 
526  { "generateWalks", SUMO_ATTR_GENERATE_WALKS },
527  { "actType", SUMO_ATTR_ACTTYPE },
528  { "slope", SUMO_ATTR_SLOPE },
529  { "version", SUMO_ATTR_VERSION },
530  { "junctionCornerDetail", SUMO_ATTR_CORNERDETAIL },
531  { "junctionLinkDetail", SUMO_ATTR_LINKDETAIL },
532  { "rectangularLaneCut", SUMO_ATTR_RECTANGULAR_LANE_CUT },
533  { "walkingareas", SUMO_ATTR_WALKINGAREAS },
534  { "lefthand", SUMO_ATTR_LEFTHAND },
535  { "limitTurnSpeed", SUMO_ATTR_LIMIT_TURN_SPEED },
536 
537  { "actorConfig", SUMO_ATTR_ACTORCONFIG },
538  { "vehicle", SUMO_ATTR_VEHICLE },
539  { "startTime", SUMO_ATTR_STARTTIME },
540  { "vehicleClass", SUMO_ATTR_VEHICLECLASS },
541  { "fuel", SUMO_ATTR_FUEL },
542  { "acceleration", SUMO_ATTR_ACCELERATION },
543  { "amount", SUMO_ATTR_AMOUNT },
544  { "origin", SUMO_ATTR_ORIGIN },
545  { "destination", SUMO_ATTR_DESTINATION },
546  { "visible", SUMO_ATTR_VISIBLE },
547 
548 #ifndef WIN32
549  { "commandPosix", SUMO_ATTR_COMMAND },
550 #else
551  { "commandWindows", SUMO_ATTR_COMMAND },
552 #endif
553 
554  // ActivityGen statistics file
555  { "inhabitants", AGEN_ATTR_INHABITANTS },
556  { "households", AGEN_ATTR_HOUSEHOLDS },
557  { "childrenAgeLimit", AGEN_ATTR_CHILDREN },
558  { "retirementAgeLimit", AGEN_ATTR_RETIREMENT },
559  { "carRate", AGEN_ATTR_CARS },
560  { "unemploymentRate", AGEN_ATTR_UNEMPLOYEMENT },
561  { "laborDemand", AGEN_ATTR_LABORDEMAND },
562  { "footDistanceLimit", AGEN_ATTR_MAX_FOOT_DIST },
563  { "incomingTraffic", AGEN_ATTR_IN_TRAFFIC },
564  { "incoming", AGEN_ATTR_INCOMING },
565  { "outgoingTraffic", AGEN_ATTR_OUT_TRAFFIC },
566  { "outgoing", AGEN_ATTR_OUTGOING },
567  { "population", AGEN_ATTR_POPULATION },
568  { "workPosition", AGEN_ATTR_OUT_WORKPOSITION },
569  { "hour", AGEN_ATTR_HOUR },
570  { "proportion", AGEN_ATTR_PROP },
571  { "capacity", AGEN_ATTR_CAPACITY },
572  { "opening", AGEN_ATTR_OPENING },
573  { "closing", AGEN_ATTR_CLOSING },
574  { "maxTripDuration", AGEN_ATTR_MAX_TRIP_DURATION },
575  { "rate", AGEN_ATTR_RATE },
576  { "beginAge", AGEN_ATTR_BEGINAGE },
577  { "endAge", AGEN_ATTR_ENDAGE },
578  { "peopleNbr", AGEN_ATTR_PEOPLENBR },
579  { "carPreference", AGEN_ATTR_CARPREF },
580  { "meanTimePerKmInCity", AGEN_ATTR_CITYSPEED },
581  { "freeTimeActivityRate", AGEN_ATTR_FREETIMERATE },
582  { "uniformRandomTraffic", AGEN_ATTR_UNI_RAND_TRAFFIC },
583  { "departureVariation", AGEN_ATTR_DEP_VARIATION },
584 
585  // netEdit
586  { "selected", GNE_ATTR_SELECTED },
587  { "modificationStatusNotForPrinting", GNE_ATTR_MODIFICATION_STATUS },
588  { "shapeStart", GNE_ATTR_SHAPE_START },
589  { "shapeEnd", GNE_ATTR_SHAPE_END },
590  { "bidiRail", GNE_ATTR_BIDIR },
591  { "blockMovement", GNE_ATTR_BLOCK_MOVEMENT },
592  { "blockShape", GNE_ATTR_BLOCK_SHAPE },
593  { "closedShape", GNE_ATTR_CLOSE_SHAPE },
594  { "parentItem", GNE_ATTR_PARENT },
595  { "genericParameter", GNE_ATTR_GENERIC },
596 
597  { "targetLanes", SUMO_ATTR_TARGETLANE },
598  { "crossing", SUMO_ATTR_CROSSING },
599 
600  { "xmlns:xsi", SUMO_ATTR_XMLNS },
601  { "xsi:noNamespaceSchemaLocation", SUMO_ATTR_SCHEMA_LOCATION },
602 
603  //@name RNG state saving attributes
604  // @{
605  { "default", SUMO_ATTR_RNG_DEFAULT },
606  { "routeHandler", SUMO_ATTR_RNG_ROUTEHANDLER },
607  { "insertionControl", SUMO_ATTR_RNG_INSERTIONCONTROL },
608  { "device", SUMO_ATTR_RNG_DEVICE },
609  { "device.btreceiver", SUMO_ATTR_RNG_DEVICE_BT },
610  { "driverState", SUMO_ATTR_RNG_DRIVERSTATE },
611  // @}
612 
613  // Other
614  { "", SUMO_ATTR_NOTHING } //< must be the last one
615 };
616 
617 
618 const std::string SUMO_PARAM_ORIGID("origId");
619 
620 
622  {"traffic_light", NODETYPE_TRAFFIC_LIGHT},
623  {"traffic_light_unregulated", NODETYPE_TRAFFIC_LIGHT_NOJUNCTION},
624  {"traffic_light_right_on_red", NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED},
625  {"rail_signal", NODETYPE_RAIL_SIGNAL},
626  {"rail_crossing", NODETYPE_RAIL_CROSSING},
627  {"priority", NODETYPE_PRIORITY},
628  {"priority_stop", NODETYPE_PRIORITY_STOP},
629  {"right_before_left", NODETYPE_RIGHT_BEFORE_LEFT},
630  {"allway_stop", NODETYPE_ALLWAY_STOP},
631  {"zipper", NODETYPE_ZIPPER},
632  {"district", NODETYPE_DISTRICT},
633  {"unregulated", NODETYPE_NOJUNCTION},
634  {"internal", NODETYPE_INTERNAL},
635  {"dead_end", NODETYPE_DEAD_END},
636  {"DEAD_END", NODETYPE_DEAD_END_DEPRECATED},
637  {"unknown", NODETYPE_UNKNOWN} //< must be the last one
638 };
639 
640 
642  {"unknown", EDGEFUNC_UNKNOWN},
643  {"normal", EDGEFUNC_NORMAL},
644  {"connector", EDGEFUNC_CONNECTOR},
645  {"crossing", EDGEFUNC_CROSSING},
646  {"walkingarea", EDGEFUNC_WALKINGAREA},
647  {"internal", EDGEFUNC_INTERNAL} //< must be the last one
648 };
649 
650 
652  {"right", LANESPREAD_RIGHT }, // default
653  {"center", LANESPREAD_CENTER } //< must be the last one
654 };
655 
656 
658  { "G", LINKSTATE_TL_GREEN_MAJOR },
659  { "g", LINKSTATE_TL_GREEN_MINOR },
660  { "r", LINKSTATE_TL_RED },
661  { "u", LINKSTATE_TL_REDYELLOW },
662  { "Y", LINKSTATE_TL_YELLOW_MAJOR },
663  { "y", LINKSTATE_TL_YELLOW_MINOR },
664  { "o", LINKSTATE_TL_OFF_BLINKING },
665  { "O", LINKSTATE_TL_OFF_NOSIGNAL },
666  { "M", LINKSTATE_MAJOR },
667  { "m", LINKSTATE_MINOR },
668  { "=", LINKSTATE_EQUAL },
669  { "s", LINKSTATE_STOP },
670  { "w", LINKSTATE_ALLWAY_STOP },
671  { "Z", LINKSTATE_ZIPPER },
672  { "-", LINKSTATE_DEADEND } //< must be the last one
673 };
674 
675 
677  { "s", LINKDIR_STRAIGHT },
678  { "t", LINKDIR_TURN },
679  { "T", LINKDIR_TURN_LEFTHAND },
680  { "l", LINKDIR_LEFT },
681  { "r", LINKDIR_RIGHT },
682  { "L", LINKDIR_PARTLEFT },
683  { "R", LINKDIR_PARTRIGHT },
684  { "invalid", LINKDIR_NODIR } //< must be the last one
685 };
686 
687 
689  { "static", TLTYPE_STATIC },
690  { "rail", TLTYPE_RAIL },
691  { "actuated", TLTYPE_ACTUATED },
692  { "delay_based", TLTYPE_DELAYBASED },
693  { "sotl_phase", TLTYPE_SOTL_PHASE },
694  { "sotl_platoon", TLTYPE_SOTL_PLATOON },
695  { "sotl_request", TLTYPE_SOTL_REQUEST },
696  { "sotl_wave", TLTYPE_SOTL_WAVE },
697  { "sotl_marching", TLTYPE_SOTL_MARCHING },
698  { "swarm", TLTYPE_SWARM_BASED },
699  { "deterministic", TLTYPE_HILVL_DETERMINISTIC },
700  { "<invalid>", TLTYPE_INVALID } //< must be the last one
701 };
702 
703 
705  { "DK2008", LCM_DK2008 },
706  { "LC2013", LCM_LC2013 },
707  { "SL2015", LCM_SL2015 },
708  { "default", LCM_DEFAULT } //< must be the last one
709 };
710 
712  { "IDM", SUMO_TAG_CF_IDM },
713  { "IDMM", SUMO_TAG_CF_IDMM },
714  { "Krauss", SUMO_TAG_CF_KRAUSS },
715  { "KraussPS", SUMO_TAG_CF_KRAUSS_PLUS_SLOPE },
716  { "KraussOrig1", SUMO_TAG_CF_KRAUSS_ORIG1 },
717  { "KraussX", SUMO_TAG_CF_KRAUSSX }, // experimental extensions to the Krauss model
718  { "SmartSK", SUMO_TAG_CF_SMART_SK },
719  { "Daniel1", SUMO_TAG_CF_DANIEL1 },
720  { "PWagner2009", SUMO_TAG_CF_PWAGNER2009 },
721  { "BKerner", SUMO_TAG_CF_BKERNER },
722  { "Rail", SUMO_TAG_CF_RAIL },
723  { "ACC", SUMO_TAG_CF_ACC },
724  { "Wiedemann", SUMO_TAG_CF_WIEDEMANN } //< must be the last one
725 };
726 
728  { "right", LATALIGN_RIGHT },
729  { "center", LATALIGN_CENTER },
730  { "arbitrary", LATALIGN_ARBITRARY },
731  { "nice", LATALIGN_NICE },
732  { "compact", LATALIGN_COMPACT },
733  { "left", LATALIGN_LEFT } //< must be the last one
734 };
735 
737  { "stay", LCA_STAY },
738  { "left", LCA_LEFT },
739  { "right", LCA_RIGHT },
740  { "strategic", LCA_STRATEGIC },
741  { "cooperative", LCA_COOPERATIVE },
742  { "speedGain", LCA_SPEEDGAIN },
743  { "keepRight", LCA_KEEPRIGHT },
744  { "sublane", LCA_SUBLANE },
745  { "traci", LCA_TRACI },
746  { "urgent", LCA_URGENT },
747  { "overlapping", LCA_OVERLAPPING },
748  { "blocked", LCA_BLOCKED },
749  { "amBL", LCA_AMBLOCKINGLEADER },
750  { "amBF", LCA_AMBLOCKINGFOLLOWER },
751  { "amBB", LCA_AMBACKBLOCKER },
752  { "amBBS", LCA_AMBACKBLOCKER_STANDING },
753  { "MR", LCA_MRIGHT },
754  { "ML", LCA_MLEFT },
755 
756  { "unknown", LCA_UNKNOWN } //< must be the last one
757 };
758 
760  SUMOXMLDefinitions::tags, SUMO_TAG_NOTHING);
761 
763  SUMOXMLDefinitions::attrs, SUMO_ATTR_NOTHING);
764 
766  SUMOXMLDefinitions::sumoNodeTypeValues, NODETYPE_UNKNOWN);
767 
769  SUMOXMLDefinitions::sumoEdgeFuncValues, EDGEFUNC_INTERNAL);
770 
772  SUMOXMLDefinitions::laneSpreadFunctionValues, LANESPREAD_CENTER);
773 
775  SUMOXMLDefinitions::linkStateValues, LINKSTATE_DEADEND);
776 
778  SUMOXMLDefinitions::linkDirectionValues, LINKDIR_NODIR);
779 
781  SUMOXMLDefinitions::trafficLightTypesValues, TLTYPE_INVALID);
782 
784  SUMOXMLDefinitions::laneChangeModelValues, LCM_DEFAULT);
785 
787  SUMOXMLDefinitions::carFollowModelValues, SUMO_TAG_CF_WIEDEMANN);
788 
790  SUMOXMLDefinitions::lateralAlignmentValues, LATALIGN_LEFT);
791 
793  SUMOXMLDefinitions::laneChangeActionValues, LCA_UNKNOWN);
794 
795 
796 std::string
797 SUMOXMLDefinitions::getJunctionIDFromInternalEdge(const std::string internalEdge) {
798  assert(internalEdge[0] == ':');
799  return internalEdge.substr(1, internalEdge.rfind('_') - 1);
800 }
801 
802 
803 std::string
804 SUMOXMLDefinitions::getEdgeIDFromLane(const std::string laneID) {
805  return laneID.substr(0, laneID.rfind('_'));
806 }
807 
808 
809 bool
810 SUMOXMLDefinitions::isValidNetID(const std::string& value) {
811  return (value.size() > 0) && value.find_first_of(" \t\n\r|\\'\";,:!<>&*?") == std::string::npos;
812 }
813 
814 
815 bool
816 SUMOXMLDefinitions::isValidVehicleID(const std::string& value) {
817  return (value.size() > 0) && value.find_first_of(" \t\n\r|\\'\";,!<>&*?") == std::string::npos;
818 }
819 
820 
821 bool
822 SUMOXMLDefinitions::isValidTypeID(const std::string& value) {
823  return (value.size() > 0) && value.find_first_of(" \t\n\r|\\'\";,<>&*?") == std::string::npos;
824 }
825 
826 
827 bool
828 SUMOXMLDefinitions::isValidAttribute(const std::string& value) {
829  return value.find_first_of("\t\n\r@$%^&/|\\{}*'\";:<>") == std::string::npos;
830 }
831 
832 
833 bool
834 SUMOXMLDefinitions::isValidFilename(const std::string& value) {
835  return (value.find_first_of("\t\n\r@$%^&|\\{}*'\";:<>") == std::string::npos);
836 }
837 
838 
839 bool
840 SUMOXMLDefinitions::isValidListOfNetIDs(const std::string& value) {
841  std::vector<std::string> typeIDs;
842  SUMOSAXAttributes::parseStringVector(value, typeIDs);
843  if (typeIDs.empty()) {
844  return false;
845  } else {
846  // check that gives IDs are valid
847  for (auto i : typeIDs) {
849  return false;
850  }
851  }
852  return true;
853  }
854 }
855 
856 
857 bool
858 SUMOXMLDefinitions::isValidListOfTypeID(const std::string& value) {
859  std::vector<std::string> typeIDs;
860  SUMOSAXAttributes::parseStringVector(value, typeIDs);
861  if (typeIDs.empty()) {
862  return false;
863  } else {
864  // check that gives IDs are valid
865  for (auto i : typeIDs) {
867  return false;
868  }
869  }
870  return true;
871  }
872 }
873 
874 
875 bool
877  // Generic parameters keys cannot be empty
878  return (value.size() > 0);
879 }
880 
881 
882 bool
884  // Generic parameters should not be restricted (characters such as <>'" only
885  // reach this function if they are properly escaped in the xml inputs (and
886  // they are also escaped when writing)
887  return true;
888 }
889 
890 /****************************************************************************/
891 
number of steps that a vehicle is charging
The information about how to spread the lanes from the given position.
static StringBijection< LaneChangeModel >::Entry laneChangeModelValues[]
lane change model values
The link is a partial left direction.
The link has green light, may pass.
Internal moment of inertia.
segment of a lane
static StringBijection< SumoXMLTag > CarFollowModels
car following models
static StringBijection< SumoXMLNodeType > NodeTypes
node types
a routeprobe detector
static StringBijection< LinkDirection >::Entry linkDirectionValues[]
link direction values
a list of node ids, used for controlling joining
alternative tag for e1 detector
description of a vehicle type
Whether vehicles must keep the junction clear.
split something
whether a given shape is user-defined
a source within a district (connection road)
The action is due to the default of keeping right "Rechtsfahrgebot".
ActivityGen Tags.
The action is done to help someone else.
static StringBijection< int >::Entry attrs[]
The names of SUMO-XML attributes (for passing to GenericSAXHandler)
static bool isValidAttribute(const std::string &value)
whether the given string is a valid attribute for a certain key (for example, a name) ...
static StringBijection< LinkState >::Entry linkStateValues[]
link state values
static bool isValidListOfTypeID(const std::string &value)
whether the given string is a valid list of ids for an edge or vehicle type (empty aren&#39;t allowed) ...
root element of a network file
begin/end of the description of a junction
begin/end of the description of a single lane
a flow definition (used by router)
block shape of a graphic element (Used mainly in GNEShapes)
Outgoing edge specification (jtrrouter)
static StringBijection< LaneSpreadFunction >::Entry laneSpreadFunctionValues[]
lane spread function values
A calibrator placed over edge.
static StringBijection< LaneSpreadFunction > LaneSpreadFunctions
lane spread functions
a traffic assignment zone
distribution of a route
lane of a reroute of type closing
A layer number.
The link has green light, has to brake.
connectio between two lanes
This is an uncontrolled, minor link, has to stop.
Allow/disallow charge in transit in Charging Stations.
static StringBijection< LateralAlignment >::Entry lateralAlignmentValues[]
lanteral alignment values
static std::string getJunctionIDFromInternalEdge(const std::string internalEdge)
return the junction id when given an edge of type internal, crossing or WalkingArea ...
workingHours object
closing for workingHours object
foe visibility distance of a link
population and children accompaniment brackets
The link is a 180 degree turn.
Wants go to the right.
Close shape of a polygon (Used by GNEPolys)
a flow state definition (used when saving and loading simulatino state)
weights: time range begin
link,node: the traffic light id responsible for this link
This is a dead end link.
tgotal of Energy charged
begin/end of the description of a Point of interest
This is an uncontrolled, right-before-left link.
maximum duration of a phase
align with the closest sublane border
static StringBijection< LinkState > LinkStates
link states
static StringBijection< SumoXMLNodeType >::Entry sumoNodeTypeValues[]
containers for the different SUMOXMLDefinitions
drive on the right side
begin/end of the description of an edge restriction
The link is controlled by a tls which is off, not blinking, may pass.
A parking space for a single vehicle within a parking area.
Wants go to the left.
first coordinate of edge shape
static bool isValidGenericParameterKey(const std::string &value)
whether the given string is a valid key for a generic parameter
This is an uncontrolled, all-way stop link.
The action is due to the wish to be faster (tactical lc)
generic attribute
used by the sublane model
prohibition of circulation between two edges
The link is a (hard) left direction.
This is an uncontrolled, zipper-merge link.
begin/end of the description of a route
Position on lane.
an e3 entry point
Sink(s) specification.
link: the index of the opposite direction link of a pedestrian crossing
whether a feature has been loaded,guessed,modified or approved
Radial drag coefficient.
an edge based mean data detector
The link is a straight direction.
Needs to stay on the current lane.
The state of a link.
drive on the left side
static StringBijection< LinkDirection > LinkDirections
link directions
alternative definition for Population
static void parseStringVector(const std::string &def, std::vector< std::string > &into)
Splits the given string.
The action has not been determined.
The definition of a periodic event.
root element of a route file
The turning radius at an intersection in m.
whether an edge is part of a bidirectional railway
static StringBijection< LaneChangeAction > LaneChangeActions
lane change actions
static bool isValidGenericParameterValue(const std::string &value)
whether the given string is a valid value for a generic parameter
blocked in all directions
the edges of a route
station for a certain vehicle
rev stations for certain vehicles
The action is urgent (to be defined by lc-model)
frequency of a object
An instantenous induction loop.
static StringBijection< TrafficLightType > TrafficLightTypes
traffic light types
This is an uncontrolled, minor link, has to brake.
walking area for pedestrians
parameter associated to a certain key
an e3 exit point
timesteps in which charging ends
schools object
An edge-following detector.
A calibrator placed over lane (used in netedit)
busStation and bus objects
block movement of a graphic element
invalid attribute
definition of a detector
roundabout defined in junction
Incoming edge specification (jtrrouter)
energy provied by charging station at certain timestep
The link is a (hard) right direction.
Energy charged in transit.
The action is needed to follow the route (navigational lc)
node: the type of traffic light
edge: the shape in xml-definition
probability of route of a reroute
probability of destiny of a reroute
begin/end of the description of a neighboring lane
maintain the current alignment
The link is a partial right direction.
description of a logic request within the junction
streets object
begin/end of the description of an edge
timestep in which charging begins
static bool isValidNetID(const std::string &value)
whether the given string is a valid id for a network element
reroute of type closing
drive in the middle
entry for an alternative parking zone
static StringBijection< int >::Entry tags[]
The names of SUMO-XML elements (for passing to GenericSAXHandler)
static StringBijection< LateralAlignment > LateralAlignments
lateral alignments
stop for vehicles
a lane based mean data detector
trigger: the time of the step
A train stop (alias for bus stop)
alternative definition for city entrances
a sink within a district (connection road)
the edges crossed by a pedestrian crossing
static StringBijection< LaneChangeAction >::Entry laneChangeActionValues[]
lane change action values
The link has yellow light, may pass.
The vehicle is blocked being overlapping.
The link is controlled by a tls which is off and blinks, has to brake.
static StringBijection< int > Attrs
The names of SUMO-XML attributes for use in netbuild.
weights: time range end
Join operation.
a vtypeprobe detector
element is selected
alternative definition for junction
static bool isValidListOfNetIDs(const std::string &value)
whether the given string is a valid list of id for a network (empty aren&#39;t allowed) ...
The link has red light (must brake)
Energy charged stopped.
This is an uncontrolled, major link, may pass.
total energy charged into a single vehicle
crossing between edges for pedestrians
vaporizer of vehicles
The abstract direction of a link.
align with the rightmost sublane that allows keeping the current speed
description of a vehicle
an aggreagated-output interval
The action is due to a TraCI request.
The link is a 180 degree turn (left-hand network)
static StringBijection< SumoXMLTag >::Entry carFollowModelValues[]
car follwing model values
A variable speed sign.
Eficiency of the charge in Charging Stations.
link: the index of the link within the traffic light
last coordinate of edge shape
a single trip definition (used by router)
type of polygon
parent of an additional element
static StringBijection< int > Tags
The names of SUMO-XML elements for use in netbuild.
a traffic light logic
static bool isValidTypeID(const std::string &value)
whether the given string is a valid id for an edge or vehicle type
Delay in the charge of charging stations.
static StringBijection< SumoXMLEdgeFunc >::Entry sumoEdgeFuncValues[]
edge function values
The link has yellow light, has to brake anyway.
opening for workingHours object
delete certain element
begin/end of the description of a Point of interest over Lane (used by Netedit)
static std::string getEdgeIDFromLane(const std::string laneID)
return edge id when given the lane ID
static StringBijection< SumoXMLEdgeFunc > EdgeFunctions
edge functions
An access point for a train stop.
distribution of a vehicle type
static bool isValidFilename(const std::string &value)
whether the given string is a valid attribute for a filename (for example, a name) ...
A color information.
The link has red light (must brake) but indicates upcoming green.
a single phase description
static StringBijection< LaneChangeModel > LaneChangeModels
lane change models
alternative tag for e3 detector
static bool isValidVehicleID(const std::string &value)
whether the given string is a valid id for a vehicle or flow
Fill the polygon.
alternative tag for e2 detector
const std::string SUMO_PARAM_ORIGID("origId")
stations for certain vehicles
join exlude operation
static StringBijection< TrafficLightType >::Entry trafficLightTypesValues[]
traffic light types values
begin/end of the description of a polygon
trigger: a step description
The link has no direction (is a dead end link)
Information on vClass specific stop offsets at lane end.