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;
166 int length = 1 + 1 + 1 + 4 + (int) objID.length();
167 if (add !=
nullptr) {
168 length += (int)add->
size();
178 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) {
266 TraCIAPI::send_commandMoveToXY(
const std::string& vehicleID,
const std::string& edgeID,
const int lane,
const double x,
const double y,
const double angle,
const int keepRoute)
const {
297 if (command != cmdId && !ignoreCommandId) {
302 }
catch (std::invalid_argument&) {
305 switch (resultType) {
311 if (acknowledgement !=
nullptr) {
312 (*acknowledgement) =
".. Command acknowledged (" +
toString(command) +
"), [description: " + msg +
"]";
318 if ((cmdStart + cmdLength) != (
int) inMsg.
position()) {
332 if (!ignoreCommandId && cmdId != (command + 0x10)) {
335 if (expectedType >= 0) {
340 if (valueDataType != expectedType) {
401 for (
int i = 0; i < size; ++i) {
447 std::vector<std::string>
453 std::vector<std::string> r;
454 for (
int i = 0; i < size; ++i) {
477 while (variableCount > 0) {
486 into[objectID][variableID] = std::make_shared<libsumo::TraCIDouble>(inMsg.
readDouble());
489 into[objectID][variableID] = std::make_shared<libsumo::TraCIString>(inMsg.
readString());
492 auto p = std::make_shared<libsumo::TraCIPosition>();
496 into[objectID][variableID] = p;
500 auto p = std::make_shared<libsumo::TraCIPosition>();
504 into[objectID][variableID] = p;
508 auto c = std::make_shared<libsumo::TraCIColor>();
513 into[objectID][variableID] = c;
517 into[objectID][variableID] = std::make_shared<libsumo::TraCIInt>(inMsg.
readInt());
520 auto sl = std::make_shared<libsumo::TraCIStringList>();
522 for (
int i = 0; i < n; ++i) {
525 into[objectID][variableID] = sl;
545 const std::string objectID = inMsg.
readString();
553 const std::string contextID = inMsg.
readString();
556 int numObjects = inMsg.
readInt();
558 while (numObjects > 0) {
560 readVariables(inMsg, objectID, variableCount,
myDomains[cmdId]->getModifiableContextSubscriptionResults(contextID));
573 it.second->clearSubscriptionResults();
576 while (numSubs > 0) {
591 for (
int i = 0; i < (int)args.size(); ++i) {
592 numChars += (int)args[i].size();
596 content.
writeInt(1 + 4 + 1 + 1 + 4 + numChars + 4 * (
int)args.size());
609 std::vector<std::string>
706 std::vector<std::string>
728 if (endSeconds != std::numeric_limits<double>::max()) {
749 if (endSeconds != std::numeric_limits<double>::max()) {
780 std::vector<std::string>
882 std::vector<std::string>
907 std::vector<std::string>
927 std::vector<libsumo::TraCIVehicleData>
932 std::vector<libsumo::TraCIVehicleData> result;
937 for (
int i = 0; i < n; ++i) {
955 result.push_back(vd);
966 std::vector<std::string>
982 std::vector<std::string>
1007 std::vector<std::string>
1012 std::vector<std::string>
1022 std::vector<libsumo::TraCIConnection>
1027 std::vector<libsumo::TraCIConnection> ret;
1033 for (
int i = 0; i < linkNo; ++i) {
1036 std::string approachedLane = inMsg.
readString();
1039 std::string approachedLaneInternal = inMsg.
readString();
1063 approachedLaneInternal,
1152 std::vector<std::string>
1158 std::vector<std::string>
1167 std::vector<std::string> r;
1168 for (
int i = 0; i < size; ++i) {
1174 std::vector<std::string>
1176 return getFoes(laneID,
"");
1184 content.
writeInt((
int)allowedClasses.size());
1185 for (
int i = 0; i < (int)allowedClasses.size(); ++i) {
1197 content.
writeInt((
int)disallowedClasses.size());
1198 for (
int i = 0; i < (int)disallowedClasses.size(); ++i) {
1230 std::vector<std::string>
1241 std::vector<std::string>
1256 std::vector<std::string>
1271 std::vector<std::string>
1370 std::vector<std::string>
1425 if (shape.size() < 256) {
1429 content.
writeInt((
int)shape.size());
1467 int f = fill ? 1 : 0;
1473 for (
int i = 0; i < (int)shape.size(); ++i) {
1497 std::vector<std::string>
1502 std::vector<std::string>
1540 std::vector<std::string>
1550 std::vector<std::string>
1560 std::vector<std::string>
1570 std::vector<std::string>
1580 std::vector<std::string>
1645 std::vector<std::string>
1660 std::vector<libsumo::TraCILogic>
1665 std::vector<libsumo::TraCILogic> ret;
1667 int logicNo = inMsg.
readInt();
1668 for (
int i = 0; i < logicNo; ++i) {
1672 const std::string programID = inMsg.
readString();
1674 const int type = inMsg.
readInt();
1676 const int phaseIndex = inMsg.
readInt();
1678 const int phaseNumber = inMsg.
readInt();
1680 for (
int j = 0; j < phaseNumber; j++) {
1686 const std::string state = inMsg.
readString();
1692 const int next = inMsg.
readInt();
1696 const int paramNumber = inMsg.
readInt();
1697 for (
int j = 0; j < paramNumber; j++) {
1702 ret.emplace_back(logic);
1707 std::vector<std::string>
1712 std::vector<std::vector<libsumo::TraCILink> >
1717 std::vector<std::vector<libsumo::TraCILink> > result;
1723 for (
int i = 0; i < linkNo; ++i) {
1726 std::vector<libsumo::TraCILink> ret;
1727 for (
int i1 = 0; i1 < no; ++i1) {
1735 result.emplace_back(ret);
1848 std::vector<std::string>
2177 std::vector<std::string>
2248 std::vector<std::string>
2340 std::vector<std::string>
2355 std::vector<libsumo::TraCINextTLSData>
2360 std::vector<libsumo::TraCINextTLSData> result;
2364 const int n = inMsg.
readInt();
2365 for (
int i = 0; i < n; ++i) {
2379 result.push_back(d);
2384 std::vector<libsumo::TraCIBestLanesData>
2392 std::vector<libsumo::TraCIBestLanesData> result;
2393 const int n = inMsg.
readInt();
2394 for (
int i = 0; i < n; ++i) {
2412 const int m = inMsg.
readInt();
2413 for (
int i = 0; i < m; ++i) {
2417 result.push_back(info);
2423 std::pair<std::string, double>
2433 const std::string leaderID = inMsg.
readString();
2436 return std::make_pair(leaderID, gap);
2450 const int stateWithoutTraCI = inMsg.
readInt();
2452 const int state = inMsg.
readInt();
2453 return std::make_pair(stateWithoutTraCI, state);
2537 std::vector<std::string>
2569 const std::string& routeID,
2570 const std::string& typeID,
2572 const std::string& departLane,
2573 const std::string& departPos,
2574 const std::string& departSpeed,
2575 const std::string& arrivalLane,
2576 const std::string& arrivalPos,
2577 const std::string& arrivalSpeed,
2578 const std::string& fromTaz,
2579 const std::string& toTaz,
2580 const std::string& line,
2582 int personNumber)
const {
2584 if (depart ==
"-1") {
2585 depart =
toString(myParent.simulation.getCurrentTime() / 1000.0);
2709 content.
writeInt((
int)edges.size());
2710 for (
int i = 0; i < (int)edges.size(); ++i) {
2721 if (currentTravelTimes) {
2723 std::vector<std::string> edges = myParent.edge.getIDList();
2724 for (std::vector<std::string>::iterator it = edges.begin(); it != edges.end(); ++it) {
2725 myParent.edge.adaptTraveltime(*it, myParent.edge.getTraveltime(*it));
2753 myParent.send_commandMoveToXY(vehicleID, edgeID, lane, x, y, angle, keepRoute);
2819 const double duration,
const int flags,
const double startPos,
const double until)
const {
2900 for (
int i = 0; i < (int)via.size(); ++i) {
2954 std::vector<std::string>
3038 std::vector<std::string>
3049 while (getRemainingStages(personID) > 1) {
3050 removeStage(personID, 1);
3052 removeStage(personID, 0);
3239 return myParent.getString(myCmdGetID,
VAR_PARAMETER, objectID, &content);
3252 myParent.send_commandSetValue(myCmdSetID,
VAR_PARAMETER, objectID, content);
3254 myParent.check_resultState(inMsg, myCmdSetID);
3260 myParent.send_commandSubscribeObjectVariable(mySubscribeID, objID, beginTime, endTime, vars);
3262 myParent.check_resultState(inMsg, mySubscribeID);
3263 if (vars.size() > 0) {
3264 myParent.check_commandGetResult(inMsg, mySubscribeID);
3265 myParent.readVariableSubscription(mySubscribeID + 0x10, inMsg);
3272 myParent.send_commandSubscribeObjectContext(myContextSubscribeID, objID, beginTime, endTime, domain, range, vars);
3274 myParent.check_resultState(inMsg, myContextSubscribeID);
3275 myParent.check_commandGetResult(inMsg, myContextSubscribeID);
3276 myParent.readContextSubscription(myContextSubscribeID + 0x60, inMsg);
3282 return mySubscriptionResults;
3288 if (mySubscriptionResults.find(objID) != mySubscriptionResults.end()) {
3289 return mySubscriptionResults.find(objID)->second;
3298 return myContextSubscriptionResults;
3304 if (myContextSubscriptionResults.find(objID) != myContextSubscriptionResults.end()) {
3305 return myContextSubscriptionResults.find(objID)->second;
3314 mySubscriptionResults.clear();
3315 myContextSubscriptionResults.clear();
3321 return mySubscriptionResults;
3327 return myContextSubscriptionResults[objID];
std::vector< std::string > getIDList() const
EdgeScope edge
Scope for interaction with edges.
double getAngle(const std::string &personID) const
#define LAST_STEP_MEAN_SPEED
std::vector< libsumo::TraCINextTLSData > getNextTLS(const std::string &vehID) const
libsumo::TraCIPosition getPosition3D(const std::string &vehicleID) const
std::vector< std::string > getIDList() const
double getNOxEmission(const std::string &laneID) const
std::string getRouteID(const std::string &vehicleID) const
std::map< std::string, TraCIResults > SubscriptionResults
{object->{variable->value}}
void setAccel(const std::string &typeID, double accel) const
void setRoute(const std::string &vehicleID, const std::vector< std::string > &edge) const
double getDecel(const std::string &vehicleID) const
std::vector< std::string > getIDList() const
int getStopState(const std::string &vehicleID) const
std::string getParameter(const std::string &objectID, const std::string &key) const
retrieve generic paramter
std::string id
The id of the next tls.
double getFuelConsumption(const std::string &vehicleID) const
void send_commandSetValue(int domID, int varID, const std::string &objID, tcpip::Storage &content) const
Sends a SetVariable request.
void openGap(const std::string &vehicleID, double newTau, double duration, double changeRate, double maxDecel) const
void remove(const std::string &vehicleID, char reason=REMOVE_VAPORIZED) const
void setMinGapLat(const std::string &typeID, double minGapLat) const
libsumo::SubscriptionResults & getModifiableSubscriptionResults()
void trackVehicle(const std::string &viewID, const std::string &vehID) const
libsumo::SubscriptionResults & getModifiableContextSubscriptionResults(const std::string &objID)
double leaveTime
Leave-time of the vehicle in [s].
#define VAR_EMISSIONCLASS
void setWidth(const std::string &typeID, double width) const
void setColor(const std::string &vehicleID, const libsumo::TraCIColor &c) const
void appendDrivingStage(const std::string &personID, const std::string &toEdge, const std::string &lines, const std::string &stopID="")
std::vector< std::string > getLastStepVehicleIDs(const std::string &laneID) const
int getDepartedNumber() const
tcpip::Socket * mySocket
The socket.
#define REQUEST_DRIVINGDIST
void close()
ends the simulation and closes the connection
std::vector< std::string > getIDList() const
void check_resultState(tcpip::Storage &inMsg, int command, bool ignoreCommandId=false, std::string *acknowledgement=0) const
Validates the result state of a command.
std::vector< std::vector< libsumo::TraCILink > > getControlledLinks(const std::string &tlsID) const
void connect(const std::string &host, int port)
Connects to the specified SUMO server.
void setType(const std::string &poiID, const std::string &setType) const
#define CMD_GET_TL_VARIABLE
double getMinGap(const std::string &vehicleID) const
libsumo::TraCIColor getColor(const std::string &poiID) const
double dist
The distance to the tls.
void setLength(const std::string &personID, double length) const
bool allowsContinuation
Whether this lane allows continuing the route.
std::string typeID
Type of the vehicle in.
void setSpeedFactor(const std::string &vehicleID, double factor) const
libsumo::TraCIColor getColor(const std::string &personID) const
void changeTarget(const std::string &vehicleID, const std::string &edgeID) const
void setOrder(int order)
set priority (execution order) for the client
void add(const std::string &polygonID, const libsumo::TraCIPositionVector &shape, const libsumo::TraCIColor &c, bool fill, const std::string &type, int layer) const
#define CMD_GET_VEHICLE_VARIABLE
#define VAR_ACCUMULATED_WAITING_TIME
#define VAR_CURRENT_TRAVELTIME
void setZoom(const std::string &viewID, double zoom) const
int getLaneIndex(const std::string &vehicleID) const
void setVia(const std::string &vehicleID, const std::vector< std::string > &via) const
virtual std::vector< std::string > readStringList()
double getCOEmission(const std::string &vehicleID) const
#define RESPONSE_SUBSCRIBE_GUI_VARIABLE
void clearSubscriptionResults()
double getSpeedFactor(const std::string &typeID) const
mirrors MSInductLoop::VehicleData
void setRouteID(const std::string &vehicleID, const std::string &routeID) const
#define RESPONSE_SUBSCRIBE_VEHICLETYPE_VARIABLE
bool receiveExact(Storage &)
Receive a complete TraCI message from Socket::socket_.
#define CMD_GET_INDUCTIONLOOP_VARIABLE
std::vector< std::string > getLastStepVehicleIDs(const std::string &detID) const
double getLineWidth(const std::string &polygonID) const
std::vector< libsumo::TraCIBestLanesData > getBestLanes(const std::string &vehicleID) const
void setParameter(const std::string &objectID, const std::string &key, const std::string &value) const
set generic paramter
void setSpeedFactor(const std::string &typeID, double factor) const
double getNoiseEmission(const std::string &vehicleID) const
#define LAST_STEP_VEHICLE_DATA
double getCO2Emission(const std::string &edgeID) const
std::string getVehicleClass(const std::string &typeID) const
libsumo::TraCIPositionVector getPolygon(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
JunctionScope junction
Scope for interaction with junctions.
double getNoiseEmission(const std::string &edgeID) const
int getRoutingMode(const std::string &vehicleID) const
std::string getLateralAlignment(const std::string &vehicleID) const
double getWaitingTime(const std::string &vehicleID) const
#define VAR_ALLOWED_SPEED
std::string getType(const std::string &poiID) const
int getMinExpectedNumber() const
double getNOxEmission(const std::string &vehicleID) const
std::string getTypeID(const std::string &vehicleID) const
int getArrivedNumber() const
void send_commandGetVariable(int domID, int varID, const std::string &objID, tcpip::Storage *add=0) const
Sends a GetVariable request.
void setLength(const std::string &typeID, double length) const
double getLastStepOccupancy(const std::string &edgeID) const
double getTimeSinceDetection(const std::string &loopID) const
std::map< int, std::shared_ptr< TraCIResult > > TraCIResults
{variable->value}
#define CMD_GET_LANEAREA_VARIABLE
void setSignals(const std::string &vehicleID, int signals) const
std::pair< int, int > getLaneChangeState(const std::string &vehicleID, int direction) const
double getEmergencyDecel(const std::string &typeID) const
LaneScope lane
Scope for interaction with lanes.
#define CMD_GET_PERSON_VARIABLE
virtual double readDouble()
double getPMxEmission(const std::string &laneID) const
PersonScope person
Scope for interaction with persons.
double getMaxSpeedLat(const std::string &typeID) const
double getPMxEmission(const std::string &edgeID) const
#define CMD_CHANGESUBLANE
void rerouteTraveltime(const std::string &vehicleID, bool currentTravelTimes=true) const
void setMaxSpeedLat(const std::string &typeID, double speed) const
double getMaxSpeed(const std::string &vehicleID) const
void setLine(const std::string &vehicleID, const std::string &line) const
#define VAR_LOADED_VEHICLES_IDS
#define RESPONSE_SUBSCRIBE_LANEAREA_VARIABLE
double occupation
The traffic density along length.
void setOffset(const std::string &viewID, double x, double y) const
int getLastStepVehicleNumber(const std::string &laneID) const
std::vector< std::string > getDisallowed(const std::string &laneID) const
std::string getRoadID(const std::string &vehicleID) const
void appendWaitingStage(const std::string &personID, double duration, const std::string &description="waiting", const std::string &stopID="")
std::vector< std::string > getStartingTeleportIDList() const
#define RESPONSE_SUBSCRIBE_MULTIENTRYEXIT_VARIABLE
std::string laneID
The id of the lane.
std::vector< libsumo::TraCIVehicleData > getVehicleData(const std::string &loopID) const
double getNextSwitch(const std::string &tlsID) const
void setImperfection(const std::string &typeID, double imperfection) const
std::string getEdgeID(const std::string &laneID) const
double getWidth(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.
libsumo::TraCIColor getColor(const std::string &polygonID) const
void setAllowed(const std::string &laneID, const std::vector< std::string > &allowedClasses) const
double getSpeed(const std::string &personID) const
double getMaxSpeedLat(const std::string &vehicleID) const
void send_commandSetOrder(int order) const
Sends a SetOrder command.
std::map< std::string, std::string > subParameter
std::vector< std::string > getIDList() const
void setPhase(const std::string &tlsID, int index) const
std::map< std::string, SubscriptionResults > ContextSubscriptionResults
#define VAR_TELEPORT_STARTING_VEHICLES_IDS
void closeSocket()
Closes the connection.
std::string getEmissionClass(const std::string &typeID) const
libsumo::TraCIPosition getPosition3D(const std::string &personID) const
#define CMD_GET_POLYGON_VARIABLE
libsumo::TraCIPositionVector getNetBoundary() const
std::string getNextEdge(const std::string &personID) const
libsumo::TraCIColor getColor(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
std::vector< std::string > getIDList() const
std::string getLaneID(const std::string &loopID) const
virtual void writeUnsignedByte(int)
std::string getRedYellowGreenState(const std::string &tlsID) const
void setTau(const std::string &typeID, double tau) const
#define CMD_SET_EDGE_VARIABLE
#define CMD_SET_GUI_VARIABLE
TrafficLightScope trafficlights
Scope for interaction with traffic lights.
const libsumo::SubscriptionResults getAllSubscriptionResults() const
std::string getType(const std::string &polygonID) const
int getPhase(const std::string &tlsID) const
#define VAR_LOADED_VEHICLES_NUMBER
std::vector< TraCIPhase > phases
#define VAR_SPEED_DEVIATION
#define VAR_NOISEEMISSION
#define VAR_FUELCONSUMPTION
std::string getLine(const std::string &vehicleID) const
libsumo::TraCIPositionVector getShape(const std::string &laneID) const
double getDistance(const std::string &vehicleID) const
#define CMD_GET_ROUTE_VARIABLE
double getDistanceRoad(const std::string &edgeID1, double pos1, const std::string &edgeID2, double pos2, bool isDriving=false)
void removeStage(const std::string &personID, int nextStageIndex) const
int getLastStepVehicleNumber(const std::string &detID) const
virtual void writeInt(int)
int getLastStepHaltingNumber(const std::string &laneID) const
std::vector< std::string > getEdges(const std::string &routeID) const
std::vector< std::string > getRoute(const std::string &vehicleID) const
virtual int readUnsignedByte()
#define TL_PHASE_DURATION
std::vector< libsumo::TraCIConnection > getLinks(const std::string &laneID) const
void connect()
Connects to host_:port_.
double getLastStepOccupancy(const std::string &laneID) const
#define RESPONSE_SUBSCRIBE_INDUCTIONLOOP_VARIABLE
#define TL_CURRENT_PROGRAM
std::map< int, TraCIScopeWrapper * > myDomains
double getMaxSpeed(const std::string &typeID) const
#define CMD_SET_TL_VARIABLE
std::string getVehicleClass(const std::string &vehicleID) const
double getImperfection(const std::string &typeID) const
int getLastStepHaltingNumber(const std::string &detID) const
void setVehicleClass(const std::string &typeID, const std::string &clazz) const
libsumo::TraCIPosition getPosition3D(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
void remove(const std::string &polygonID, int layer=0) const
int bestLaneOffset
The offset of this lane from the best lane.
#define CMD_GET_VEHICLETYPE_VARIABLE
const libsumo::SubscriptionResults getContextSubscriptionResults(const std::string &objID) const
double getLastStepMeanSpeed(const std::string &loopID) const
double getElectricityConsumption(const std::string &edgeID) const
double getTau(const std::string &typeID) const
std::vector< std::string > getEndingTeleportIDList() const
#define VAR_PERSON_NUMBER
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
void setEmissionClass(const std::string &typeID, const std::string &clazz) const
#define VAR_DEPARTED_VEHICLES_NUMBER
int getEndingTeleportNumber() const
double getPhaseDuration(const std::string &tlsID) const
void rerouteTraveltime(const std::string &personID) const
#define LAST_STEP_TIME_SINCE_DETECTION
void readVariables(tcpip::Storage &inMsg, const std::string &objectID, int variableCount, libsumo::SubscriptionResults &into)
#define CMD_SET_ROUTE_VARIABLE
std::vector< std::string > getDepartedIDList() const
double getImperfection(const std::string &vehicleID) const
double getLength(const std::string &laneID) const
void setCompleteRedYellowGreenDefinition(const std::string &tlsID, const libsumo::TraCILogic &logic) const
MeMeScope multientryexit
Scope for interaction with multi-entry/-exit detectors.
#define VAR_MIN_EXPECTED_VEHICLES
std::string getShapeClass(const std::string &vehicleID) const
#define VAR_VIEW_BOUNDARY
std::string getTypeID(const std::string &personID) const
#define VAR_TRACK_VEHICLE
std::vector< std::string > getIDList() const
double getLastStepHaltingNumber(const std::string &edgeID) const
libsumo::TraCIColor getColor(const std::string &vehicleID) const
std::vector< std::string > getIDList() const
void setHeight(const std::string &personID, double height) const
std::vector< std::string > getVia(const std::string &vehicleID) const
void setType(const std::string &vehicleID, const std::string &typeID) const
int getStartingTeleportNumber() const
void setBoundary(const std::string &viewID, double xmin, double ymin, double xmax, double ymax) const
double getCO2Emission(const std::string &vehicleID) const
#define TL_COMPLETE_PROGRAM_RYG
std::vector< std::string > getLastStepVehicleIDs(const std::string &edgeID) const
double getHCEmission(const std::string &vehicleID) const
#define VAR_NET_BOUNDING_BOX
double getMinGap(const std::string &typeID) const
#define RESPONSE_SUBSCRIBE_JUNCTION_VARIABLE
#define CMD_GET_POI_VARIABLE
void changeLane(const std::string &vehicleID, int laneIndex, double duration) const
double getLastStepMeanSpeed(const std::string &edgeID) const
std::vector< std::string > getArrivedIDList() const
double getHCEmission(const std::string &edgeID) const
double getMaxSpeed(const std::string &laneID) const
#define RESPONSE_SUBSCRIBE_ROUTE_VARIABLE
#define TL_COMPLETE_DEFINITION_RYG
#define VAR_TELEPORT_STARTING_VEHICLES_NUMBER
double getAccumulatedWaitingTime(const std::string &vehicleID) const
#define CMD_SET_VEHICLETYPE_VARIABLE
virtual void writeByte(int)
#define RESPONSE_SUBSCRIBE_POI_VARIABLE
double getCOEmission(const std::string &laneID) const
RouteScope route
Scope for interaction with routes.
double getWidth(const std::string &laneID) const
#define RESPONSE_SUBSCRIBE_LANE_VARIABLE
double getLastStepMeanSpeed(const std::string &laneID) const
#define VAR_EMERGENCY_DECEL
double getLateralLanePosition(const std::string &vehicleID) const
void simulationStep(double time=0)
Advances by one step (or up to the given time)
void send_commandMoveToXY(const std::string &vehicleID, const std::string &edgeID, const int lane, const double x, const double y, const double angle, const int keepRoute) const
void send_commandSubscribeObjectVariable(int domID, const std::string &objID, double beginTime, double endTime, const std::vector< int > &vars) const
Sends a SubscribeVariable request.
virtual void writeStringList(const std::vector< std::string > &s)
std::string getStreetName(const std::string &id) const
double getAngle(const std::string &vehicleID) const
void setLateralAlignment(const std::string &typeID, const std::string &latAlignment) const
#define VAR_TELEPORT_ENDING_VEHICLES_IDS
libsumo::TraCIPosition getPosition(const std::string &junctionID) const
#define CMD_GET_LANE_VARIABLE
void send_commandSubscribeObjectContext(int domID, const std::string &objID, double beginTime, double endTime, int domain, double range, const std::vector< int > &vars) const
Sends a SubscribeContext request.
double getLanePosition(const std::string &personID) const
int getInt(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
double getDistance2D(double x1, double y1, double x2, double y2, bool isGeo=false, bool isDriving=false)
void setRedYellowGreenState(const std::string &tlsID, const std::string &state) const
void add(const std::string &poiID, double x, double y, const libsumo::TraCIColor &c, const std::string &type, int layer) const
double getSpeedFactor(const std::string &vehicleID) const
#define CMD_SET_VEHICLE_VARIABLE
void subscribe(const std::string &objID, const std::vector< int > &vars, double beginTime, double endTime) const
double getFuelConsumption(const std::string &laneID) const
double length
Length of the vehicle.
void add(const std::string &personID, const std::string &edgeID, double pos, double depart=DEPARTFLAG_NOW, const std::string typeID="DEFAULT_PEDTYPE")
double getWaitingTime(const std::string &personID) const
int getCurrentTime() const
#define RESPONSE_SUBSCRIBE_POLYGON_VARIABLE
std::string getRoadID(const std::string &personID) const
std::string id
The id of the vehicle.
std::vector< std::string > getAllowed(const std::string &laneID) const
#define CMD_GET_SIM_VARIABLE
virtual std::string readString()
bool isRouteValid(const std::string &vehicleID) const
#define CMD_GET_EDGE_VARIABLE
int getByte(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
void subscribeContext(const std::string &objID, int domain, double range, const std::vector< int > &vars, double beginTime, double endTime) const
virtual unsigned int position() const
static std::string toString(const T &t, std::streamsize accuracy=PRECISION)
#define CMD_GET_GUI_VARIABLE
std::string getEmissionClass(const std::string &vehicleID) const
#define VAR_DEPARTED_VEHICLES_IDS
#define CMD_SET_POI_VARIABLE
int getUnsignedByte(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
double getDouble(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
void add(const std::string &routeID, const std::vector< std::string > &edges) const
void changeSublane(const std::string &vehicleID, double latDist) const
void setLineWidth(const std::string &polygonID, const double lineWidth) const
double getSpeed(const std::string &vehicleID) const
double getPosition(const std::string &loopID) const
void setMaxSpeed(const std::string &typeID, double speed) const
std::string getProgram(const std::string &tlsID) const
void setWidth(const std::string &personID, double width) const
libsumo::TraCIPosition getPosition(const std::string &personID) const
void setSpeed(const std::string &personID, double speed) const
#define CMD_GET_JUNCTION_VARIABLE
void setDecel(const std::string &typeID, double decel) const
std::vector< std::string > getPersonIDList(const std::string &vehicleID) const
virtual void writeStorage(tcpip::Storage &store)
double getCO2Emission(const std::string &laneID) const
#define TL_CONTROLLED_LINKS
libsumo::TraCIPositionVector getShape(const std::string &polygonID) const
double getElectricityConsumption(const std::string &vehicleID) const
std::vector< std::string > getLastStepVehicleIDs(const std::string &loopID) const
const libsumo::TraCIResults getSubscriptionResults(const std::string &objID) const
double getAcceleration(const std::string &vehicleID) const
void setShapeClass(const std::string &vehicleID, const std::string &clazz) const
std::string getVehicle(const std::string &personID) const
StorageType::size_type size() const
void setColor(const std::string &poiID, const libsumo::TraCIColor &c) const
std::vector< std::string > getStringVector(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
void setSpeed(const std::string &vehicleID, double speed) const
void setLength(const std::string &laneID, double length) const
#define TL_RED_YELLOW_GREEN_STATE
int getRemainingStages(const std::string &personID) const
void setProgram(const std::string &tlsID, const std::string &programID) const
POIScope poi
Scope for interaction with POIs.
double getSlope(const std::string &vehicleID) const
#define LAST_STEP_VEHICLE_NUMBER
void remove(const std::string &poiID, int layer=0) const
#define VAR_EDGE_TRAVELTIME
#define VAR_ARRIVED_VEHICLES_NUMBER
void setShape(const std::string &polygonID, const libsumo::TraCIPositionVector &shape) const
void setSpeedDeviation(const std::string &typeID, double deviation) const
double getHeight(const std::string &veihcleID) const
#define CMD_SET_POLYGON_VARIABLE
double getTraveltime(const std::string &laneID) const
int getLaneNumber(const std::string &edgeID) const
SimulationScope simulation
Scope for interaction with the simulation.
std::pair< std::string, double > getLeader(const std::string &vehicleID, double dist) const
virtual void writeString(const std::string &s)
#define RTYPE_NOTIMPLEMENTED
void setMinGap(const std::string &typeID, double minGap) const
void setMaxSpeed(const std::string &vehicleID, double speed) const
int getPersonNumber(const std::string &vehicleID) const
void setColor(const std::string &personID, const libsumo::TraCIColor &c) const
#define RESPONSE_SUBSCRIBE_VEHICLE_VARIABLE
#define VAR_LANEPOSITION_LAT
void setPosition(const std::string &poiID, double x, double y) const
#define LAST_STEP_VEHICLE_ID_LIST
void setDisallowed(const std::string &laneID, const std::vector< std::string > &disallowedClasses) const
double getLastStepMeanLength(const std::string &loopID) const
libsumo::TraCIPosition getPosition(const std::string &poiID) const
VehicleScope vehicle
Scope for interaction with vehicles.
void setColor(const std::string &typeID, const libsumo::TraCIColor &c) const
void setSpeedMode(const std::string &vehicleID, int mode) const
std::vector< TraCIPosition > TraCIPositionVector
std::vector< std::string > getIDList() const
double getHeight(const std::string &typeID) const
void processGET(tcpip::Storage &inMsg, int command, int expectedType, bool ignoreCommandId=false) const
#define RESPONSE_SUBSCRIBE_SIM_VARIABLE
std::vector< std::string > getControlledLanes(const std::string &tlsID) const
double getPMxEmission(const std::string &vehicleID) const
#define CMD_REROUTE_TRAVELTIME
void readVariableSubscription(int cmdId, tcpip::Storage &inMsg)
int getLinkNumber(const std::string &laneID) const
double getTau(const std::string &vehicleID) const
void sendExact(const Storage &)
char state
The current state of the tls.
void setEffort(const std::string &edgeID, double effort, double beginSeconds=0., double endSeconds=std::numeric_limits< double >::max()) const
#define CMD_SET_LANE_VARIABLE
#define VAR_ELECTRICITYCONSUMPTION
void setColor(const std::string &polygonID, const libsumo::TraCIColor &c) const
std::vector< std::string > getLoadedIDList() const
PolygonScope polygon
Scope for interaction with polygons.
#define CMD_GET_MULTIENTRYEXIT_VARIABLE
void adaptTraveltime(const std::string &edgeID, double time, double beginSeconds=0., double endSeconds=std::numeric_limits< double >::max()) const
void setEmergencyDecel(const std::string &typeID, double decel) const
#define RESPONSE_SUBSCRIBE_EDGE_VARIABLE
void send_commandSimulationStep(double time) const
Sends a SimulationStep command.
void send_commandClose() const
Sends a Close command.
void setType(const std::string &polygonID, const std::string &setType) const
void copy(const std::string &origTypeID, const std::string &newTypeID) const
int check_commandGetResult(tcpip::Storage &inMsg, int command, int expectedType=-1, bool ignoreCommandId=false) const
Validates the result state of a command.
void setMaxSpeed(const std::string &edgeID, double speed) const
std::vector< std::string > getIDList() const
int getSpeedMode(const std::string &vehicleID) const
libsumo::TraCIPosition getPosition(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
void setSchema(const std::string &viewID, const std::string &schemeName) const
double getEffort(const std::string &edgeID, double time) const
double getSpeedDeviation(const std::string &vehicleID) const
std::vector< std::string > getIDList() const
virtual void writeDouble(double)
double getTraveltime(const std::string &edgeID) const
libsumo::TraCIPosition getPosition(const std::string &vehicleID) const
#define VAR_TELEPORT_ENDING_VEHICLES_NUMBER
void slowDown(const std::string &vehicleID, double speed, double duration) const
GUIScope gui
Scope for interaction with the gui.
void setMinGap(const std::string &personID, double minGap) const
double getLength(const std::string &vehicleID) const
libsumo::TraCIColor getColor(const std::string &typeID) const
std::string getLateralAlignment(const std::string &typeID) const
double getLastStepOccupancy(const std::string &loopID) 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="")
void screenshot(const std::string &viewID, const std::string &filename, const int width=-1, const int height=-1) const
double getApparentDecel(const std::string &typeID) const
std::string getShapeClass(const std::string &typeID) const
double getMinGapLat(const std::string &vehicleID) const
std::vector< std::string > getIDList() const
double getSpeedDeviation(const std::string &typeID) const
void setEmissionClass(const std::string &vehicleID, const std::string &clazz) const
double getLastStepMeanSpeed(const std::string &detID) const
void setHeight(const std::string &typeID, double height) const
#define LAST_STEP_PERSON_ID_LIST
double getLength(const std::string &personID) const
void setShapeClass(const std::string &typeID, const std::string &shapeClass) const
#define VAR_APPARENT_DECEL
#define LAST_STEP_OCCUPANCY
std::string getLaneID(const std::string &vehicleID) const
double getFuelConsumption(const std::string &edgeID) const
#define VAR_SPEED_WITHOUT_TRACI
double length
The length than can be driven from that lane without lane change.
#define TL_CONTROLLED_LANES
std::string getString(int cmd, int var, const std::string &id, tcpip::Storage *add=0)
double getElectricityConsumption(const std::string &laneID) const
int getLastStepVehicleNumber(const std::string &loopID) const
double getDecel(const std::string &typeID) const
#define CMD_SET_PERSON_VARIABLE
#define RESPONSE_SUBSCRIBE_PERSON_VARIABLE
int getStage(const std::string &personID, int nextStageIndex=0) const
LaneAreaScope lanearea
Scope for interaction with lanes.
double getLanePosition(const std::string &vehicleID) const
int getSignals(const std::string &vehicleID) const
double entryTime
Entry-time of the vehicle in [s].
void removeStages(const std::string &personID) const
double getAccel(const std::string &typeID) const
libsumo::TraCIPosition getOffset(const std::string &viewID=DEFAULT_VIEW) 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
double getAccel(const std::string &vehicleID) const
double getAdaptedTraveltime(const std::string &edgeID, double time) const
int getRouteIndex(const std::string &vehicleID) const
void setRoutingMode(const std::string &vehicleID, int routingMode) const
double getNOxEmission(const std::string &edgeID) const
int getLoadedNumber() 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
double getZoom(const std::string &viewID=DEFAULT_VIEW) const
void setType(const std::string &personID, const std::string &typeID) const
double getHCEmission(const std::string &laneID) const
const libsumo::ContextSubscriptionResults getAllContextSubscriptionResults() const
void moveTo(const std::string &vehicleID, const std::string &laneID, double position) const
#define VAR_STAGES_REMAINING
std::vector< std::string > getEdges(const std::string &personID, int nextStageIndex=0) const
double getAllowedSpeed(const std::string &vehicleID) const
std::vector< std::string > getInternalFoes(const std::string &laneID) const
int tlIndex
The tls index of the controlled link.
#define RESPONSE_SUBSCRIBE_TL_VARIABLE
#define VAR_ARRIVED_VEHICLES_IDS
void setMaxSpeed(const std::string &laneID, double speed) const
double getLength(const std::string &typeID) const
void setPhaseDuration(const std::string &tlsID, double phaseDuration) const
std::vector< std::string > getFoes(const std::string &laneID, const std::string &toLaneID) const
double getLastStepLength(const std::string &laneID) const
double getWidth(const std::string &typeID) const
int getLastStepVehicleNumber(const std::string &edgeID) const
double getMinGapLat(const std::string &typeID) const
#define LAST_STEP_VEHICLE_HALTING_NUMBER
libsumo::TraCIPositionVector getBoundary(const std::string &viewID=DEFAULT_VIEW) const
std::vector< std::string > continuationLanes
The sequence of lanes that best allows continuing the route without lane change.
std::vector< libsumo::TraCILogic > getCompleteRedYellowGreenDefinition(const std::string &tlsID) const
void readContextSubscription(int cmdId, tcpip::Storage &inMsg)
std::vector< std::string > getIDList() const
std::vector< std::string > getIDList() const
double getCOEmission(const std::string &edgeID) const
void changeLaneRelative(const std::string &vehicleID, int laneChange, double duration) const
double getNoiseEmission(const std::string &laneID) const
std::string getSchema(const std::string &viewID=DEFAULT_VIEW) const
double getLastStepLength(const std::string &edgeID) const
void setApparentDecel(const std::string &typeID, double decel) const
VehicleTypeScope vehicletype
Scope for interaction with vehicle types.
double getSpeedWithoutTraCI(const std::string &vehicleID) const