 |
Eclipse SUMO - Simulation of Urban MObility
|
Go to the documentation of this file.
37 #pragma warning(disable: 4503)
40 #pragma warning(disable: 4355)
43 : edge(*this), gui(*this), inductionloop(*this),
44 junction(*this), lane(*this), lanearea(*this), multientryexit(*this),
45 person(*this), poi(*this), polygon(*this), route(*this),
46 simulation(*this), trafficlights(*this),
47 vehicle(*this), vehicletype(*this),
106 std::string acknowledgement;
164 int length = 1 + 1 + 1 + 4 + (int) objID.length();
165 if (add !=
nullptr) {
166 length += (int)add->
size();
178 if (add !=
nullptr) {
188 int length = 1 + 1 + 1;
189 if (add !=
nullptr) {
190 length += (int)add->
size();
201 if (add !=
nullptr) {
209 const std::vector<int>& vars)
const {
215 int varNo = (int) vars.
size();
217 outMsg.
writeInt(5 + 1 + 8 + 8 + 4 + (
int) objID.length() + 1 + varNo);
227 for (
int i = 0; i < varNo; ++i) {
237 int domain,
double range,
const std::vector<int>& vars)
const {
243 int varNo = (int) vars.
size();
245 outMsg.
writeInt(5 + 1 + 8 + 8 + 4 + (
int) objID.length() + 1 + 8 + 1 + varNo);
258 for (
int i = 0; i < varNo; ++i) {
278 if (command != cmdId && !ignoreCommandId) {
283 }
catch (std::invalid_argument&) {
286 switch (resultType) {
292 if (acknowledgement !=
nullptr) {
293 (*acknowledgement) =
".. Command acknowledged (" +
toString(command) +
"), [description: " + msg +
"]";
299 if ((cmdStart + cmdLength) != (
int) inMsg.
position()) {
313 if (!ignoreCommandId && cmdId != (command + 0x10)) {
316 if (expectedType >= 0) {
321 if (valueDataType != expectedType) {
404 for (
int i = 0; i < size; ++i) {
452 std::vector<std::string>
454 std::vector<std::string> r;
458 for (
int i = 0; i < size; ++i) {
531 while (variableCount > 0) {
540 into[objectID][variableID] = std::make_shared<libsumo::TraCIDouble>(inMsg.
readDouble());
543 into[objectID][variableID] = std::make_shared<libsumo::TraCIString>(inMsg.
readString());
546 auto p = std::make_shared<libsumo::TraCIPosition>();
550 into[objectID][variableID] = p;
554 auto p = std::make_shared<libsumo::TraCIPosition>();
558 into[objectID][variableID] = p;
562 auto c = std::make_shared<libsumo::TraCIColor>();
567 into[objectID][variableID] = c;
571 into[objectID][variableID] = std::make_shared<libsumo::TraCIInt>(inMsg.
readInt());
574 auto sl = std::make_shared<libsumo::TraCIStringList>();
576 for (
int i = 0; i < n; ++i) {
579 into[objectID][variableID] = sl;
599 const std::string objectID = inMsg.
readString();
607 const std::string contextID = inMsg.
readString();
610 int numObjects = inMsg.
readInt();
612 while (numObjects > 0) {
614 readVariables(inMsg, objectID, variableCount,
myDomains[cmdId]->getModifiableContextSubscriptionResults(contextID));
627 it.second->clearSubscriptionResults();
630 while (numSubs > 0) {
645 for (
int i = 0; i < (int)args.size(); ++i) {
646 numChars += (int)args[i].size();
650 content.
writeInt(1 + 4 + 1 + 1 + 4 + numChars + 4 * (
int)args.size());
663 std::vector<std::string>
760 std::vector<std::string>
782 if (endSeconds != std::numeric_limits<double>::max()) {
802 if (endSeconds != std::numeric_limits<double>::max()) {
831 std::vector<std::string>
926 std::vector<std::string>
951 std::vector<std::string>
972 std::vector<libsumo::TraCIVehicleData>
974 std::vector<libsumo::TraCIVehicleData> result;
977 myParent.myInput.readInt();
979 myParent.myInput.readUnsignedByte();
980 const int n = myParent.myInput.readInt();
981 for (
int i = 0; i < n; ++i) {
984 myParent.myInput.readUnsignedByte();
985 vd.
id = myParent.myInput.readString();
987 myParent.myInput.readUnsignedByte();
988 vd.
length = myParent.myInput.readDouble();
990 myParent.myInput.readUnsignedByte();
991 vd.
entryTime = myParent.myInput.readDouble();
993 myParent.myInput.readUnsignedByte();
994 vd.
leaveTime = myParent.myInput.readDouble();
996 myParent.myInput.readUnsignedByte();
997 vd.
typeID = myParent.myInput.readString();
999 result.push_back(vd);
1009 std::vector<std::string>
1034 std::vector<std::string>
1059 std::vector<std::string>
1064 std::vector<std::string>
1074 std::vector<libsumo::TraCIConnection>
1076 std::vector<libsumo::TraCIConnection> ret;
1079 myParent.myInput.readUnsignedByte();
1080 myParent.myInput.readInt();
1082 int linkNo = myParent.myInput.readInt();
1083 for (
int i = 0; i < linkNo; ++i) {
1085 myParent.myInput.readUnsignedByte();
1086 std::string approachedLane = myParent.myInput.readString();
1088 myParent.myInput.readUnsignedByte();
1089 std::string approachedLaneInternal = myParent.myInput.readString();
1091 myParent.myInput.readUnsignedByte();
1092 bool hasPrio = myParent.myInput.readUnsignedByte() != 0;
1094 myParent.myInput.readUnsignedByte();
1095 bool isOpen = myParent.myInput.readUnsignedByte() != 0;
1097 myParent.myInput.readUnsignedByte();
1098 bool hasFoe = myParent.myInput.readUnsignedByte() != 0;
1100 myParent.myInput.readUnsignedByte();
1101 std::string state = myParent.myInput.readString();
1103 myParent.myInput.readUnsignedByte();
1104 std::string direction = myParent.myInput.readString();
1106 myParent.myInput.readUnsignedByte();
1107 double length = myParent.myInput.readDouble();
1113 approachedLaneInternal,
1204 std::vector<std::string>
1210 std::vector<std::string>
1212 std::vector<std::string> r;
1218 const int size = myParent.myInput.readInt();
1219 for (
int i = 0; i < size; ++i) {
1220 r.push_back(myParent.myInput.readString());
1226 std::vector<std::string>
1228 return getFoes(laneID,
"");
1236 content.
writeInt((
int)allowedClasses.size());
1237 for (
int i = 0; i < (int)allowedClasses.size(); ++i) {
1248 content.
writeInt((
int)disallowedClasses.size());
1249 for (
int i = 0; i < (int)disallowedClasses.size(); ++i) {
1278 std::vector<std::string>
1289 std::vector<std::string>
1304 std::vector<std::string>
1319 std::vector<std::string>
1482 std::vector<std::string>
1535 if (shape.size() < 256) {
1539 content.
writeInt((
int)shape.size());
1575 int f = fill ? 1 : 0;
1581 for (
int i = 0; i < (int)shape.size(); ++i) {
1602 std::vector<std::string>
1607 std::vector<std::string>
1641 std::vector<std::string>
1651 std::vector<std::string>
1661 std::vector<std::string>
1671 std::vector<std::string>
1681 std::vector<std::string>
1707 std::vector<std::string>
1728 result.
x = myParent.myInput.readDouble();
1729 result.
y = myParent.myInput.readDouble();
1750 result.
x = myParent.myInput.readDouble();
1751 result.
y = myParent.myInput.readDouble();
1752 result.
z = myParent.myInput.readDouble();
1773 result.
edgeID = myParent.myInput.readString();
1774 result.
pos = myParent.myInput.readDouble();
1775 result.
laneIndex = myParent.myInput.readUnsignedByte();
1795 result.
x = myParent.myInput.readDouble();
1796 result.
y = myParent.myInput.readDouble();
1816 return myParent.myInput.readDouble();
1838 return myParent.myInput.readDouble();
1847 std::vector<std::string>
1862 std::vector<libsumo::TraCILogic>
1864 std::vector<libsumo::TraCILogic> ret;
1867 const int logicNo = myParent.myInput.readInt();
1868 for (
int i = 0; i < logicNo; ++i) {
1869 myParent.myInput.readUnsignedByte();
1870 myParent.myInput.readInt();
1871 myParent.myInput.readUnsignedByte();
1872 const std::string programID = myParent.myInput.readString();
1873 myParent.myInput.readUnsignedByte();
1874 const int type = myParent.myInput.readInt();
1875 myParent.myInput.readUnsignedByte();
1876 const int phaseIndex = myParent.myInput.readInt();
1877 myParent.myInput.readUnsignedByte();
1878 const int phaseNumber = myParent.myInput.readInt();
1880 for (
int j = 0; j < phaseNumber; j++) {
1881 myParent.myInput.readUnsignedByte();
1882 myParent.myInput.readInt();
1883 myParent.myInput.readUnsignedByte();
1884 const double duration = myParent.myInput.readDouble();
1885 myParent.myInput.readUnsignedByte();
1886 const std::string state = myParent.myInput.readString();
1887 myParent.myInput.readUnsignedByte();
1888 const double minDur = myParent.myInput.readDouble();
1889 myParent.myInput.readUnsignedByte();
1890 const double maxDur = myParent.myInput.readDouble();
1891 myParent.myInput.readUnsignedByte();
1892 const int numNext = myParent.myInput.readInt();
1893 std::vector<int> next;
1894 for (
int k = 0; k < numNext; k++) {
1895 myParent.myInput.readUnsignedByte();
1896 next.push_back(myParent.myInput.readInt());
1898 myParent.myInput.readUnsignedByte();
1899 const std::string name = myParent.myInput.readString();
1902 myParent.myInput.readUnsignedByte();
1903 const int paramNumber = myParent.myInput.readInt();
1904 for (
int j = 0; j < paramNumber; j++) {
1905 myParent.myInput.readUnsignedByte();
1906 const std::vector<std::string> par = myParent.myInput.readStringList();
1909 ret.emplace_back(logic);
1915 std::vector<std::string>
1920 std::vector<std::vector<libsumo::TraCILink> >
1922 std::vector<std::vector<libsumo::TraCILink> > result;
1926 myParent.myInput.readUnsignedByte();
1927 myParent.myInput.readInt();
1929 int linkNo = myParent.myInput.readInt();
1930 for (
int i = 0; i < linkNo; ++i) {
1931 myParent.myInput.readUnsignedByte();
1932 int no = myParent.myInput.readInt();
1933 std::vector<libsumo::TraCILink> ret;
1934 for (
int i1 = 0; i1 < no; ++i1) {
1935 myParent.myInput.readUnsignedByte();
1936 myParent.myInput.readInt();
1937 std::string from = myParent.myInput.readString();
1938 std::string to = myParent.myInput.readString();
1939 std::string via = myParent.myInput.readString();
1942 result.emplace_back(ret);
2045 for (
int n : p.
next) {
2068 std::vector<std::string>
2378 std::vector<std::string>
2454 std::vector<std::string>
2546 std::vector<std::string>
2561 std::vector<libsumo::TraCINextTLSData>
2563 std::vector<libsumo::TraCINextTLSData> result;
2566 myParent.myInput.readInt();
2568 myParent.myInput.readUnsignedByte();
2569 const int n = myParent.myInput.readInt();
2570 for (
int i = 0; i < n; ++i) {
2572 myParent.myInput.readUnsignedByte();
2573 d.
id = myParent.myInput.readString();
2575 myParent.myInput.readUnsignedByte();
2576 d.
tlIndex = myParent.myInput.readInt();
2578 myParent.myInput.readUnsignedByte();
2579 d.
dist = myParent.myInput.readDouble();
2581 myParent.myInput.readUnsignedByte();
2582 d.
state = (char)myParent.myInput.readByte();
2584 result.push_back(d);
2590 std::vector<libsumo::TraCIBestLanesData>
2592 std::vector<libsumo::TraCIBestLanesData> result;
2595 myParent.myInput.readInt();
2596 myParent.myInput.readUnsignedByte();
2598 const int n = myParent.myInput.readInt();
2599 for (
int i = 0; i < n; ++i) {
2601 myParent.myInput.readUnsignedByte();
2602 info.
laneID = myParent.myInput.readString();
2604 myParent.myInput.readUnsignedByte();
2605 info.
length = myParent.myInput.readDouble();
2607 myParent.myInput.readUnsignedByte();
2608 info.
occupation = myParent.myInput.readDouble();
2610 myParent.myInput.readUnsignedByte();
2613 myParent.myInput.readUnsignedByte();
2616 myParent.myInput.readUnsignedByte();
2617 const int m = myParent.myInput.readInt();
2618 for (
int i = 0; i < m; ++i) {
2622 result.push_back(info);
2629 std::pair<std::string, double>
2636 myParent.myInput.readInt();
2637 myParent.myInput.readUnsignedByte();
2638 const std::string leaderID = myParent.myInput.readString();
2639 myParent.myInput.readUnsignedByte();
2640 const double gap = myParent.myInput.readDouble();
2641 return std::make_pair(leaderID, gap);
2654 myParent.myInput.readInt();
2655 myParent.myInput.readUnsignedByte();
2656 const int stateWithoutTraCI = myParent.myInput.readInt();
2657 myParent.myInput.readUnsignedByte();
2658 const int state = myParent.myInput.readInt();
2659 return std::make_pair(stateWithoutTraCI, state);
2750 std::vector<std::string>
2782 const std::string& routeID,
2783 const std::string& typeID,
2785 const std::string& departLane,
2786 const std::string& departPos,
2787 const std::string& departSpeed,
2788 const std::string& arrivalLane,
2789 const std::string& arrivalPos,
2790 const std::string& arrivalSpeed,
2791 const std::string& fromTaz,
2792 const std::string& toTaz,
2793 const std::string& line,
2795 int personNumber)
const {
2797 if (depart ==
"-1") {
2798 depart =
toString(myParent.simulation.getCurrentTime() / 1000.0);
2915 content.
writeInt((
int)edges.size());
2916 for (
int i = 0; i < (int)edges.size(); ++i) {
2926 if (currentTravelTimes) {
2928 std::vector<std::string> edges = myParent.edge.getIDList();
2929 for (std::vector<std::string>::iterator it = edges.begin(); it != edges.end(); ++it) {
2930 myParent.edge.adaptTraveltime(*it, myParent.edge.getTraveltime(*it));
3032 const double duration,
const int flags,
const double startPos,
const double until)
const {
3107 for (
int i = 0; i < (int)via.size(); ++i) {
3153 bool noOpposite,
double downstreamDist,
double upstreamDist)
const {
3156 addSubscriptionFilterNoOpposite();
3158 if (downstreamDist >= 0) {
3159 addSubscriptionFilterDownstreamDistance(downstreamDist);
3161 if (upstreamDist >= 0) {
3162 addSubscriptionFilterUpstreamDistance(upstreamDist);
3185 addSubscriptionFilterLeadFollow(std::vector<int>({0}));
3186 if (downstreamDist >= 0) {
3187 addSubscriptionFilterDownstreamDistance(downstreamDist);
3189 if (upstreamDist >= 0) {
3190 addSubscriptionFilterUpstreamDistance(upstreamDist);
3196 if (abs(direction) != 1) {
3197 std::cerr <<
"Ignoring lane change subscription filter with non-neighboring lane offset direction " << direction <<
"\n";
3200 addSubscriptionFilterLeadFollow(std::vector<int>({0, direction}));
3202 addSubscriptionFilterNoOpposite();
3204 if (downstreamDist >= 0) {
3205 addSubscriptionFilterDownstreamDistance(downstreamDist);
3207 if (upstreamDist >= 0) {
3208 addSubscriptionFilterUpstreamDistance(upstreamDist);
3221 if (downstreamDist >= 0) {
3222 addSubscriptionFilterDownstreamDistance(downstreamDist);
3224 if (upstreamDist >= 0) {
3225 addSubscriptionFilterUpstreamDistance(upstreamDist);
3272 for (
int i : vals) {
3284 std::vector<std::string>
3373 std::vector<std::string>
3384 while (getRemainingStages(personID) > 1) {
3385 removeStage(personID, 1);
3387 removeStage(personID, 0);
3608 myParent.processSet(myCmdSetID);
3614 myParent.send_commandSubscribeObjectVariable(mySubscribeID, objID, beginTime, endTime, vars);
3616 myParent.check_resultState(inMsg, mySubscribeID);
3617 if (vars.size() > 0) {
3618 myParent.check_commandGetResult(inMsg, mySubscribeID);
3619 myParent.readVariableSubscription(mySubscribeID + 0x10, inMsg);
3626 myParent.send_commandSubscribeObjectContext(myContextSubscribeID, objID, beginTime, endTime, domain, range, vars);
3628 myParent.check_resultState(inMsg, myContextSubscribeID);
3629 myParent.check_commandGetResult(inMsg, myContextSubscribeID);
3630 myParent.readContextSubscription(myContextSubscribeID + 0x60, inMsg);
3636 return mySubscriptionResults;
3642 if (mySubscriptionResults.find(objID) != mySubscriptionResults.end()) {
3643 return mySubscriptionResults.find(objID)->second;
3652 return myContextSubscriptionResults;
3658 if (myContextSubscriptionResults.find(objID) != myContextSubscriptionResults.end()) {
3659 return myContextSubscriptionResults.find(objID)->second;
3668 mySubscriptionResults.clear();
3669 myContextSubscriptionResults.clear();
3675 return mySubscriptionResults;
3681 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
double getFuelConsumption(const std::string &edgeID) const
TRACI_CONST int TL_PHASE_INDEX
TRACI_CONST int VAR_SPEEDSETMODE
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
virtual double readDouble()
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
virtual void writeUnsignedByte(int)
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
virtual std::vector< std::string > readStringList()
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
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
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 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
bool allowsContinuation
Whether this lane allows continuing the route.
TRACI_CONST int FILTER_TYPE_UPSTREAM_DIST
virtual void writeByte(int)
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 int readUnsignedByte()
virtual void writeInt(int)
double occupation
The traffic density along length.
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
virtual unsigned int position() const
TRACI_CONST int RESPONSE_SUBSCRIBE_POI_VARIABLE
TRACI_CONST int RESPONSE_SUBSCRIBE_PERSON_VARIABLE
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 std::string readString()
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
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 writeStorage(tcpip::Storage &store)
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
virtual void writeStringList(const std::vector< std::string > &s)
std::string line
The line or the id of the vehicle type.
TRACI_CONST int VAR_DELTA_T
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
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
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 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
virtual void writeString(const std::string &s)
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
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
void setType(const std::string &polygonID, const std::string &setType) const
virtual void writeDouble(double)
std::vector< TraCIPosition > TraCIPositionVector
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.
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