Eclipse SUMO - Simulation of Urban MObility
TraCIAPI.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2012-2020 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials are made available under the
5 // terms of the Eclipse Public License 2.0 which is available at
6 // https://www.eclipse.org/legal/epl-2.0/
7 // This Source Code may also be made available under the following Secondary
8 // Licenses when the conditions for such availability set forth in the Eclipse
9 // Public License 2.0 are satisfied: GNU General Public License, version 2
10 // or later which is available at
11 // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12 // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13 /****************************************************************************/
20 // C++ TraCI client API implementation
21 /****************************************************************************/
22 #pragma once
23 #include <vector>
24 #include <limits>
25 #include <string>
26 #include <sstream>
27 #include <iomanip>
28 #include <foreign/tcpip/socket.h>
29 #include <libsumo/TraCIConstants.h>
30 #include <libsumo/TraCIDefs.h>
31 
32 // ===========================================================================
33 // global definitions
34 // ===========================================================================
35 #define DEFAULT_VIEW "View #0"
36 #define PRECISION 2
37 
38 // ===========================================================================
39 // class definitions
40 // ===========================================================================
47 class TraCIAPI {
48 public:
51  TraCIAPI();
52 
54  ~TraCIAPI();
55 
58 
64  void connect(const std::string& host, int port);
65 
67  void setOrder(int order);
68 
70  void close();
72 
74  void simulationStep(double time = 0);
75 
77  void load(const std::vector<std::string>& args);
78 
80  std::pair<int, std::string> getVersion();
81 
88  public:
92  TraCIScopeWrapper(TraCIAPI& parent, int cmdGetID, int cmdSetID, int subscribeID, int contextSubscribeID) :
93  myParent(parent),
94  myCmdGetID(cmdGetID),
95  myCmdSetID(cmdSetID),
96  mySubscribeID(subscribeID),
97  myContextSubscribeID(contextSubscribeID) {
98  }
99 
101  virtual ~TraCIScopeWrapper() {}
102 
103  std::vector<std::string> getIDList() const;
104  int getIDCount() const;
105 
107  std::string getParameter(const std::string& objectID, const std::string& key) const;
108 
110  std::pair<std::string, std::string> getParameterWithKey(const std::string& objectID, const std::string& key) const;
111 
113  void setParameter(const std::string& objectID, const std::string& key, const std::string& value) const;
114 
115  void subscribe(const std::string& objID, const std::vector<int>& vars, double beginTime, double endTime) const;
116  void subscribeContext(const std::string& objID, int domain, double range, const std::vector<int>& vars, double beginTime, double endTime) const;
117 
119  const libsumo::TraCIResults getSubscriptionResults(const std::string& objID) const;
120 
122  const libsumo::SubscriptionResults getContextSubscriptionResults(const std::string& objID) const;
123 
124  // the following are only for internal use
128 
129  protected:
130  int getUnsignedByte(int var, const std::string& id, tcpip::Storage* add = 0) const;
131  int getByte(int var, const std::string& id, tcpip::Storage* add = 0) const;
132  int getInt(int var, const std::string& id, tcpip::Storage* add = 0) const;
133  double getDouble(int var, const std::string& id, tcpip::Storage* add = 0) const;
134  libsumo::TraCIPositionVector getPolygon(int var, const std::string& id, tcpip::Storage* add = 0) const;
135  libsumo::TraCIPosition getPos(int var, const std::string& id, tcpip::Storage* add = 0) const;
136  libsumo::TraCIPosition getPos3D(int var, const std::string& id, tcpip::Storage* add = 0) const;
137  std::string getString(int var, const std::string& id, tcpip::Storage* add = 0) const;
138  std::vector<std::string> getStringVector(int var, const std::string& id, tcpip::Storage* add = 0) const;
139  libsumo::TraCIColor getCol(int var, const std::string& id, tcpip::Storage* add = 0) const;
140  libsumo::TraCIStage getTraCIStage(int var, const std::string& id, tcpip::Storage* add = 0) const;
141 
142  void setInt(int var, const std::string& id, int value) const;
143  void setDouble(int var, const std::string& id, double value) const;
144  void setString(int var, const std::string& id, const std::string& value) const;
145  void setStringVector(int var, const std::string& id, const std::vector<std::string>& value) const;
146 
147  protected:
150 
151  private:
158 
159 
160  private:
163  };
164 
165 
169  class EdgeScope : public TraCIScopeWrapper {
170  public:
172  virtual ~EdgeScope() {}
173 
174  double getAdaptedTraveltime(const std::string& edgeID, double time) const;
175  double getEffort(const std::string& edgeID, double time) const;
176  double getCO2Emission(const std::string& edgeID) const;
177  double getCOEmission(const std::string& edgeID) const;
178  double getHCEmission(const std::string& edgeID) const;
179  double getPMxEmission(const std::string& edgeID) const;
180  double getNOxEmission(const std::string& edgeID) const;
181  double getFuelConsumption(const std::string& edgeID) const;
182  double getNoiseEmission(const std::string& edgeID) const;
183  double getElectricityConsumption(const std::string& edgeID) const;
184  double getLastStepMeanSpeed(const std::string& edgeID) const;
185  double getLastStepOccupancy(const std::string& edgeID) const;
186  double getLastStepLength(const std::string& edgeID) const;
187  double getTraveltime(const std::string& edgeID) const;
188  int getLastStepVehicleNumber(const std::string& edgeID) const;
189  double getLastStepHaltingNumber(const std::string& edgeID) const;
190  std::vector<std::string> getLastStepVehicleIDs(const std::string& edgeID) const;
191  int getLaneNumber(const std::string& edgeID) const;
192  std::string getStreetName(const std::string& id) const;
193 
194  void adaptTraveltime(const std::string& edgeID, double time, double beginSeconds = 0., double endSeconds = std::numeric_limits<double>::max()) const;
195  void setEffort(const std::string& edgeID, double effort, double beginSeconds = 0., double endSeconds = std::numeric_limits<double>::max()) const;
196  void setMaxSpeed(const std::string& edgeID, double speed) const;
197  };
198 
199 
203  class GUIScope : public TraCIScopeWrapper {
204  public:
206  virtual ~GUIScope() {}
207 
208  double getZoom(const std::string& viewID = DEFAULT_VIEW) const;
209  libsumo::TraCIPosition getOffset(const std::string& viewID = DEFAULT_VIEW) const;
210  std::string getSchema(const std::string& viewID = DEFAULT_VIEW) const;
211  libsumo::TraCIPositionVector getBoundary(const std::string& viewID = DEFAULT_VIEW) const;
212  void setZoom(const std::string& viewID, double zoom) const;
213  void setOffset(const std::string& viewID, double x, double y) const;
214  void setSchema(const std::string& viewID, const std::string& schemeName) const;
215  void setBoundary(const std::string& viewID, double xmin, double ymin, double xmax, double ymax) const;
216  void screenshot(const std::string& viewID, const std::string& filename, const int width = -1, const int height = -1) const;
217  void trackVehicle(const std::string& viewID, const std::string& vehID) const;
218  };
219 
220 
225  public:
227  virtual ~InductionLoopScope() {}
228 
229  double getPosition(const std::string& loopID) const;
230  std::string getLaneID(const std::string& loopID) const;
231  int getLastStepVehicleNumber(const std::string& loopID) const;
232  double getLastStepMeanSpeed(const std::string& loopID) const;
233  std::vector<std::string> getLastStepVehicleIDs(const std::string& loopID) const;
234  double getLastStepOccupancy(const std::string& loopID) const;
235  double getLastStepMeanLength(const std::string& loopID) const;
236  double getTimeSinceDetection(const std::string& loopID) const;
237  std::vector<libsumo::TraCIVehicleData> getVehicleData(const std::string& loopID) const;
238  };
239 
240 
245  public:
247  virtual ~JunctionScope() {}
248 
249  libsumo::TraCIPosition getPosition(const std::string& junctionID) const;
250  libsumo::TraCIPositionVector getShape(const std::string& junctionID) const;
251  };
252 
253 
257  class LaneScope : public TraCIScopeWrapper {
258  public:
260  virtual ~LaneScope() {}
261 
262  double getLength(const std::string& laneID) const;
263  double getMaxSpeed(const std::string& laneID) const;
264  double getWidth(const std::string& laneID) const;
265  std::vector<std::string> getAllowed(const std::string& laneID) const;
266  std::vector<std::string> getDisallowed(const std::string& laneID) const;
267  int getLinkNumber(const std::string& laneID) const;
268  std::vector<libsumo::TraCIConnection> getLinks(const std::string& laneID) const;
269  libsumo::TraCIPositionVector getShape(const std::string& laneID) const;
270  std::string getEdgeID(const std::string& laneID) const;
271  double getCO2Emission(const std::string& laneID) const;
272  double getCOEmission(const std::string& laneID) const;
273  double getHCEmission(const std::string& laneID) const;
274  double getPMxEmission(const std::string& laneID) const;
275  double getNOxEmission(const std::string& laneID) const;
276  double getFuelConsumption(const std::string& laneID) const;
277  double getNoiseEmission(const std::string& laneID) const;
278  double getElectricityConsumption(const std::string& laneID) const;
279  double getLastStepMeanSpeed(const std::string& laneID) const;
280  double getLastStepOccupancy(const std::string& laneID) const;
281  double getLastStepLength(const std::string& laneID) const;
282  double getTraveltime(const std::string& laneID) const;
283  int getLastStepVehicleNumber(const std::string& laneID) const;
284  int getLastStepHaltingNumber(const std::string& laneID) const;
285  std::vector<std::string> getLastStepVehicleIDs(const std::string& laneID) const;
286  std::vector<std::string> getFoes(const std::string& laneID, const std::string& toLaneID) const;
287  std::vector<std::string> getInternalFoes(const std::string& laneID) const;
288 
289  void setAllowed(const std::string& laneID, const std::vector<std::string>& allowedClasses) const;
290  void setDisallowed(const std::string& laneID, const std::vector<std::string>& disallowedClasses) const;
291  void setMaxSpeed(const std::string& laneID, double speed) const;
292  void setLength(const std::string& laneID, double length) const;
293  };
294 
295 
300  public:
302  virtual ~LaneAreaScope() {}
303  };
304 
305 
309  class MeMeScope : public TraCIScopeWrapper {
310  public:
312  virtual ~MeMeScope() {}
313 
314  int getLastStepVehicleNumber(const std::string& detID) const;
315  double getLastStepMeanSpeed(const std::string& detID) const;
316  std::vector<std::string> getLastStepVehicleIDs(const std::string& detID) const;
317  int getLastStepHaltingNumber(const std::string& detID) const;
318  };
319 
320 
324  class POIScope : public TraCIScopeWrapper {
325  public:
327  virtual ~POIScope() {}
328 
329  std::string getType(const std::string& poiID) const;
330  libsumo::TraCIPosition getPosition(const std::string& poiID) const;
331  libsumo::TraCIColor getColor(const std::string& poiID) const;
332  double getWidth(const std::string& poiID) const;
333  double getHeight(const std::string& poiID) const;
334  double getAngle(const std::string& poiID) const;
335  std::string getImageFile(const std::string& poiID) const;
336 
337  void setType(const std::string& poiID, const std::string& setType) const;
338  void setPosition(const std::string& poiID, double x, double y) const;
339  void setColor(const std::string& poiID, const libsumo::TraCIColor& c) const;
340  void setWidth(const std::string& poiID, double width) const;
341  void setHeight(const std::string& poiID, double height) const;
342  void setAngle(const std::string& poiID, double angle) const;
343  void setImageFile(const std::string& poiID, const std::string& imageFile) const;
344  void add(const std::string& poiID, double x, double y, const libsumo::TraCIColor& c, const std::string& type, int layer, const std::string& imgFile, double width, double height, double angle) const;
345  void remove(const std::string& poiID, int layer = 0) const;
346  };
347 
348 
353  public:
355  virtual ~PolygonScope() {}
356 
357  double getLineWidth(const std::string& polygonID) const;
358  std::string getType(const std::string& polygonID) const;
359  libsumo::TraCIPositionVector getShape(const std::string& polygonID) const;
360  libsumo::TraCIColor getColor(const std::string& polygonID) const;
361  void setType(const std::string& polygonID, const std::string& setType) const;
362  void setShape(const std::string& polygonID, const libsumo::TraCIPositionVector& shape) const;
363  void setColor(const std::string& polygonID, const libsumo::TraCIColor& c) const;
364  void setLineWidth(const std::string& polygonID, const double lineWidth) const;
365  void add(const std::string& polygonID, const libsumo::TraCIPositionVector& shape, const libsumo::TraCIColor& c, bool fill, const std::string& type, int layer) const;
366  void remove(const std::string& polygonID, int layer = 0) const;
367  };
368 
369 
374  public:
376  virtual ~RerouterScope() {}
377  };
378 
379 
383  class RouteScope : public TraCIScopeWrapper {
384  public:
386  virtual ~RouteScope() {}
387 
388  std::vector<std::string> getEdges(const std::string& routeID) const;
389 
390  void add(const std::string& routeID, const std::vector<std::string>& edges) const;
391  };
392 
393 
398  public:
400  virtual ~RouteProbeScope() {}
401  };
402 
403 
408  public:
410  virtual ~SimulationScope() {}
411 
412  int getCurrentTime() const;
413  double getTime() const;
414  int getLoadedNumber() const;
415  std::vector<std::string> getLoadedIDList() const;
416  int getDepartedNumber() const;
417  std::vector<std::string> getDepartedIDList() const;
418  int getArrivedNumber() const;
419  std::vector<std::string> getArrivedIDList() const;
420  int getStartingTeleportNumber() const;
421  std::vector<std::string> getStartingTeleportIDList() const;
422  int getEndingTeleportNumber() const;
423  std::vector<std::string> getEndingTeleportIDList() const;
424  double getDeltaT() const;
426  int getMinExpectedNumber() const;
427 
428  int getBusStopWaiting(const std::string& stopID) const;
429  std::vector<std::string> getBusStopWaitingIDList(const std::string& stopID) const;
430 
431  libsumo::TraCIPosition convert2D(const std::string& edgeID, double pos, int laneIndex = 0, bool toGeo = false) const;
432  libsumo::TraCIPosition convert3D(const std::string& edgeID, double pos, int laneIndex = 0, bool toGeo = false) const;
433  libsumo::TraCIRoadPosition convertRoad(double x, double y, bool isGeo = false, const std::string& vClass = "ignoring") const;
434  libsumo::TraCIPosition convertGeo(double x, double y, bool fromGeo = false) const;
435 
436  double getDistance2D(double x1, double y1, double x2, double y2, bool isGeo = false, bool isDriving = false);
437  double getDistanceRoad(const std::string& edgeID1, double pos1, const std::string& edgeID2, double pos2, bool isDriving = false);
438  libsumo::TraCIStage findRoute(const std::string& fromEdge, const std::string& toEdge, const std::string& vType = "", double pos = -1., int routingMode = 0) const;
439  void writeMessage(const std::string msg);
440  };
441 
442 
447  public:
449  virtual ~TrafficLightScope() {}
450 
451  std::string getRedYellowGreenState(const std::string& tlsID) const;
452  std::vector<libsumo::TraCILogic> getAllProgramLogics(const std::string& tlsID) const;
453  std::vector<std::string> getControlledLanes(const std::string& tlsID) const;
454  std::vector<std::vector<libsumo::TraCILink> > getControlledLinks(const std::string& tlsID) const;
455  std::string getProgram(const std::string& tlsID) const;
456  int getPhase(const std::string& tlsID) const;
457  double getPhaseDuration(const std::string& tlsID) const;
458  double getNextSwitch(const std::string& tlsID) const;
459  int getServedPersonCount(const std::string& tlsID, int index) const;
460  std::string getPhaseName(const std::string& tlsID) const;
461 
462  void setRedYellowGreenState(const std::string& tlsID, const std::string& state) const;
463  void setPhase(const std::string& tlsID, int index) const;
464  void setPhaseName(const std::string& tlsID, const std::string& name) const;
465  void setProgram(const std::string& tlsID, const std::string& programID) const;
466  void setPhaseDuration(const std::string& tlsID, double phaseDuration) const;
467  void setProgramLogic(const std::string& tlsID, const libsumo::TraCILogic& logic) const;
468 
469  // aliases for backward compatibility
470  inline std::vector<libsumo::TraCILogic> getCompleteRedYellowGreenDefinition(const std::string& tlsID) const {
471  return getAllProgramLogics(tlsID);
472  }
473  void setCompleteRedYellowGreenDefinition(const std::string& tlsID, const libsumo::TraCILogic& logic) const {
474  setProgramLogic(tlsID, logic);
475  }
476  };
477 
478 
483  public:
485  virtual ~VehicleTypeScope() {}
486 
487  double getLength(const std::string& typeID) const;
488  double getMaxSpeed(const std::string& typeID) const;
489  double getSpeedFactor(const std::string& typeID) const;
490  double getSpeedDeviation(const std::string& typeID) const;
491  double getAccel(const std::string& typeID) const;
492  double getDecel(const std::string& typeID) const;
493  double getEmergencyDecel(const std::string& typeID) const;
494  double getApparentDecel(const std::string& typeID) const;
495  double getImperfection(const std::string& typeID) const;
496  double getTau(const std::string& typeID) const;
497  std::string getVehicleClass(const std::string& typeID) const;
498  std::string getEmissionClass(const std::string& typeID) const;
499  std::string getShapeClass(const std::string& typeID) const;
500  double getMinGap(const std::string& typeID) const;
501  double getWidth(const std::string& typeID) const;
502  double getHeight(const std::string& typeID) const;
503  libsumo::TraCIColor getColor(const std::string& typeID) const;
504  double getMinGapLat(const std::string& typeID) const;
505  double getMaxSpeedLat(const std::string& typeID) const;
506  std::string getLateralAlignment(const std::string& typeID) const;
507  int getPersonCapacity(const std::string& typeID) const;
508 
509  void setLength(const std::string& typeID, double length) const;
510  void setMaxSpeed(const std::string& typeID, double speed) const;
511  void setVehicleClass(const std::string& typeID, const std::string& clazz) const;
512  void setSpeedFactor(const std::string& typeID, double factor) const;
513  void setSpeedDeviation(const std::string& typeID, double deviation) const;
514  void setEmissionClass(const std::string& typeID, const std::string& clazz) const;
515  void setShapeClass(const std::string& typeID, const std::string& shapeClass) const;
516  void setWidth(const std::string& typeID, double width) const;
517  void setHeight(const std::string& typeID, double height) const;
518  void setMinGap(const std::string& typeID, double minGap) const;
519  void setAccel(const std::string& typeID, double accel) const;
520  void setDecel(const std::string& typeID, double decel) const;
521  void setEmergencyDecel(const std::string& typeID, double decel) const;
522  void setApparentDecel(const std::string& typeID, double decel) const;
523  void setImperfection(const std::string& typeID, double imperfection) const;
524  void setTau(const std::string& typeID, double tau) const;
525  void setColor(const std::string& typeID, const libsumo::TraCIColor& c) const;
526  void setMinGapLat(const std::string& typeID, double minGapLat) const;
527  void setMaxSpeedLat(const std::string& typeID, double speed) const;
528  void setLateralAlignment(const std::string& typeID, const std::string& latAlignment) const;
529  void copy(const std::string& origTypeID, const std::string& newTypeID) const;
530  };
531 
532 
537  public:
539  virtual ~VehicleScope() {}
540 
556  SIGNAL_RESET = -1, /*< sending a negative signal resets all signals to their computed values immediately */
557  };
558 
561  double getSpeed(const std::string& vehicleID) const;
562  double getLateralSpeed(const std::string& vehicleID) const;
563  double getAcceleration(const std::string& vehicleID) const;
564  double getFollowSpeed(const std::string& vehicleID, double speed, double gap, double leaderSpeed, double leaderMaxDecel, const std::string& leaderID = "") const;
565  double getSecureGap(const std::string& vehicleID, double speed, double leaderSpeed, double leaderMaxDecel, const std::string& leaderID = "") const;
566  double getStopSpeed(const std::string& vehicleID, double speed, double gap) const;
567  libsumo::TraCIPosition getPosition(const std::string& vehicleID) const;
568  libsumo::TraCIPosition getPosition3D(const std::string& vehicleID) const;
569  double getAngle(const std::string& vehicleID) const;
570  std::string getRoadID(const std::string& vehicleID) const;
571  std::string getLaneID(const std::string& vehicleID) const;
572  int getLaneIndex(const std::string& vehicleID) const;
573  std::string getTypeID(const std::string& vehicleID) const;
574  std::string getRouteID(const std::string& vehicleID) const;
575  int getRouteIndex(const std::string& vehicleID) const;
576  std::vector<std::string> getRoute(const std::string& vehicleID) const;
577  libsumo::TraCIColor getColor(const std::string& vehicleID) const;
578  double getLanePosition(const std::string& vehicleID) const;
579  double getDistance(const std::string& vehicleID) const;
580  int getSignals(const std::string& vehicleID) const;
581  double getCO2Emission(const std::string& vehicleID) const;
582  double getCOEmission(const std::string& vehicleID) const;
583  double getHCEmission(const std::string& vehicleID) const;
584  double getPMxEmission(const std::string& vehicleID) const;
585  double getNOxEmission(const std::string& vehicleID) const;
586  double getFuelConsumption(const std::string& vehicleID) const;
587  double getNoiseEmission(const std::string& vehicleID) const;
588  double getElectricityConsumption(const std::string& vehicleID) const;
589  int getStopState(const std::string& vehicleID) const;
590  double getWaitingTime(const std::string& vehicleID) const;
591  double getAccumulatedWaitingTime(const std::string& vehicleID) const;
592  int getLaneChangeMode(const std::string& vehicleID) const;
593  int getSpeedMode(const std::string& vehicleID) const;
594  double getSlope(const std::string& vehicleID) const;
595  double getAllowedSpeed(const std::string& vehicleID) const;
596  int getPersonNumber(const std::string& vehicleID) const;
597  std::vector<std::string> getPersonIDList(const std::string& vehicleID) const;
598  double getSpeedWithoutTraCI(const std::string& vehicleID) const;
599  bool isRouteValid(const std::string& vehicleID) const;
600  double getLateralLanePosition(const std::string& vehicleID) const;
601  double getSpeedFactor(const std::string& vehicleID) const;
602  std::string getLine(const std::string& vehicleID) const;
603  std::vector<std::string> getVia(const std::string& vehicleID) const;
604  std::vector<libsumo::TraCINextTLSData> getNextTLS(const std::string& vehID) const;
605  std::vector<libsumo::TraCIBestLanesData> getBestLanes(const std::string& vehicleID) const;
606  std::pair<std::string, double> getLeader(const std::string& vehicleID, double dist) const;
607  std::pair<std::string, double> getFollower(const std::string& vehicleID, double dist) const;
608  int getRoutingMode(const std::string& vehicleID) const;
609  double getStopDelay(const std::string& vehicleID) const;
610  double getStopArrivalDelay(const std::string& vehicleID) const;
611  std::pair<int, int> getLaneChangeState(const std::string& vehicleID, int direction) const;
613 
616  double getLength(const std::string& vehicleID) const;
617  double getMaxSpeed(const std::string& vehicleID) const;
618  double getAccel(const std::string& vehicleID) const;
619  double getDecel(const std::string& vehicleID) const;
620  double getEmergencyDecel(const std::string& vehicleID) const;
621  double getApparentDecel(const std::string& vehicleID) const;
622  double getTau(const std::string& vehicleID) const;
623  double getImperfection(const std::string& vehicleID) const;
624  double getSpeedDeviation(const std::string& vehicleID) const;
625  double getMinGap(const std::string& vehicleID) const;
626  double getWidth(const std::string& vehicleID) const;
627  double getHeight(const std::string& veihcleID) const;
628  double getMaxSpeedLat(const std::string& vehicleID) const;
629  double getMinGapLat(const std::string& vehicleID) const;
630  int getPersonCapacity(const std::string& vehicleID) const;
631  std::string getVehicleClass(const std::string& vehicleID) const;
632  std::string getEmissionClass(const std::string& vehicleID) const;
633  std::string getShapeClass(const std::string& vehicleID) const;
634  std::string getLateralAlignment(const std::string& vehicleID) const;
636 
639  void add(const std::string& vehicleID,
640  const std::string& routeID,
641  const std::string& typeID = "DEFAULT_VEHTYPE",
642  std::string depart = "-1",
643  const std::string& departLane = "first",
644  const std::string& departPos = "base",
645  const std::string& departSpeed = "0",
646  const std::string& arrivalLane = "current",
647  const std::string& arrivalPos = "max",
648  const std::string& arrivalSpeed = "current",
649  const std::string& fromTaz = "",
650  const std::string& toTaz = "",
651  const std::string& line = "",
652  int personCapacity = 0,
653  int personNumber = 0) const;
654 
655  void changeTarget(const std::string& vehicleID, const std::string& edgeID) const;
656  void changeLane(const std::string& vehicleID, int laneIndex, double duration) const;
657  void changeLaneRelative(const std::string& vehicleID, int laneChange, double duration) const;
658  void changeSublane(const std::string& vehicleID, double latDist) const;
659  void setRouteID(const std::string& vehicleID, const std::string& routeID) const;
660  void setRoute(const std::string& vehicleID, const std::vector<std::string>& edge) const;
661  void rerouteTraveltime(const std::string& vehicleID, bool currentTravelTimes = true) const;
662  void moveTo(const std::string& vehicleID, const std::string& laneID, double position, int reason = libsumo::MOVE_TELEPORT) const;
663  void moveToXY(const std::string& vehicleID, const std::string& edgeID, const int lane, const double x, const double y, const double angle, const int keepRoute) const;
664  void slowDown(const std::string& vehicleID, double speed, double duration) const;
665  void openGap(const std::string& vehicleID, double newTau, double duration, double changeRate, double maxDecel) const;
666  void setSpeed(const std::string& vehicleID, double speed) const;
667  void setPreviousSpeed(const std::string& vehicleID, double prevspeed) const;
668  void setLaneChangeMode(const std::string& vehicleID, int mode) const;
669  void setSpeedMode(const std::string& vehicleID, int mode) const;
670  void setStop(const std::string vehicleID, const std::string edgeID, const double endPos = 1.,
671  const int laneIndex = 0, const double duration = std::numeric_limits<double>::max(),
672  const int flags = 0, const double startPos = std::numeric_limits<int>::min(),
673  const double until = -1) const;
674  void setType(const std::string& vehicleID, const std::string& typeID) const;
675  void remove(const std::string& vehicleID, char reason = libsumo::REMOVE_VAPORIZED) const;
676  void setColor(const std::string& vehicleID, const libsumo::TraCIColor& c) const;
677  void setLine(const std::string& vehicleID, const std::string& line) const;
678  void setVia(const std::string& vehicleID, const std::vector<std::string>& via) const;
679  void setSignals(const std::string& vehicleID, int signals) const;
680  void setRoutingMode(const std::string& vehicleID, int routingMode) const;
682 
685  void setShapeClass(const std::string& vehicleID, const std::string& clazz) const;
686  void setEmissionClass(const std::string& vehicleID, const std::string& clazz) const;
687  void setSpeedFactor(const std::string& vehicleID, double factor) const;
688  void setMinGap(const std::string& vehicleID, double minGap) const;
689  void setMaxSpeed(const std::string& vehicleID, double speed) const;
691 
693  /* @brief Filters are added to the last modified vehicle context
694  * subscription (call these fucntions right after subscribing) */
696 
697  /* @brief Adds a lane-filter, lanes is a list of relative lane indices (-1 -> right neighboring lane of the ego, 0 -> ego lane, etc.)
698  * noOpposite specifies whether vehicles on opposite direction lanes shall be returned
699  * downstreamDist and upstreamDist specify the range of the search for surrounding vehicles along the road net. */
700  void addSubscriptionFilterLanes(const std::vector<int>& lanes,
701  bool noOpposite = false, double downstreamDist = -1, double upstreamDist = -1) const;
702 
703  /* @brief Omits vehicles on other edges than the ego's */
704  void addSubscriptionFilterNoOpposite() const;
705 
706  /* @brief Limits the downstream distance for resulting vehicles */
707  void addSubscriptionFilterDownstreamDistance(double dist) const;
708 
709  /* @brief Limits the updstream distance for resulting vehicles */
710  void addSubscriptionFilterUpstreamDistance(double dist) const;
711 
712  /* @brief Restricts vehicles returned by the last modified vehicle context subscription to leader and follower of the ego.
713  * downstreamDist and upstreamDist specify the range of the search for leader and follower along the road net. */
714  void addSubscriptionFilterCFManeuver(double downstreamDist = -1, double upstreamDist = -1) const;
715 
716  /* @brief Restricts returned vehicles to neighbor and ego-lane leader
717  * and follower of the ego in the given direction
718  * noOpposite specifies whether vehicles on opposite direction lanes shall be returned
719  * downstreamDist and upstreamDist specify the range of the search for leader and follower along the road net.
720  * Combine with: distance filters; vClass/vType filter. */
721  void addSubscriptionFilterLCManeuver(int direction, bool noOpposite = false, double downstreamDist = -1, double upstreamDist = -1) const;
722 
723  /* @brief Restricts returned vehicles to neighbor and ego-lane leader and follower of the ego.
724  * Combine with: lanes-filter to restrict to one direction; distance filters; vClass/vType filter. */
725  void addSubscriptionFilterLeadFollow(const std::vector<int>& lanes) const;
726 
727  /* @brief Restricts returned vehicles to foes on an upcoming junction */
728  void addSubscriptionFilterTurn(double downstreamDist = -1, double upstreamDist = -1) const;
729 
730  /* @brief Restricts returned vehicles to the given classes */
731  void addSubscriptionFilterVClass(const std::vector<std::string>& vClasses) const;
732 
733  /* @brief Restricts returned vehicles to the given types */
734  void addSubscriptionFilterVType(const std::vector<std::string>& vTypes) const;
735 
736  /* @brief Restricts returned vehicles to the given FOV-angle */
737  void addSubscriptionFilterFieldOfVision(double angle) const;
738 
739  /* @brief Restricts returned vehicles to the given lateral distance */
740  void addSubscriptionFilterLateralDistance(double lateralDist, double downstreamDist = -1, double upstreamDist = -1) const;
741 
743 
744  private:
745  void addSubscriptionFilterEmpty(int filterType) const;
746  void addSubscriptionFilterFloat(int filterType, double val) const;
747  void addSubscriptionFilterStringList(int filterType, const std::vector<std::string>& vals) const;
748  void addSubscriptionFilterByteList(int filterType, const std::vector<int>& vals) const;
749  };
750 
751 
756  public:
758  virtual ~PersonScope() {}
759 
760  double getSpeed(const std::string& personID) const;
761  libsumo::TraCIPosition getPosition(const std::string& personID) const;
762  libsumo::TraCIPosition getPosition3D(const std::string& personID) const;
763  std::string getRoadID(const std::string& personID) const;
764  std::string getLaneID(const std::string& personID) const;
765  std::string getTypeID(const std::string& personID) const;
766  double getWaitingTime(const std::string& personID) const;
767  std::string getNextEdge(const std::string& personID) const;
768  std::string getVehicle(const std::string& personID) const;
769  int getRemainingStages(const std::string& personID) const;
770  libsumo::TraCIStage getStage(const std::string& personID, int nextStageIndex = 0) const;
771  std::vector<std::string> getEdges(const std::string& personID, int nextStageIndex = 0) const;
772  double getAngle(const std::string& personID) const;
773  double getSlope(const std::string& personID) const;
774  double getLanePosition(const std::string& personID) const;
775  libsumo::TraCIColor getColor(const std::string& personID) const;
776 
779  double getLength(const std::string& personID) const;
781 
782 
783  void removeStages(const std::string& personID) const;
784  void add(const std::string& personID, const std::string& edgeID, double pos, double depart = libsumo::DEPARTFLAG_NOW, const std::string typeID = "DEFAULT_PEDTYPE");
785  void appendStage(const std::string& personID, const libsumo::TraCIStage& stage);
786  void appendWaitingStage(const std::string& personID, double duration, const std::string& description = "waiting", const std::string& stopID = "");
787  void appendWalkingStage(const std::string& personID, const std::vector<std::string>& edges, double arrivalPos, double duration = -1, double speed = -1, const std::string& stopID = "");
788  void appendDrivingStage(const std::string& personID, const std::string& toEdge, const std::string& lines, const std::string& stopID = "");
789  void removeStage(const std::string& personID, int nextStageIndex) const;
790  void rerouteTraveltime(const std::string& personID) const;
791  void setSpeed(const std::string& personID, double speed) const;
792  void setType(const std::string& personID, const std::string& typeID) const;
793  void setLength(const std::string& personID, double length) const;
794  void setWidth(const std::string& personID, double width) const;
795  void setHeight(const std::string& personID, double height) const;
796  void setMinGap(const std::string& personID, double minGap) const;
797  void setColor(const std::string& personID, const libsumo::TraCIColor& c) const;
798  };
799 
800 
801 
802 public:
837 
838 
839 protected:
842 
845  void send_commandSimulationStep(double time) const;
846 
847 
850  void send_commandClose() const;
851 
852 
855  void send_commandSetOrder(int order) const;
856 
864  void createCommand(int cmdID, int varID, const std::string& objID, tcpip::Storage* add = nullptr) const;
865  void createFilterCommand(int cmdID, int varID, tcpip::Storage* add = nullptr) const;
866 
867 
875  void send_commandSubscribeObjectVariable(int domID, const std::string& objID, double beginTime, double endTime, const std::vector<int>& vars) const;
876 
877 
887  void send_commandSubscribeObjectContext(int domID, const std::string& objID, double beginTime, double endTime,
888  int domain, double range, const std::vector<int>& vars) const;
890 
891 
894 
901  void check_resultState(tcpip::Storage& inMsg, int command, bool ignoreCommandId = false, std::string* acknowledgement = 0) const;
902 
906  int check_commandGetResult(tcpip::Storage& inMsg, int command, int expectedType = -1, bool ignoreCommandId = false) const;
907 
908  bool processGet(int command, int expectedType, bool ignoreCommandId = false);
909  bool processSet(int command);
911 
912  void readVariableSubscription(int cmdId, tcpip::Storage& inMsg);
913  void readContextSubscription(int cmdId, tcpip::Storage& inMsg);
914  void readVariables(tcpip::Storage& inMsg, const std::string& objectID, int variableCount, libsumo::SubscriptionResults& into);
915 
916  template <class T>
917  static inline std::string toString(const T& t, std::streamsize accuracy = PRECISION) {
918  std::ostringstream oss;
919  oss.setf(std::ios::fixed, std::ios::floatfield);
920  oss << std::setprecision(accuracy);
921  oss << t;
922  return oss.str();
923  }
924 
926  void closeSocket();
927 
928 protected:
929  std::map<int, TraCIScopeWrapper*> myDomains;
936 };
#define DEFAULT_VIEW
Definition: TraCIAPI.h:35
#define PRECISION
Definition: TraCIAPI.h:36
Scope for interaction with edges.
Definition: TraCIAPI.h:169
double getElectricityConsumption(const std::string &edgeID) const
Definition: TraCIAPI.cpp:557
double getLastStepHaltingNumber(const std::string &edgeID) const
Definition: TraCIAPI.cpp:587
double getHCEmission(const std::string &edgeID) const
Definition: TraCIAPI.cpp:532
void adaptTraveltime(const std::string &edgeID, double time, double beginSeconds=0., double endSeconds=std::numeric_limits< double >::max()) const
Definition: TraCIAPI.cpp:610
double getLastStepOccupancy(const std::string &edgeID) const
Definition: TraCIAPI.cpp:567
double getLastStepLength(const std::string &edgeID) const
Definition: TraCIAPI.cpp:572
std::vector< std::string > getLastStepVehicleIDs(const std::string &edgeID) const
Definition: TraCIAPI.cpp:592
double getNOxEmission(const std::string &edgeID) const
Definition: TraCIAPI.cpp:542
void setMaxSpeed(const std::string &edgeID, double speed) const
Definition: TraCIAPI.cpp:649
virtual ~EdgeScope()
Definition: TraCIAPI.h:172
double getCO2Emission(const std::string &edgeID) const
Definition: TraCIAPI.cpp:521
double getCOEmission(const std::string &edgeID) const
Definition: TraCIAPI.cpp:527
int getLaneNumber(const std::string &edgeID) const
Definition: TraCIAPI.cpp:598
void setEffort(const std::string &edgeID, double effort, double beginSeconds=0., double endSeconds=std::numeric_limits< double >::max()) const
Definition: TraCIAPI.cpp:630
double getNoiseEmission(const std::string &edgeID) const
Definition: TraCIAPI.cpp:552
double getFuelConsumption(const std::string &edgeID) const
Definition: TraCIAPI.cpp:547
double getTraveltime(const std::string &edgeID) const
Definition: TraCIAPI.cpp:577
EdgeScope(TraCIAPI &parent)
Definition: TraCIAPI.h:171
int getLastStepVehicleNumber(const std::string &edgeID) const
Definition: TraCIAPI.cpp:582
std::string getStreetName(const std::string &id) const
Definition: TraCIAPI.cpp:604
double getLastStepMeanSpeed(const std::string &edgeID) const
Definition: TraCIAPI.cpp:562
double getPMxEmission(const std::string &edgeID) const
Definition: TraCIAPI.cpp:537
double getAdaptedTraveltime(const std::string &edgeID, double time) const
Definition: TraCIAPI.cpp:505
double getEffort(const std::string &edgeID, double time) const
Definition: TraCIAPI.cpp:513
Scope for interaction with the gui.
Definition: TraCIAPI.h:203
void setOffset(const std::string &viewID, double x, double y) const
Definition: TraCIAPI.cpp:684
libsumo::TraCIPositionVector getBoundary(const std::string &viewID=DEFAULT_VIEW) const
Definition: TraCIAPI.cpp:673
std::string getSchema(const std::string &viewID=DEFAULT_VIEW) const
Definition: TraCIAPI.cpp:668
void setBoundary(const std::string &viewID, double xmin, double ymin, double xmax, double ymax) const
Definition: TraCIAPI.cpp:699
void setZoom(const std::string &viewID, double zoom) const
Definition: TraCIAPI.cpp:679
virtual ~GUIScope()
Definition: TraCIAPI.h:206
void trackVehicle(const std::string &viewID, const std::string &vehID) const
Definition: TraCIAPI.cpp:727
void setSchema(const std::string &viewID, const std::string &schemeName) const
Definition: TraCIAPI.cpp:694
libsumo::TraCIPosition getOffset(const std::string &viewID=DEFAULT_VIEW) const
Definition: TraCIAPI.cpp:663
GUIScope(TraCIAPI &parent)
Definition: TraCIAPI.h:205
double getZoom(const std::string &viewID=DEFAULT_VIEW) const
Definition: TraCIAPI.cpp:658
void screenshot(const std::string &viewID, const std::string &filename, const int width=-1, const int height=-1) const
Definition: TraCIAPI.cpp:712
Scope for interaction with inductive loops.
Definition: TraCIAPI.h:224
std::vector< libsumo::TraCIVehicleData > getVehicleData(const std::string &loopID) const
Definition: TraCIAPI.cpp:777
double getPosition(const std::string &loopID) const
Definition: TraCIAPI.cpp:736
double getLastStepMeanSpeed(const std::string &loopID) const
Definition: TraCIAPI.cpp:751
double getTimeSinceDetection(const std::string &loopID) const
Definition: TraCIAPI.cpp:771
double getLastStepMeanLength(const std::string &loopID) const
Definition: TraCIAPI.cpp:766
std::vector< std::string > getLastStepVehicleIDs(const std::string &loopID) const
Definition: TraCIAPI.cpp:756
double getLastStepOccupancy(const std::string &loopID) const
Definition: TraCIAPI.cpp:761
InductionLoopScope(TraCIAPI &parent)
Definition: TraCIAPI.h:226
int getLastStepVehicleNumber(const std::string &loopID) const
Definition: TraCIAPI.cpp:746
std::string getLaneID(const std::string &loopID) const
Definition: TraCIAPI.cpp:741
Scope for interaction with junctions.
Definition: TraCIAPI.h:244
JunctionScope(TraCIAPI &parent)
Definition: TraCIAPI.h:246
virtual ~JunctionScope()
Definition: TraCIAPI.h:247
libsumo::TraCIPosition getPosition(const std::string &junctionID) const
Definition: TraCIAPI.cpp:814
libsumo::TraCIPositionVector getShape(const std::string &junctionID) const
Definition: TraCIAPI.cpp:819
Scope for interaction with lane area detectors.
Definition: TraCIAPI.h:299
virtual ~LaneAreaScope()
Definition: TraCIAPI.h:302
LaneAreaScope(TraCIAPI &parent)
Definition: TraCIAPI.h:301
Scope for interaction with lanes.
Definition: TraCIAPI.h:257
int getLastStepVehicleNumber(const std::string &laneID) const
Definition: TraCIAPI.cpp:978
double getPMxEmission(const std::string &laneID) const
Definition: TraCIAPI.cpp:933
int getLastStepHaltingNumber(const std::string &laneID) const
Definition: TraCIAPI.cpp:983
std::string getEdgeID(const std::string &laneID) const
Definition: TraCIAPI.cpp:913
void setDisallowed(const std::string &laneID, const std::vector< std::string > &disallowedClasses) const
Definition: TraCIAPI.cpp:1021
libsumo::TraCIPositionVector getShape(const std::string &laneID) const
Definition: TraCIAPI.cpp:908
double getLastStepLength(const std::string &laneID) const
Definition: TraCIAPI.cpp:968
void setLength(const std::string &laneID, double length) const
Definition: TraCIAPI.cpp:1031
double getLength(const std::string &laneID) const
Definition: TraCIAPI.cpp:828
int getLinkNumber(const std::string &laneID) const
Definition: TraCIAPI.cpp:853
double getTraveltime(const std::string &laneID) const
Definition: TraCIAPI.cpp:973
double getCOEmission(const std::string &laneID) const
Definition: TraCIAPI.cpp:923
void setMaxSpeed(const std::string &laneID, double speed) const
Definition: TraCIAPI.cpp:1026
LaneScope(TraCIAPI &parent)
Definition: TraCIAPI.h:259
std::vector< std::string > getInternalFoes(const std::string &laneID) const
Definition: TraCIAPI.cpp:1010
void setAllowed(const std::string &laneID, const std::vector< std::string > &allowedClasses) const
Definition: TraCIAPI.cpp:1016
std::vector< std::string > getDisallowed(const std::string &laneID) const
Definition: TraCIAPI.cpp:848
double getNoiseEmission(const std::string &laneID) const
Definition: TraCIAPI.cpp:948
std::vector< std::string > getAllowed(const std::string &laneID) const
Definition: TraCIAPI.cpp:843
double getFuelConsumption(const std::string &laneID) const
Definition: TraCIAPI.cpp:943
double getWidth(const std::string &laneID) const
Definition: TraCIAPI.cpp:838
double getCO2Emission(const std::string &laneID) const
Definition: TraCIAPI.cpp:918
double getHCEmission(const std::string &laneID) const
Definition: TraCIAPI.cpp:928
std::vector< libsumo::TraCIConnection > getLinks(const std::string &laneID) const
Definition: TraCIAPI.cpp:858
double getMaxSpeed(const std::string &laneID) const
Definition: TraCIAPI.cpp:833
std::vector< std::string > getLastStepVehicleIDs(const std::string &laneID) const
Definition: TraCIAPI.cpp:988
double getElectricityConsumption(const std::string &laneID) const
Definition: TraCIAPI.cpp:953
std::vector< std::string > getFoes(const std::string &laneID, const std::string &toLaneID) const
Definition: TraCIAPI.cpp:994
double getLastStepMeanSpeed(const std::string &laneID) const
Definition: TraCIAPI.cpp:958
double getNOxEmission(const std::string &laneID) const
Definition: TraCIAPI.cpp:938
virtual ~LaneScope()
Definition: TraCIAPI.h:260
double getLastStepOccupancy(const std::string &laneID) const
Definition: TraCIAPI.cpp:963
Scope for interaction with multi entry/-exit detectors.
Definition: TraCIAPI.h:309
std::vector< std::string > getLastStepVehicleIDs(const std::string &detID) const
Definition: TraCIAPI.cpp:1055
virtual ~MeMeScope()
Definition: TraCIAPI.h:312
int getLastStepVehicleNumber(const std::string &detID) const
Definition: TraCIAPI.cpp:1045
double getLastStepMeanSpeed(const std::string &detID) const
Definition: TraCIAPI.cpp:1050
MeMeScope(TraCIAPI &parent)
Definition: TraCIAPI.h:311
int getLastStepHaltingNumber(const std::string &detID) const
Definition: TraCIAPI.cpp:1060
Scope for interaction with POIs.
Definition: TraCIAPI.h:324
libsumo::TraCIColor getColor(const std::string &poiID) const
Definition: TraCIAPI.cpp:1080
void add(const std::string &poiID, double x, double y, const libsumo::TraCIColor &c, const std::string &type, int layer, const std::string &imgFile, double width, double height, double angle) const
Definition: TraCIAPI.cpp:1160
std::string getImageFile(const std::string &poiID) const
Definition: TraCIAPI.cpp:1100
void setWidth(const std::string &poiID, double width) const
Definition: TraCIAPI.cpp:1136
libsumo::TraCIPosition getPosition(const std::string &poiID) const
Definition: TraCIAPI.cpp:1075
void setImageFile(const std::string &poiID, const std::string &imageFile) const
Definition: TraCIAPI.cpp:1154
void setHeight(const std::string &poiID, double height) const
Definition: TraCIAPI.cpp:1142
void setAngle(const std::string &poiID, double angle) const
Definition: TraCIAPI.cpp:1148
double getHeight(const std::string &poiID) const
Definition: TraCIAPI.cpp:1090
double getAngle(const std::string &poiID) const
Definition: TraCIAPI.cpp:1095
void remove(const std::string &poiID, int layer=0) const
Definition: TraCIAPI.cpp:1189
void setColor(const std::string &poiID, const libsumo::TraCIColor &c) const
Definition: TraCIAPI.cpp:1123
void setPosition(const std::string &poiID, double x, double y) const
Definition: TraCIAPI.cpp:1112
POIScope(TraCIAPI &parent)
Definition: TraCIAPI.h:326
double getWidth(const std::string &poiID) const
Definition: TraCIAPI.cpp:1085
void setType(const std::string &poiID, const std::string &setType) const
Definition: TraCIAPI.cpp:1106
std::string getType(const std::string &poiID) const
Definition: TraCIAPI.cpp:1070
virtual ~POIScope()
Definition: TraCIAPI.h:327
Scope for interaction with vehicles.
Definition: TraCIAPI.h:755
std::string getNextEdge(const std::string &personID) const
Definition: TraCIAPI.cpp:3189
void setLength(const std::string &personID, double length) const
Definition: TraCIAPI.cpp:3378
libsumo::TraCIColor getColor(const std::string &personID) const
Definition: TraCIAPI.cpp:3159
double getSlope(const std::string &personID) const
Definition: TraCIAPI.cpp:3149
int getRemainingStages(const std::string &personID) const
Definition: TraCIAPI.cpp:3200
double getWaitingTime(const std::string &personID) const
Definition: TraCIAPI.cpp:3184
virtual ~PersonScope()
Definition: TraCIAPI.h:758
libsumo::TraCIStage getStage(const std::string &personID, int nextStageIndex=0) const
Definition: TraCIAPI.cpp:3205
void removeStage(const std::string &personID, int nextStageIndex) const
Definition: TraCIAPI.cpp:3349
void add(const std::string &personID, const std::string &edgeID, double pos, double depart=libsumo::DEPARTFLAG_NOW, const std::string typeID="DEFAULT_PEDTYPE")
Definition: TraCIAPI.cpp:3241
PersonScope(TraCIAPI &parent)
Definition: TraCIAPI.h:757
void appendWalkingStage(const std::string &personID, const std::vector< std::string > &edges, double arrivalPos, double duration=-1, double speed=-1, const std::string &stopID="")
Definition: TraCIAPI.cpp:3311
void setSpeed(const std::string &personID, double speed) const
Definition: TraCIAPI.cpp:3359
double getLength(const std::string &personID) const
Definition: TraCIAPI.cpp:3164
void setHeight(const std::string &personID, double height) const
Definition: TraCIAPI.cpp:3397
void setType(const std::string &personID, const std::string &typeID) const
Definition: TraCIAPI.cpp:3369
void setMinGap(const std::string &personID, double minGap) const
Definition: TraCIAPI.cpp:3406
libsumo::TraCIPosition getPosition(const std::string &personID) const
Definition: TraCIAPI.cpp:3134
void removeStages(const std::string &personID) const
Definition: TraCIAPI.cpp:3221
void setColor(const std::string &personID, const libsumo::TraCIColor &c) const
Definition: TraCIAPI.cpp:3416
std::string getRoadID(const std::string &personID) const
Definition: TraCIAPI.cpp:3169
double getSpeed(const std::string &personID) const
Definition: TraCIAPI.cpp:3129
std::string getVehicle(const std::string &personID) const
Definition: TraCIAPI.cpp:3195
void appendDrivingStage(const std::string &personID, const std::string &toEdge, const std::string &lines, const std::string &stopID="")
Definition: TraCIAPI.cpp:3332
std::string getTypeID(const std::string &personID) const
Definition: TraCIAPI.cpp:3179
void appendStage(const std::string &personID, const libsumo::TraCIStage &stage)
Definition: TraCIAPI.cpp:3258
double getAngle(const std::string &personID) const
Definition: TraCIAPI.cpp:3144
std::string getLaneID(const std::string &personID) const
Definition: TraCIAPI.cpp:3174
libsumo::TraCIPosition getPosition3D(const std::string &personID) const
Definition: TraCIAPI.cpp:3139
std::vector< std::string > getEdges(const std::string &personID, int nextStageIndex=0) const
Definition: TraCIAPI.cpp:3213
void appendWaitingStage(const std::string &personID, double duration, const std::string &description="waiting", const std::string &stopID="")
Definition: TraCIAPI.cpp:3294
double getLanePosition(const std::string &personID) const
Definition: TraCIAPI.cpp:3154
void setWidth(const std::string &personID, double width) const
Definition: TraCIAPI.cpp:3388
void rerouteTraveltime(const std::string &personID) const
Definition: TraCIAPI.cpp:3231
Scope for interaction with polygons.
Definition: TraCIAPI.h:352
libsumo::TraCIColor getColor(const std::string &polygonID) const
Definition: TraCIAPI.cpp:1217
void setType(const std::string &polygonID, const std::string &setType) const
Definition: TraCIAPI.cpp:1231
void add(const std::string &polygonID, const libsumo::TraCIPositionVector &shape, const libsumo::TraCIColor &c, bool fill, const std::string &type, int layer) const
Definition: TraCIAPI.cpp:1272
libsumo::TraCIPositionVector getShape(const std::string &polygonID) const
Definition: TraCIAPI.cpp:1212
std::string getType(const std::string &polygonID) const
Definition: TraCIAPI.cpp:1207
void remove(const std::string &polygonID, int layer=0) const
Definition: TraCIAPI.cpp:1299
double getLineWidth(const std::string &polygonID) const
Definition: TraCIAPI.cpp:1202
PolygonScope(TraCIAPI &parent)
Definition: TraCIAPI.h:354
void setColor(const std::string &polygonID, const libsumo::TraCIColor &c) const
Definition: TraCIAPI.cpp:1260
void setLineWidth(const std::string &polygonID, const double lineWidth) const
Definition: TraCIAPI.cpp:1222
virtual ~PolygonScope()
Definition: TraCIAPI.h:355
void setShape(const std::string &polygonID, const libsumo::TraCIPositionVector &shape) const
Definition: TraCIAPI.cpp:1241
Scope for interaction with rerouters.
Definition: TraCIAPI.h:373
RerouterScope(TraCIAPI &parent)
Definition: TraCIAPI.h:375
virtual ~RerouterScope()
Definition: TraCIAPI.h:376
Scope for interaction with route probes.
Definition: TraCIAPI.h:397
RouteProbeScope(TraCIAPI &parent)
Definition: TraCIAPI.h:399
virtual ~RouteProbeScope()
Definition: TraCIAPI.h:400
Scope for interaction with routes.
Definition: TraCIAPI.h:383
RouteScope(TraCIAPI &parent)
Definition: TraCIAPI.h:385
virtual ~RouteScope()
Definition: TraCIAPI.h:386
std::vector< std::string > getEdges(const std::string &routeID) const
Definition: TraCIAPI.cpp:1312
void add(const std::string &routeID, const std::vector< std::string > &edges) const
Definition: TraCIAPI.cpp:1318
Scope for interaction with the simulation.
Definition: TraCIAPI.h:407
int getDepartedNumber() const
Definition: TraCIAPI.cpp:1351
SimulationScope(TraCIAPI &parent)
Definition: TraCIAPI.h:409
double getDistance2D(double x1, double y1, double x2, double y2, bool isGeo=false, bool isDriving=false)
Definition: TraCIAPI.cpp:1507
libsumo::TraCIPosition convert2D(const std::string &edgeID, double pos, int laneIndex=0, bool toGeo=false) const
Definition: TraCIAPI.cpp:1418
std::vector< std::string > getStartingTeleportIDList() const
Definition: TraCIAPI.cpp:1376
int getStartingTeleportNumber() const
Definition: TraCIAPI.cpp:1371
double getTime() const
Definition: TraCIAPI.cpp:1336
int getEndingTeleportNumber() const
Definition: TraCIAPI.cpp:1381
int getBusStopWaiting(const std::string &stopID) const
Definition: TraCIAPI.cpp:1407
libsumo::TraCIStage findRoute(const std::string &fromEdge, const std::string &toEdge, const std::string &vType="", double pos=-1., int routingMode=0) const
Definition: TraCIAPI.cpp:1549
libsumo::TraCIRoadPosition convertRoad(double x, double y, bool isGeo=false, const std::string &vClass="ignoring") const
Definition: TraCIAPI.cpp:1463
std::vector< std::string > getBusStopWaitingIDList(const std::string &stopID) const
Definition: TraCIAPI.cpp:1412
double getDistanceRoad(const std::string &edgeID1, double pos1, const std::string &edgeID2, double pos2, bool isDriving=false)
Definition: TraCIAPI.cpp:1527
std::vector< std::string > getEndingTeleportIDList() const
Definition: TraCIAPI.cpp:1386
double getDeltaT() const
Definition: TraCIAPI.cpp:1391
int getMinExpectedNumber() const
Definition: TraCIAPI.cpp:1402
std::vector< std::string > getDepartedIDList() const
Definition: TraCIAPI.cpp:1356
std::vector< std::string > getLoadedIDList() const
Definition: TraCIAPI.cpp:1346
std::vector< std::string > getArrivedIDList() const
Definition: TraCIAPI.cpp:1366
virtual ~SimulationScope()
Definition: TraCIAPI.h:410
int getArrivedNumber() const
Definition: TraCIAPI.cpp:1361
libsumo::TraCIPositionVector getNetBoundary() const
Definition: TraCIAPI.cpp:1396
void writeMessage(const std::string msg)
Definition: TraCIAPI.cpp:1568
libsumo::TraCIPosition convertGeo(double x, double y, bool fromGeo=false) const
Definition: TraCIAPI.cpp:1486
libsumo::TraCIPosition convert3D(const std::string &edgeID, double pos, int laneIndex=0, bool toGeo=false) const
Definition: TraCIAPI.cpp:1440
An abstract interface for accessing type-dependent values.
Definition: TraCIAPI.h:87
TraCIScopeWrapper & operator=(const TraCIScopeWrapper &src)=delete
invalidated assignment operator
int getUnsignedByte(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3433
libsumo::ContextSubscriptionResults myContextSubscriptionResults
Definition: TraCIAPI.h:157
const libsumo::SubscriptionResults getContextSubscriptionResults(const std::string &objID) const
Definition: TraCIAPI.cpp:3749
virtual ~TraCIScopeWrapper()
Destructor.
Definition: TraCIAPI.h:101
int getInt(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3454
std::vector< std::string > getStringVector(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3531
double getDouble(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3464
libsumo::TraCIPosition getPos3D(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3508
std::pair< std::string, std::string > getParameterWithKey(const std::string &objectID, const std::string &key) const
retrieve generic parameter and return (key, value) tuple
Definition: TraCIAPI.cpp:3629
libsumo::TraCIColor getCol(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3545
const libsumo::SubscriptionResults getAllSubscriptionResults() const
Definition: TraCIAPI.cpp:3727
libsumo::SubscriptionResults mySubscriptionResults
Definition: TraCIAPI.h:156
void setStringVector(int var, const std::string &id, const std::vector< std::string > &value) const
Definition: TraCIAPI.cpp:3692
std::vector< std::string > getIDList() const
Definition: TraCIAPI.cpp:3608
libsumo::TraCIPositionVector getPolygon(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3474
TraCIScopeWrapper(TraCIAPI &parent, int cmdGetID, int cmdSetID, int subscribeID, int contextSubscribeID)
Constructor.
Definition: TraCIAPI.h:92
libsumo::SubscriptionResults & getModifiableSubscriptionResults()
Definition: TraCIAPI.cpp:3766
const libsumo::TraCIResults getSubscriptionResults(const std::string &objID) const
Definition: TraCIAPI.cpp:3733
void setString(int var, const std::string &id, const std::string &value) const
Definition: TraCIAPI.cpp:3682
void subscribeContext(const std::string &objID, int domain, double range, const std::vector< int > &vars, double beginTime, double endTime) const
Definition: TraCIAPI.cpp:3717
void setParameter(const std::string &objectID, const std::string &key, const std::string &value) const
set generic paramter
Definition: TraCIAPI.cpp:3648
TraCIAPI & myParent
The parent TraCI client which offers the connection.
Definition: TraCIAPI.h:149
std::string getParameter(const std::string &objectID, const std::string &key) const
retrieve generic parameter
Definition: TraCIAPI.cpp:3620
void setInt(int var, const std::string &id, int value) const
Definition: TraCIAPI.cpp:3662
int getByte(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3443
libsumo::TraCIStage getTraCIStage(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3559
void subscribe(const std::string &objID, const std::vector< int > &vars, double beginTime, double endTime) const
Definition: TraCIAPI.cpp:3705
std::string getString(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3521
libsumo::TraCIPosition getPos(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3495
const libsumo::ContextSubscriptionResults getAllContextSubscriptionResults() const
Definition: TraCIAPI.cpp:3743
libsumo::SubscriptionResults & getModifiableContextSubscriptionResults(const std::string &objID)
Definition: TraCIAPI.cpp:3772
void setDouble(int var, const std::string &id, double value) const
Definition: TraCIAPI.cpp:3672
Scope for interaction with traffic lights.
Definition: TraCIAPI.h:446
void setCompleteRedYellowGreenDefinition(const std::string &tlsID, const libsumo::TraCILogic &logic) const
Definition: TraCIAPI.h:473
int getServedPersonCount(const std::string &tlsID, int index) const
Definition: TraCIAPI.cpp:1698
std::string getRedYellowGreenState(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1581
TrafficLightScope(TraCIAPI &parent)
Definition: TraCIAPI.h:448
int getPhase(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1677
std::string getPhaseName(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1682
void setRedYellowGreenState(const std::string &tlsID, const std::string &state) const
Definition: TraCIAPI.cpp:1707
std::vector< libsumo::TraCILogic > getCompleteRedYellowGreenDefinition(const std::string &tlsID) const
Definition: TraCIAPI.h:470
std::string getProgram(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1672
void setPhase(const std::string &tlsID, int index) const
Definition: TraCIAPI.cpp:1716
void setPhaseName(const std::string &tlsID, const std::string &name) const
Definition: TraCIAPI.cpp:1725
double getNextSwitch(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1692
std::vector< std::vector< libsumo::TraCILink > > getControlledLinks(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1644
double getPhaseDuration(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1687
std::vector< std::string > getControlledLanes(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1639
std::vector< libsumo::TraCILogic > getAllProgramLogics(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1586
void setPhaseDuration(const std::string &tlsID, double phaseDuration) const
Definition: TraCIAPI.cpp:1743
void setProgramLogic(const std::string &tlsID, const libsumo::TraCILogic &logic) const
Definition: TraCIAPI.cpp:1752
void setProgram(const std::string &tlsID, const std::string &programID) const
Definition: TraCIAPI.cpp:1734
Scope for interaction with vehicles.
Definition: TraCIAPI.h:536
VehicleScope(TraCIAPI &parent)
Definition: TraCIAPI.h:538
std::vector< libsumo::TraCINextTLSData > getNextTLS(const std::string &vehID) const
Definition: TraCIAPI.cpp:2333
void changeLane(const std::string &vehicleID, int laneIndex, double duration) const
Definition: TraCIAPI.cpp:2662
void setMinGap(const std::string &vehicleID, double minGap) const
Definition: TraCIAPI.cpp:2893
double getLateralSpeed(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2111
void addSubscriptionFilterLateralDistance(double lateralDist, double downstreamDist=-1, double upstreamDist=-1) const
Definition: TraCIAPI.cpp:3077
void setMaxSpeed(const std::string &vehicleID, double speed) const
Definition: TraCIAPI.cpp:2902
virtual ~VehicleScope()
Definition: TraCIAPI.h:539
double getSpeed(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2106
int getStopState(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2455
double getWaitingTime(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2290
void addSubscriptionFilterCFManeuver(double downstreamDist=-1, double upstreamDist=-1) const
Definition: TraCIAPI.cpp:3013
double getCOEmission(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2255
void addSubscriptionFilterStringList(int filterType, const std::vector< std::string > &vals) const
Definition: TraCIAPI.cpp:3104
void changeTarget(const std::string &vehicleID, const std::string &edgeID) const
Definition: TraCIAPI.cpp:2652
libsumo::TraCIPosition getPosition(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2174
bool isRouteValid(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2561
void addSubscriptionFilterByteList(int filterType, const std::vector< int > &vals) const
Definition: TraCIAPI.cpp:3114
double getSecureGap(const std::string &vehicleID, double speed, double leaderSpeed, double leaderMaxDecel, const std::string &leaderID="") const
Definition: TraCIAPI.cpp:2140
void setSpeedFactor(const std::string &vehicleID, double factor) const
Definition: TraCIAPI.cpp:2884
void setShapeClass(const std::string &vehicleID, const std::string &clazz) const
Definition: TraCIAPI.cpp:2962
void setVia(const std::string &vehicleID, const std::vector< std::string > &via) const
Definition: TraCIAPI.cpp:2932
void setEmissionClass(const std::string &vehicleID, const std::string &clazz) const
Definition: TraCIAPI.cpp:2972
double getTau(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2486
double getDistance(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2235
void remove(const std::string &vehicleID, char reason=libsumo::REMOVE_VAPORIZED) const
Definition: TraCIAPI.cpp:2641
void openGap(const std::string &vehicleID, double newTau, double duration, double changeRate, double maxDecel) const
Definition: TraCIAPI.cpp:2792
void moveTo(const std::string &vehicleID, const std::string &laneID, double position, int reason=libsumo::MOVE_TELEPORT) const
Definition: TraCIAPI.cpp:2742
void setSpeed(const std::string &vehicleID, double speed) const
Definition: TraCIAPI.cpp:2815
double getEmergencyDecel(const std::string &vehicleID) const
std::string getEmissionClass(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2323
void setStop(const std::string vehicleID, const std::string edgeID, const double endPos=1., const int laneIndex=0, const double duration=std::numeric_limits< double >::max(), const int flags=0, const double startPos=std::numeric_limits< int >::min(), const double until=-1) const
Definition: TraCIAPI.cpp:2851
void setRouteID(const std::string &vehicleID, const std::string &routeID) const
Definition: TraCIAPI.cpp:2702
std::pair< int, int > getLaneChangeState(const std::string &vehicleID, int direction) const
Definition: TraCIAPI.cpp:2437
double getNoiseEmission(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2280
std::string getShapeClass(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2328
void addSubscriptionFilterLeadFollow(const std::vector< int > &lanes) const
Definition: TraCIAPI.cpp:3042
std::string getLine(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2313
double getElectricityConsumption(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2285
double getSpeedFactor(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2496
double getNOxEmission(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2270
void setRoute(const std::string &vehicleID, const std::vector< std::string > &edge) const
Definition: TraCIAPI.cpp:2712
int getSignals(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2240
libsumo::TraCIColor getColor(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2225
int getPersonCapacity(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2546
void setSignals(const std::string &vehicleID, int signals) const
Definition: TraCIAPI.cpp:2944
std::string getRoadID(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2189
void addSubscriptionFilterVType(const std::vector< std::string > &vTypes) const
Definition: TraCIAPI.cpp:3066
void addSubscriptionFilterUpstreamDistance(double dist) const
Definition: TraCIAPI.cpp:3007
void addSubscriptionFilterFloat(int filterType, double val) const
Definition: TraCIAPI.cpp:3094
double getAllowedSpeed(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2536
void addSubscriptionFilterLanes(const std::vector< int > &lanes, bool noOpposite=false, double downstreamDist=-1, double upstreamDist=-1) const
Definition: TraCIAPI.cpp:2981
double getCO2Emission(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2250
double getFuelConsumption(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2275
double getHCEmission(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2260
void addSubscriptionFilterNoOpposite() const
Definition: TraCIAPI.cpp:2997
void addSubscriptionFilterLCManeuver(int direction, bool noOpposite=false, double downstreamDist=-1, double upstreamDist=-1) const
Definition: TraCIAPI.cpp:3024
std::pair< std::string, double > getLeader(const std::string &vehicleID, double dist) const
Definition: TraCIAPI.cpp:2401
double getAcceleration(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2116
std::vector< std::string > getVia(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2318
void addSubscriptionFilterVClass(const std::vector< std::string > &vClasses) const
Definition: TraCIAPI.cpp:3060
double getImperfection(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2491
std::string getLaneID(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2194
double getAngle(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2184
void addSubscriptionFilterDownstreamDistance(double dist) const
Definition: TraCIAPI.cpp:3002
double getMinGap(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2511
void addSubscriptionFilterEmpty(int filterType) const
Definition: TraCIAPI.cpp:3088
double getStopArrivalDelay(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2470
std::vector< std::string > getPersonIDList(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2551
double getStopDelay(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2465
double getMinGapLat(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2571
void setLine(const std::string &vehicleID, const std::string &line) const
Definition: TraCIAPI.cpp:2923
double getSlope(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2307
void setColor(const std::string &vehicleID, const libsumo::TraCIColor &c) const
Definition: TraCIAPI.cpp:2911
void add(const std::string &vehicleID, const std::string &routeID, const std::string &typeID="DEFAULT_VEHTYPE", std::string depart="-1", const std::string &departLane="first", const std::string &departPos="base", const std::string &departSpeed="0", const std::string &arrivalLane="current", const std::string &arrivalPos="max", const std::string &arrivalSpeed="current", const std::string &fromTaz="", const std::string &toTaz="", const std::string &line="", int personCapacity=0, int personNumber=0) const
Definition: TraCIAPI.cpp:2581
libsumo::TraCIPosition getPosition3D(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2179
void setLaneChangeMode(const std::string &vehicleID, int mode) const
Definition: TraCIAPI.cpp:2833
void setRoutingMode(const std::string &vehicleID, int routingMode) const
Definition: TraCIAPI.cpp:2953
void addSubscriptionFilterTurn(double downstreamDist=-1, double upstreamDist=-1) const
Definition: TraCIAPI.cpp:3048
double getDecel(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2481
void moveToXY(const std::string &vehicleID, const std::string &edgeID, const int lane, const double x, const double y, const double angle, const int keepRoute) const
Definition: TraCIAPI.cpp:2757
double getHeight(const std::string &veihcleID) const
Definition: TraCIAPI.cpp:2526
int getRouteIndex(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2214
double getMaxSpeedLat(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2566
void changeSublane(const std::string &vehicleID, double latDist) const
Definition: TraCIAPI.cpp:2692
std::string getLateralAlignment(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2576
std::string getRouteID(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2209
double getLanePosition(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2230
int getLaneChangeMode(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2295
int getSpeedMode(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2301
std::vector< std::string > getRoute(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2220
double getApparentDecel(const std::string &vehicleID) const
double getLateralLanePosition(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2245
std::pair< std::string, double > getFollower(const std::string &vehicleID, double dist) const
Definition: TraCIAPI.cpp:2419
double getPMxEmission(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2265
double getLength(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2521
double getMaxSpeed(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2169
std::string getVehicleClass(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2506
double getSpeedWithoutTraCI(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2556
int getRoutingMode(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2460
double getWidth(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2516
double getSpeedDeviation(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2501
int getPersonNumber(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2541
double getFollowSpeed(const std::string &vehicleID, double speed, double gap, double leaderSpeed, double leaderMaxDecel, const std::string &leaderID="") const
Definition: TraCIAPI.cpp:2121
void setType(const std::string &vehicleID, const std::string &typeID) const
Definition: TraCIAPI.cpp:2875
void addSubscriptionFilterFieldOfVision(double angle) const
Definition: TraCIAPI.cpp:3072
std::vector< libsumo::TraCIBestLanesData > getBestLanes(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2362
double getAccel(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2476
void setSpeedMode(const std::string &vehicleID, int mode) const
Definition: TraCIAPI.cpp:2842
void slowDown(const std::string &vehicleID, double speed, double duration) const
Definition: TraCIAPI.cpp:2779
std::string getTypeID(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2204
void setPreviousSpeed(const std::string &vehicleID, double prevspeed) const
Definition: TraCIAPI.cpp:2824
double getAccumulatedWaitingTime(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2531
void changeLaneRelative(const std::string &vehicleID, int laneChange, double duration) const
Definition: TraCIAPI.cpp:2676
void rerouteTraveltime(const std::string &vehicleID, bool currentTravelTimes=true) const
Definition: TraCIAPI.cpp:2725
double getStopSpeed(const std::string &vehicleID, double speed, double gap) const
Definition: TraCIAPI.cpp:2156
int getLaneIndex(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2199
Scope for interaction with vehicle types.
Definition: TraCIAPI.h:482
double getSpeedDeviation(const std::string &typeID) const
Definition: TraCIAPI.cpp:1816
double getSpeedFactor(const std::string &typeID) const
Definition: TraCIAPI.cpp:1811
void setImperfection(const std::string &typeID, double imperfection) const
Definition: TraCIAPI.cpp:2072
void setApparentDecel(const std::string &typeID, double decel) const
Definition: TraCIAPI.cpp:2063
void setHeight(const std::string &typeID, double height) const
Definition: TraCIAPI.cpp:1972
std::string getShapeClass(const std::string &typeID) const
Definition: TraCIAPI.cpp:1861
double getMinGapLat(const std::string &typeID) const
Definition: TraCIAPI.cpp:1871
void copy(const std::string &origTypeID, const std::string &newTypeID) const
Definition: TraCIAPI.cpp:2018
int getPersonCapacity(const std::string &typeID) const
Definition: TraCIAPI.cpp:1886
VehicleTypeScope(TraCIAPI &parent)
Definition: TraCIAPI.h:484
void setVehicleClass(const std::string &typeID, const std::string &clazz) const
Definition: TraCIAPI.cpp:1926
void setColor(const std::string &typeID, const libsumo::TraCIColor &c) const
Definition: TraCIAPI.cpp:2090
void setDecel(const std::string &typeID, double decel) const
Definition: TraCIAPI.cpp:2045
void setWidth(const std::string &typeID, double width) const
Definition: TraCIAPI.cpp:1963
double getApparentDecel(const std::string &typeID) const
Definition: TraCIAPI.cpp:1836
double getDecel(const std::string &typeID) const
Definition: TraCIAPI.cpp:1826
void setLateralAlignment(const std::string &typeID, const std::string &latAlignment) const
Definition: TraCIAPI.cpp:2009
void setMaxSpeed(const std::string &typeID, double speed) const
Definition: TraCIAPI.cpp:1917
double getMinGap(const std::string &typeID) const
Definition: TraCIAPI.cpp:1866
std::string getVehicleClass(const std::string &typeID) const
Definition: TraCIAPI.cpp:1851
void setShapeClass(const std::string &typeID, const std::string &shapeClass) const
Definition: TraCIAPI.cpp:2027
double getMaxSpeedLat(const std::string &typeID) const
Definition: TraCIAPI.cpp:1876
double getEmergencyDecel(const std::string &typeID) const
Definition: TraCIAPI.cpp:1831
double getWidth(const std::string &typeID) const
Definition: TraCIAPI.cpp:1891
libsumo::TraCIColor getColor(const std::string &typeID) const
Definition: TraCIAPI.cpp:1901
double getTau(const std::string &typeID) const
Definition: TraCIAPI.cpp:1846
double getMaxSpeed(const std::string &typeID) const
Definition: TraCIAPI.cpp:1806
double getLength(const std::string &typeID) const
Definition: TraCIAPI.cpp:1801
std::string getEmissionClass(const std::string &typeID) const
Definition: TraCIAPI.cpp:1856
double getImperfection(const std::string &typeID) const
Definition: TraCIAPI.cpp:1841
void setEmissionClass(const std::string &typeID, const std::string &clazz) const
Definition: TraCIAPI.cpp:1954
void setAccel(const std::string &typeID, double accel) const
Definition: TraCIAPI.cpp:2036
void setMinGap(const std::string &typeID, double minGap) const
Definition: TraCIAPI.cpp:1981
double getAccel(const std::string &typeID) const
Definition: TraCIAPI.cpp:1821
void setSpeedFactor(const std::string &typeID, double factor) const
Definition: TraCIAPI.cpp:1935
double getHeight(const std::string &typeID) const
Definition: TraCIAPI.cpp:1896
void setEmergencyDecel(const std::string &typeID, double decel) const
Definition: TraCIAPI.cpp:2054
void setSpeedDeviation(const std::string &typeID, double deviation) const
Definition: TraCIAPI.cpp:1944
void setMaxSpeedLat(const std::string &typeID, double speed) const
Definition: TraCIAPI.cpp:2000
std::string getLateralAlignment(const std::string &typeID) const
Definition: TraCIAPI.cpp:1881
void setMinGapLat(const std::string &typeID, double minGapLat) const
Definition: TraCIAPI.cpp:1991
void setLength(const std::string &typeID, double length) const
Definition: TraCIAPI.cpp:1908
void setTau(const std::string &typeID, double tau) const
Definition: TraCIAPI.cpp:2081
C++ TraCI client API implementation.
Definition: TraCIAPI.h:47
RouteScope route
Scope for interaction with routes.
Definition: TraCIAPI.h:826
std::pair< int, std::string > getVersion()
return TraCI API and SUMO version
Definition: TraCIAPI.cpp:487
void setOrder(int order)
set priority (execution order) for the client
Definition: TraCIAPI.cpp:89
void readVariableSubscription(int cmdId, tcpip::Storage &inMsg)
Definition: TraCIAPI.cpp:424
tcpip::Storage myInput
The reusable input storage.
Definition: TraCIAPI.h:935
MeMeScope multientryexit
Scope for interaction with multi-entry/-exit detectors.
Definition: TraCIAPI.h:816
VehicleTypeScope vehicletype
Scope for interaction with vehicle types.
Definition: TraCIAPI.h:836
void send_commandSubscribeObjectVariable(int domID, const std::string &objID, double beginTime, double endTime, const std::vector< int > &vars) const
Sends a SubscribeVariable request.
Definition: TraCIAPI.cpp:209
void send_commandSimulationStep(double time) const
Sends a SimulationStep command.
Definition: TraCIAPI.cpp:125
GUIScope gui
Scope for interaction with the gui.
Definition: TraCIAPI.h:806
void check_resultState(tcpip::Storage &inMsg, int command, bool ignoreCommandId=false, std::string *acknowledgement=0) const
Validates the result state of a command.
Definition: TraCIAPI.cpp:268
PolygonScope polygon
Scope for interaction with polygons.
Definition: TraCIAPI.h:822
static std::string toString(const T &t, std::streamsize accuracy=PRECISION)
Definition: TraCIAPI.h:917
TraCIAPI()
Constructor.
Definition: TraCIAPI.cpp:40
void connect(const std::string &host, int port)
Connects to the specified SUMO server.
Definition: TraCIAPI.cpp:76
tcpip::Socket * mySocket
The socket.
Definition: TraCIAPI.h:931
void load(const std::vector< std::string > &args)
Let sumo load a simulation using the given command line like options.
Definition: TraCIAPI.cpp:469
LaneAreaScope lanearea
Scope for interaction with lanes.
Definition: TraCIAPI.h:814
void simulationStep(double time=0)
Advances by one step (or up to the given time)
Definition: TraCIAPI.cpp:447
void createFilterCommand(int cmdID, int varID, tcpip::Storage *add=nullptr) const
Definition: TraCIAPI.cpp:186
void createCommand(int cmdID, int varID, const std::string &objID, tcpip::Storage *add=nullptr) const
Sends a GetVariable / SetVariable request if mySocket is connected. Otherwise writes to myOutput only...
Definition: TraCIAPI.cpp:162
void close()
ends the simulation and closes the connection
Definition: TraCIAPI.cpp:104
LaneScope lane
Scope for interaction with lanes.
Definition: TraCIAPI.h:812
std::map< int, TraCIScopeWrapper * > myDomains
Definition: TraCIAPI.h:929
void send_commandSubscribeObjectContext(int domID, const std::string &objID, double beginTime, double endTime, int domain, double range, const std::vector< int > &vars) const
Sends a SubscribeContext request.
Definition: TraCIAPI.cpp:237
bool processSet(int command)
Definition: TraCIAPI.cpp:344
TrafficLightScope trafficlights
Scope for interaction with traffic lights.
Definition: TraCIAPI.h:832
InductionLoopScope inductionloop
Scope for interaction with inductive loops.
Definition: TraCIAPI.h:808
tcpip::Storage myOutput
The reusable output storage.
Definition: TraCIAPI.h:933
POIScope poi
Scope for interaction with POIs.
Definition: TraCIAPI.h:820
void closeSocket()
Closes the connection.
Definition: TraCIAPI.cpp:114
int check_commandGetResult(tcpip::Storage &inMsg, int command, int expectedType=-1, bool ignoreCommandId=false) const
Validates the result state of a command.
Definition: TraCIAPI.cpp:307
VehicleScope vehicle
Scope for interaction with vehicles.
Definition: TraCIAPI.h:834
JunctionScope junction
Scope for interaction with junctions.
Definition: TraCIAPI.h:810
void send_commandClose() const
Sends a Close command.
Definition: TraCIAPI.cpp:138
void send_commandSetOrder(int order) const
Sends a SetOrder command.
Definition: TraCIAPI.cpp:149
~TraCIAPI()
Destructor.
Definition: TraCIAPI.cpp:70
RouteProbeScope routeprobe
Scope for interaction with route probes.
Definition: TraCIAPI.h:828
EdgeScope edge
Scope for interaction with edges.
Definition: TraCIAPI.h:804
bool processGet(int command, int expectedType, bool ignoreCommandId=false)
Definition: TraCIAPI.cpp:331
SimulationScope simulation
Scope for interaction with the simulation.
Definition: TraCIAPI.h:830
void readContextSubscription(int cmdId, tcpip::Storage &inMsg)
Definition: TraCIAPI.cpp:432
void readVariables(tcpip::Storage &inMsg, const std::string &objectID, int variableCount, libsumo::SubscriptionResults &into)
Definition: TraCIAPI.cpp:356
PersonScope person
Scope for interaction with persons.
Definition: TraCIAPI.h:818
RerouterScope rerouter
Scope for interaction with rerouters.
Definition: TraCIAPI.h:824
TRACI_CONST int CMD_SUBSCRIBE_SIM_VARIABLE
TRACI_CONST int CMD_SET_JUNCTION_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_EDGE_CONTEXT
TRACI_CONST int CMD_SUBSCRIBE_VEHICLETYPE_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_LANE_CONTEXT
TRACI_CONST int CMD_GET_POI_VARIABLE
TRACI_CONST int CMD_GET_TL_VARIABLE
std::map< int, std::shared_ptr< TraCIResult > > TraCIResults
{variable->value}
Definition: TraCIDefs.h:248
TRACI_CONST int CMD_SET_EDGE_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_JUNCTION_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_VEHICLE_CONTEXT
TRACI_CONST int CMD_GET_REROUTER_VARIABLE
TRACI_CONST int CMD_GET_VEHICLE_VARIABLE
TRACI_CONST int CMD_GET_EDGE_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_TL_CONTEXT
TRACI_CONST int CMD_SUBSCRIBE_ROUTEPROBE_VARIABLE
TRACI_CONST int CMD_SET_REROUTER_VARIABLE
std::vector< TraCIPosition > TraCIPositionVector
Definition: TraCIDefs.h:196
TRACI_CONST int CMD_GET_PERSON_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_REROUTER_CONTEXT
TRACI_CONST int CMD_SUBSCRIBE_GUI_VARIABLE
TRACI_CONST int CMD_SET_POI_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_ROUTE_CONTEXT
TRACI_CONST int CMD_GET_ROUTEPROBE_VARIABLE
TRACI_CONST int CMD_GET_LANEAREA_VARIABLE
TRACI_CONST int MOVE_TELEPORT
TRACI_CONST int CMD_SET_POLYGON_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_ROUTEPROBE_CONTEXT
TRACI_CONST int CMD_GET_ROUTE_VARIABLE
TRACI_CONST int CMD_SET_ROUTE_VARIABLE
TRACI_CONST int CMD_SET_SIM_VARIABLE
TRACI_CONST int CMD_GET_JUNCTION_VARIABLE
TRACI_CONST int CMD_SET_VEHICLE_VARIABLE
TRACI_CONST int CMD_SET_GUI_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_ROUTE_VARIABLE
std::map< std::string, TraCIResults > SubscriptionResults
{object->{variable->value}}
Definition: TraCIDefs.h:250
TRACI_CONST int CMD_SET_VEHICLETYPE_VARIABLE
TRACI_CONST int CMD_SET_PERSON_VARIABLE
TRACI_CONST int CMD_GET_SIM_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_POLYGON_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_PERSON_CONTEXT
TRACI_CONST int CMD_GET_VEHICLETYPE_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_POLYGON_CONTEXT
TRACI_CONST int CMD_SET_LANE_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_GUI_CONTEXT
TRACI_CONST int CMD_GET_LANE_VARIABLE
TRACI_CONST int CMD_GET_GUI_VARIABLE
TRACI_CONST int DEPARTFLAG_NOW
TRACI_CONST int CMD_GET_POLYGON_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_MULTIENTRYEXIT_CONTEXT
TRACI_CONST int CMD_SUBSCRIBE_REROUTER_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_VEHICLE_VARIABLE
TRACI_CONST int CMD_GET_MULTIENTRYEXIT_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_INDUCTIONLOOP_CONTEXT
TRACI_CONST int CMD_SUBSCRIBE_POI_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_LANEAREA_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_POI_CONTEXT
TRACI_CONST int CMD_SET_TL_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_INDUCTIONLOOP_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_SIM_CONTEXT
std::map< std::string, SubscriptionResults > ContextSubscriptionResults
Definition: TraCIDefs.h:251
TRACI_CONST int CMD_SUBSCRIBE_MULTIENTRYEXIT_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_VEHICLETYPE_CONTEXT
TRACI_CONST int CMD_SUBSCRIBE_LANE_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_PERSON_VARIABLE
TRACI_CONST int CMD_GET_INDUCTIONLOOP_VARIABLE
TRACI_CONST int REMOVE_VAPORIZED
TRACI_CONST int CMD_SUBSCRIBE_TL_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_LANEAREA_CONTEXT
TRACI_CONST int CMD_SUBSCRIBE_JUNCTION_CONTEXT
TRACI_CONST int CMD_SET_ROUTEPROBE_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_EDGE_VARIABLE
A 3D-position.
Definition: TraCIDefs.h:141
An edgeId, position and laneIndex.
Definition: TraCIDefs.h:153