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-2022 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 <config.h>
24#include <vector>
25#include <limits>
26#include <string>
27#include <sstream>
28#include <iomanip>
31#include <libsumo/TraCIDefs.h>
32
33// ===========================================================================
34// global definitions
35// ===========================================================================
36#define DEFAULT_VIEW "View #0"
37#define PRECISION 2
38
39// ===========================================================================
40// class definitions
41// ===========================================================================
48class TraCIAPI {
49public:
52 TraCIAPI();
53
55 ~TraCIAPI();
56
59
65 void connect(const std::string& host, int port);
66
68 void setOrder(int order);
69
71 void close();
73
75 void simulationStep(double time = 0);
76
78 void load(const std::vector<std::string>& args);
79
81 std::pair<int, std::string> getVersion();
82
89 public:
93 TraCIScopeWrapper(TraCIAPI& parent, int cmdGetID, int cmdSetID, int subscribeID, int contextSubscribeID) :
94 myParent(parent),
95 myCmdGetID(cmdGetID),
96 myCmdSetID(cmdSetID),
97 mySubscribeID(subscribeID),
98 myContextSubscribeID(contextSubscribeID) {
99 }
100
103
104 std::vector<std::string> getIDList() const;
105 int getIDCount() const;
106
108 std::string getParameter(const std::string& objectID, const std::string& key) const;
109
111 std::pair<std::string, std::string> getParameterWithKey(const std::string& objectID, const std::string& key) const;
112
114 void setParameter(const std::string& objectID, const std::string& key, const std::string& value) const;
115
116 void subscribe(const std::string& objID, const std::vector<int>& vars, double beginTime, double endTime) const;
117 void subscribeContext(const std::string& objID, int domain, double range, const std::vector<int>& vars, double beginTime, double endTime) const;
118
120 const libsumo::TraCIResults getSubscriptionResults(const std::string& objID) const;
121
123 const libsumo::SubscriptionResults getContextSubscriptionResults(const std::string& objID) const;
124
125 // the following are only for internal use
129
130 protected:
131 int getUnsignedByte(int var, const std::string& id, tcpip::Storage* add = 0) const;
132 int getByte(int var, const std::string& id, tcpip::Storage* add = 0) const;
133 int getInt(int var, const std::string& id, tcpip::Storage* add = 0) const;
134 double getDouble(int var, const std::string& id, tcpip::Storage* add = 0) const;
135 libsumo::TraCIPositionVector getPolygon(int var, const std::string& id, tcpip::Storage* add = 0) const;
136 libsumo::TraCIPosition getPos(int var, const std::string& id, tcpip::Storage* add = 0) const;
137 libsumo::TraCIPosition getPos3D(int var, const std::string& id, tcpip::Storage* add = 0) const;
138 std::string getString(int var, const std::string& id, tcpip::Storage* add = 0) const;
139 std::vector<std::string> getStringVector(int var, const std::string& id, tcpip::Storage* add = 0) const;
140 std::vector<double> getDoubleVector(int var, const std::string& id, tcpip::Storage* add = 0) const;
141 libsumo::TraCIColor getCol(int var, const std::string& id, tcpip::Storage* add = 0) const;
142 libsumo::TraCIStage getTraCIStage(int var, const std::string& id, tcpip::Storage* add = 0) const;
143
144 void setInt(int var, const std::string& id, int value) const;
145 void setDouble(int var, const std::string& id, double value) const;
146 void setString(int var, const std::string& id, const std::string& value) const;
147 void setStringVector(int var, const std::string& id, const std::vector<std::string>& value) const;
148
149 protected:
152
153 private:
160
161
162 private:
165 };
166
167
172 public:
174 virtual ~EdgeScope() {}
175
176 double getAdaptedTraveltime(const std::string& edgeID, double time) const;
177 double getEffort(const std::string& edgeID, double time) const;
178 double getCO2Emission(const std::string& edgeID) const;
179 double getCOEmission(const std::string& edgeID) const;
180 double getHCEmission(const std::string& edgeID) const;
181 double getPMxEmission(const std::string& edgeID) const;
182 double getNOxEmission(const std::string& edgeID) const;
183 double getFuelConsumption(const std::string& edgeID) const;
184 double getNoiseEmission(const std::string& edgeID) const;
185 double getElectricityConsumption(const std::string& edgeID) const;
186 double getLastStepMeanSpeed(const std::string& edgeID) const;
187 double getLastStepOccupancy(const std::string& edgeID) const;
188 double getLastStepLength(const std::string& edgeID) const;
189 double getTraveltime(const std::string& edgeID) const;
190 int getLastStepVehicleNumber(const std::string& edgeID) const;
191 double getLastStepHaltingNumber(const std::string& edgeID) const;
192 std::vector<std::string> getLastStepVehicleIDs(const std::string& edgeID) const;
193 int getLaneNumber(const std::string& edgeID) const;
194 std::string getStreetName(const std::string& id) const;
195
196 void adaptTraveltime(const std::string& edgeID, double time, double beginSeconds = 0., double endSeconds = std::numeric_limits<double>::max()) const;
197 void setEffort(const std::string& edgeID, double effort, double beginSeconds = 0., double endSeconds = std::numeric_limits<double>::max()) const;
198 void setMaxSpeed(const std::string& edgeID, double speed) const;
199 };
200
201
206 public:
208 virtual ~GUIScope() {}
209
210 double getZoom(const std::string& viewID = DEFAULT_VIEW) const;
211 libsumo::TraCIPosition getOffset(const std::string& viewID = DEFAULT_VIEW) const;
212 std::string getSchema(const std::string& viewID = DEFAULT_VIEW) const;
213 libsumo::TraCIPositionVector getBoundary(const std::string& viewID = DEFAULT_VIEW) const;
214 void setZoom(const std::string& viewID, double zoom) const;
215 void setOffset(const std::string& viewID, double x, double y) const;
216 void setSchema(const std::string& viewID, const std::string& schemeName) const;
217 void setBoundary(const std::string& viewID, double xmin, double ymin, double xmax, double ymax) const;
218 void screenshot(const std::string& viewID, const std::string& filename, const int width = -1, const int height = -1) const;
219 void trackVehicle(const std::string& viewID, const std::string& vehID) const;
220 };
221
222
227 public:
230
231 double getPosition(const std::string& loopID) const;
232 std::string getLaneID(const std::string& loopID) const;
233 int getLastStepVehicleNumber(const std::string& loopID) const;
234 double getLastStepMeanSpeed(const std::string& loopID) const;
235 std::vector<std::string> getLastStepVehicleIDs(const std::string& loopID) const;
236 double getLastStepOccupancy(const std::string& loopID) const;
237 double getLastStepMeanLength(const std::string& loopID) const;
238 double getTimeSinceDetection(const std::string& loopID) const;
239 std::vector<libsumo::TraCIVehicleData> getVehicleData(const std::string& loopID) const;
240 };
241
242
247 public:
249 virtual ~JunctionScope() {}
250
251 libsumo::TraCIPosition getPosition(const std::string& junctionID) const;
252 libsumo::TraCIPositionVector getShape(const std::string& junctionID) const;
253 };
254
255
260 public:
262 virtual ~LaneScope() {}
263
264 double getLength(const std::string& laneID) const;
265 double getMaxSpeed(const std::string& laneID) const;
266 double getWidth(const std::string& laneID) const;
267 std::vector<std::string> getAllowed(const std::string& laneID) const;
268 std::vector<std::string> getDisallowed(const std::string& laneID) const;
269 int getLinkNumber(const std::string& laneID) const;
270 std::vector<libsumo::TraCIConnection> getLinks(const std::string& laneID) const;
271 libsumo::TraCIPositionVector getShape(const std::string& laneID) const;
272 std::string getEdgeID(const std::string& laneID) const;
273 double getCO2Emission(const std::string& laneID) const;
274 double getCOEmission(const std::string& laneID) const;
275 double getHCEmission(const std::string& laneID) const;
276 double getPMxEmission(const std::string& laneID) const;
277 double getNOxEmission(const std::string& laneID) const;
278 double getFuelConsumption(const std::string& laneID) const;
279 double getNoiseEmission(const std::string& laneID) const;
280 double getElectricityConsumption(const std::string& laneID) const;
281 double getLastStepMeanSpeed(const std::string& laneID) const;
282 double getLastStepOccupancy(const std::string& laneID) const;
283 double getLastStepLength(const std::string& laneID) const;
284 double getTraveltime(const std::string& laneID) const;
285 int getLastStepVehicleNumber(const std::string& laneID) const;
286 int getLastStepHaltingNumber(const std::string& laneID) const;
287 std::vector<std::string> getLastStepVehicleIDs(const std::string& laneID) const;
288 std::vector<std::string> getFoes(const std::string& laneID, const std::string& toLaneID) const;
289 std::vector<std::string> getInternalFoes(const std::string& laneID) const;
290
291 void setAllowed(const std::string& laneID, const std::vector<std::string>& allowedClasses) const;
292 void setDisallowed(const std::string& laneID, const std::vector<std::string>& disallowedClasses) const;
293 void setMaxSpeed(const std::string& laneID, double speed) const;
294 void setLength(const std::string& laneID, double length) const;
295 };
296
297
302 public:
304 virtual ~LaneAreaScope() {}
305 };
306
307
312 public:
314 virtual ~MeMeScope() {}
315
316 int getLastStepVehicleNumber(const std::string& detID) const;
317 double getLastStepMeanSpeed(const std::string& detID) const;
318 std::vector<std::string> getLastStepVehicleIDs(const std::string& detID) const;
319 int getLastStepHaltingNumber(const std::string& detID) const;
320 std::vector<std::string> getEntryLanes(const std::string& detID) const;
321 std::vector<std::string> getExitLanes(const std::string& detID) const;
322 std::vector<double> getEntryPositions(const std::string& detID) const;
323 std::vector<double> getExitPositions(const std::string& detID) const;
324 };
325
326
331 public:
333 virtual ~POIScope() {}
334
335 std::string getType(const std::string& poiID) const;
336 libsumo::TraCIPosition getPosition(const std::string& poiID) const;
337 libsumo::TraCIColor getColor(const std::string& poiID) const;
338 double getWidth(const std::string& poiID) const;
339 double getHeight(const std::string& poiID) const;
340 double getAngle(const std::string& poiID) const;
341 std::string getImageFile(const std::string& poiID) const;
342
343 void setType(const std::string& poiID, const std::string& setType) const;
344 void setPosition(const std::string& poiID, double x, double y) const;
345 void setColor(const std::string& poiID, const libsumo::TraCIColor& c) const;
346 void setWidth(const std::string& poiID, double width) const;
347 void setHeight(const std::string& poiID, double height) const;
348 void setAngle(const std::string& poiID, double angle) const;
349 void setImageFile(const std::string& poiID, const std::string& imageFile) const;
350 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;
351 void remove(const std::string& poiID, int layer = 0) const;
352 };
353
354
359 public:
361 virtual ~PolygonScope() {}
362
363 double getLineWidth(const std::string& polygonID) const;
364 bool getFilled(const std::string& polygonID) const;
365 std::string getType(const std::string& polygonID) const;
366 libsumo::TraCIPositionVector getShape(const std::string& polygonID) const;
367 libsumo::TraCIColor getColor(const std::string& polygonID) const;
368 void setType(const std::string& polygonID, const std::string& setType) const;
369 void setShape(const std::string& polygonID, const libsumo::TraCIPositionVector& shape) const;
370 void setColor(const std::string& polygonID, const libsumo::TraCIColor& c) const;
371 void setLineWidth(const std::string& polygonID, const double lineWidth) const;
372 void add(const std::string& polygonID, const libsumo::TraCIPositionVector& shape, const libsumo::TraCIColor& c, bool fill, const std::string& type, int layer) const;
373 void remove(const std::string& polygonID, int layer = 0) const;
374 };
375
376
381 public:
383 virtual ~RerouterScope() {}
384 };
385
386
391 public:
393 virtual ~RouteScope() {}
394
395 std::vector<std::string> getEdges(const std::string& routeID) const;
396
397 void add(const std::string& routeID, const std::vector<std::string>& edges) const;
398 };
399
400
405 public:
407 virtual ~RouteProbeScope() {}
408 };
409
410
415 public:
417 virtual ~SimulationScope() {}
418
419 int getCurrentTime() const;
420 double getTime() const;
421 int getLoadedNumber() const;
422 std::vector<std::string> getLoadedIDList() const;
423 int getDepartedNumber() const;
424 std::vector<std::string> getDepartedIDList() const;
425 int getArrivedNumber() const;
426 std::vector<std::string> getArrivedIDList() const;
427 int getStartingTeleportNumber() const;
428 std::vector<std::string> getStartingTeleportIDList() const;
429 int getEndingTeleportNumber() const;
430 std::vector<std::string> getEndingTeleportIDList() const;
431 double getDeltaT() const;
433 int getMinExpectedNumber() const;
434 std::string getOption(const std::string& option) const;
435
436 int getDepartedPersonNumber() const;
437 std::vector<std::string> getDepartedPersonIDList() const;
438 int getArrivedPersonNumber() const;
439 std::vector<std::string> getArrivedPersonIDList() const;
440
441 int getBusStopWaiting(const std::string& stopID) const;
442 std::vector<std::string> getBusStopWaitingIDList(const std::string& stopID) const;
443
444 libsumo::TraCIPosition convert2D(const std::string& edgeID, double pos, int laneIndex = 0, bool toGeo = false) const;
445 libsumo::TraCIPosition convert3D(const std::string& edgeID, double pos, int laneIndex = 0, bool toGeo = false) const;
446 libsumo::TraCIRoadPosition convertRoad(double x, double y, bool isGeo = false, const std::string& vClass = "ignoring") const;
447 libsumo::TraCIPosition convertGeo(double x, double y, bool fromGeo = false) const;
448
449 double getDistance2D(double x1, double y1, double x2, double y2, bool isGeo = false, bool isDriving = false);
450 double getDistanceRoad(const std::string& edgeID1, double pos1, const std::string& edgeID2, double pos2, bool isDriving = false);
451 libsumo::TraCIStage findRoute(const std::string& fromEdge, const std::string& toEdge, const std::string& vType = "", double pos = -1., int routingMode = 0) const;
452 void loadState(const std::string& path) const;
453 void saveState(const std::string& destination) const;
454 void writeMessage(const std::string msg);
455 };
456
457
462 public:
465
466 std::string getRedYellowGreenState(const std::string& tlsID) const;
467 std::vector<libsumo::TraCILogic> getAllProgramLogics(const std::string& tlsID) const;
468 std::vector<std::string> getControlledLanes(const std::string& tlsID) const;
469 std::vector<std::vector<libsumo::TraCILink> > getControlledLinks(const std::string& tlsID) const;
470 std::string getProgram(const std::string& tlsID) const;
471 int getPhase(const std::string& tlsID) const;
472 double getPhaseDuration(const std::string& tlsID) const;
473 double getNextSwitch(const std::string& tlsID) const;
474 int getServedPersonCount(const std::string& tlsID, int index) const;
475 std::string getPhaseName(const std::string& tlsID) const;
476
477 void setRedYellowGreenState(const std::string& tlsID, const std::string& state) const;
478 void setPhase(const std::string& tlsID, int index) const;
479 void setPhaseName(const std::string& tlsID, const std::string& name) const;
480 void setProgram(const std::string& tlsID, const std::string& programID) const;
481 void setPhaseDuration(const std::string& tlsID, double phaseDuration) const;
482 void setProgramLogic(const std::string& tlsID, const libsumo::TraCILogic& logic) const;
483
484 // aliases for backward compatibility
485 inline std::vector<libsumo::TraCILogic> getCompleteRedYellowGreenDefinition(const std::string& tlsID) const {
486 return getAllProgramLogics(tlsID);
487 }
488 void setCompleteRedYellowGreenDefinition(const std::string& tlsID, const libsumo::TraCILogic& logic) const {
489 setProgramLogic(tlsID, logic);
490 }
491 };
492
493
498 public:
500 virtual ~VehicleTypeScope() {}
501
502 double getLength(const std::string& typeID) const;
503 double getMaxSpeed(const std::string& typeID) const;
504 double getSpeedFactor(const std::string& typeID) const;
505 double getSpeedDeviation(const std::string& typeID) const;
506 double getAccel(const std::string& typeID) const;
507 double getDecel(const std::string& typeID) const;
508 double getEmergencyDecel(const std::string& typeID) const;
509 double getApparentDecel(const std::string& typeID) const;
510 double getImperfection(const std::string& typeID) const;
511 double getTau(const std::string& typeID) const;
512 std::string getVehicleClass(const std::string& typeID) const;
513 std::string getEmissionClass(const std::string& typeID) const;
514 std::string getShapeClass(const std::string& typeID) const;
515 double getMinGap(const std::string& typeID) const;
516 double getWidth(const std::string& typeID) const;
517 double getHeight(const std::string& typeID) const;
518 libsumo::TraCIColor getColor(const std::string& typeID) const;
519 double getMinGapLat(const std::string& typeID) const;
520 double getMaxSpeedLat(const std::string& typeID) const;
521 std::string getLateralAlignment(const std::string& typeID) const;
522 int getPersonCapacity(const std::string& typeID) const;
523
524 void setLength(const std::string& typeID, double length) const;
525 void setMaxSpeed(const std::string& typeID, double speed) const;
526 void setVehicleClass(const std::string& typeID, const std::string& clazz) const;
527 void setSpeedFactor(const std::string& typeID, double factor) const;
528 void setSpeedDeviation(const std::string& typeID, double deviation) const;
529 void setEmissionClass(const std::string& typeID, const std::string& clazz) const;
530 void setShapeClass(const std::string& typeID, const std::string& shapeClass) const;
531 void setWidth(const std::string& typeID, double width) const;
532 void setHeight(const std::string& typeID, double height) const;
533 void setMinGap(const std::string& typeID, double minGap) const;
534 void setAccel(const std::string& typeID, double accel) const;
535 void setDecel(const std::string& typeID, double decel) const;
536 void setEmergencyDecel(const std::string& typeID, double decel) const;
537 void setApparentDecel(const std::string& typeID, double decel) const;
538 void setImperfection(const std::string& typeID, double imperfection) const;
539 void setTau(const std::string& typeID, double tau) const;
540 void setColor(const std::string& typeID, const libsumo::TraCIColor& c) const;
541 void setMinGapLat(const std::string& typeID, double minGapLat) const;
542 void setMaxSpeedLat(const std::string& typeID, double speed) const;
543 void setLateralAlignment(const std::string& typeID, const std::string& latAlignment) const;
544 void copy(const std::string& origTypeID, const std::string& newTypeID) const;
545 };
546
547
552 public:
554 virtual ~VehicleScope() {}
555
571 SIGNAL_RESET = -1, /*< sending a negative signal resets all signals to their computed values immediately */
572 };
573
576 double getSpeed(const std::string& vehicleID) const;
577 double getLateralSpeed(const std::string& vehicleID) const;
578 double getAcceleration(const std::string& vehicleID) const;
579 double getFollowSpeed(const std::string& vehicleID, double speed, double gap, double leaderSpeed, double leaderMaxDecel, const std::string& leaderID = "") const;
580 double getSecureGap(const std::string& vehicleID, double speed, double leaderSpeed, double leaderMaxDecel, const std::string& leaderID = "") const;
581 double getStopSpeed(const std::string& vehicleID, double speed, double gap) const;
582 libsumo::TraCIPosition getPosition(const std::string& vehicleID) const;
583 libsumo::TraCIPosition getPosition3D(const std::string& vehicleID) const;
584 double getAngle(const std::string& vehicleID) const;
585 std::string getRoadID(const std::string& vehicleID) const;
586 std::string getLaneID(const std::string& vehicleID) const;
587 int getLaneIndex(const std::string& vehicleID) const;
588 std::string getTypeID(const std::string& vehicleID) const;
589 std::string getRouteID(const std::string& vehicleID) const;
590 int getRouteIndex(const std::string& vehicleID) const;
591 std::vector<std::string> getRoute(const std::string& vehicleID) const;
592 libsumo::TraCIColor getColor(const std::string& vehicleID) const;
593 double getLanePosition(const std::string& vehicleID) const;
594 double getDistance(const std::string& vehicleID) const;
595 int getSignals(const std::string& vehicleID) const;
596 double getCO2Emission(const std::string& vehicleID) const;
597 double getCOEmission(const std::string& vehicleID) const;
598 double getHCEmission(const std::string& vehicleID) const;
599 double getPMxEmission(const std::string& vehicleID) const;
600 double getNOxEmission(const std::string& vehicleID) const;
601 double getFuelConsumption(const std::string& vehicleID) const;
602 double getNoiseEmission(const std::string& vehicleID) const;
603 double getElectricityConsumption(const std::string& vehicleID) const;
604 int getStopState(const std::string& vehicleID) const;
605 double getWaitingTime(const std::string& vehicleID) const;
606 double getAccumulatedWaitingTime(const std::string& vehicleID) const;
607 int getLaneChangeMode(const std::string& vehicleID) const;
608 int getSpeedMode(const std::string& vehicleID) const;
609 double getSlope(const std::string& vehicleID) const;
610 double getAllowedSpeed(const std::string& vehicleID) const;
611 int getPersonNumber(const std::string& vehicleID) const;
612 std::vector<std::string> getPersonIDList(const std::string& vehicleID) const;
613 double getSpeedWithoutTraCI(const std::string& vehicleID) const;
614 bool isRouteValid(const std::string& vehicleID) const;
615 double getLateralLanePosition(const std::string& vehicleID) const;
616 double getSpeedFactor(const std::string& vehicleID) const;
617 std::string getLine(const std::string& vehicleID) const;
618 std::vector<std::string> getVia(const std::string& vehicleID) const;
619 std::vector<libsumo::TraCINextTLSData> getNextTLS(const std::string& vehID) const;
620 std::vector<libsumo::TraCIBestLanesData> getBestLanes(const std::string& vehicleID) const;
621 std::pair<std::string, double> getLeader(const std::string& vehicleID, double dist) const;
622 std::pair<std::string, double> getFollower(const std::string& vehicleID, double dist) const;
623 int getRoutingMode(const std::string& vehicleID) const;
624 double getStopDelay(const std::string& vehicleID) const;
625 double getStopArrivalDelay(const std::string& vehicleID) const;
626 std::pair<int, int> getLaneChangeState(const std::string& vehicleID, int direction) const;
628
631 double getLength(const std::string& vehicleID) const;
632 double getMaxSpeed(const std::string& vehicleID) const;
633 double getAccel(const std::string& vehicleID) const;
634 double getDecel(const std::string& vehicleID) const;
635 double getEmergencyDecel(const std::string& vehicleID) const;
636 double getApparentDecel(const std::string& vehicleID) const;
637 double getTau(const std::string& vehicleID) const;
638 double getImperfection(const std::string& vehicleID) const;
639 double getSpeedDeviation(const std::string& vehicleID) const;
640 double getMinGap(const std::string& vehicleID) const;
641 double getWidth(const std::string& vehicleID) const;
642 double getHeight(const std::string& veihcleID) const;
643 double getMaxSpeedLat(const std::string& vehicleID) const;
644 double getMinGapLat(const std::string& vehicleID) const;
645 int getPersonCapacity(const std::string& vehicleID) const;
646 std::string getVehicleClass(const std::string& vehicleID) const;
647 std::string getEmissionClass(const std::string& vehicleID) const;
648 std::string getShapeClass(const std::string& vehicleID) const;
649 std::string getLateralAlignment(const std::string& vehicleID) const;
651
654 void add(const std::string& vehicleID,
655 const std::string& routeID,
656 const std::string& typeID = "DEFAULT_VEHTYPE",
657 std::string depart = "-1",
658 const std::string& departLane = "first",
659 const std::string& departPos = "base",
660 const std::string& departSpeed = "0",
661 const std::string& arrivalLane = "current",
662 const std::string& arrivalPos = "max",
663 const std::string& arrivalSpeed = "current",
664 const std::string& fromTaz = "",
665 const std::string& toTaz = "",
666 const std::string& line = "",
667 int personCapacity = 0,
668 int personNumber = 0) const;
669
670 void changeTarget(const std::string& vehicleID, const std::string& edgeID) const;
671 void changeLane(const std::string& vehicleID, int laneIndex, double duration) const;
672 void changeLaneRelative(const std::string& vehicleID, int laneChange, double duration) const;
673 void changeSublane(const std::string& vehicleID, double latDist) const;
674 void setRouteID(const std::string& vehicleID, const std::string& routeID) const;
675 void setRoute(const std::string& vehicleID, const std::vector<std::string>& edge) const;
676 void rerouteTraveltime(const std::string& vehicleID, bool currentTravelTimes = true) const;
677 void moveTo(const std::string& vehicleID, const std::string& laneID, double position, int reason = libsumo::MOVE_TELEPORT) const;
678 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;
679 void slowDown(const std::string& vehicleID, double speed, double duration) const;
680 void openGap(const std::string& vehicleID, double newTau, double duration, double changeRate, double maxDecel) const;
681 void setSpeed(const std::string& vehicleID, double speed) const;
682 void setAcceleration(const std::string& vehicleID, double accel, double duration) const;
683 void setPreviousSpeed(const std::string& vehicleID, double prevSpeed, double prevAcceleration = std::numeric_limits<int>::min()) const;
684 void setLaneChangeMode(const std::string& vehicleID, int mode) const;
685 void setSpeedMode(const std::string& vehicleID, int mode) const;
686 void setStop(const std::string vehicleID, const std::string edgeID, const double endPos = 1.,
687 const int laneIndex = 0, const double duration = std::numeric_limits<double>::max(),
688 const int flags = 0, const double startPos = std::numeric_limits<int>::min(),
689 const double until = -1) const;
690 void setType(const std::string& vehicleID, const std::string& typeID) const;
691 void remove(const std::string& vehicleID, char reason = libsumo::REMOVE_VAPORIZED) const;
692 void setColor(const std::string& vehicleID, const libsumo::TraCIColor& c) const;
693 void setLine(const std::string& vehicleID, const std::string& line) const;
694 void setVia(const std::string& vehicleID, const std::vector<std::string>& via) const;
695 void setSignals(const std::string& vehicleID, int signals) const;
696 void setRoutingMode(const std::string& vehicleID, int routingMode) const;
698
701 void setShapeClass(const std::string& vehicleID, const std::string& clazz) const;
702 void setEmissionClass(const std::string& vehicleID, const std::string& clazz) const;
703 void setSpeedFactor(const std::string& vehicleID, double factor) const;
704 void setMinGap(const std::string& vehicleID, double minGap) const;
705 void setMaxSpeed(const std::string& vehicleID, double speed) const;
707
709 /* @brief Filters are added to the last modified vehicle context
710 * subscription (call these fucntions right after subscribing) */
712
713 /* @brief Adds a lane-filter, lanes is a list of relative lane indices (-1 -> right neighboring lane of the ego, 0 -> ego lane, etc.)
714 * noOpposite specifies whether vehicles on opposite direction lanes shall be returned
715 * downstreamDist and upstreamDist specify the range of the search for surrounding vehicles along the road net. */
716 void addSubscriptionFilterLanes(const std::vector<int>& lanes,
717 bool noOpposite = false, double downstreamDist = -1, double upstreamDist = -1) const;
718
719 /* @brief Omits vehicles on other edges than the ego's */
721
722 /* @brief Limits the downstream distance for resulting vehicles */
723 void addSubscriptionFilterDownstreamDistance(double dist) const;
724
725 /* @brief Limits the updstream distance for resulting vehicles */
726 void addSubscriptionFilterUpstreamDistance(double dist) const;
727
728 /* @brief Restricts vehicles returned by the last modified vehicle context subscription to leader and follower of the ego.
729 * downstreamDist and upstreamDist specify the range of the search for leader and follower along the road net. */
730 void addSubscriptionFilterCFManeuver(double downstreamDist = -1, double upstreamDist = -1) const;
731
732 /* @brief Restricts returned vehicles to neighbor and ego-lane leader
733 * and follower of the ego in the given direction
734 * noOpposite specifies whether vehicles on opposite direction lanes shall be returned
735 * downstreamDist and upstreamDist specify the range of the search for leader and follower along the road net.
736 * Combine with: distance filters; vClass/vType filter. */
737 void addSubscriptionFilterLCManeuver(int direction, bool noOpposite = false, double downstreamDist = -1, double upstreamDist = -1) const;
738
739 /* @brief Restricts returned vehicles to neighbor and ego-lane leader and follower of the ego.
740 * Combine with: lanes-filter to restrict to one direction; distance filters; vClass/vType filter. */
741 void addSubscriptionFilterLeadFollow(const std::vector<int>& lanes) const;
742
743 /* @brief Restricts returned vehicles to foes on an upcoming junction */
744 void addSubscriptionFilterTurn(double downstreamDist = -1, double upstreamDist = -1) const;
745
746 /* @brief Restricts returned vehicles to the given classes */
747 void addSubscriptionFilterVClass(const std::vector<std::string>& vClasses) const;
748
749 /* @brief Restricts returned vehicles to the given types */
750 void addSubscriptionFilterVType(const std::vector<std::string>& vTypes) const;
751
752 /* @brief Restricts returned vehicles to the given FOV-angle */
753 void addSubscriptionFilterFieldOfVision(double angle) const;
754
755 /* @brief Restricts returned vehicles to the given lateral distance */
756 void addSubscriptionFilterLateralDistance(double lateralDist, double downstreamDist = -1, double foeDistToJunction = -1) const;
757
759
760 private:
761 void addSubscriptionFilterEmpty(int filterType) const;
762 void addSubscriptionFilterFloat(int filterType, double val) const;
763 void addSubscriptionFilterStringList(int filterType, const std::vector<std::string>& vals) const;
764 void addSubscriptionFilterByteList(int filterType, const std::vector<int>& vals) const;
765 };
766
767
772 public:
774 virtual ~PersonScope() {}
775
776 double getSpeed(const std::string& personID) const;
777 libsumo::TraCIPosition getPosition(const std::string& personID) const;
778 libsumo::TraCIPosition getPosition3D(const std::string& personID) const;
779 std::string getRoadID(const std::string& personID) const;
780 std::string getLaneID(const std::string& personID) const;
781 std::string getTypeID(const std::string& personID) const;
782 double getSpeedFactor(const std::string& personID) const;
783 double getWaitingTime(const std::string& personID) const;
784 std::string getNextEdge(const std::string& personID) const;
785 std::string getVehicle(const std::string& personID) const;
786 int getRemainingStages(const std::string& personID) const;
787 libsumo::TraCIStage getStage(const std::string& personID, int nextStageIndex = 0) const;
788 std::vector<std::string> getEdges(const std::string& personID, int nextStageIndex = 0) const;
789 double getAngle(const std::string& personID) const;
790 double getSlope(const std::string& personID) const;
791 double getLanePosition(const std::string& personID) const;
792 libsumo::TraCIColor getColor(const std::string& personID) const;
793
796 double getLength(const std::string& personID) const;
798
799
800 void removeStages(const std::string& personID) const;
801 void add(const std::string& personID, const std::string& edgeID, double pos, double depart = libsumo::DEPARTFLAG_NOW, const std::string typeID = "DEFAULT_PEDTYPE");
802 void appendStage(const std::string& personID, const libsumo::TraCIStage& stage);
803 void appendWaitingStage(const std::string& personID, double duration, const std::string& description = "waiting", const std::string& stopID = "");
804 void appendWalkingStage(const std::string& personID, const std::vector<std::string>& edges, double arrivalPos, double duration = -1, double speed = -1, const std::string& stopID = "");
805 void appendDrivingStage(const std::string& personID, const std::string& toEdge, const std::string& lines, const std::string& stopID = "");
806 void removeStage(const std::string& personID, int nextStageIndex) const;
807 void rerouteTraveltime(const std::string& personID) const;
808 void moveTo(const std::string& personID, const std::string& edgeID, double position) const;
809 void moveToXY(const std::string& personID, const std::string& edgeID, const double x, const double y, double angle, const int keepRoute) const;
810 void setSpeed(const std::string& personID, double speed) const;
811 void setType(const std::string& personID, const std::string& typeID) const;
812 void setSpeedFactor(const std::string& personID, double factor) const;
813 void setLength(const std::string& personID, double length) const;
814 void setWidth(const std::string& personID, double width) const;
815 void setHeight(const std::string& personID, double height) const;
816 void setMinGap(const std::string& personID, double minGap) const;
817 void setColor(const std::string& personID, const libsumo::TraCIColor& c) const;
818 };
819
820
821
822public:
857
858
859protected:
862
865 void send_commandSimulationStep(double time) const;
866
867
870 void send_commandClose() const;
871
872
875 void send_commandSetOrder(int order) const;
876
884 void createCommand(int cmdID, int varID, const std::string& objID, tcpip::Storage* add = nullptr) const;
885 void createFilterCommand(int cmdID, int varID, tcpip::Storage* add = nullptr) const;
886
887
895 void send_commandSubscribeObjectVariable(int domID, const std::string& objID, double beginTime, double endTime, const std::vector<int>& vars) const;
896
897
907 void send_commandSubscribeObjectContext(int domID, const std::string& objID, double beginTime, double endTime,
908 int domain, double range, const std::vector<int>& vars) const;
910
911
914
921 void check_resultState(tcpip::Storage& inMsg, int command, bool ignoreCommandId = false, std::string* acknowledgement = 0) const;
922
926 int check_commandGetResult(tcpip::Storage& inMsg, int command, int expectedType = -1, bool ignoreCommandId = false) const;
927
928 bool processGet(int command, int expectedType, bool ignoreCommandId = false);
929 bool processSet(int command);
931
932 void readVariableSubscription(int cmdId, tcpip::Storage& inMsg);
933 void readContextSubscription(int cmdId, tcpip::Storage& inMsg);
934 void readVariables(tcpip::Storage& inMsg, const std::string& objectID, int variableCount, libsumo::SubscriptionResults& into);
935
936 template <class T>
937 static inline std::string toString(const T& t, std::streamsize accuracy = PRECISION) {
938 std::ostringstream oss;
939 oss.setf(std::ios::fixed, std::ios::floatfield);
940 oss << std::setprecision(accuracy);
941 oss << t;
942 return oss.str();
943 }
944
946 void closeSocket();
947
948protected:
949 std::map<int, TraCIScopeWrapper*> myDomains;
956};
#define DEFAULT_VIEW
Definition: TraCIAPI.h:36
#define PRECISION
Definition: TraCIAPI.h:37
Scope for interaction with edges.
Definition: TraCIAPI.h:171
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:174
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:173
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:205
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:208
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:207
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:226
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:228
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:246
JunctionScope(TraCIAPI &parent)
Definition: TraCIAPI.h:248
virtual ~JunctionScope()
Definition: TraCIAPI.h:249
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:301
virtual ~LaneAreaScope()
Definition: TraCIAPI.h:304
LaneAreaScope(TraCIAPI &parent)
Definition: TraCIAPI.h:303
Scope for interaction with lanes.
Definition: TraCIAPI.h:259
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:261
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:262
double getLastStepOccupancy(const std::string &laneID) const
Definition: TraCIAPI.cpp:963
Scope for interaction with multi entry/-exit detectors.
Definition: TraCIAPI.h:311
std::vector< std::string > getLastStepVehicleIDs(const std::string &detID) const
Definition: TraCIAPI.cpp:1055
virtual ~MeMeScope()
Definition: TraCIAPI.h:314
int getLastStepVehicleNumber(const std::string &detID) const
Definition: TraCIAPI.cpp:1045
std::vector< std::string > getExitLanes(const std::string &detID) const
Definition: TraCIAPI.cpp:1070
std::vector< double > getExitPositions(const std::string &detID) const
Definition: TraCIAPI.cpp:1080
double getLastStepMeanSpeed(const std::string &detID) const
Definition: TraCIAPI.cpp:1050
MeMeScope(TraCIAPI &parent)
Definition: TraCIAPI.h:313
int getLastStepHaltingNumber(const std::string &detID) const
Definition: TraCIAPI.cpp:1060
std::vector< std::string > getEntryLanes(const std::string &detID) const
Definition: TraCIAPI.cpp:1065
std::vector< double > getEntryPositions(const std::string &detID) const
Definition: TraCIAPI.cpp:1075
Scope for interaction with POIs.
Definition: TraCIAPI.h:330
libsumo::TraCIColor getColor(const std::string &poiID) const
Definition: TraCIAPI.cpp:1098
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:1178
std::string getImageFile(const std::string &poiID) const
Definition: TraCIAPI.cpp:1118
void setWidth(const std::string &poiID, double width) const
Definition: TraCIAPI.cpp:1154
libsumo::TraCIPosition getPosition(const std::string &poiID) const
Definition: TraCIAPI.cpp:1093
void setImageFile(const std::string &poiID, const std::string &imageFile) const
Definition: TraCIAPI.cpp:1172
void setHeight(const std::string &poiID, double height) const
Definition: TraCIAPI.cpp:1160
void setAngle(const std::string &poiID, double angle) const
Definition: TraCIAPI.cpp:1166
double getHeight(const std::string &poiID) const
Definition: TraCIAPI.cpp:1108
double getAngle(const std::string &poiID) const
Definition: TraCIAPI.cpp:1113
void remove(const std::string &poiID, int layer=0) const
Definition: TraCIAPI.cpp:1207
void setColor(const std::string &poiID, const libsumo::TraCIColor &c) const
Definition: TraCIAPI.cpp:1141
void setPosition(const std::string &poiID, double x, double y) const
Definition: TraCIAPI.cpp:1130
POIScope(TraCIAPI &parent)
Definition: TraCIAPI.h:332
double getWidth(const std::string &poiID) const
Definition: TraCIAPI.cpp:1103
void setType(const std::string &poiID, const std::string &setType) const
Definition: TraCIAPI.cpp:1124
std::string getType(const std::string &poiID) const
Definition: TraCIAPI.cpp:1088
virtual ~POIScope()
Definition: TraCIAPI.h:333
Scope for interaction with vehicles.
Definition: TraCIAPI.h:771
std::string getNextEdge(const std::string &personID) const
Definition: TraCIAPI.cpp:3273
void setLength(const std::string &personID, double length) const
Definition: TraCIAPI.cpp:3502
libsumo::TraCIColor getColor(const std::string &personID) const
Definition: TraCIAPI.cpp:3238
double getSlope(const std::string &personID) const
Definition: TraCIAPI.cpp:3228
int getRemainingStages(const std::string &personID) const
Definition: TraCIAPI.cpp:3284
double getWaitingTime(const std::string &personID) const
Definition: TraCIAPI.cpp:3268
virtual ~PersonScope()
Definition: TraCIAPI.h:774
void setSpeedFactor(const std::string &personID, double factor) const
Definition: TraCIAPI.cpp:3493
libsumo::TraCIStage getStage(const std::string &personID, int nextStageIndex=0) const
Definition: TraCIAPI.cpp:3289
void removeStage(const std::string &personID, int nextStageIndex) const
Definition: TraCIAPI.cpp:3433
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:3325
PersonScope(TraCIAPI &parent)
Definition: TraCIAPI.h:773
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:3395
void setSpeed(const std::string &personID, double speed) const
Definition: TraCIAPI.cpp:3474
double getLength(const std::string &personID) const
Definition: TraCIAPI.cpp:3243
void moveToXY(const std::string &personID, const std::string &edgeID, const double x, const double y, double angle, const int keepRoute) const
Definition: TraCIAPI.cpp:3455
void setHeight(const std::string &personID, double height) const
Definition: TraCIAPI.cpp:3521
void setType(const std::string &personID, const std::string &typeID) const
Definition: TraCIAPI.cpp:3484
void setMinGap(const std::string &personID, double minGap) const
Definition: TraCIAPI.cpp:3530
void moveTo(const std::string &personID, const std::string &edgeID, double position) const
Definition: TraCIAPI.cpp:3442
libsumo::TraCIPosition getPosition(const std::string &personID) const
Definition: TraCIAPI.cpp:3213
double getSpeedFactor(const std::string &personID) const
Definition: TraCIAPI.cpp:3263
void removeStages(const std::string &personID) const
Definition: TraCIAPI.cpp:3305
void setColor(const std::string &personID, const libsumo::TraCIColor &c) const
Definition: TraCIAPI.cpp:3540
std::string getRoadID(const std::string &personID) const
Definition: TraCIAPI.cpp:3248
double getSpeed(const std::string &personID) const
Definition: TraCIAPI.cpp:3208
std::string getVehicle(const std::string &personID) const
Definition: TraCIAPI.cpp:3279
void appendDrivingStage(const std::string &personID, const std::string &toEdge, const std::string &lines, const std::string &stopID="")
Definition: TraCIAPI.cpp:3416
std::string getTypeID(const std::string &personID) const
Definition: TraCIAPI.cpp:3258
void appendStage(const std::string &personID, const libsumo::TraCIStage &stage)
Definition: TraCIAPI.cpp:3342
double getAngle(const std::string &personID) const
Definition: TraCIAPI.cpp:3223
std::string getLaneID(const std::string &personID) const
Definition: TraCIAPI.cpp:3253
libsumo::TraCIPosition getPosition3D(const std::string &personID) const
Definition: TraCIAPI.cpp:3218
std::vector< std::string > getEdges(const std::string &personID, int nextStageIndex=0) const
Definition: TraCIAPI.cpp:3297
void appendWaitingStage(const std::string &personID, double duration, const std::string &description="waiting", const std::string &stopID="")
Definition: TraCIAPI.cpp:3378
double getLanePosition(const std::string &personID) const
Definition: TraCIAPI.cpp:3233
void setWidth(const std::string &personID, double width) const
Definition: TraCIAPI.cpp:3512
void rerouteTraveltime(const std::string &personID) const
Definition: TraCIAPI.cpp:3315
Scope for interaction with polygons.
Definition: TraCIAPI.h:358
libsumo::TraCIColor getColor(const std::string &polygonID) const
Definition: TraCIAPI.cpp:1240
void setType(const std::string &polygonID, const std::string &setType) const
Definition: TraCIAPI.cpp:1254
bool getFilled(const std::string &polygonID) const
Definition: TraCIAPI.cpp:1225
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:1295
libsumo::TraCIPositionVector getShape(const std::string &polygonID) const
Definition: TraCIAPI.cpp:1235
std::string getType(const std::string &polygonID) const
Definition: TraCIAPI.cpp:1230
void remove(const std::string &polygonID, int layer=0) const
Definition: TraCIAPI.cpp:1322
double getLineWidth(const std::string &polygonID) const
Definition: TraCIAPI.cpp:1220
PolygonScope(TraCIAPI &parent)
Definition: TraCIAPI.h:360
void setColor(const std::string &polygonID, const libsumo::TraCIColor &c) const
Definition: TraCIAPI.cpp:1283
void setLineWidth(const std::string &polygonID, const double lineWidth) const
Definition: TraCIAPI.cpp:1245
virtual ~PolygonScope()
Definition: TraCIAPI.h:361
void setShape(const std::string &polygonID, const libsumo::TraCIPositionVector &shape) const
Definition: TraCIAPI.cpp:1264
Scope for interaction with rerouters.
Definition: TraCIAPI.h:380
RerouterScope(TraCIAPI &parent)
Definition: TraCIAPI.h:382
virtual ~RerouterScope()
Definition: TraCIAPI.h:383
Scope for interaction with route probes.
Definition: TraCIAPI.h:404
RouteProbeScope(TraCIAPI &parent)
Definition: TraCIAPI.h:406
virtual ~RouteProbeScope()
Definition: TraCIAPI.h:407
Scope for interaction with routes.
Definition: TraCIAPI.h:390
RouteScope(TraCIAPI &parent)
Definition: TraCIAPI.h:392
virtual ~RouteScope()
Definition: TraCIAPI.h:393
std::vector< std::string > getEdges(const std::string &routeID) const
Definition: TraCIAPI.cpp:1335
void add(const std::string &routeID, const std::vector< std::string > &edges) const
Definition: TraCIAPI.cpp:1341
Scope for interaction with the simulation.
Definition: TraCIAPI.h:414
int getDepartedNumber() const
Definition: TraCIAPI.cpp:1374
SimulationScope(TraCIAPI &parent)
Definition: TraCIAPI.h:416
double getDistance2D(double x1, double y1, double x2, double y2, bool isGeo=false, bool isDriving=false)
Definition: TraCIAPI.cpp:1555
libsumo::TraCIPosition convert2D(const std::string &edgeID, double pos, int laneIndex=0, bool toGeo=false) const
Definition: TraCIAPI.cpp:1466
std::vector< std::string > getStartingTeleportIDList() const
Definition: TraCIAPI.cpp:1399
int getStartingTeleportNumber() const
Definition: TraCIAPI.cpp:1394
double getTime() const
Definition: TraCIAPI.cpp:1359
int getEndingTeleportNumber() const
Definition: TraCIAPI.cpp:1404
int getBusStopWaiting(const std::string &stopID) const
Definition: TraCIAPI.cpp:1455
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:1597
libsumo::TraCIRoadPosition convertRoad(double x, double y, bool isGeo=false, const std::string &vClass="ignoring") const
Definition: TraCIAPI.cpp:1511
void loadState(const std::string &path) const
Definition: TraCIAPI.cpp:1615
std::vector< std::string > getBusStopWaitingIDList(const std::string &stopID) const
Definition: TraCIAPI.cpp:1460
int getDepartedPersonNumber() const
Definition: TraCIAPI.cpp:1414
double getDistanceRoad(const std::string &edgeID1, double pos1, const std::string &edgeID2, double pos2, bool isDriving=false)
Definition: TraCIAPI.cpp:1575
std::vector< std::string > getArrivedPersonIDList() const
Definition: TraCIAPI.cpp:1429
void saveState(const std::string &destination) const
Definition: TraCIAPI.cpp:1624
std::vector< std::string > getEndingTeleportIDList() const
Definition: TraCIAPI.cpp:1409
double getDeltaT() const
Definition: TraCIAPI.cpp:1434
int getMinExpectedNumber() const
Definition: TraCIAPI.cpp:1445
std::vector< std::string > getDepartedPersonIDList() const
Definition: TraCIAPI.cpp:1419
std::vector< std::string > getDepartedIDList() const
Definition: TraCIAPI.cpp:1379
int getArrivedPersonNumber() const
Definition: TraCIAPI.cpp:1424
std::vector< std::string > getLoadedIDList() const
Definition: TraCIAPI.cpp:1369
std::vector< std::string > getArrivedIDList() const
Definition: TraCIAPI.cpp:1389
virtual ~SimulationScope()
Definition: TraCIAPI.h:417
int getArrivedNumber() const
Definition: TraCIAPI.cpp:1384
std::string getOption(const std::string &option) const
Definition: TraCIAPI.cpp:1450
libsumo::TraCIPositionVector getNetBoundary() const
Definition: TraCIAPI.cpp:1439
void writeMessage(const std::string msg)
Definition: TraCIAPI.cpp:1633
libsumo::TraCIPosition convertGeo(double x, double y, bool fromGeo=false) const
Definition: TraCIAPI.cpp:1534
libsumo::TraCIPosition convert3D(const std::string &edgeID, double pos, int laneIndex=0, bool toGeo=false) const
Definition: TraCIAPI.cpp:1488
An abstract interface for accessing type-dependent values.
Definition: TraCIAPI.h:88
int getUnsignedByte(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3557
libsumo::ContextSubscriptionResults myContextSubscriptionResults
Definition: TraCIAPI.h:159
const libsumo::SubscriptionResults getContextSubscriptionResults(const std::string &objID) const
Definition: TraCIAPI.cpp:3887
virtual ~TraCIScopeWrapper()
Destructor.
Definition: TraCIAPI.h:102
int getInt(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3578
std::vector< std::string > getStringVector(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3655
double getDouble(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3588
libsumo::TraCIPosition getPos3D(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3632
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:3767
libsumo::TraCIColor getCol(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3683
const libsumo::SubscriptionResults getAllSubscriptionResults() const
Definition: TraCIAPI.cpp:3865
libsumo::SubscriptionResults mySubscriptionResults
Definition: TraCIAPI.h:158
void setStringVector(int var, const std::string &id, const std::vector< std::string > &value) const
Definition: TraCIAPI.cpp:3830
std::vector< std::string > getIDList() const
Definition: TraCIAPI.cpp:3746
libsumo::TraCIPositionVector getPolygon(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3598
TraCIScopeWrapper(TraCIAPI &parent, int cmdGetID, int cmdSetID, int subscribeID, int contextSubscribeID)
Constructor.
Definition: TraCIAPI.h:93
libsumo::SubscriptionResults & getModifiableSubscriptionResults()
Definition: TraCIAPI.cpp:3904
const libsumo::TraCIResults getSubscriptionResults(const std::string &objID) const
Definition: TraCIAPI.cpp:3871
void setString(int var, const std::string &id, const std::string &value) const
Definition: TraCIAPI.cpp:3820
void subscribeContext(const std::string &objID, int domain, double range, const std::vector< int > &vars, double beginTime, double endTime) const
Definition: TraCIAPI.cpp:3855
void setParameter(const std::string &objectID, const std::string &key, const std::string &value) const
set generic paramter
Definition: TraCIAPI.cpp:3786
TraCIAPI & myParent
The parent TraCI client which offers the connection.
Definition: TraCIAPI.h:151
std::string getParameter(const std::string &objectID, const std::string &key) const
retrieve generic parameter
Definition: TraCIAPI.cpp:3758
std::vector< double > getDoubleVector(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3669
void setInt(int var, const std::string &id, int value) const
Definition: TraCIAPI.cpp:3800
int getByte(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3567
libsumo::TraCIStage getTraCIStage(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3697
void subscribe(const std::string &objID, const std::vector< int > &vars, double beginTime, double endTime) const
Definition: TraCIAPI.cpp:3843
std::string getString(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3645
TraCIScopeWrapper & operator=(const TraCIScopeWrapper &src)=delete
invalidated assignment operator
libsumo::TraCIPosition getPos(int var, const std::string &id, tcpip::Storage *add=0) const
Definition: TraCIAPI.cpp:3619
const libsumo::ContextSubscriptionResults getAllContextSubscriptionResults() const
Definition: TraCIAPI.cpp:3881
libsumo::SubscriptionResults & getModifiableContextSubscriptionResults(const std::string &objID)
Definition: TraCIAPI.cpp:3910
void setDouble(int var, const std::string &id, double value) const
Definition: TraCIAPI.cpp:3810
Scope for interaction with traffic lights.
Definition: TraCIAPI.h:461
void setCompleteRedYellowGreenDefinition(const std::string &tlsID, const libsumo::TraCILogic &logic) const
Definition: TraCIAPI.h:488
int getServedPersonCount(const std::string &tlsID, int index) const
Definition: TraCIAPI.cpp:1763
std::string getRedYellowGreenState(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1646
TrafficLightScope(TraCIAPI &parent)
Definition: TraCIAPI.h:463
int getPhase(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1742
std::string getPhaseName(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1747
void setRedYellowGreenState(const std::string &tlsID, const std::string &state) const
Definition: TraCIAPI.cpp:1772
std::string getProgram(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1737
void setPhase(const std::string &tlsID, int index) const
Definition: TraCIAPI.cpp:1781
void setPhaseName(const std::string &tlsID, const std::string &name) const
Definition: TraCIAPI.cpp:1790
double getNextSwitch(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1757
std::vector< std::vector< libsumo::TraCILink > > getControlledLinks(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1709
double getPhaseDuration(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1752
std::vector< std::string > getControlledLanes(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1704
std::vector< libsumo::TraCILogic > getAllProgramLogics(const std::string &tlsID) const
Definition: TraCIAPI.cpp:1651
void setPhaseDuration(const std::string &tlsID, double phaseDuration) const
Definition: TraCIAPI.cpp:1808
void setProgramLogic(const std::string &tlsID, const libsumo::TraCILogic &logic) const
Definition: TraCIAPI.cpp:1817
std::vector< libsumo::TraCILogic > getCompleteRedYellowGreenDefinition(const std::string &tlsID) const
Definition: TraCIAPI.h:485
void setProgram(const std::string &tlsID, const std::string &programID) const
Definition: TraCIAPI.cpp:1799
Scope for interaction with vehicles.
Definition: TraCIAPI.h:551
VehicleScope(TraCIAPI &parent)
Definition: TraCIAPI.h:553
std::vector< libsumo::TraCINextTLSData > getNextTLS(const std::string &vehID) const
Definition: TraCIAPI.cpp:2398
void changeLane(const std::string &vehicleID, int laneIndex, double duration) const
Definition: TraCIAPI.cpp:2727
void setMinGap(const std::string &vehicleID, double minGap) const
Definition: TraCIAPI.cpp:2975
double getLateralSpeed(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2176
void setMaxSpeed(const std::string &vehicleID, double speed) const
Definition: TraCIAPI.cpp:2984
virtual ~VehicleScope()
Definition: TraCIAPI.h:554
void setPreviousSpeed(const std::string &vehicleID, double prevSpeed, double prevAcceleration=std::numeric_limits< int >::min()) const
Definition: TraCIAPI.cpp:2902
double getSpeed(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2171
int getStopState(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2520
double getWaitingTime(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2355
void addSubscriptionFilterCFManeuver(double downstreamDist=-1, double upstreamDist=-1) const
Definition: TraCIAPI.cpp:3095
double getCOEmission(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2320
void addSubscriptionFilterStringList(int filterType, const std::vector< std::string > &vals) const
Definition: TraCIAPI.cpp:3183
void changeTarget(const std::string &vehicleID, const std::string &edgeID) const
Definition: TraCIAPI.cpp:2717
libsumo::TraCIPosition getPosition(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2239
bool isRouteValid(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2626
void addSubscriptionFilterByteList(int filterType, const std::vector< int > &vals) const
Definition: TraCIAPI.cpp:3193
double getSecureGap(const std::string &vehicleID, double speed, double leaderSpeed, double leaderMaxDecel, const std::string &leaderID="") const
Definition: TraCIAPI.cpp:2205
void setSpeedFactor(const std::string &vehicleID, double factor) const
Definition: TraCIAPI.cpp:2966
void setShapeClass(const std::string &vehicleID, const std::string &clazz) const
Definition: TraCIAPI.cpp:3044
void addSubscriptionFilterLateralDistance(double lateralDist, double downstreamDist=-1, double foeDistToJunction=-1) const
Definition: TraCIAPI.cpp:3156
void setVia(const std::string &vehicleID, const std::vector< std::string > &via) const
Definition: TraCIAPI.cpp:3014
void setEmissionClass(const std::string &vehicleID, const std::string &clazz) const
Definition: TraCIAPI.cpp:3054
double getTau(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2551
double getDistance(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2300
void remove(const std::string &vehicleID, char reason=libsumo::REMOVE_VAPORIZED) const
Definition: TraCIAPI.cpp:2706
void openGap(const std::string &vehicleID, double newTau, double duration, double changeRate, double maxDecel) const
Definition: TraCIAPI.cpp:2857
void moveTo(const std::string &vehicleID, const std::string &laneID, double position, int reason=libsumo::MOVE_TELEPORT) const
Definition: TraCIAPI.cpp:2807
void setSpeed(const std::string &vehicleID, double speed) const
Definition: TraCIAPI.cpp:2880
double getEmergencyDecel(const std::string &vehicleID) const
std::string getEmissionClass(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2388
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:2933
void setRouteID(const std::string &vehicleID, const std::string &routeID) const
Definition: TraCIAPI.cpp:2767
std::pair< int, int > getLaneChangeState(const std::string &vehicleID, int direction) const
Definition: TraCIAPI.cpp:2502
double getNoiseEmission(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2345
std::string getShapeClass(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2393
void addSubscriptionFilterLeadFollow(const std::vector< int > &lanes) const
Definition: TraCIAPI.cpp:3124
std::string getLine(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2378
double getElectricityConsumption(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2350
double getSpeedFactor(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2561
double getNOxEmission(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2335
void setRoute(const std::string &vehicleID, const std::vector< std::string > &edge) const
Definition: TraCIAPI.cpp:2777
int getSignals(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2305
libsumo::TraCIColor getColor(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2290
int getPersonCapacity(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2611
void setSignals(const std::string &vehicleID, int signals) const
Definition: TraCIAPI.cpp:3026
std::string getRoadID(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2254
void addSubscriptionFilterVType(const std::vector< std::string > &vTypes) const
Definition: TraCIAPI.cpp:3145
void addSubscriptionFilterUpstreamDistance(double dist) const
Definition: TraCIAPI.cpp:3089
void addSubscriptionFilterFloat(int filterType, double val) const
Definition: TraCIAPI.cpp:3173
double getAllowedSpeed(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2601
void addSubscriptionFilterLanes(const std::vector< int > &lanes, bool noOpposite=false, double downstreamDist=-1, double upstreamDist=-1) const
Definition: TraCIAPI.cpp:3063
double getCO2Emission(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2315
double getFuelConsumption(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2340
double getHCEmission(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2325
void addSubscriptionFilterNoOpposite() const
Definition: TraCIAPI.cpp:3079
void addSubscriptionFilterLCManeuver(int direction, bool noOpposite=false, double downstreamDist=-1, double upstreamDist=-1) const
Definition: TraCIAPI.cpp:3106
std::pair< std::string, double > getLeader(const std::string &vehicleID, double dist) const
Definition: TraCIAPI.cpp:2466
double getAcceleration(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2181
std::vector< std::string > getVia(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2383
void addSubscriptionFilterVClass(const std::vector< std::string > &vClasses) const
Definition: TraCIAPI.cpp:3139
double getImperfection(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2556
std::string getLaneID(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2259
double getAngle(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2249
void addSubscriptionFilterDownstreamDistance(double dist) const
Definition: TraCIAPI.cpp:3084
double getMinGap(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2576
void addSubscriptionFilterEmpty(int filterType) const
Definition: TraCIAPI.cpp:3167
double getStopArrivalDelay(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2535
void setAcceleration(const std::string &vehicleID, double accel, double duration) const
Definition: TraCIAPI.cpp:2889
std::vector< std::string > getPersonIDList(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2616
double getStopDelay(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2530
double getMinGapLat(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2636
void setLine(const std::string &vehicleID, const std::string &line) const
Definition: TraCIAPI.cpp:3005
double getSlope(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2372
void setColor(const std::string &vehicleID, const libsumo::TraCIColor &c) const
Definition: TraCIAPI.cpp:2993
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:2646
libsumo::TraCIPosition getPosition3D(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2244
void setLaneChangeMode(const std::string &vehicleID, int mode) const
Definition: TraCIAPI.cpp:2915
void setRoutingMode(const std::string &vehicleID, int routingMode) const
Definition: TraCIAPI.cpp:3035
void addSubscriptionFilterTurn(double downstreamDist=-1, double upstreamDist=-1) const
Definition: TraCIAPI.cpp:3130
double getDecel(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2546
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:2822
double getHeight(const std::string &veihcleID) const
Definition: TraCIAPI.cpp:2591
int getRouteIndex(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2279
double getMaxSpeedLat(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2631
void changeSublane(const std::string &vehicleID, double latDist) const
Definition: TraCIAPI.cpp:2757
std::string getLateralAlignment(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2641
std::string getRouteID(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2274
double getLanePosition(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2295
int getLaneChangeMode(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2360
int getSpeedMode(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2366
std::vector< std::string > getRoute(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2285
double getApparentDecel(const std::string &vehicleID) const
double getLateralLanePosition(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2310
std::pair< std::string, double > getFollower(const std::string &vehicleID, double dist) const
Definition: TraCIAPI.cpp:2484
double getPMxEmission(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2330
double getLength(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2586
double getMaxSpeed(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2234
std::string getVehicleClass(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2571
double getSpeedWithoutTraCI(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2621
int getRoutingMode(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2525
double getWidth(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2581
double getSpeedDeviation(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2566
int getPersonNumber(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2606
double getFollowSpeed(const std::string &vehicleID, double speed, double gap, double leaderSpeed, double leaderMaxDecel, const std::string &leaderID="") const
Definition: TraCIAPI.cpp:2186
void setType(const std::string &vehicleID, const std::string &typeID) const
Definition: TraCIAPI.cpp:2957
void addSubscriptionFilterFieldOfVision(double angle) const
Definition: TraCIAPI.cpp:3151
std::vector< libsumo::TraCIBestLanesData > getBestLanes(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2427
double getAccel(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2541
void setSpeedMode(const std::string &vehicleID, int mode) const
Definition: TraCIAPI.cpp:2924
void slowDown(const std::string &vehicleID, double speed, double duration) const
Definition: TraCIAPI.cpp:2844
std::string getTypeID(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2269
double getAccumulatedWaitingTime(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2596
void changeLaneRelative(const std::string &vehicleID, int laneChange, double duration) const
Definition: TraCIAPI.cpp:2741
void rerouteTraveltime(const std::string &vehicleID, bool currentTravelTimes=true) const
Definition: TraCIAPI.cpp:2790
double getStopSpeed(const std::string &vehicleID, double speed, double gap) const
Definition: TraCIAPI.cpp:2221
int getLaneIndex(const std::string &vehicleID) const
Definition: TraCIAPI.cpp:2264
Scope for interaction with vehicle types.
Definition: TraCIAPI.h:497
double getSpeedDeviation(const std::string &typeID) const
Definition: TraCIAPI.cpp:1881
double getSpeedFactor(const std::string &typeID) const
Definition: TraCIAPI.cpp:1876
void setImperfection(const std::string &typeID, double imperfection) const
Definition: TraCIAPI.cpp:2137
void setApparentDecel(const std::string &typeID, double decel) const
Definition: TraCIAPI.cpp:2128
void setHeight(const std::string &typeID, double height) const
Definition: TraCIAPI.cpp:2037
std::string getShapeClass(const std::string &typeID) const
Definition: TraCIAPI.cpp:1926
double getMinGapLat(const std::string &typeID) const
Definition: TraCIAPI.cpp:1936
void copy(const std::string &origTypeID, const std::string &newTypeID) const
Definition: TraCIAPI.cpp:2083
int getPersonCapacity(const std::string &typeID) const
Definition: TraCIAPI.cpp:1951
VehicleTypeScope(TraCIAPI &parent)
Definition: TraCIAPI.h:499
void setVehicleClass(const std::string &typeID, const std::string &clazz) const
Definition: TraCIAPI.cpp:1991
void setColor(const std::string &typeID, const libsumo::TraCIColor &c) const
Definition: TraCIAPI.cpp:2155
void setDecel(const std::string &typeID, double decel) const
Definition: TraCIAPI.cpp:2110
void setWidth(const std::string &typeID, double width) const
Definition: TraCIAPI.cpp:2028
double getApparentDecel(const std::string &typeID) const
Definition: TraCIAPI.cpp:1901
double getDecel(const std::string &typeID) const
Definition: TraCIAPI.cpp:1891
void setLateralAlignment(const std::string &typeID, const std::string &latAlignment) const
Definition: TraCIAPI.cpp:2074
void setMaxSpeed(const std::string &typeID, double speed) const
Definition: TraCIAPI.cpp:1982
double getMinGap(const std::string &typeID) const
Definition: TraCIAPI.cpp:1931
std::string getVehicleClass(const std::string &typeID) const
Definition: TraCIAPI.cpp:1916
void setShapeClass(const std::string &typeID, const std::string &shapeClass) const
Definition: TraCIAPI.cpp:2092
double getMaxSpeedLat(const std::string &typeID) const
Definition: TraCIAPI.cpp:1941
double getEmergencyDecel(const std::string &typeID) const
Definition: TraCIAPI.cpp:1896
double getWidth(const std::string &typeID) const
Definition: TraCIAPI.cpp:1956
libsumo::TraCIColor getColor(const std::string &typeID) const
Definition: TraCIAPI.cpp:1966
double getTau(const std::string &typeID) const
Definition: TraCIAPI.cpp:1911
double getMaxSpeed(const std::string &typeID) const
Definition: TraCIAPI.cpp:1871
double getLength(const std::string &typeID) const
Definition: TraCIAPI.cpp:1866
std::string getEmissionClass(const std::string &typeID) const
Definition: TraCIAPI.cpp:1921
double getImperfection(const std::string &typeID) const
Definition: TraCIAPI.cpp:1906
void setEmissionClass(const std::string &typeID, const std::string &clazz) const
Definition: TraCIAPI.cpp:2019
void setAccel(const std::string &typeID, double accel) const
Definition: TraCIAPI.cpp:2101
void setMinGap(const std::string &typeID, double minGap) const
Definition: TraCIAPI.cpp:2046
double getAccel(const std::string &typeID) const
Definition: TraCIAPI.cpp:1886
void setSpeedFactor(const std::string &typeID, double factor) const
Definition: TraCIAPI.cpp:2000
double getHeight(const std::string &typeID) const
Definition: TraCIAPI.cpp:1961
void setEmergencyDecel(const std::string &typeID, double decel) const
Definition: TraCIAPI.cpp:2119
void setSpeedDeviation(const std::string &typeID, double deviation) const
Definition: TraCIAPI.cpp:2009
void setMaxSpeedLat(const std::string &typeID, double speed) const
Definition: TraCIAPI.cpp:2065
std::string getLateralAlignment(const std::string &typeID) const
Definition: TraCIAPI.cpp:1946
void setMinGapLat(const std::string &typeID, double minGapLat) const
Definition: TraCIAPI.cpp:2056
void setLength(const std::string &typeID, double length) const
Definition: TraCIAPI.cpp:1973
void setTau(const std::string &typeID, double tau) const
Definition: TraCIAPI.cpp:2146
C++ TraCI client API implementation.
Definition: TraCIAPI.h:48
RouteScope route
Scope for interaction with routes.
Definition: TraCIAPI.h:846
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:955
MeMeScope multientryexit
Scope for interaction with multi-entry/-exit detectors.
Definition: TraCIAPI.h:836
VehicleTypeScope vehicletype
Scope for interaction with vehicle types.
Definition: TraCIAPI.h:856
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:826
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:842
static std::string toString(const T &t, std::streamsize accuracy=PRECISION)
Definition: TraCIAPI.h:937
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:951
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:834
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:832
std::map< int, TraCIScopeWrapper * > myDomains
Definition: TraCIAPI.h:949
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:852
InductionLoopScope inductionloop
Scope for interaction with inductive loops.
Definition: TraCIAPI.h:828
tcpip::Storage myOutput
The reusable output storage.
Definition: TraCIAPI.h:953
POIScope poi
Scope for interaction with POIs.
Definition: TraCIAPI.h:840
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:854
JunctionScope junction
Scope for interaction with junctions.
Definition: TraCIAPI.h:830
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:848
EdgeScope edge
Scope for interaction with edges.
Definition: TraCIAPI.h:824
bool processGet(int command, int expectedType, bool ignoreCommandId=false)
Definition: TraCIAPI.cpp:331
SimulationScope simulation
Scope for interaction with the simulation.
Definition: TraCIAPI.h:850
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:838
RerouterScope rerouter
Scope for interaction with rerouters.
Definition: TraCIAPI.h:844
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
TRACI_CONST int CMD_SET_EDGE_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_JUNCTION_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_VEHICLE_CONTEXT
std::map< std::string, libsumo::SubscriptionResults > ContextSubscriptionResults
Definition: TraCIDefs.h:301
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
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
std::map< std::string, libsumo::TraCIResults > SubscriptionResults
{object->{variable->value}}
Definition: TraCIDefs.h:300
TRACI_CONST int CMD_SUBSCRIBE_ROUTE_VARIABLE
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
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
std::map< int, std::shared_ptr< libsumo::TraCIResult > > TraCIResults
{variable->value}
Definition: TraCIDefs.h:298
TRACI_CONST int CMD_SET_ROUTEPROBE_VARIABLE
TRACI_CONST int CMD_SUBSCRIBE_EDGE_VARIABLE
A 3D-position.
Definition: TraCIDefs.h:172
A list of positions.
Definition: TraCIDefs.h:215
An edgeId, position and laneIndex.
Definition: TraCIDefs.h:184