40 #define DEFAULT_VIEW "View #0" 71 void connect(
const std::string& host,
int port);
84 void load(
const std::vector<std::string>& args);
123 std::string
getParameter(
const std::string& objectID,
const std::string& key)
const;
126 void setParameter(
const std::string& objectID,
const std::string& key,
const std::string& value)
const;
128 void subscribe(
const std::string& objID,
const std::vector<int>& vars,
double beginTime,
double endTime)
const;
129 void subscribeContext(
const std::string& objID,
int domain,
double range,
const std::vector<int>& vars,
double beginTime,
double endTime)
const;
175 std::vector<std::string> getIDList()
const;
176 int getIDCount()
const;
177 double getAdaptedTraveltime(
const std::string& edgeID,
double time)
const;
178 double getEffort(
const std::string& edgeID,
double time)
const;
179 double getCO2Emission(
const std::string& edgeID)
const;
180 double getCOEmission(
const std::string& edgeID)
const;
181 double getHCEmission(
const std::string& edgeID)
const;
182 double getPMxEmission(
const std::string& edgeID)
const;
183 double getNOxEmission(
const std::string& edgeID)
const;
184 double getFuelConsumption(
const std::string& edgeID)
const;
185 double getNoiseEmission(
const std::string& edgeID)
const;
186 double getElectricityConsumption(
const std::string& edgeID)
const;
187 double getLastStepMeanSpeed(
const std::string& edgeID)
const;
188 double getLastStepOccupancy(
const std::string& edgeID)
const;
189 double getLastStepLength(
const std::string& edgeID)
const;
190 double getTraveltime(
const std::string& edgeID)
const;
191 int getLastStepVehicleNumber(
const std::string& edgeID)
const;
192 double getLastStepHaltingNumber(
const std::string& edgeID)
const;
193 std::vector<std::string> getLastStepVehicleIDs(
const std::string& edgeID)
const;
194 int getLaneNumber(
const std::string& edgeID)
const;
195 std::string getStreetName(
const std::string&
id)
const;
197 void adaptTraveltime(
const std::string& edgeID,
double time,
double beginSeconds = 0.,
double endSeconds = std::numeric_limits<double>::max())
const;
198 void setEffort(
const std::string& edgeID,
double effort,
double beginSeconds = 0.,
double endSeconds = std::numeric_limits<double>::max())
const;
199 void setMaxSpeed(
const std::string& edgeID,
double speed)
const;
222 std::vector<std::string> getIDList()
const;
223 double getZoom(
const std::string& viewID =
DEFAULT_VIEW)
const;
225 std::string getSchema(
const std::string& viewID =
DEFAULT_VIEW)
const;
227 void setZoom(
const std::string& viewID,
double zoom)
const;
228 void setOffset(
const std::string& viewID,
double x,
double y)
const;
229 void setSchema(
const std::string& viewID,
const std::string& schemeName)
const;
230 void setBoundary(
const std::string& viewID,
double xmin,
double ymin,
double xmax,
double ymax)
const;
231 void screenshot(
const std::string& viewID,
const std::string& filename,
const int width = -1,
const int height = -1)
const;
232 void trackVehicle(
const std::string& viewID,
const std::string& vehID)
const;
255 std::vector<std::string> getIDList()
const;
256 double getPosition(
const std::string& loopID)
const;
257 std::string getLaneID(
const std::string& loopID)
const;
258 int getLastStepVehicleNumber(
const std::string& loopID)
const;
259 double getLastStepMeanSpeed(
const std::string& loopID)
const;
260 std::vector<std::string> getLastStepVehicleIDs(
const std::string& loopID)
const;
261 double getLastStepOccupancy(
const std::string& loopID)
const;
262 double getLastStepMeanLength(
const std::string& loopID)
const;
263 double getTimeSinceDetection(
const std::string& loopID)
const;
264 std::vector<libsumo::TraCIVehicleData> getVehicleData(
const std::string& loopID)
const;
288 std::vector<std::string> getIDList()
const;
312 std::vector<std::string> getIDList()
const;
313 int getIDCount()
const;
314 double getLength(
const std::string& laneID)
const;
315 double getMaxSpeed(
const std::string& laneID)
const;
316 double getWidth(
const std::string& laneID)
const;
317 std::vector<std::string> getAllowed(
const std::string& laneID)
const;
318 std::vector<std::string> getDisallowed(
const std::string& laneID)
const;
319 int getLinkNumber(
const std::string& laneID)
const;
320 std::vector<libsumo::TraCIConnection> getLinks(
const std::string& laneID)
const;
322 std::string getEdgeID(
const std::string& laneID)
const;
323 double getCO2Emission(
const std::string& laneID)
const;
324 double getCOEmission(
const std::string& laneID)
const;
325 double getHCEmission(
const std::string& laneID)
const;
326 double getPMxEmission(
const std::string& laneID)
const;
327 double getNOxEmission(
const std::string& laneID)
const;
328 double getFuelConsumption(
const std::string& laneID)
const;
329 double getNoiseEmission(
const std::string& laneID)
const;
330 double getElectricityConsumption(
const std::string& laneID)
const;
331 double getLastStepMeanSpeed(
const std::string& laneID)
const;
332 double getLastStepOccupancy(
const std::string& laneID)
const;
333 double getLastStepLength(
const std::string& laneID)
const;
334 double getTraveltime(
const std::string& laneID)
const;
335 int getLastStepVehicleNumber(
const std::string& laneID)
const;
336 int getLastStepHaltingNumber(
const std::string& laneID)
const;
337 std::vector<std::string> getLastStepVehicleIDs(
const std::string& laneID)
const;
338 std::vector<std::string> getFoes(
const std::string& laneID,
const std::string& toLaneID)
const;
339 std::vector<std::string> getInternalFoes(
const std::string& laneID)
const;
341 void setAllowed(
const std::string& laneID,
const std::vector<std::string>& allowedClasses)
const;
342 void setDisallowed(
const std::string& laneID,
const std::vector<std::string>& disallowedClasses)
const;
343 void setMaxSpeed(
const std::string& laneID,
double speed)
const;
344 void setLength(
const std::string& laneID,
double length)
const;
364 std::vector<std::string> getIDList()
const;
384 std::vector<std::string> getIDList()
const;
385 int getLastStepVehicleNumber(
const std::string& detID)
const;
386 double getLastStepMeanSpeed(
const std::string& detID)
const;
387 std::vector<std::string> getLastStepVehicleIDs(
const std::string& detID)
const;
388 int getLastStepHaltingNumber(
const std::string& detID)
const;
411 std::vector<std::string> getIDList()
const;
412 std::string getType(
const std::string& poiID)
const;
416 void setType(
const std::string& poiID,
const std::string& setType)
const;
417 void setPosition(
const std::string& poiID,
double x,
double y)
const;
419 void add(
const std::string& poiID,
double x,
double y,
const libsumo::TraCIColor& c,
const std::string& type,
int layer)
const;
420 void remove(
const std::string& poiID,
int layer = 0)
const;
443 std::vector<std::string> getIDList()
const;
444 std::string getType(
const std::string& polygonID)
const;
447 void setType(
const std::string& polygonID,
const std::string& setType)
const;
451 void remove(
const std::string& polygonID,
int layer = 0)
const;
474 std::vector<std::string> getIDList()
const;
475 std::vector<std::string> getEdges(
const std::string& routeID)
const;
477 void add(
const std::string& routeID,
const std::vector<std::string>& edges)
const;
498 int getCurrentTime()
const;
499 double getTime()
const;
500 int getLoadedNumber()
const;
501 std::vector<std::string> getLoadedIDList()
const;
502 int getDepartedNumber()
const;
503 std::vector<std::string> getDepartedIDList()
const;
504 int getArrivedNumber()
const;
505 std::vector<std::string> getArrivedIDList()
const;
506 int getStartingTeleportNumber()
const;
507 std::vector<std::string> getStartingTeleportIDList()
const;
508 int getEndingTeleportNumber()
const;
509 std::vector<std::string> getEndingTeleportIDList()
const;
510 double getDeltaT()
const;
512 int getMinExpectedNumber()
const;
513 double getDistance2D(
double x1,
double y1,
double x2,
double y2,
bool isGeo =
false,
bool isDriving =
false);
514 double getDistanceRoad(
const std::string& edgeID1,
double pos1,
const std::string& edgeID2,
double pos2,
bool isDriving =
false);
538 std::vector<std::string> getIDList()
const;
539 int getIDCount()
const;
540 std::string getRedYellowGreenState(
const std::string& tlsID)
const;
541 std::vector<libsumo::TraCILogic> getCompleteRedYellowGreenDefinition(
const std::string& tlsID)
const;
542 std::vector<std::string> getControlledLanes(
const std::string& tlsID)
const;
543 std::vector<std::vector<libsumo::TraCILink> > getControlledLinks(
const std::string& tlsID)
const;
544 std::string getProgram(
const std::string& tlsID)
const;
545 int getPhase(
const std::string& tlsID)
const;
546 double getPhaseDuration(
const std::string& tlsID)
const;
547 double getNextSwitch(
const std::string& tlsID)
const;
549 void setRedYellowGreenState(
const std::string& tlsID,
const std::string& state)
const;
550 void setPhase(
const std::string& tlsID,
int index)
const;
551 void setProgram(
const std::string& tlsID,
const std::string& programID)
const;
552 void setPhaseDuration(
const std::string& tlsID,
double phaseDuration)
const;
553 void setCompleteRedYellowGreenDefinition(
const std::string& tlsID,
const libsumo::TraCILogic& logic)
const;
576 std::vector<std::string> getIDList()
const;
577 double getLength(
const std::string& typeID)
const;
578 double getMaxSpeed(
const std::string& typeID)
const;
579 double getSpeedFactor(
const std::string& typeID)
const;
580 double getSpeedDeviation(
const std::string& typeID)
const;
581 double getAccel(
const std::string& typeID)
const;
582 double getDecel(
const std::string& typeID)
const;
583 double getEmergencyDecel(
const std::string& typeID)
const;
584 double getApparentDecel(
const std::string& typeID)
const;
585 double getImperfection(
const std::string& typeID)
const;
586 double getTau(
const std::string& typeID)
const;
587 std::string getVehicleClass(
const std::string& typeID)
const;
588 std::string getEmissionClass(
const std::string& typeID)
const;
589 std::string getShapeClass(
const std::string& typeID)
const;
590 double getMinGap(
const std::string& typeID)
const;
591 double getWidth(
const std::string& typeID)
const;
592 double getHeight(
const std::string& typeID)
const;
594 double getMinGapLat(
const std::string& typeID)
const;
595 double getMaxSpeedLat(
const std::string& typeID)
const;
596 std::string getLateralAlignment(
const std::string& typeID)
const;
598 void setLength(
const std::string& typeID,
double length)
const;
599 void setMaxSpeed(
const std::string& typeID,
double speed)
const;
600 void setVehicleClass(
const std::string& typeID,
const std::string& clazz)
const;
601 void setSpeedFactor(
const std::string& typeID,
double factor)
const;
602 void setSpeedDeviation(
const std::string& typeID,
double deviation)
const;
603 void setEmissionClass(
const std::string& typeID,
const std::string& clazz)
const;
604 void setShapeClass(
const std::string& typeID,
const std::string& shapeClass)
const;
605 void setWidth(
const std::string& typeID,
double width)
const;
606 void setHeight(
const std::string& typeID,
double height)
const;
607 void setMinGap(
const std::string& typeID,
double minGap)
const;
608 void setAccel(
const std::string& typeID,
double accel)
const;
609 void setDecel(
const std::string& typeID,
double decel)
const;
610 void setEmergencyDecel(
const std::string& typeID,
double decel)
const;
611 void setApparentDecel(
const std::string& typeID,
double decel)
const;
612 void setImperfection(
const std::string& typeID,
double imperfection)
const;
613 void setTau(
const std::string& typeID,
double tau)
const;
615 void setMinGapLat(
const std::string& typeID,
double minGapLat)
const;
616 void setMaxSpeedLat(
const std::string& typeID,
double speed)
const;
617 void setLateralAlignment(
const std::string& typeID,
const std::string& latAlignment)
const;
618 void copy(
const std::string& origTypeID,
const std::string& newTypeID)
const;
642 SIGNAL_BLINKER_RIGHT = 1,
643 SIGNAL_BLINKER_LEFT = 2,
644 SIGNAL_BLINKER_EMERGENCY = 4,
645 SIGNAL_BRAKELIGHT = 8,
646 SIGNAL_FRONTLIGHT = 16,
647 SIGNAL_FOGLIGHT = 32,
648 SIGNAL_HIGHBEAM = 64,
649 SIGNAL_BACKDRIVE = 128,
651 SIGNAL_DOOR_OPEN_LEFT = 512,
652 SIGNAL_DOOR_OPEN_RIGHT = 1024,
653 SIGNAL_EMERGENCY_BLUE = 2048,
654 SIGNAL_EMERGENCY_RED = 4096,
655 SIGNAL_EMERGENCY_YELLOW = 8192,
661 std::vector<std::string> getIDList()
const;
662 int getIDCount()
const;
663 double getSpeed(
const std::string& vehicleID)
const;
664 double getAcceleration(
const std::string& vehicleID)
const;
667 double getAngle(
const std::string& vehicleID)
const;
668 std::string getRoadID(
const std::string& vehicleID)
const;
669 std::string getLaneID(
const std::string& vehicleID)
const;
670 int getLaneIndex(
const std::string& vehicleID)
const;
671 std::string getTypeID(
const std::string& vehicleID)
const;
672 std::string getRouteID(
const std::string& vehicleID)
const;
673 int getRouteIndex(
const std::string& vehicleID)
const;
674 std::vector<std::string> getRoute(
const std::string& vehicleID)
const;
676 double getLanePosition(
const std::string& vehicleID)
const;
677 double getDistance(
const std::string& vehicleID)
const;
678 int getSignals(
const std::string& vehicleID)
const;
679 double getCO2Emission(
const std::string& vehicleID)
const;
680 double getCOEmission(
const std::string& vehicleID)
const;
681 double getHCEmission(
const std::string& vehicleID)
const;
682 double getPMxEmission(
const std::string& vehicleID)
const;
683 double getNOxEmission(
const std::string& vehicleID)
const;
684 double getFuelConsumption(
const std::string& vehicleID)
const;
685 double getNoiseEmission(
const std::string& vehicleID)
const;
686 double getElectricityConsumption(
const std::string& vehicleID)
const;
687 int getSpeedMode(
const std::string& vehicleID)
const;
688 int getStopState(
const std::string& vehicleID)
const;
689 double getWaitingTime(
const std::string& vehicleID)
const;
690 double getAccumulatedWaitingTime(
const std::string& vehicleID)
const;
691 double getSlope(
const std::string& vehicleID)
const;
692 double getAllowedSpeed(
const std::string& vehicleID)
const;
693 int getPersonNumber(
const std::string& vehicleID)
const;
694 std::vector<std::string> getPersonIDList(
const std::string& vehicleID)
const;
695 double getSpeedWithoutTraCI(
const std::string& vehicleID)
const;
696 bool isRouteValid(
const std::string& vehicleID)
const;
697 double getLateralLanePosition(
const std::string& vehicleID)
const;
698 double getSpeedFactor(
const std::string& vehicleID)
const;
699 std::string getLine(
const std::string& vehicleID)
const;
700 std::vector<std::string> getVia(
const std::string& vehicleID)
const;
701 std::vector<libsumo::TraCINextTLSData> getNextTLS(
const std::string& vehID)
const;
702 std::vector<libsumo::TraCIBestLanesData> getBestLanes(
const std::string& vehicleID)
const;
703 std::pair<std::string, double> getLeader(
const std::string& vehicleID,
double dist)
const;
704 int getRoutingMode(
const std::string& vehicleID)
const;
705 std::pair<int, int> getLaneChangeState(
const std::string& vehicleID,
int direction)
const;
710 double getLength(
const std::string& vehicleID)
const;
711 double getMaxSpeed(
const std::string& vehicleID)
const;
712 double getAccel(
const std::string& vehicleID)
const;
713 double getDecel(
const std::string& vehicleID)
const;
714 double getEmergencyDecel(
const std::string& vehicleID)
const;
715 double getApparentDecel(
const std::string& vehicleID)
const;
716 double getTau(
const std::string& vehicleID)
const;
717 double getImperfection(
const std::string& vehicleID)
const;
718 double getSpeedDeviation(
const std::string& vehicleID)
const;
719 double getMinGap(
const std::string& vehicleID)
const;
720 double getWidth(
const std::string& vehicleID)
const;
721 double getHeight(
const std::string& veihcleID)
const;
722 double getMaxSpeedLat(
const std::string& vehicleID)
const;
723 double getMinGapLat(
const std::string& vehicleID)
const;
724 std::string getVehicleClass(
const std::string& vehicleID)
const;
725 std::string getEmissionClass(
const std::string& vehicleID)
const;
726 std::string getShapeClass(
const std::string& vehicleID)
const;
727 std::string getLateralAlignment(
const std::string& vehicleID)
const;
732 void add(
const std::string& vehicleID,
733 const std::string& routeID,
734 const std::string& typeID =
"DEFAULT_VEHTYPE",
735 std::string depart =
"-1",
736 const std::string& departLane =
"first",
737 const std::string& departPos =
"base",
738 const std::string& departSpeed =
"0",
739 const std::string& arrivalLane =
"current",
740 const std::string& arrivalPos =
"max",
741 const std::string& arrivalSpeed =
"current",
742 const std::string& fromTaz =
"",
743 const std::string& toTaz =
"",
744 const std::string& line =
"",
745 int personCapacity = 0,
746 int personNumber = 0)
const;
748 void changeTarget(
const std::string& vehicleID,
const std::string& edgeID)
const;
749 void changeLane(
const std::string& vehicleID,
int laneIndex,
double duration)
const;
750 void changeLaneRelative(
const std::string& vehicleID,
int laneChange,
double duration)
const;
751 void changeSublane(
const std::string& vehicleID,
double latDist)
const;
752 void setRouteID(
const std::string& vehicleID,
const std::string& routeID)
const;
753 void setRoute(
const std::string& vehicleID,
const std::vector<std::string>&
edge)
const;
754 void rerouteTraveltime(
const std::string& vehicleID,
bool currentTravelTimes =
true)
const;
755 void moveTo(
const std::string& vehicleID,
const std::string& laneID,
double position)
const;
756 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;
757 void slowDown(
const std::string& vehicleID,
double speed,
double duration)
const;
758 void setSpeed(
const std::string& vehicleID,
double speed)
const;
759 void setSpeedMode(
const std::string& vehicleID,
int mode)
const;
760 void setStop(
const std::string vehicleID,
const std::string edgeID,
const double endPos = 1.,
761 const int laneIndex = 0,
const double duration = std::numeric_limits<double>::max(),
762 const int flags = 0,
const double startPos = std::numeric_limits<int>::min(),
763 const double until = -1)
const;
764 void setType(
const std::string& vehicleID,
const std::string& typeID)
const;
765 void remove(
const std::string& vehicleID,
char reason =
REMOVE_VAPORIZED)
const;
767 void setLine(
const std::string& vehicleID,
const std::string& line)
const;
768 void setVia(
const std::string& vehicleID,
const std::vector<std::string>& via)
const;
769 void setSignals(
const std::string& vehicleID,
int signals)
const;
770 void setRoutingMode(
const std::string& vehicleID,
int routingMode)
const;
775 void setShapeClass(
const std::string& vehicleID,
const std::string& clazz)
const;
776 void setEmissionClass(
const std::string& vehicleID,
const std::string& clazz)
const;
777 void setSpeedFactor(
const std::string& vehicleID,
double factor)
const;
778 void setMaxSpeed(
const std::string& vehicleID,
double speed)
const;
798 std::vector<std::string> getIDList()
const;
799 int getIDCount()
const;
800 double getSpeed(
const std::string& personID)
const;
802 std::string getRoadID(
const std::string& personID)
const;
803 std::string getTypeID(
const std::string& personID)
const;
804 double getWaitingTime(
const std::string& personID)
const;
805 std::string getNextEdge(
const std::string& personID)
const;
806 std::string getVehicle(
const std::string& personID)
const;
807 int getRemainingStages(
const std::string& personID)
const;
808 int getStage(
const std::string& personID,
int nextStageIndex = 0)
const;
809 std::vector<std::string> getEdges(
const std::string& personID,
int nextStageIndex = 0)
const;
816 void removeStages(
const std::string& personID)
const;
817 void add(
const std::string& personID,
const std::string& edgeID,
double pos,
double depart =
DEPARTFLAG_NOW,
const std::string typeID =
"DEFAULT_PEDTYPE");
818 void appendWaitingStage(
const std::string& personID,
double duration,
const std::string& description =
"waiting",
const std::string& stopID =
"");
819 void appendWalkingStage(
const std::string& personID,
const std::vector<std::string>& edges,
double arrivalPos,
double duration = -1,
double speed = -1,
const std::string& stopID =
"");
820 void appendDrivingStage(
const std::string& personID,
const std::string& toEdge,
const std::string& lines,
const std::string& stopID =
"");
821 void removeStage(
const std::string& personID,
int nextStageIndex)
const;
822 void rerouteTraveltime(
const std::string& personID)
const;
823 void setSpeed(
const std::string& personID,
double speed)
const;
824 void setType(
const std::string& personID,
const std::string& typeID)
const;
825 void setLength(
const std::string& personID,
double length)
const;
826 void setWidth(
const std::string& personID,
double width)
const;
827 void setHeight(
const std::string& personID,
double height)
const;
828 void setMinGap(
const std::string& personID,
double minGap)
const;
930 int domain,
double range,
const std::vector<int>& vars)
const;
934 void send_commandMoveToXY(
const std::string& vehicleID,
const std::string& edgeID,
const int lane,
935 const double x,
const double y,
const double angle,
const int keepRoute)
const;
963 std::ostringstream oss;
964 oss.setf(std::ios::fixed , std::ios::floatfield);
965 oss << std::setprecision(accuracy);
EdgeScope edge
Scope for interaction with edges.
LaneScope(TraCIAPI &parent)
std::map< std::string, TraCIResults > SubscriptionResults
{object->{variable->value}}
std::string getParameter(const std::string &objectID, const std::string &key) const
retrieve generic paramter
void send_commandSetValue(int domID, int varID, const std::string &objID, tcpip::Storage &content) const
Sends a SetVariable request.
#define CMD_SUBSCRIBE_VEHICLE_CONTEXT
#define CMD_SUBSCRIBE_LANE_VARIABLE
libsumo::SubscriptionResults & getModifiableSubscriptionResults()
libsumo::SubscriptionResults & getModifiableContextSubscriptionResults(const std::string &objID)
#define CMD_SUBSCRIBE_LANEAREA_VARIABLE
tcpip::Socket * mySocket
The socket.
C++ TraCI client API implementation.
void close()
ends the simulation and closes the connection
Scope for interaction with edges.
void check_resultState(tcpip::Storage &inMsg, int command, bool ignoreCommandId=false, std::string *acknowledgement=0) const
Validates the result state of a command.
void connect(const std::string &host, int port)
Connects to the specified SUMO server.
#define CMD_GET_TL_VARIABLE
#define CMD_SUBSCRIBE_JUNCTION_CONTEXT
MeMeScope(TraCIAPI &parent)
void setOrder(int order)
set priority (execution order) for the client
#define CMD_GET_VEHICLE_VARIABLE
#define CMD_SUBSCRIBE_SIM_CONTEXT
#define CMD_SUBSCRIBE_VEHICLETYPE_CONTEXT
void clearSubscriptionResults()
#define CMD_GET_INDUCTIONLOOP_VARIABLE
void setParameter(const std::string &objectID, const std::string &key, const std::string &value) const
set generic paramter
GUIScope(TraCIAPI &parent)
libsumo::TraCIPositionVector getPolygon(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
virtual ~TrafficLightScope()
TraCIScopeWrapper & operator=(const TraCIScopeWrapper &src)
invalidated assignment operator
JunctionScope junction
Scope for interaction with junctions.
#define CMD_SUBSCRIBE_INDUCTIONLOOP_VARIABLE
PersonScope(TraCIAPI &parent)
void send_commandGetVariable(int domID, int varID, const std::string &objID, tcpip::Storage *add=0) const
Sends a GetVariable request.
std::map< int, std::shared_ptr< TraCIResult > > TraCIResults
{variable->value}
#define CMD_GET_LANEAREA_VARIABLE
LaneScope lane
Scope for interaction with lanes.
#define CMD_GET_PERSON_VARIABLE
PersonScope person
Scope for interaction with persons.
void load(const std::vector< std::string > &args)
Let sumo load a simulation using the given command line like options.
Scope for interaction with vehicles.
TraCIScopeWrapper(TraCIAPI &parent, int cmdGetID, int cmdSetID, int subscribeID, int contextSubscribeID)
Constructor.
#define CMD_SUBSCRIBE_POLYGON_CONTEXT
void send_commandSetOrder(int order) const
Sends a SetOrder command.
Scope for interaction with traffic lights.
std::map< std::string, SubscriptionResults > ContextSubscriptionResults
void closeSocket()
Closes the connection.
#define CMD_GET_POLYGON_VARIABLE
#define CMD_SUBSCRIBE_JUNCTION_VARIABLE
Scope for interaction with lane area detectors.
#define CMD_SUBSCRIBE_ROUTE_CONTEXT
libsumo::TraCIColor getColor(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
Scope for interaction with the gui.
#define CMD_SET_EDGE_VARIABLE
#define CMD_SET_GUI_VARIABLE
TrafficLightScope trafficlights
Scope for interaction with traffic lights.
const libsumo::SubscriptionResults getAllSubscriptionResults() const
Scope for interaction with routes.
#define CMD_SUBSCRIBE_EDGE_VARIABLE
#define CMD_GET_ROUTE_VARIABLE
#define CMD_SUBSCRIBE_INDUCTIONLOOP_CONTEXT
InductionLoopScope inductionloop
Scope for interaction with inductive loops.
Scope for interaction with inductive loops.
#define CMD_SET_JUNCTION_VARIABLE
#define CMD_SUBSCRIBE_POI_VARIABLE
POIScope(TraCIAPI &parent)
std::map< int, TraCIScopeWrapper * > myDomains
#define CMD_SET_TL_VARIABLE
Scope for interaction with POIs.
#define CMD_SUBSCRIBE_LANE_CONTEXT
libsumo::TraCIPosition getPosition3D(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
#define CMD_SUBSCRIBE_SIM_VARIABLE
#define CMD_GET_VEHICLETYPE_VARIABLE
Scope for interaction with the simulation.
Scope for interaction with multi entry/-exit detectors.
const libsumo::SubscriptionResults getContextSubscriptionResults(const std::string &objID) const
void readVariables(tcpip::Storage &inMsg, const std::string &objectID, int variableCount, libsumo::SubscriptionResults &into)
#define CMD_SET_ROUTE_VARIABLE
InductionLoopScope(TraCIAPI &parent)
MeMeScope multientryexit
Scope for interaction with multi-entry/-exit detectors.
#define CMD_SUBSCRIBE_GUI_CONTEXT
Scope for interaction with vehicle types.
PolygonScope(TraCIAPI &parent)
#define CMD_GET_POI_VARIABLE
#define CMD_SUBSCRIBE_MULTIENTRYEXIT_VARIABLE
libsumo::ContextSubscriptionResults myContextSubscriptionResults
#define CMD_SUBSCRIBE_MULTIENTRYEXIT_CONTEXT
#define CMD_SET_VEHICLETYPE_VARIABLE
RouteScope route
Scope for interaction with routes.
virtual ~InductionLoopScope()
Scope for interaction with polygons.
void send_commandMoveToXY(const std::string &vehicleID, const std::string &edgeID, const int lane, const double x, const double y, const double angle, const int keepRoute) const
void send_commandSubscribeObjectVariable(int domID, const std::string &objID, double beginTime, double endTime, const std::vector< int > &vars) const
Sends a SubscribeVariable request.
#define CMD_SUBSCRIBE_GUI_VARIABLE
#define CMD_GET_LANE_VARIABLE
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.
int getInt(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
#define CMD_SUBSCRIBE_LANEAREA_CONTEXT
libsumo::SubscriptionResults mySubscriptionResults
#define CMD_SET_VEHICLE_VARIABLE
void subscribe(const std::string &objID, const std::vector< int > &vars, double beginTime, double endTime) const
#define CMD_GET_SIM_VARIABLE
#define CMD_GET_EDGE_VARIABLE
int getByte(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
void subscribeContext(const std::string &objID, int domain, double range, const std::vector< int > &vars, double beginTime, double endTime) const
static std::string toString(const T &t, std::streamsize accuracy=PRECISION)
#define CMD_GET_GUI_VARIABLE
#define CMD_SET_POI_VARIABLE
int getUnsignedByte(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
double getDouble(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
#define CMD_SUBSCRIBE_POLYGON_VARIABLE
Scope for interaction with vehicles.
#define CMD_SUBSCRIBE_TL_CONTEXT
#define CMD_SUBSCRIBE_EDGE_CONTEXT
#define CMD_GET_JUNCTION_VARIABLE
Scope for interaction with junctions.
#define CMD_SUBSCRIBE_PERSON_VARIABLE
TrafficLightScope(TraCIAPI &parent)
#define CMD_SET_SIM_VARIABLE
const libsumo::TraCIResults getSubscriptionResults(const std::string &objID) const
virtual ~SimulationScope()
std::vector< std::string > getStringVector(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
#define CMD_SUBSCRIBE_VEHICLETYPE_VARIABLE
EdgeScope(TraCIAPI &parent)
POIScope poi
Scope for interaction with POIs.
#define CMD_SET_POLYGON_VARIABLE
SimulationScope simulation
Scope for interaction with the simulation.
Scope for interaction with lanes.
RouteScope(TraCIAPI &parent)
VehicleScope vehicle
Scope for interaction with vehicles.
std::vector< TraCIPosition > TraCIPositionVector
#define CMD_SUBSCRIBE_VEHICLE_VARIABLE
#define CMD_SUBSCRIBE_PERSON_CONTEXT
void processGET(tcpip::Storage &inMsg, int command, int expectedType, bool ignoreCommandId=false) const
void readVariableSubscription(int cmdId, tcpip::Storage &inMsg)
void simulationStep(int time=0)
Advances by one step (or up to the given time)
#define CMD_SET_LANE_VARIABLE
PolygonScope polygon
Scope for interaction with polygons.
#define CMD_GET_MULTIENTRYEXIT_VARIABLE
virtual ~TraCIScopeWrapper()
Destructor.
VehicleTypeScope(TraCIAPI &parent)
void send_commandSimulationStep(double time) const
Sends a SimulationStep command.
void send_commandClose() const
Sends a Close command.
TraCIAPI & myParent
The parent TraCI client which offers the connection.
int check_commandGetResult(tcpip::Storage &inMsg, int command, int expectedType=-1, bool ignoreCommandId=false) const
Validates the result state of a command.
libsumo::TraCIPosition getPosition(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
GUIScope gui
Scope for interaction with the gui.
#define CMD_SUBSCRIBE_TL_VARIABLE
std::string getString(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
VehicleScope(TraCIAPI &parent)
SimulationScope(TraCIAPI &parent)
An abstract interface for accessing type-dependent values.
#define CMD_SET_PERSON_VARIABLE
LaneAreaScope lanearea
Scope for interaction with lanes.
virtual ~VehicleTypeScope()
#define CMD_SUBSCRIBE_POI_CONTEXT
const libsumo::ContextSubscriptionResults getAllContextSubscriptionResults() const
LaneAreaScope(TraCIAPI &parent)
JunctionScope(TraCIAPI &parent)
void readContextSubscription(int cmdId, tcpip::Storage &inMsg)
#define CMD_SUBSCRIBE_ROUTE_VARIABLE
VehicleTypeScope vehicletype
Scope for interaction with vehicle types.