 |
Eclipse SUMO - Simulation of Urban MObility
|
Go to the documentation of this file.
36 #pragma warning(disable: 4503)
39 #pragma warning(disable: 4355)
42 : edge(*this), gui(*this), inductionloop(*this),
43 junction(*this), lane(*this), lanearea(*this), multientryexit(*this),
44 person(*this), poi(*this), polygon(*this), route(*this),
45 simulation(*this), trafficlights(*this),
46 vehicle(*this), vehicletype(*this),
105 std::string acknowledgement;
163 int length = 1 + 1 + 1 + 4 + (int) objID.length();
164 if (add !=
nullptr) {
165 length += (int)add->
size();
177 if (add !=
nullptr) {
187 int length = 1 + 1 + 1;
188 if (add !=
nullptr) {
189 length += (int)add->
size();
200 if (add !=
nullptr) {
208 const std::vector<int>& vars)
const {
214 int varNo = (int) vars.
size();
216 outMsg.
writeInt(5 + 1 + 8 + 8 + 4 + (
int) objID.length() + 1 + varNo);
226 for (
int i = 0; i < varNo; ++i) {
236 int domain,
double range,
const std::vector<int>& vars)
const {
242 int varNo = (int) vars.
size();
244 outMsg.
writeInt(5 + 1 + 8 + 8 + 4 + (
int) objID.length() + 1 + 8 + 1 + varNo);
257 for (
int i = 0; i < varNo; ++i) {
277 if (command != cmdId && !ignoreCommandId) {
282 }
catch (std::invalid_argument&) {
285 switch (resultType) {
291 if (acknowledgement !=
nullptr) {
292 (*acknowledgement) =
".. Command acknowledged (" +
toString(command) +
"), [description: " + msg +
"]";
298 if ((cmdStart + cmdLength) != (
int) inMsg.
position()) {
312 if (!ignoreCommandId && cmdId != (command + 0x10)) {
315 if (expectedType >= 0) {
320 if (valueDataType != expectedType) {
403 for (
int i = 0; i < size; ++i) {
451 std::vector<std::string>
453 std::vector<std::string> r;
457 for (
int i = 0; i < size; ++i) {
530 while (variableCount > 0) {
539 into[objectID][variableID] = std::make_shared<libsumo::TraCIDouble>(inMsg.
readDouble());
542 into[objectID][variableID] = std::make_shared<libsumo::TraCIString>(inMsg.
readString());
545 auto p = std::make_shared<libsumo::TraCIPosition>();
549 into[objectID][variableID] = p;
553 auto p = std::make_shared<libsumo::TraCIPosition>();
557 into[objectID][variableID] = p;
561 auto c = std::make_shared<libsumo::TraCIColor>();
566 into[objectID][variableID] = c;
570 into[objectID][variableID] = std::make_shared<libsumo::TraCIInt>(inMsg.
readInt());
573 auto sl = std::make_shared<libsumo::TraCIStringList>();
575 for (
int i = 0; i < n; ++i) {
578 into[objectID][variableID] = sl;
598 const std::string objectID = inMsg.
readString();
606 const std::string contextID = inMsg.
readString();
609 int numObjects = inMsg.
readInt();
611 while (numObjects > 0) {
613 readVariables(inMsg, objectID, variableCount,
myDomains[cmdId]->getModifiableContextSubscriptionResults(contextID));
626 it.second->clearSubscriptionResults();
629 while (numSubs > 0) {
644 for (
int i = 0; i < (int)args.size(); ++i) {
645 numChars += (int)args[i].size();
649 content.
writeInt(1 + 4 + 1 + 1 + 4 + numChars + 4 * (
int)args.size());
662 std::vector<std::string>
759 std::vector<std::string>
781 if (endSeconds != std::numeric_limits<double>::max()) {
801 if (endSeconds != std::numeric_limits<double>::max()) {
829 std::vector<std::string>
924 std::vector<std::string>
949 std::vector<std::string>
970 std::vector<libsumo::TraCIVehicleData>
972 std::vector<libsumo::TraCIVehicleData> result;
975 myParent.myInput.readInt();
977 myParent.myInput.readUnsignedByte();
978 const int n = myParent.myInput.readInt();
979 for (
int i = 0; i < n; ++i) {
982 myParent.myInput.readUnsignedByte();
983 vd.
id = myParent.myInput.readString();
985 myParent.myInput.readUnsignedByte();
986 vd.
length = myParent.myInput.readDouble();
988 myParent.myInput.readUnsignedByte();
989 vd.
entryTime = myParent.myInput.readDouble();
991 myParent.myInput.readUnsignedByte();
992 vd.
leaveTime = myParent.myInput.readDouble();
994 myParent.myInput.readUnsignedByte();
995 vd.
typeID = myParent.myInput.readString();
997 result.push_back(vd);
1007 std::vector<std::string>
1032 std::vector<std::string>
1057 std::vector<std::string>
1062 std::vector<std::string>
1072 std::vector<libsumo::TraCIConnection>
1074 std::vector<libsumo::TraCIConnection> ret;
1077 myParent.myInput.readUnsignedByte();
1078 myParent.myInput.readInt();
1080 int linkNo = myParent.myInput.readInt();
1081 for (
int i = 0; i < linkNo; ++i) {
1083 myParent.myInput.readUnsignedByte();
1084 std::string approachedLane = myParent.myInput.readString();
1086 myParent.myInput.readUnsignedByte();
1087 std::string approachedLaneInternal = myParent.myInput.readString();
1089 myParent.myInput.readUnsignedByte();
1090 bool hasPrio = myParent.myInput.readUnsignedByte() != 0;
1092 myParent.myInput.readUnsignedByte();
1093 bool isOpen = myParent.myInput.readUnsignedByte() != 0;
1095 myParent.myInput.readUnsignedByte();
1096 bool hasFoe = myParent.myInput.readUnsignedByte() != 0;
1098 myParent.myInput.readUnsignedByte();
1099 std::string state = myParent.myInput.readString();
1101 myParent.myInput.readUnsignedByte();
1102 std::string direction = myParent.myInput.readString();
1104 myParent.myInput.readUnsignedByte();
1105 double length = myParent.myInput.readDouble();
1111 approachedLaneInternal,
1202 std::vector<std::string>
1208 std::vector<std::string>
1210 std::vector<std::string> r;
1216 const int size = myParent.myInput.readInt();
1217 for (
int i = 0; i < size; ++i) {
1218 r.push_back(myParent.myInput.readString());
1224 std::vector<std::string>
1226 return getFoes(laneID,
"");
1234 content.
writeInt((
int)allowedClasses.size());
1235 for (
int i = 0; i < (int)allowedClasses.size(); ++i) {
1246 content.
writeInt((
int)disallowedClasses.size());
1247 for (
int i = 0; i < (int)disallowedClasses.size(); ++i) {
1276 std::vector<std::string>
1287 std::vector<std::string>
1302 std::vector<std::string>
1317 std::vector<std::string>
1480 std::vector<std::string>
1533 if (shape.size() < 256) {
1537 content.
writeInt((
int)shape.size());
1573 int f = fill ? 1 : 0;
1579 for (
int i = 0; i < (int)shape.size(); ++i) {
1600 std::vector<std::string>
1605 std::vector<std::string>
1639 std::vector<std::string>
1649 std::vector<std::string>
1659 std::vector<std::string>
1669 std::vector<std::string>
1679 std::vector<std::string>
1705 std::vector<std::string>
1726 result.
x = myParent.myInput.readDouble();
1727 result.
y = myParent.myInput.readDouble();
1748 result.
x = myParent.myInput.readDouble();
1749 result.
y = myParent.myInput.readDouble();
1750 result.
z = myParent.myInput.readDouble();
1771 result.
edgeID = myParent.myInput.readString();
1772 result.
pos = myParent.myInput.readDouble();
1773 result.
laneIndex = myParent.myInput.readUnsignedByte();
1793 result.
x = myParent.myInput.readDouble();
1794 result.
y = myParent.myInput.readDouble();
1814 return myParent.myInput.readDouble();
1836 return myParent.myInput.readDouble();
1873 std::vector<std::string>
1888 std::vector<libsumo::TraCILogic>
1890 std::vector<libsumo::TraCILogic> ret;
1893 const int logicNo = myParent.myInput.readInt();
1894 for (
int i = 0; i < logicNo; ++i) {
1895 myParent.myInput.readUnsignedByte();
1896 myParent.myInput.readInt();
1897 myParent.myInput.readUnsignedByte();
1898 const std::string programID = myParent.myInput.readString();
1899 myParent.myInput.readUnsignedByte();
1900 const int type = myParent.myInput.readInt();
1901 myParent.myInput.readUnsignedByte();
1902 const int phaseIndex = myParent.myInput.readInt();
1903 myParent.myInput.readUnsignedByte();
1904 const int phaseNumber = myParent.myInput.readInt();
1906 for (
int j = 0; j < phaseNumber; j++) {
1907 myParent.myInput.readUnsignedByte();
1908 myParent.myInput.readInt();
1909 myParent.myInput.readUnsignedByte();
1910 const double duration = myParent.myInput.readDouble();
1911 myParent.myInput.readUnsignedByte();
1912 const std::string state = myParent.myInput.readString();
1913 myParent.myInput.readUnsignedByte();
1914 const double minDur = myParent.myInput.readDouble();
1915 myParent.myInput.readUnsignedByte();
1916 const double maxDur = myParent.myInput.readDouble();
1917 myParent.myInput.readUnsignedByte();
1918 const int numNext = myParent.myInput.readInt();
1919 std::vector<int> next;
1920 for (
int k = 0; k < numNext; k++) {
1921 myParent.myInput.readUnsignedByte();
1922 next.push_back(myParent.myInput.readInt());
1924 myParent.myInput.readUnsignedByte();
1925 const std::string name = myParent.myInput.readString();
1928 myParent.myInput.readUnsignedByte();
1929 const int paramNumber = myParent.myInput.readInt();
1930 for (
int j = 0; j < paramNumber; j++) {
1931 myParent.myInput.readUnsignedByte();
1932 const std::vector<std::string> par = myParent.myInput.readStringList();
1935 ret.emplace_back(logic);
1941 std::vector<std::string>
1946 std::vector<std::vector<libsumo::TraCILink> >
1948 std::vector<std::vector<libsumo::TraCILink> > result;
1952 myParent.myInput.readUnsignedByte();
1953 myParent.myInput.readInt();
1955 int linkNo = myParent.myInput.readInt();
1956 for (
int i = 0; i < linkNo; ++i) {
1957 myParent.myInput.readUnsignedByte();
1958 int no = myParent.myInput.readInt();
1959 std::vector<libsumo::TraCILink> ret;
1960 for (
int i1 = 0; i1 < no; ++i1) {
1961 myParent.myInput.readUnsignedByte();
1962 myParent.myInput.readInt();
1963 std::string from = myParent.myInput.readString();
1964 std::string to = myParent.myInput.readString();
1965 std::string via = myParent.myInput.readString();
1968 result.emplace_back(ret);
2080 for (
int n : p.
next) {
2103 std::vector<std::string>
2413 std::vector<std::string>
2489 std::vector<std::string>
2581 std::vector<std::string>
2596 std::vector<libsumo::TraCINextTLSData>
2598 std::vector<libsumo::TraCINextTLSData> result;
2601 myParent.myInput.readInt();
2603 myParent.myInput.readUnsignedByte();
2604 const int n = myParent.myInput.readInt();
2605 for (
int i = 0; i < n; ++i) {
2607 myParent.myInput.readUnsignedByte();
2608 d.
id = myParent.myInput.readString();
2610 myParent.myInput.readUnsignedByte();
2611 d.
tlIndex = myParent.myInput.readInt();
2613 myParent.myInput.readUnsignedByte();
2614 d.
dist = myParent.myInput.readDouble();
2616 myParent.myInput.readUnsignedByte();
2617 d.
state = (char)myParent.myInput.readByte();
2619 result.push_back(d);
2625 std::vector<libsumo::TraCIBestLanesData>
2627 std::vector<libsumo::TraCIBestLanesData> result;
2630 myParent.myInput.readInt();
2631 myParent.myInput.readUnsignedByte();
2633 const int n = myParent.myInput.readInt();
2634 for (
int i = 0; i < n; ++i) {
2636 myParent.myInput.readUnsignedByte();
2637 info.
laneID = myParent.myInput.readString();
2639 myParent.myInput.readUnsignedByte();
2640 info.
length = myParent.myInput.readDouble();
2642 myParent.myInput.readUnsignedByte();
2643 info.
occupation = myParent.myInput.readDouble();
2645 myParent.myInput.readUnsignedByte();
2648 myParent.myInput.readUnsignedByte();
2651 myParent.myInput.readUnsignedByte();
2652 const int m = myParent.myInput.readInt();
2653 for (
int i = 0; i < m; ++i) {
2657 result.push_back(info);
2664 std::pair<std::string, double>
2671 myParent.myInput.readInt();
2672 myParent.myInput.readUnsignedByte();
2673 const std::string leaderID = myParent.myInput.readString();
2674 myParent.myInput.readUnsignedByte();
2675 const double gap = myParent.myInput.readDouble();
2676 return std::make_pair(leaderID, gap);
2689 myParent.myInput.readInt();
2690 myParent.myInput.readUnsignedByte();
2691 const int stateWithoutTraCI = myParent.myInput.readInt();
2692 myParent.myInput.readUnsignedByte();
2693 const int state = myParent.myInput.readInt();
2694 return std::make_pair(stateWithoutTraCI, state);
2785 std::vector<std::string>
2817 const std::string& routeID,
2818 const std::string& typeID,
2820 const std::string& departLane,
2821 const std::string& departPos,
2822 const std::string& departSpeed,
2823 const std::string& arrivalLane,
2824 const std::string& arrivalPos,
2825 const std::string& arrivalSpeed,
2826 const std::string& fromTaz,
2827 const std::string& toTaz,
2828 const std::string& line,
2830 int personNumber)
const {
2832 if (depart ==
"-1") {
2833 depart =
toString(myParent.simulation.getCurrentTime() / 1000.0);
2950 content.
writeInt((
int)edges.size());
2951 for (
int i = 0; i < (int)edges.size(); ++i) {
2961 if (currentTravelTimes) {
2963 std::vector<std::string> edges = myParent.edge.getIDList();
2964 for (std::vector<std::string>::iterator it = edges.begin(); it != edges.end(); ++it) {
2965 myParent.edge.adaptTraveltime(*it, myParent.edge.getTraveltime(*it));
3067 const double duration,
const int flags,
const double startPos,
const double until)
const {
3142 for (
int i = 0; i < (int)via.size(); ++i) {
3188 bool noOpposite,
double downstreamDist,
double upstreamDist)
const {
3191 addSubscriptionFilterNoOpposite();
3193 if (downstreamDist >= 0) {
3194 addSubscriptionFilterDownstreamDistance(downstreamDist);
3196 if (upstreamDist >= 0) {
3197 addSubscriptionFilterUpstreamDistance(upstreamDist);
3220 addSubscriptionFilterLeadFollow(std::vector<int>({0}));
3221 if (downstreamDist >= 0) {
3222 addSubscriptionFilterDownstreamDistance(downstreamDist);
3224 if (upstreamDist >= 0) {
3225 addSubscriptionFilterUpstreamDistance(upstreamDist);
3231 if (abs(direction) != 1) {
3232 std::cerr <<
"Ignoring lane change subscription filter with non-neighboring lane offset direction " << direction <<
"\n";
3235 addSubscriptionFilterLeadFollow(std::vector<int>({0, direction}));
3237 addSubscriptionFilterNoOpposite();
3239 if (downstreamDist >= 0) {
3240 addSubscriptionFilterDownstreamDistance(downstreamDist);
3242 if (upstreamDist >= 0) {
3243 addSubscriptionFilterUpstreamDistance(upstreamDist);
3256 if (downstreamDist >= 0) {
3257 addSubscriptionFilterDownstreamDistance(downstreamDist);
3259 if (upstreamDist >= 0) {
3260 addSubscriptionFilterUpstreamDistance(upstreamDist);
3312 for (
int i : vals) {
3324 std::vector<std::string>
3413 std::vector<std::string>
3424 while (getRemainingStages(personID) > 1) {
3425 removeStage(personID, 1);
3427 removeStage(personID, 0);
3648 myParent.processSet(myCmdSetID);
3654 myParent.send_commandSubscribeObjectVariable(mySubscribeID, objID, beginTime, endTime, vars);
3656 myParent.check_resultState(inMsg, mySubscribeID);
3657 if (vars.size() > 0) {
3658 myParent.check_commandGetResult(inMsg, mySubscribeID);
3659 myParent.readVariableSubscription(mySubscribeID + 0x10, inMsg);
3666 myParent.send_commandSubscribeObjectContext(myContextSubscribeID, objID, beginTime, endTime, domain, range, vars);
3668 myParent.check_resultState(inMsg, myContextSubscribeID);
3669 myParent.check_commandGetResult(inMsg, myContextSubscribeID);
3670 myParent.readContextSubscription(myContextSubscribeID + 0x60, inMsg);
3676 return mySubscriptionResults;
3682 if (mySubscriptionResults.find(objID) != mySubscriptionResults.end()) {
3683 return mySubscriptionResults.find(objID)->second;
3692 return myContextSubscriptionResults;
3698 if (myContextSubscriptionResults.find(objID) != myContextSubscriptionResults.end()) {
3699 return myContextSubscriptionResults.find(objID)->second;
3708 mySubscriptionResults.clear();
3709 myContextSubscriptionResults.clear();
3715 return mySubscriptionResults;
3721 return myContextSubscriptionResults[objID];
double getCO2Emission(const std::string &edgeID) const
TRACI_CONST int CMD_GET_TL_VARIABLE
std::pair< std::string, double > getLeader(const std::string &vehicleID, double dist) const
void setLength(const std::string &personID, double length) const
std::string getProgram(const std::string &tlsID) const
TRACI_CONST int VAR_LANE_ID
double getHeight(const std::string &poiID) const
TRACI_CONST int FILTER_TYPE_VCLASS
double getAllowedSpeed(const std::string &vehicleID) const
TRACI_CONST int VAR_VIEW_SCHEMA
void addSubscriptionFilterNoOpposite() const
virtual void writeUnsignedByte(int)
double getFuelConsumption(const std::string &edgeID) const
TRACI_CONST int TL_PHASE_INDEX
TRACI_CONST int VAR_SPEEDSETMODE
virtual unsigned int position() const
TRACI_CONST int VAR_HEIGHT
int getArrivedNumber() const
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
double getHeight(const std::string &typeID) const
TRACI_CONST int LAST_STEP_VEHICLE_HALTING_NUMBER
std::vector< std::string > getIDList() const
libsumo::TraCIPosition getPosition(const std::string &vehicleID) const
TRACI_CONST int CMD_GET_POLYGON_VARIABLE
std::vector< std::string > getRoute(const std::string &vehicleID) const
double getSpeedWithoutTraCI(const std::string &vehicleID) const
void changeLane(const std::string &vehicleID, int laneIndex, double duration) const
void changeLaneRelative(const std::string &vehicleID, int laneChange, double duration) const
TRACI_CONST int VAR_LOADED_VEHICLES_NUMBER
void setType(const std::string &personID, const std::string &typeID) const
void changeTarget(const std::string &vehicleID, const std::string &edgeID) const
TRACI_CONST int CMD_SET_GUI_VARIABLE
TRACI_CONST int STAGE_WAITING
double getLastStepMeanSpeed(const std::string &detID) const
void setMaxSpeed(const std::string &vehicleID, double speed) const
int getPersonNumber(const std::string &vehicleID) const
std::string getSchema(const std::string &viewID=DEFAULT_VIEW) const
std::string getRoadID(const std::string &vehicleID) const
TRACI_CONST int TYPE_COLOR
TRACI_CONST int VAR_ROUTE_INDEX
libsumo::TraCIPosition getPosition3D(const std::string &vehicleID) const
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
TRACI_CONST int TL_CURRENT_PHASE
void addSubscriptionFilterCFManeuver(double downstreamDist=-1, double upstreamDist=-1) const
double getNOxEmission(const std::string &laneID) const
double getMinGapLat(const std::string &typeID) const
double getAngle(const std::string &personID) const
double getMaxSpeedLat(const std::string &typeID) const
LaneScope lane
Scope for interaction with lanes.
double getNOxEmission(const std::string &edgeID) const
std::vector< std::string > getIDList() const
std::vector< std::string > getInternalFoes(const std::string &laneID) const
void readContextSubscription(int cmdId, tcpip::Storage &inMsg)
TRACI_CONST int TL_CONTROLLED_LINKS
void close()
ends the simulation and closes the connection
double getHCEmission(const std::string &laneID) const
TRACI_CONST int VAR_EMISSIONCLASS
TRACI_CONST double INVALID_DOUBLE_VALUE
TRACI_CONST int VAR_POSITION
bool processSet(int command)
std::vector< std::string > getFoes(const std::string &laneID, const std::string &toLaneID) const
double getTau(const std::string &typeID) const
TRACI_CONST int VAR_FUELCONSUMPTION
double getLastStepLength(const std::string &laneID) const
libsumo::TraCIPosition getPosition(const std::string &poiID) const
std::vector< std::string > getIDList() const
TRACI_CONST int VAR_MINGAP
TRACI_CONST int POSITION_3D
std::string getType(const std::string &poiID) const
void moveTo(const std::string &vehicleID, const std::string &laneID, double position) const
TRACI_CONST int TL_PROGRAM
TRACI_CONST int VAR_STAGES_REMAINING
TRACI_CONST int VAR_TELEPORT_ENDING_VEHICLES_NUMBER
double getNoiseEmission(const std::string &edgeID) const
TRACI_CONST int VAR_SPEED_WITHOUT_TRACI
TRACI_CONST int VAR_ROAD_ID
std::map< int, std::shared_ptr< TraCIResult > > TraCIResults
{variable->value}
libsumo::TraCIPosition getPosition(const std::string &personID) const
void setSpeedFactor(const std::string &vehicleID, double factor) const
TRACI_CONST int VAR_MAXSPEED
const libsumo::SubscriptionResults getContextSubscriptionResults(const std::string &objID) const
void setRoutingMode(const std::string &vehicleID, int routingMode) const
TRACI_CONST int CMD_CLOSE
int getLastStepVehicleNumber(const std::string &detID) const
double getLength(const std::string &vehicleID) const
JunctionScope junction
Scope for interaction with junctions.
void setAngle(const std::string &poiID, double angle) const
TRACI_CONST int TL_COMPLETE_PROGRAM_RYG
void send_commandSetOrder(int order) const
Sends a SetOrder command.
double getMinGap(const std::string &vehicleID) const
void setPhase(const std::string &tlsID, int index) const
void addSubscriptionFilterStringList(int filterType, const std::vector< std::string > &vals) const
TRACI_CONST int VAR_TELEPORT_STARTING_VEHICLES_NUMBER
TRACI_CONST int VAR_COLOR
TRACI_CONST int TL_NEXT_SWITCH
std::string getVehicle(const std::string &personID) const
void setShapeClass(const std::string &typeID, const std::string &shapeClass) const
TRACI_CONST int VAR_SIGNALS
void add(const std::string &polygonID, const libsumo::TraCIPositionVector &shape, const libsumo::TraCIColor &c, bool fill, const std::string &type, int layer) const
TRACI_CONST int CMD_GET_PERSON_VARIABLE
double getSpeedDeviation(const std::string &typeID) const
void setImageFile(const std::string &poiID, const std::string &imageFile) const
TRACI_CONST int CMD_SET_POI_VARIABLE
int bestLaneOffset
The offset of this lane from the best lane.
libsumo::TraCIPositionVector getPolygon(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
TRACI_CONST int TL_PHASE_DURATION
TRACI_CONST int RESPONSE_SUBSCRIBE_GUI_VARIABLE
double getDistanceRoad(const std::string &edgeID1, double pos1, const std::string &edgeID2, double pos2, bool isDriving=false)
void setSpeedMode(const std::string &vehicleID, int mode) const
std::string getRedYellowGreenState(const std::string &tlsID) const
void subscribe(const std::string &objID, const std::vector< int > &vars, double beginTime, double endTime) const
PersonScope person
Scope for interaction with persons.
TRACI_CONST int VAR_WAITING_TIME
TRACI_CONST int VAR_BUS_STOP_WAITING
TRACI_CONST int VAR_WIDTH
std::vector< std::string > getIDList() const
TRACI_CONST int CMD_SET_POLYGON_VARIABLE
void setMinGap(const std::string &typeID, double minGap) const
std::vector< libsumo::TraCIConnection > getLinks(const std::string &laneID) const
void connect()
Connects to host_:port_.
TRACI_CONST int VAR_ALLOWED_SPEED
void addSubscriptionFilterTurn(double downstreamDist=-1, double upstreamDist=-1) const
void setAllowed(const std::string &laneID, const std::vector< std::string > &allowedClasses) const
TRACI_CONST int CMD_GET_LANEAREA_VARIABLE
void setOrder(int order)
set priority (execution order) for the client
TRACI_CONST int LANE_DISALLOWED
std::vector< std::string > getLastStepVehicleIDs(const std::string &laneID) const
double getNoiseEmission(const std::string &vehicleID) const
int getDepartedNumber() const
void setOffset(const std::string &viewID, double x, double y) const
double getSlope(const std::string &vehicleID) const
TRACI_CONST int VAR_PERSON_NUMBER
TRACI_CONST int RESPONSE_SUBSCRIBE_EDGE_VARIABLE
libsumo::TraCIPositionVector getNetBoundary() const
int getMinExpectedNumber() const
TRACI_CONST int CMD_CHANGETARGET
TRACI_CONST int CMD_SET_SIM_VARIABLE
double leaveTime
Leave-time of the vehicle in [s].
TRACI_CONST int VAR_COEMISSION
TRACI_CONST int VAR_VEHICLECLASS
void remove(const std::string &vehicleID, char reason=libsumo::REMOVE_VAPORIZED) const
void setPhaseName(const std::string &tlsID, const std::string &name) const
int getLastStepHaltingNumber(const std::string &detID) const
std::map< std::string, SubscriptionResults > ContextSubscriptionResults
std::vector< std::string > getIDList() const
double getLanePosition(const std::string &vehicleID) const
TRACI_CONST int VAR_PARAMETER
std::vector< std::vector< libsumo::TraCILink > > getControlledLinks(const std::string &tlsID) const
std::string getLateralAlignment(const std::string &vehicleID) const
TRACI_CONST int VAR_ACCEL
std::vector< std::string > getIDList() const
TRACI_CONST int TYPE_BYTE
double getWaitingTime(const std::string &personID) const
int tlIndex
The tls index of the controlled link.
void setSignals(const std::string &vehicleID, int signals) const
TRACI_CONST int VAR_TIME_STEP
void setWidth(const std::string &poiID, double width) const
double getElectricityConsumption(const std::string &edgeID) const
TRACI_CONST int VAR_EDGE_TRAVELTIME
libsumo::TraCIStage getStage(const std::string &personID, int nextStageIndex=0) const
std::map< int, TraCIScopeWrapper * > myDomains
TRACI_CONST int LAST_STEP_VEHICLE_ID_LIST
TRACI_CONST int APPEND_STAGE
TRACI_CONST int INVALID_INT_VALUE
std::string intended
id of the intended vehicle for public transport ride
TRACI_CONST int VAR_MOVE_TO
void createFilterCommand(int cmdID, int varID, tcpip::Storage *add=nullptr) const
TRACI_CONST int FILTER_TYPE_FIELD_OF_VISION
void setVehicleClass(const std::string &typeID, const std::string &clazz) const
double getMaxSpeed(const std::string &typeID) const
const libsumo::ContextSubscriptionResults getAllContextSubscriptionResults() const
int getRouteIndex(const std::string &vehicleID) const
TRACI_CONST int VAR_VEHICLE
TRACI_CONST int VAR_NOISEEMISSION
void addSubscriptionFilterVType(const std::vector< std::string > &vTypes) const
TRACI_CONST int VAR_LEADER
void rerouteTraveltime(const std::string &vehicleID, bool currentTravelTimes=true) const
TRACI_CONST int CMD_GET_LANE_VARIABLE
mirrors MSInductLoop::VehicleData
double getLength(const std::string &laneID) const
double getMaxSpeed(const std::string &vehicleID) const
void setLine(const std::string &vehicleID, const std::string &line) const
libsumo::TraCIPositionVector getShape(const std::string &laneID) const
TRACI_CONST int RESPONSE_SUBSCRIBE_ROUTE_VARIABLE
std::vector< std::string > getStartingTeleportIDList() const
TRACI_CONST int VAR_ROUTE_ID
int getLastStepHaltingNumber(const std::string &laneID) const
std::vector< std::string > getBusStopWaitingIDList(const std::string &stopID) const
double getCO2Emission(const std::string &vehicleID) const
double dist
The distance to the tls.
libsumo::TraCIStage getTraCIStage(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
void setEmissionClass(const std::string &vehicleID, const std::string &clazz) const
libsumo::TraCIColor getColor(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
std::string getEdgeID(const std::string &laneID) const
void setWidth(const std::string &personID, double width) const
int getStartingTeleportNumber() const
void rerouteTraveltime(const std::string &personID) const
TRACI_CONST int CMD_GET_VEHICLE_VARIABLE
TRACI_CONST int CMD_SET_VEHICLE_VARIABLE
TRACI_CONST int CMD_GET_VEHICLETYPE_VARIABLE
TRACI_CONST int FIND_ROUTE
TRACI_CONST int VAR_BUS_STOP_WAITING_IDS
double getLastStepMeanSpeed(const std::string &loopID) const
std::vector< std::string > getLastStepVehicleIDs(const std::string &edgeID) const
TRACI_CONST int CMD_ADD_SUBSCRIPTION_FILTER
double arrivalPos
position on the lane when ending the stage
std::vector< std::string > getIDList() const
TRACI_CONST int RESPONSE_SUBSCRIBE_VEHICLE_VARIABLE
void addSubscriptionFilterFloat(int filterType, double val) const
void setRedYellowGreenState(const std::string &tlsID, const std::string &state) const
TRACI_CONST int LAST_STEP_VEHICLE_DATA
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...
double getLastStepOccupancy(const std::string &edgeID) const
virtual void writeDouble(double)
bool allowsContinuation
Whether this lane allows continuing the route.
TRACI_CONST int FILTER_TYPE_UPSTREAM_DIST
void setHeight(const std::string &poiID, double height) const
std::vector< std::string > getLastStepVehicleIDs(const std::string &detID) const
void addSubscriptionFilterLCManeuver(int direction, bool noOpposite=false, double downstreamDist=-1, double upstreamDist=-1) const
double getImperfection(const std::string &vehicleID) const
void screenshot(const std::string &viewID, const std::string &filename, const int width=-1, const int height=-1) const
void appendDrivingStage(const std::string &personID, const std::string &toEdge, const std::string &lines, const std::string &stopID="")
TRACI_CONST int VAR_BEST_LANES
double getNOxEmission(const std::string &vehicleID) const
double getPMxEmission(const std::string &laneID) const
void setSpeedDeviation(const std::string &typeID, double deviation) const
TRACI_CONST int FILTER_TYPE_LEAD_FOLLOW
TRACI_CONST int VAR_NOXEMISSION
libsumo::TraCIPosition getOffset(const std::string &viewID=DEFAULT_VIEW) const
TRACI_CONST int VAR_CURRENT_TRAVELTIME
TRACI_CONST int FILTER_TYPE_NOOPPOSITE
std::string getParameter(const std::string &objectID, const std::string &key) const
retrieve generic paramter
double getPMxEmission(const std::string &edgeID) const
double getLateralSpeed(const std::string &vehicleID) const
void load(const std::vector< std::string > &args)
Let sumo load a simulation using the given command line like options.
TRACI_CONST int CMD_SETORDER
void addSubscriptionFilterLeadFollow(const std::vector< int > &lanes) const
double getHeight(const std::string &veihcleID) const
int getEndingTeleportNumber() const
void remove(const std::string &polygonID, int layer=0) const
TRACI_CONST int VAR_MINGAP_LAT
std::string getStreetName(const std::string &id) const
int getStopState(const std::string &vehicleID) const
std::vector< std::string > getDisallowed(const std::string &laneID) const
TRACI_CONST int VAR_STOPSTATE
void setHeight(const std::string &personID, double height) const
int getLastStepVehicleNumber(const std::string &laneID) const
TRACI_CONST int VAR_SHAPE
void closeSocket()
Closes the connection.
char state
The current state of the tls.
double travelTime
duration of the stage in seconds
virtual void writeString(const std::string &s)
double occupation
The traffic density along length.
virtual void writeInt(int)
void addSubscriptionFilterUpstreamDistance(double dist) const
TRACI_CONST int VAR_LATALIGNMENT
TRACI_CONST int VAR_ACCUMULATED_WAITING_TIME
TRACI_CONST int FILTER_TYPE_TURN
void simulationStep(double time=0)
Advances by one step (or up to the given time)
TRACI_CONST int TYPE_DOUBLE
void setColor(const std::string &vehicleID, const libsumo::TraCIColor &c) const
TRACI_CONST int TYPE_POLYGON
TRACI_CONST int RESPONSE_SUBSCRIBE_POI_VARIABLE
TRACI_CONST int RESPONSE_SUBSCRIBE_PERSON_VARIABLE
virtual void writeStorage(tcpip::Storage &store)
void send_commandSubscribeObjectVariable(int domID, const std::string &objID, double beginTime, double endTime, const std::vector< int > &vars) const
Sends a SubscribeVariable request.
void setColor(const std::string &typeID, const libsumo::TraCIColor &c) const
TRACI_CONST int CMD_GET_POI_VARIABLE
virtual int readUnsignedByte()
TRACI_CONST int VAR_NET_BOUNDING_BOX
double getLastStepOccupancy(const std::string &laneID) const
libsumo::TraCIPosition convert2D(const std::string &edgeID, double pos, int laneIndex=0, bool toGeo=false) const
void setType(const std::string &vehicleID, const std::string &typeID) const
void addSubscriptionFilterFieldOfVision(double angle) const
TrafficLightScope trafficlights
Scope for interaction with traffic lights.
TRACI_CONST int VAR_VIEW_ZOOM
double getNextSwitch(const std::string &tlsID) const
int getInt(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
TRACI_CONST int VAR_ROUTE_VALID
std::string description
arbitrary description string
TRACI_CONST int VAR_ANGLE
void setSchema(const std::string &viewID, const std::string &schemeName) const
TRACI_CONST int FILTER_TYPE_VTYPE
TRACI_CONST int POSITION_LON_LAT
TRACI_CONST int TYPE_INTEGER
void addSubscriptionFilterDownstreamDistance(double dist) const
void addSubscriptionFilterLanes(const std::vector< int > &lanes, bool noOpposite=false, double downstreamDist=-1, double upstreamDist=-1) const
double getHCEmission(const std::string &edgeID) const
std::string typeID
Type of the vehicle in.
std::string getImageFile(const std::string &poiID) const
double length
The length than can be driven from that lane without lane change.
void readVariables(tcpip::Storage &inMsg, const std::string &objectID, int variableCount, libsumo::SubscriptionResults &into)
TRACI_CONST int VAR_DEPARTED_VEHICLES_IDS
TRACI_CONST int CMD_SET_VEHICLETYPE_VARIABLE
double getElectricityConsumption(const std::string &vehicleID) const
TRACI_CONST int VAR_NEXT_EDGE
virtual void writeStringList(const std::vector< std::string > &s)
int getLaneIndex(const std::string &vehicleID) const
static std::string toString(const T &t, std::streamsize accuracy=PRECISION)
double getWidth(const std::string &typeID) const
TRACI_CONST int RESPONSE_SUBSCRIBE_LANEAREA_VARIABLE
TRACI_CONST int RESPONSE_SUBSCRIBE_VEHICLETYPE_VARIABLE
std::vector< libsumo::TraCIVehicleData > getVehicleData(const std::string &loopID) const
std::vector< std::string > getEndingTeleportIDList() const
double getLanePosition(const std::string &personID) const
std::string line
The line or the id of the vehicle type.
TRACI_CONST int VAR_DELTA_T
void writeMessage(const std::string msg)
TRACI_CONST int TL_CONTROLLED_LANES
void setMaxSpeed(const std::string &typeID, double speed) const
TRACI_CONST int VAR_SLOPE
TRACI_CONST int STAGE_WALKING
libsumo::TraCIPosition convert3D(const std::string &edgeID, double pos, int laneIndex=0, bool toGeo=false) const
TRACI_CONST int CMD_SET_LANE_VARIABLE
TRACI_CONST int RTYPE_ERR
TRACI_CONST int VAR_PMXEMISSION
void setParameter(const std::string &objectID, const std::string &key, const std::string &value) const
set generic paramter
libsumo::TraCIPosition getPosition(const std::string &junctionID) const
libsumo::TraCIPositionVector getBoundary(const std::string &viewID=DEFAULT_VIEW) const
std::vector< std::string > getVia(const std::string &vehicleID) const
TRACI_CONST int CMD_CHANGESUBLANE
void setLength(const std::string &typeID, double length) const
std::vector< std::string > getIDList() const
double getFuelConsumption(const std::string &laneID) const
double getLastStepHaltingNumber(const std::string &edgeID) const
std::string getEmissionClass(const std::string &vehicleID) const
std::string getLateralAlignment(const std::string &typeID) const
TRACI_CONST int VAR_TELEPORT_ENDING_VEHICLES_IDS
virtual std::vector< std::string > readStringList()
TRACI_CONST int VAR_TELEPORT_STARTING_VEHICLES_IDS
int getPersonCapacity(const std::string &typeID) const
void setMinGap(const std::string &personID, double minGap) const
libsumo::TraCIPosition getPosition3D(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
double getSpeed(const std::string &vehicleID) const
libsumo::TraCIColor getColor(const std::string &typeID) const
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.
TRACI_CONST int CMD_SET_TL_VARIABLE
TRACI_CONST int CMD_SET_PERSON_VARIABLE
std::string getType(const std::string &polygonID) const
TRACI_CONST int CMD_GET_SIM_VARIABLE
std::vector< std::string > getStringVector(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
void setMinGapLat(const std::string &typeID, double minGapLat) const
int getPhase(const std::string &tlsID) const
virtual void writeByte(int)
void setWidth(const std::string &typeID, double width) const
RouteScope route
Scope for interaction with routes.
void setZoom(const std::string &viewID, double zoom) const
void setEmissionClass(const std::string &typeID, const std::string &clazz) const
void setType(const std::string &poiID, const std::string &setType) const
double getLastStepMeanSpeed(const std::string &edgeID) const
void setHeight(const std::string &typeID, double height) const
void appendWalkingStage(const std::string &personID, const std::vector< std::string > &edges, double arrivalPos, double duration=-1, double speed=-1, const std::string &stopID="")
double getHCEmission(const std::string &vehicleID) const
TRACI_CONST int TRACI_ID_LIST
double getTraveltime(const std::string &laneID) const
TRACI_CONST int CMD_CHANGELANE
TraCIAPI & myParent
The parent TraCI client which offers the connection.
int getLastStepVehicleNumber(const std::string &loopID) const
double getPosition(const std::string &loopID) const
TRACI_CONST int VAR_ARRIVED_VEHICLES_NUMBER
double getMaxSpeed(const std::string &laneID) const
std::string id
The id of the vehicle.
double getAccel(const std::string &vehicleID) const
libsumo::TraCIPositionVector getShape(const std::string &junctionID) const
double getMinGap(const std::string &typeID) const
void setDecel(const std::string &typeID, double decel) const
MeMeScope multientryexit
Scope for interaction with multi-entry/-exit detectors.
std::vector< libsumo::TraCILogic > getCompleteRedYellowGreenDefinition(const std::string &tlsID) const
std::string laneID
The id of the lane.
std::vector< std::string > getEdges(const std::string &routeID) const
double getTimeSinceDetection(const std::string &loopID) const
TRACI_CONST int POSITION_ROADMAP
std::vector< std::string > getLastStepVehicleIDs(const std::string &loopID) const
void setVia(const std::string &vehicleID, const std::vector< std::string > &via) const
double getCOEmission(const std::string &vehicleID) const
double getWidth(const std::string &vehicleID) const
double getCOEmission(const std::string &laneID) const
TRACI_CONST int DISTANCE_REQUEST
int getSignals(const std::string &vehicleID) const
double getLastStepMeanSpeed(const std::string &laneID) const
SimulationScope simulation
Scope for interaction with the simulation.
void setShapeClass(const std::string &vehicleID, const std::string &clazz) const
double getDecel(const std::string &typeID) const
std::vector< std::string > getDepartedIDList() const
TRACI_CONST int VAR_SPEED_FACTOR
TRACI_CONST int RESPONSE_SUBSCRIBE_JUNCTION_VARIABLE
TRACI_CONST int VAR_SPEED_DEVIATION
double getSpeedFactor(const std::string &vehicleID) const
double getAngle(const std::string &vehicleID) const
std::vector< libsumo::TraCIBestLanesData > getBestLanes(const std::string &vehicleID) const
TRACI_CONST int CMD_SLOWDOWN
double depart
intended depart time for public transport ride or INVALID_DOUBLE_VALUE
double getPhaseDuration(const std::string &tlsID) const
TRACI_CONST int VAR_LENGTH
std::string getNextEdge(const std::string &personID) const
double getLateralLanePosition(const std::string &vehicleID) const
int getUnsignedByte(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
void slowDown(const std::string &vehicleID, double speed, double duration) const
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
int getCurrentTime() const
libsumo::TraCIColor getColor(const std::string &polygonID) const
libsumo::TraCIColor getColor(const std::string &personID) const
TRACI_CONST int CMD_MESSAGE
TRACI_CONST int RESPONSE_SUBSCRIBE_MULTIENTRYEXIT_VARIABLE
void setLineWidth(const std::string &polygonID, const double lineWidth) const
void trackVehicle(const std::string &viewID, const std::string &vehID) const
TRACI_CONST int VAR_DISTANCE
TRACI_CONST int VAR_EMERGENCY_DECEL
TRACI_CONST int RESPONSE_SUBSCRIBE_LANE_VARIABLE
double getWaitingTime(const std::string &vehicleID) const
void adaptTraveltime(const std::string &edgeID, double time, double beginSeconds=0., double endSeconds=std::numeric_limits< double >::max()) const
std::vector< std::string > getControlledLanes(const std::string &tlsID) const
tcpip::Storage myOutput
The reusable output storage.
TRACI_CONST int LANE_EDGE_ID
TRACI_CONST int TYPE_STRINGLIST
void setColor(const std::string &poiID, const libsumo::TraCIColor &c) const
std::string getVehicleClass(const std::string &typeID) const
void addSubscriptionFilterByteList(int filterType, const std::vector< int > &vals) const
std::string getPhaseName(const std::string &tlsID) const
TRACI_CONST int VAR_EDGES
TRACI_CONST int TL_CURRENT_PROGRAM
void removeStage(const std::string &personID, int nextStageIndex) const
std::vector< std::string > getArrivedIDList() const
libsumo::TraCIRoadPosition convertRoad(double x, double y, bool isGeo=false, const std::string &vClass="ignoring") const
double length
Length of the vehicle.
TRACI_CONST int RESPONSE_SUBSCRIBE_TL_VARIABLE
void changeSublane(const std::string &vehicleID, double latDist) const
void setColor(const std::string &polygonID, const libsumo::TraCIColor &c) const
std::string getShapeClass(const std::string &vehicleID) const
std::string id
The id of the next tls.
void remove(const std::string &poiID, int layer=0) const
double getWidth(const std::string &laneID) const
std::string getRouteID(const std::string &vehicleID) const
std::vector< TraCIPhase > phases
void setSpeedFactor(const std::string &typeID, double factor) const
TRACI_CONST int CMD_GET_GUI_VARIABLE
bool processGet(int command, int expectedType, bool ignoreCommandId=false)
TRACI_CONST int VAR_SHAPECLASS
TRACI_CONST int VAR_CO2EMISSION
int check_commandGetResult(tcpip::Storage &inMsg, int command, int expectedType=-1, bool ignoreCommandId=false) const
Validates the result state of a command.
std::string getLine(const std::string &vehicleID) const
double getDistance(const std::string &vehicleID) const
std::vector< std::string > getIDList() const
int getByte(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
libsumo::TraCIColor getColor(const std::string &poiID) const
TRACI_CONST int CMD_GET_MULTIENTRYEXIT_VARIABLE
TRACI_CONST int VAR_LANEPOSITION_LAT
TRACI_CONST int RESPONSE_SUBSCRIBE_SIM_VARIABLE
std::string getRoadID(const std::string &personID) const
TRACI_CONST int LANE_LINK_NUMBER
int type
The type of stage (walking, driving, ...)
double getImperfection(const std::string &typeID) const
TRACI_CONST int FILTER_TYPE_DOWNSTREAM_DIST
double getDistance2D(double x1, double y1, double x2, double y2, bool isGeo=false, bool isDriving=false)
double getDouble(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
VehicleScope vehicle
Scope for interaction with vehicles.
void setLength(const std::string &laneID, double length) const
TRACI_CONST int LAST_STEP_PERSON_ID_LIST
TRACI_CONST int LANE_ALLOWED
void setEffort(const std::string &edgeID, double effort, double beginSeconds=0., double endSeconds=std::numeric_limits< double >::max()) const
libsumo::SubscriptionResults & getModifiableContextSubscriptionResults(const std::string &objID)
TRACI_CONST int POSITION_2D
void setMaxSpeedLat(const std::string &typeID, double speed) const
TRACI_CONST int RESPONSE_SUBSCRIBE_POLYGON_VARIABLE
std::vector< std::string > getIDList() const
TRACI_CONST int CMD_OPENGAP
double getApparentDecel(const std::string &typeID) const
std::vector< std::string > getAllowed(const std::string &laneID) const
double getAccumulatedWaitingTime(const std::string &vehicleID) const
TRACI_CONST int CMD_GET_INDUCTIONLOOP_VARIABLE
TRACI_CONST int LAST_STEP_MEAN_SPEED
double getLastStepOccupancy(const std::string &loopID) const
void setSpeed(const std::string &vehicleID, double speed) const
void setAccel(const std::string &typeID, double accel) const
TRACI_CONST int TYPE_STRING
void copy(const std::string &origTypeID, const std::string &newTypeID) const
TRACI_CONST int VAR_EDGE_EFFORT
std::vector< std::string > edges
The sequence of edges to travel.
TRACI_CONST int VAR_NEXT_TLS
std::pair< int, int > getLaneChangeState(const std::string &vehicleID, int direction) const
TRACI_CONST int VAR_SPEED_LAT
void clearSubscriptionResults()
void setCompleteRedYellowGreenDefinition(const std::string &tlsID, const libsumo::TraCILogic &logic) const
int getLaneNumber(const std::string &edgeID) const
bool isRouteValid(const std::string &vehicleID) const
void addSubscriptionFilterEmpty(int filterType) const
TRACI_CONST int TL_RED_YELLOW_GREEN_STATE
TRACI_CONST int VAR_TRACK_VEHICLE
double getAdaptedTraveltime(const std::string &edgeID, double time) const
PolygonScope polygon
Scope for interaction with polygons.
TRACI_CONST int VAR_LANEPOSITION
TRACI_CONST int VAR_POSITION3D
TRACI_CONST int VAR_ACCELERATION
TRACI_CONST int VAR_DEPARTED_VEHICLES_NUMBER
std::string getEmissionClass(const std::string &typeID) const
int getLoadedNumber() const
LaneAreaScope lanearea
Scope for interaction with lanes.
TRACI_CONST int POSITION_CONVERSION
std::string getLaneID(const std::string &loopID) const
void setDisallowed(const std::string &laneID, const std::vector< std::string > &disallowedClasses) const
void send_commandSimulationStep(double time) const
Sends a SimulationStep command.
void setImperfection(const std::string &typeID, double imperfection) const
double getSpeedDeviation(const std::string &vehicleID) const
std::string getShapeClass(const std::string &typeID) const
void setPhaseDuration(const std::string &tlsID, double phaseDuration) const
TRACI_CONST int CMD_SET_EDGE_VARIABLE
TRACI_CONST int POSITION_LON_LAT_ALT
double getCO2Emission(const std::string &laneID) const
void send_commandClose() const
Sends a Close command.
TRACI_CONST int VAR_DECEL
void setPosition(const std::string &poiID, double x, double y) const
std::string getLaneID(const std::string &vehicleID) const
void setRouteID(const std::string &vehicleID, const std::string &routeID) const
TRACI_CONST int FILTER_TYPE_LANES
TRACI_CONST int TYPE_UBYTE
libsumo::TraCIPosition getPosition(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
libsumo::TraCIPositionVector getShape(const std::string &polygonID) const
POIScope poi
Scope for interaction with POIs.
double getLength(const std::string &personID) const
void setTau(const std::string &typeID, double tau) const
double getTau(const std::string &vehicleID) const
libsumo::SubscriptionResults & getModifiableSubscriptionResults()
StorageType::size_type size() const
int getPersonCapacity(const std::string &vehicleID) const
int getLastStepVehicleNumber(const std::string &edgeID) const
void setShape(const std::string &polygonID, const libsumo::TraCIPositionVector &shape) const
TRACI_CONST int VAR_ELECTRICITYCONSUMPTION
TRACI_CONST int REQUEST_AIRDIST
TRACI_CONST int MOVE_TO_XY
TRACI_CONST int VAR_VIEW_OFFSET
double getZoom(const std::string &viewID=DEFAULT_VIEW) const
double getSpeedFactor(const std::string &typeID) const
TRACI_CONST int VAR_LOADED_VEHICLES_IDS
TRACI_CONST int STAGE_DRIVING
void setRoute(const std::string &vehicleID, const std::vector< std::string > &edge) const
double getMaxSpeedLat(const std::string &vehicleID) const
double getAcceleration(const std::string &vehicleID) const
std::map< std::string, std::string > subParameter
An edgeId, position and laneIndex.
std::vector< std::string > getLoadedIDList() const
void removeStages(const std::string &personID) const
TRACI_CONST int VAR_HCEMISSION
void setLateralAlignment(const std::string &typeID, const std::string &latAlignment) const
void setColor(const std::string &personID, const libsumo::TraCIColor &c) const
std::string getVehicleClass(const std::string &vehicleID) const
double getLastStepLength(const std::string &edgeID) const
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
TRACI_CONST int VAR_IMPERFECTION
virtual std::string readString()
GUIScope gui
Scope for interaction with the gui.
int getSpeedMode(const std::string &vehicleID) const
TRACI_CONST int VAR_ARRIVED_VEHICLES_IDS
void add(const std::string &routeID, const std::vector< std::string > &edges) const
void setEmergencyDecel(const std::string &typeID, double decel) const
std::vector< std::string > getIDList() const
TRACI_CONST int VAR_SPEED
void setMaxSpeed(const std::string &edgeID, double speed) const
TRACI_CONST int LAST_STEP_VEHICLE_NUMBER
virtual double readDouble()
void setType(const std::string &polygonID, const std::string &setType) const
std::vector< TraCIPosition > TraCIPositionVector
libsumo::TraCIStage findRoute(const std::string &fromEdge, const std::string &toEdge, const std::string &vType="", double pos=-1., int routingMode=0) const
TRACI_CONST int VAR_APPARENT_DECEL
TRACI_CONST int LANE_LINKS
std::vector< std::string > continuationLanes
The sequence of lanes that best allows continuing the route without lane change.
libsumo::TraCIPosition convertGeo(double x, double y, bool fromGeo=false) const
void readVariableSubscription(int cmdId, tcpip::Storage &inMsg)
double departPos
position on the lane when starting the stage
double getTraveltime(const std::string &edgeID) const
TRACI_CONST int VAR_VIEW_BOUNDARY
std::string getTypeID(const std::string &vehicleID) const
TRACI_CONST int VAR_MAXSPEED_LAT
double getMinGapLat(const std::string &vehicleID) const
std::vector< std::string > getIDList() const
double getLength(const std::string &typeID) const
TRACI_CONST int REQUEST_DRIVINGDIST
const libsumo::TraCIResults getSubscriptionResults(const std::string &objID) const
std::string vType
The vehicle type when using a private car or bike.
TRACI_CONST int VAR_PERSON_CAPACITY
double getEmergencyDecel(const std::string &typeID) const
TRACI_CONST int LAST_STEP_OCCUPANCY
std::string destStop
The id of the destination stop.
int getLinkNumber(const std::string &laneID) const
TRACI_CONST int LAST_STEP_TIME_SINCE_DETECTION
TRACI_CONST int VAR_IMAGEFILE
TRACI_CONST int CMD_SET_ROUTE_VARIABLE
void sendExact(const Storage &)
void appendWaitingStage(const std::string &personID, double duration, const std::string &description="waiting", const std::string &stopID="")
TRACI_CONST int RESPONSE_SUBSCRIBE_INDUCTIONLOOP_VARIABLE
std::vector< std::string > getIDList() const
double getElectricityConsumption(const std::string &laneID) const
TRACI_CONST int TL_COMPLETE_DEFINITION_RYG
double getCOEmission(const std::string &edgeID) const
double getPMxEmission(const std::string &vehicleID) const
double getSlope(const std::string &personID) const
double getLastStepMeanLength(const std::string &loopID) const
double getLineWidth(const std::string &polygonID) const
void setApparentDecel(const std::string &typeID, double decel) const
int getBusStopWaiting(const std::string &stopID) const
TRACI_CONST int CMD_GET_EDGE_VARIABLE
std::vector< std::string > getPersonIDList(const std::string &vehicleID) const
void setSpeed(const std::string &personID, double speed) const
double getWidth(const std::string &poiID) const
std::vector< std::string > getIDList() const
TRACI_CONST int VAR_LANE_INDEX
void add(const std::string &personID, const std::string &edgeID, double pos, double depart=libsumo::DEPARTFLAG_NOW, const std::string typeID="DEFAULT_PEDTYPE")
const libsumo::SubscriptionResults getAllSubscriptionResults() const
TRACI_CONST int REMOVE_STAGE
tcpip::Storage myInput
The reusable input storage.
int getServedPersonCount(const std::string &tlsID, int index) const
void setProgram(const std::string &tlsID, const std::string &programID) const
double getNoiseEmission(const std::string &laneID) const
TRACI_CONST int VAR_SCREENSHOT
tcpip::Socket * mySocket
The socket.
void subscribeContext(const std::string &objID, int domain, double range, const std::vector< int > &vars, double beginTime, double endTime) const
TRACI_CONST int RTYPE_NOTIMPLEMENTED
std::vector< libsumo::TraCINextTLSData > getNextTLS(const std::string &vehID) const
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.
void appendStage(const std::string &personID, const libsumo::TraCIStage &stage)
double getFuelConsumption(const std::string &vehicleID) const
TRACI_CONST int VAR_MIN_EXPECTED_VEHICLES
int getRemainingStages(const std::string &personID) const
TRACI_CONST int LAST_STEP_LENGTH
std::map< std::string, TraCIResults > SubscriptionResults
{object->{variable->value}}
std::string getTypeID(const std::string &personID) const
TRACI_CONST int VAR_STAGE
libsumo::TraCIPosition getPosition3D(const std::string &personID) const
double getAccel(const std::string &typeID) const
double getSpeed(const std::string &personID) const
double getEffort(const std::string &edgeID, double time) const
TRACI_CONST int CMD_REROUTE_TRAVELTIME
TRACI_CONST int VAR_ROUTING_MODE
bool receiveExact(Storage &)
Receive a complete TraCI message from Socket::socket_.
void addSubscriptionFilterVClass(const std::vector< std::string > &vClasses) const
TRACI_CONST int CMD_SIMSTEP
double entryTime
Entry-time of the vehicle in [s].
void openGap(const std::string &vehicleID, double newTau, double duration, double changeRate, double maxDecel) const
VehicleTypeScope vehicletype
Scope for interaction with vehicle types.
std::string getString(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
EdgeScope edge
Scope for interaction with edges.
TRACI_CONST int CMD_GET_JUNCTION_VARIABLE
double getDecel(const std::string &vehicleID) const
int getRoutingMode(const std::string &vehicleID) const
void setBoundary(const std::string &viewID, double xmin, double ymin, double xmax, double ymax) const
double getAngle(const std::string &poiID) const
void setMaxSpeed(const std::string &laneID, double speed) const
TRACI_CONST int CMD_GET_ROUTE_VARIABLE
TRACI_CONST int TYPE_COMPOUND
TRACI_CONST int VAR_ROUTE
libsumo::TraCIColor getColor(const std::string &vehicleID) const
std::vector< std::string > getEdges(const std::string &personID, int nextStageIndex=0) const