31 #pragma warning(disable: 4100)
33 #pragma GCC diagnostic ignored "-Wunused-parameter"
38 typedef Domain<libsumo::CMD_GET_VEHICLE_VARIABLE, libsumo::CMD_SET_VEHICLE_VARIABLE>
Dom;
44 std::vector<std::string>
45 Vehicle::getIDList() {
51 Vehicle::getIDCount() {
60 Vehicle::getSpeed(
const std::string& vehicleID) {
65 Vehicle::getLateralSpeed(
const std::string& vehicleID) {
70 Vehicle::getAcceleration(
const std::string& vehicleID) {
76 Vehicle::getSpeedWithoutTraCI(
const std::string& vehicleID) {
82 Vehicle::getPosition(
const std::string& vehicleID,
const bool includeZ) {
88 Vehicle::getPosition3D(
const std::string& vehicleID) {
94 Vehicle::getAngle(
const std::string& vehicleID) {
100 Vehicle::getSlope(
const std::string& vehicleID) {
106 Vehicle::getRoadID(
const std::string& vehicleID) {
112 Vehicle::getLaneID(
const std::string& vehicleID) {
118 Vehicle::getLaneIndex(
const std::string& vehicleID) {
124 Vehicle::getTypeID(
const std::string& vehicleID) {
130 Vehicle::getRouteID(
const std::string& vehicleID) {
136 Vehicle::getRouteIndex(
const std::string& vehicleID) {
142 Vehicle::getColor(
const std::string& vehicleID) {
147 Vehicle::getLanePosition(
const std::string& vehicleID) {
152 Vehicle::getLateralLanePosition(
const std::string& vehicleID) {
157 Vehicle::getCO2Emission(
const std::string& vehicleID) {
162 Vehicle::getCOEmission(
const std::string& vehicleID) {
167 Vehicle::getHCEmission(
const std::string& vehicleID) {
172 Vehicle::getPMxEmission(
const std::string& vehicleID) {
177 Vehicle::getNOxEmission(
const std::string& vehicleID) {
182 Vehicle::getFuelConsumption(
const std::string& vehicleID) {
187 Vehicle::getNoiseEmission(
const std::string& vehicleID) {
192 Vehicle::getElectricityConsumption(
const std::string& vehicleID) {
197 Vehicle::getPersonNumber(
const std::string& vehicleID) {
202 Vehicle::getPersonCapacity(
const std::string& vehicleID) {
206 std::vector<std::string>
207 Vehicle::getPersonIDList(
const std::string& vehicleID) {
211 std::pair<std::string, double>
212 Vehicle::getLeader(
const std::string& vehicleID,
double dist) {
220 const std::string leaderID = ret.
readString();
223 return std::make_pair(leaderID, gap);
229 std::pair<std::string, double>
230 Vehicle::getFollower(
const std::string& vehicleID,
double dist) {
238 const std::string leaderID = ret.
readString();
241 return std::make_pair(leaderID, gap);
248 Vehicle::getWaitingTime(
const std::string& vehicleID) {
254 Vehicle::getAccumulatedWaitingTime(
const std::string& vehicleID) {
260 Vehicle::getAdaptedTraveltime(
const std::string& vehicleID,
double time,
const std::string& edgeID) {
273 Vehicle::getEffort(
const std::string& vehicleID,
double time,
const std::string& edgeID) {
286 Vehicle::isRouteValid(
const std::string& vehicleID) {
291 std::vector<std::string>
292 Vehicle::getRoute(
const std::string& vehicleID) {
298 Vehicle::getSignals(
const std::string& vehicleID) {
303 std::vector<libsumo::TraCIBestLanesData>
304 Vehicle::getBestLanes(
const std::string& vehicleID) {
305 std::vector<libsumo::TraCIBestLanesData> result;
312 for (
int i = 0; i < n; ++i) {
331 for (
int i = 0; i < m; ++i) {
334 result.push_back(info);
341 std::vector<libsumo::TraCINextTLSData>
342 Vehicle::getNextTLS(
const std::string& vehicleID) {
343 std::vector<libsumo::TraCINextTLSData> result;
350 for (
int i = 0; i < n; ++i) {
370 std::vector<libsumo::TraCINextStopData>
371 Vehicle::getNextStops(
const std::string& vehicleID) {
372 return getStops(vehicleID, 0);
375 std::vector<libsumo::TraCINextStopData>
376 Vehicle::getStops(
const std::string& vehicleID,
int limit) {
377 std::vector<libsumo::TraCINextStopData> result;
384 for (
int i = 0; i < n; ++i) {
442 Vehicle::getStopState(
const std::string& vehicleID) {
448 Vehicle::getDistance(
const std::string& vehicleID) {
454 Vehicle::getDrivingDistance(
const std::string& vehicleID,
const std::string& edgeID,
double position,
int ) {
461 Vehicle::getDrivingDistance2D(
const std::string& vehicleID,
double x,
double y) {
468 Vehicle::getAllowedSpeed(
const std::string& vehicleID) {
474 Vehicle::getSpeedFactor(
const std::string& vehicleID) {
480 Vehicle::getSpeedMode(
const std::string& vehicleID) {
486 Vehicle::getLaneChangeMode(
const std::string& vehicleID) {
492 Vehicle::getRoutingMode(
const std::string& vehicleID) {
498 Vehicle::getLine(
const std::string& vehicleID) {
504 std::vector<std::string>
505 Vehicle::getVia(
const std::string& vehicleID) {
511 Vehicle::getLaneChangeState(
const std::string& vehicleID,
int direction) {
529 std::vector<std::pair<std::string, double> >
530 Vehicle::getNeighbors(
const std::string& vehicleID,
const int mode) {
531 std::vector<std::pair<std::string, double> > neighs;
538 Vehicle::getFollowSpeed(
const std::string& vehicleID,
double speed,
double gap,
double leaderSpeed,
double leaderMaxDecel,
const std::string& leaderID) {
557 Vehicle::getSecureGap(
const std::string& vehicleID,
double speed,
double leaderSpeed,
double leaderMaxDecel,
const std::string& leaderID) {
574 Vehicle::getStopSpeed(
const std::string& vehicleID,
const double speed,
double gap) {
586 Vehicle::getStopDelay(
const std::string& vehicleID) {
591 Vehicle::getStopArrivalDelay(
const std::string& vehicleID) {
595 std::vector<std::string>
596 Vehicle::getTaxiFleet(
int taxiState) {
606 Vehicle::getEmissionClass(
const std::string& vehicleID) {
611 Vehicle::getShapeClass(
const std::string& vehicleID) {
617 Vehicle::getLength(
const std::string& vehicleID) {
623 Vehicle::getAccel(
const std::string& vehicleID) {
629 Vehicle::getDecel(
const std::string& vehicleID) {
634 double Vehicle::getEmergencyDecel(
const std::string& vehicleID) {
639 double Vehicle::getApparentDecel(
const std::string& vehicleID) {
644 double Vehicle::getActionStepLength(
const std::string& vehicleID) {
649 double Vehicle::getLastActionTime(
const std::string& vehicleID) {
655 Vehicle::getTau(
const std::string& vehicleID) {
661 Vehicle::getImperfection(
const std::string& vehicleID) {
667 Vehicle::getSpeedDeviation(
const std::string& vehicleID) {
673 Vehicle::getVehicleClass(
const std::string& vehicleID) {
679 Vehicle::getMinGap(
const std::string& vehicleID) {
685 Vehicle::getMinGapLat(
const std::string& vehicleID) {
691 Vehicle::getMaxSpeed(
const std::string& vehicleID) {
697 Vehicle::getMaxSpeedLat(
const std::string& vehicleID) {
703 Vehicle::getLateralAlignment(
const std::string& vehicleID) {
709 Vehicle::getWidth(
const std::string& vehicleID) {
715 Vehicle::getHeight(
const std::string& vehicleID) {
721 Vehicle::setStop(
const std::string& vehicleID,
722 const std::string& edgeID,
751 Vehicle::replaceStop(
const std::string& vehicleID,
753 const std::string& edgeID,
784 Vehicle::rerouteParkingArea(
const std::string& vehicleID,
const std::string& parkingAreaID) {
789 Vehicle::resume(
const std::string& vehicleID) {
798 Vehicle::changeTarget(
const std::string& vehicleID,
const std::string& edgeID) {
804 Vehicle::changeLane(
const std::string& vehicleID,
int laneIndex,
double duration) {
816 Vehicle::changeLaneRelative(
const std::string& vehicleID,
int indexOffset,
double duration) {
831 Vehicle::changeSublane(
const std::string& vehicleID,
double latDist) {
837 Vehicle::add(
const std::string& vehicleID,
838 const std::string& routeID,
839 const std::string& typeID,
840 const std::string& depart,
841 const std::string& departLane,
842 const std::string& departPos,
843 const std::string& departSpeed,
844 const std::string& arrivalLane,
845 const std::string& arrivalPos,
846 const std::string& arrivalSpeed,
847 const std::string& fromTaz,
848 const std::string& toTaz,
849 const std::string& line,
892 Vehicle::moveToXY(
const std::string& vehicleID,
const std::string& edgeID,
const int laneIndex,
893 const double x,
const double y,
double angle,
const int keepRoute) {
913 Vehicle::slowDown(
const std::string& vehicleID,
double speed,
double duration) {
925 Vehicle::openGap(
const std::string& vehicleID,
double newTimeHeadway,
double newSpaceHeadway,
double duration,
double changeRate,
double maxDecel,
const std::string& referenceVehID) {
945 Vehicle::deactivateGapControl(
const std::string& vehicleID) {
946 openGap(vehicleID, -1, -1, -1, -1, -1,
"");
950 Vehicle::requestToC(
const std::string& vehID,
double leadTime) {
951 std::ostringstream oss;
952 oss.setf(std::ios::fixed, std::ios::floatfield);
953 oss << std::setprecision(2);
955 setParameter(vehID,
"device.toc.requestToC", oss.str());
959 Vehicle::setSpeed(
const std::string& vehicleID,
double speed) {
964 Vehicle::setPreviousSpeed(
const std::string& vehicleID,
double prevspeed) {
969 Vehicle::setSpeedMode(
const std::string& vehicleID,
int speedMode) {
974 Vehicle::setLaneChangeMode(
const std::string& vehicleID,
int laneChangeMode) {
979 Vehicle::setRoutingMode(
const std::string& vehicleID,
int routingMode) {
984 Vehicle::setType(
const std::string& vehicleID,
const std::string& typeID) {
989 Vehicle::setRouteID(
const std::string& vehicleID,
const std::string& routeID) {
994 Vehicle::setRoute(
const std::string& vehicleID,
const std::string& edgeID) {
995 setRoute(vehicleID, std::vector<std::string>({edgeID}));
999 Vehicle::setRoute(
const std::string& vehicleID,
const std::vector<std::string>& edgeIDs) {
1004 Vehicle::updateBestLanes(
const std::string& vehicleID) {
1010 Vehicle::setAdaptedTraveltime(
const std::string& vehicleID,
const std::string& edgeID,
1011 double time,
double begSeconds,
double endSeconds) {
1044 Vehicle::setEffort(
const std::string& vehicleID,
const std::string& edgeID,
1045 double effort,
double begSeconds,
double endSeconds) {
1078 Vehicle::rerouteTraveltime(
const std::string& vehicleID,
const bool currentTravelTimes) {
1088 Vehicle::rerouteEffort(
const std::string& vehicleID) {
1097 Vehicle::setSignals(
const std::string& vehicleID,
int signals) {
1103 Vehicle::moveTo(
const std::string& vehicleID,
const std::string& laneID,
double position,
int reason) {
1118 Vehicle::setActionStepLength(
const std::string& vehicleID,
double actionStepLength,
bool resetActionOffset) {
1123 if (!resetActionOffset) {
1124 actionStepLength *= -1;
1131 Vehicle::remove(
const std::string& vehicleID,
char reason) {
1146 Vehicle::setSpeedFactor(
const std::string& vehicleID,
double factor) {
1152 Vehicle::setLine(
const std::string& vehicleID,
const std::string& line) {
1158 Vehicle::setVia(
const std::string& vehicleID,
const std::vector<std::string>& via) {
1164 Vehicle::setLength(
const std::string& vehicleID,
double length) {
1170 Vehicle::setMaxSpeed(
const std::string& vehicleID,
double speed) {
1176 Vehicle::setVehicleClass(
const std::string& vehicleID,
const std::string& clazz) {
1182 Vehicle::setShapeClass(
const std::string& vehicleID,
const std::string& clazz) {
1188 Vehicle::setEmissionClass(
const std::string& vehicleID,
const std::string& clazz) {
1194 Vehicle::setWidth(
const std::string& vehicleID,
double width) {
1200 Vehicle::setHeight(
const std::string& vehicleID,
double height) {
1206 Vehicle::setMinGap(
const std::string& vehicleID,
double minGap) {
1212 Vehicle::setAccel(
const std::string& vehicleID,
double accel) {
1218 Vehicle::setDecel(
const std::string& vehicleID,
double decel) {
1224 Vehicle::setEmergencyDecel(
const std::string& vehicleID,
double decel) {
1230 Vehicle::setApparentDecel(
const std::string& vehicleID,
double decel) {
1236 Vehicle::setImperfection(
const std::string& vehicleID,
double imperfection) {
1242 Vehicle::setTau(
const std::string& vehicleID,
double tau) {
1248 Vehicle::setMinGapLat(
const std::string& vehicleID,
double minGapLat) {
1254 Vehicle::setMaxSpeedLat(
const std::string& vehicleID,
double speed) {
1260 Vehicle::setLateralAlignment(
const std::string& vehicleID,
const std::string& latAlignment) {
1266 Vehicle::highlight(
const std::string& vehicleID,
const libsumo::TraCIColor& col,
double size,
const int alphaMax,
const double duration,
const int type) {
1302 Vehicle::dispatchTaxi(
const std::string& vehicleID,
const std::vector<std::string>& reservations) {
1308 Vehicle::subscribeLeader(
const std::string& vehicleID,
double dist,
double beginTime,
double endTime) {
1313 Vehicle::addSubscriptionFilterLanes(
const std::vector<int>& lanes,
bool noOpposite,
double downstreamDist,
double upstreamDist) {
1318 Vehicle::addSubscriptionFilterNoOpposite() {
1323 Vehicle::addSubscriptionFilterDownstreamDistance(
double dist) {
1328 Vehicle::addSubscriptionFilterUpstreamDistance(
double dist) {
1333 Vehicle::addSubscriptionFilterCFManeuver(
double downstreamDist,
double upstreamDist) {
1338 Vehicle::addSubscriptionFilterLCManeuver(
int direction,
bool noOpposite,
double downstreamDist,
double upstreamDist) {
1343 Vehicle::addSubscriptionFilterLeadFollow(
const std::vector<int>& lanes) {
1348 Vehicle::addSubscriptionFilterTurn(
double downstreamDist,
double upstreamDist) {
1353 Vehicle::addSubscriptionFilterVClass(
const std::vector<std::string>& vClasses) {
1358 Vehicle::addSubscriptionFilterVType(
const std::vector<std::string>& vTypes) {
1363 Vehicle::addSubscriptionFilterFieldOfVision(
double openingAngle) {
1368 Vehicle::addSubscriptionFilterLateralDistance(
double lateralDist,
double downstreamDist,
double upstreamDist) {
#define LIBTRACI_SUBSCRIPTION_IMPLEMENTATION(CLASS, DOMAIN)
#define LIBTRACI_PARAMETER_IMPLEMENTATION(CLASS, DOMAIN)
C++ TraCI client API implementation.
static Connection & getActive()
tcpip::Storage & doCommand(int command, int var, const std::string &id, tcpip::Storage *add=nullptr)
static void setDouble(int var, const std::string &id, double value)
static libsumo::TraCIPosition getPos(int var, const std::string &id, tcpip::Storage *add=nullptr)
static void setCol(int var, const std::string &id, const libsumo::TraCIColor value)
static void setStringVector(int var, const std::string &id, const std::vector< std::string > &value)
static std::vector< std::string > getStringVector(int var, const std::string &id, tcpip::Storage *add=nullptr)
static libsumo::TraCIColor getCol(int var, const std::string &id, tcpip::Storage *add=nullptr)
static std::string getString(int var, const std::string &id, tcpip::Storage *add=nullptr)
static int getInt(int var, const std::string &id, tcpip::Storage *add=nullptr)
static libsumo::TraCIPosition getPos3D(int var, const std::string &id, tcpip::Storage *add=nullptr)
static double getDouble(int var, const std::string &id, tcpip::Storage *add=nullptr)
static void setInt(int var, const std::string &id, int value)
static void setString(int var, const std::string &id, const std::string &value)
virtual std::string readString()
virtual void writeString(const std::string &s)
virtual void writeInt(int)
virtual void writeDouble(double)
virtual int readUnsignedByte()
virtual void writeUnsignedByte(int)
virtual void writeByte(int)
virtual double readDouble()
TRACI_CONST double INVALID_DOUBLE_VALUE
TRACI_CONST int VAR_LASTACTIONTIME
TRACI_CONST int TYPE_COLOR
TRACI_CONST int VAR_NOXEMISSION
TRACI_CONST int VAR_LANECHANGE_MODE
TRACI_CONST int LAST_STEP_PERSON_ID_LIST
TRACI_CONST int VAR_VEHICLECLASS
TRACI_CONST int TRACI_ID_LIST
TRACI_CONST int VAR_LATALIGNMENT
TRACI_CONST int CMD_CHANGESUBLANE
TRACI_CONST int VAR_ROUTING_MODE
TRACI_CONST int VAR_MINGAP
TRACI_CONST int CMD_TAXI_DISPATCH
TRACI_CONST int VAR_SECURE_GAP
TRACI_CONST int VAR_SHAPECLASS
TRACI_CONST int VAR_WAITING_TIME
TRACI_CONST int VAR_EDGE_TRAVELTIME
TRACI_CONST int VAR_ROAD_ID
TRACI_CONST int CMD_GET_VEHICLE_VARIABLE
TRACI_CONST int CMD_RESUME
TRACI_CONST int VAR_ACTIONSTEPLENGTH
TRACI_CONST int VAR_SPEED_FACTOR
TRACI_CONST int MOVE_TO_XY
TRACI_CONST int VAR_FOLLOW_SPEED
TRACI_CONST int VAR_STOP_ARRIVALDELAY
TRACI_CONST int VAR_SPEED_LAT
TRACI_CONST int VAR_ANGLE
TRACI_CONST int TYPE_COMPOUND
TRACI_CONST int VAR_NEXT_TLS
TRACI_CONST int VAR_EDGE_EFFORT
TRACI_CONST int VAR_ROUTE
TRACI_CONST int VAR_BEST_LANES
TRACI_CONST int VAR_ALLOWED_SPEED
TRACI_CONST int VAR_LANE_INDEX
TRACI_CONST int VAR_PMXEMISSION
TRACI_CONST int VAR_SPEED_WITHOUT_TRACI
TRACI_CONST int VAR_HIGHLIGHT
TRACI_CONST int VAR_MOVE_TO
TRACI_CONST int VAR_PERSON_NUMBER
TRACI_CONST int VAR_COEMISSION
TRACI_CONST int VAR_COLOR
TRACI_CONST int VAR_POSITION
TRACI_CONST int VAR_WIDTH
TRACI_CONST int VAR_PERSON_CAPACITY
TRACI_CONST int VAR_MAXSPEED
TRACI_CONST int VAR_LEADER
TRACI_CONST int CMD_CHANGETARGET
TRACI_CONST int VAR_CO2EMISSION
TRACI_CONST int CMD_REROUTE_TO_PARKING
TRACI_CONST int CMD_REROUTE_TRAVELTIME
TRACI_CONST int VAR_TAXI_FLEET
TRACI_CONST int TYPE_INTEGER
TRACI_CONST int VAR_PREV_SPEED
TRACI_CONST int VAR_ROUTE_VALID
TRACI_CONST int VAR_SPEEDSETMODE
TRACI_CONST int CMD_REPLACE_STOP
TRACI_CONST int CMD_SET_VEHICLE_VARIABLE
TRACI_CONST int VAR_FUELCONSUMPTION
TRACI_CONST int VAR_SLOPE
TRACI_CONST int VAR_LENGTH
TRACI_CONST int VAR_MAXSPEED_LAT
TRACI_CONST int CMD_REROUTE_EFFORT
TRACI_CONST int VAR_HCEMISSION
TRACI_CONST int VAR_LANEPOSITION
TRACI_CONST int VAR_LANE_ID
TRACI_CONST int VAR_STOP_SPEED
TRACI_CONST int VAR_IMPERFECTION
TRACI_CONST int VAR_HEIGHT
TRACI_CONST int VAR_APPARENT_DECEL
TRACI_CONST int VAR_NOISEEMISSION
TRACI_CONST int VAR_POSITION3D
TRACI_CONST int VAR_SPEED
TRACI_CONST int VAR_DECEL
TRACI_CONST int VAR_SIGNALS
TRACI_CONST int VAR_ACCUMULATED_WAITING_TIME
TRACI_CONST int VAR_MINGAP_LAT
TRACI_CONST int INVALID_INT_VALUE
TRACI_CONST int VAR_ROUTE_INDEX
TRACI_CONST int VAR_NEXT_STOPS2
TRACI_CONST int CMD_SLOWDOWN
TRACI_CONST int VAR_ACCELERATION
TRACI_CONST int VAR_ROUTE_ID
TRACI_CONST int TYPE_DOUBLE
TRACI_CONST int TYPE_BYTE
TRACI_CONST int CMD_OPENGAP
TRACI_CONST int VAR_LANEPOSITION_LAT
TRACI_CONST int CMD_CHANGELANE
TRACI_CONST int VAR_STOP_DELAY
TRACI_CONST int VAR_EMERGENCY_DECEL
TRACI_CONST int VAR_STOPSTATE
TRACI_CONST int VAR_FOLLOWER
TRACI_CONST int VAR_EMISSIONCLASS
TRACI_CONST int VAR_ACCEL
TRACI_CONST int VAR_DISTANCE
TRACI_CONST int VAR_ELECTRICITYCONSUMPTION
TRACI_CONST int VAR_SPEED_DEVIATION
TRACI_CONST int TYPE_STRING
Domain< libsumo::CMD_GET_BUSSTOP_VARIABLE, libsumo::CMD_SET_BUSSTOP_VARIABLE > Dom
double length
The length than can be driven from that lane without lane change.
double occupation
The traffic density along length.
bool allowsContinuation
Whether this lane allows continuing the route.
int bestLaneOffset
The offset of this lane from the best lane.
std::vector< std::string > continuationLanes
The sequence of lanes that best allows continuing the route without lane change.
std::string laneID
The id of the lane.
std::string stoppingPlaceID
Id assigned to the stop.
std::string lane
The lane to stop at.
std::string actType
additional information for this stop
std::string tripId
id of the trip within a cyclical public transport route
double startPos
The stopping position start.
double arrival
The actual arrival time (only for past stops)
double depart
The time at which this stop was ended.
std::string join
the id of the vehicle (train portion) to which this vehicle shall be joined
double speed
the speed at which this stop counts as reached (waypoint mode)
double intendedArrival
The intended arrival time.
double endPos
The stopping position end.
std::string split
the id of the vehicle (train portion) that splits of upon reaching this stop
std::string line
the new line id of the trip within a cyclical public transport route
double duration
The intended (minimum) stopping duration.
double until
The time at which the vehicle may continue its journey.
double dist
The distance to the tls.
int tlIndex
The tls index of the controlled link.
std::string id
The id of the next tls.
char state
The current state of the tls.