62 const std::string
id = inputStorage.
readString();
65 if (!libsumo::Vehicle::handleVariable(
id, variable, &server, &inputStorage)) {
80 std::string warning =
"";
124 std::cout <<
SIMTIME <<
" processSet veh=" <<
id <<
"\n";
128 if (sumoVehicle ==
nullptr) {
134 if (v ==
nullptr && shouldExist) {
140 const int compoundSize =
StoHelp::readCompound(inputStorage, -1,
"Stop needs a compound object description.");
141 if (compoundSize < 4 || compoundSize > 7) {
145 const std::string edgeID =
StoHelp::readTypedString(inputStorage,
"The first stop parameter must be the edge id given as a string.");
146 const double pos =
StoHelp::readTypedDouble(inputStorage,
"The second stop parameter must be the end position along the edge given as a double.");
147 const int laneIndex =
StoHelp::readTypedByte(inputStorage,
"The third stop parameter must be the lane index given as a byte.");
148 const double duration =
StoHelp::readTypedDouble(inputStorage,
"The fourth stop parameter must be the stopping duration given as a double.");
150 if (compoundSize >= 5) {
151 stopFlags =
StoHelp::readTypedByte(inputStorage,
"The fifth stop parameter must be a byte indicating its parking/triggered status.");
154 if (compoundSize >= 6) {
155 startPos =
StoHelp::readTypedDouble(inputStorage,
"The sixth stop parameter must be the start position along the edge given as a double.");
158 if (compoundSize >= 7) {
159 until =
StoHelp::readTypedDouble(inputStorage,
"The seventh stop parameter must be the minimum departure time given as a double.");
161 libsumo::Vehicle::setStop(
id, edgeID, pos, laneIndex, duration, stopFlags, startPos, until);
175 const int compoundSize =
StoHelp::readCompound(inputStorage, -1,
"Setting stop parameter needs a compound object description.");
176 if (compoundSize != 3 && compoundSize != 4) {
179 const int nextStopIndex =
StoHelp::readTypedInt(inputStorage,
"The first setStopParameter parameter must be the nextStopIndex given as an integer.");
180 const std::string param =
StoHelp::readTypedString(inputStorage,
"The second setStopParameter parameter must be the param given as a string.");
181 const std::string value =
StoHelp::readTypedString(inputStorage,
"The third setStopParameter parameter must be the value given as a string.");
183 if (compoundSize == 4) {
184 customParam =
StoHelp::readTypedByte(inputStorage,
"The fourth setStopParameter parameter must be the customParam flag given as a byte.");
186 libsumo::Vehicle::setStopParameter(
id, nextStopIndex, param, value, customParam != 0);
190 StoHelp::readCompound(inputStorage, 1,
"Reroute to stop needs a compound object description of 1 item.");
191 libsumo::Vehicle::rerouteParkingArea(
id,
StoHelp::readTypedString(inputStorage,
"The first reroute to stop parameter must be the parking area id given as a string."));
196 libsumo::Vehicle::resume(
id);
200 const int compoundSize =
StoHelp::readCompound(inputStorage, -1,
"Lane change needs a compound object description.");
201 if (compoundSize != 3 && compoundSize != 2) {
204 const int laneIndex =
StoHelp::readTypedByte(inputStorage,
"The first lane change parameter must be the lane index given as a byte.");
205 const double duration =
StoHelp::readTypedDouble(inputStorage,
"The second lane change parameter must be the duration given as a double.");
208 if (compoundSize == 3) {
209 relative =
StoHelp::readTypedByte(inputStorage,
"The third lane change parameter must be a Byte for defining whether a relative lane change should be applied.");
212 if ((laneIndex < 0 || laneIndex >= (
int)v->
getEdge()->
getLanes().size()) && relative < 1) {
217 libsumo::Vehicle::changeLane(
id, laneIndex, duration);
219 libsumo::Vehicle::changeLaneRelative(
id, laneIndex, duration);
228 StoHelp::readCompound(inputStorage, 2,
"Slow down needs a compound object description of two items.");
229 const double newSpeed =
StoHelp::readTypedDouble(inputStorage,
"The first slow down parameter must be the speed given as a double.");
233 const double duration =
StoHelp::readTypedDouble(inputStorage,
"The second slow down parameter must be the duration given as a double.");
237 libsumo::Vehicle::slowDown(
id, newSpeed, duration);
241 libsumo::Vehicle::changeTarget(
id,
StoHelp::readTypedString(inputStorage,
"Change target requires a string containing the id of the new destination edge as parameter."));
245 const int compoundSize =
StoHelp::readCompound(inputStorage, -1,
"Create gap needs a compound object description.");
246 if (compoundSize != 5 && compoundSize != 6) {
249 const double newTimeHeadway =
StoHelp::readTypedDouble(inputStorage,
"The first create gap parameter must be the new desired time headway (tau) given as a double.");
250 double newSpaceHeadway =
StoHelp::readTypedDouble(inputStorage,
"The second create gap parameter must be the new desired space headway given as a double.");
251 const double duration =
StoHelp::readTypedDouble(inputStorage,
"The third create gap parameter must be the duration given as a double.");
252 const double changeRate =
StoHelp::readTypedDouble(inputStorage,
"The fourth create gap parameter must be the change rate given as a double.");
253 const double maxDecel =
StoHelp::readTypedDouble(inputStorage,
"The fifth create gap parameter must be the maximal braking rate given as a double.");
255 if (newTimeHeadway == -1 && newSpaceHeadway == -1 && duration == -1 && changeRate == -1 && maxDecel == -1) {
256 libsumo::Vehicle::deactivateGapControl(
id);
258 if (newTimeHeadway <= 0) {
259 if (newTimeHeadway != -1) {
263 if (newSpaceHeadway < 0) {
269 if (changeRate <= 0) {
275 std::string refVehID =
"";
276 if (compoundSize == 6) {
277 refVehID =
StoHelp::readTypedString(inputStorage,
"The sixth create gap parameter must be a reference vehicle's ID given as a string.");
279 libsumo::Vehicle::openGap(
id, newTimeHeadway, newSpaceHeadway, duration, changeRate, maxDecel, refVehID);
284 libsumo::Vehicle::setType(
id,
StoHelp::readTypedString(inputStorage,
"The vehicle type id must be given as a string."));
288 libsumo::Vehicle::setRouteID(
id,
StoHelp::readTypedString(inputStorage,
"The route id must be given as a string."));
296 const int parameterCount =
StoHelp::readCompound(inputStorage, -1,
"Setting travel time requires a compound object.");
299 double endTime = std::numeric_limits<double>::max();
301 if (parameterCount == 4) {
302 begTime =
StoHelp::readTypedDouble(inputStorage,
"Setting travel time using 4 parameters requires the begin time as first parameter.");
303 endTime =
StoHelp::readTypedDouble(inputStorage,
"Setting travel time using 4 parameters requires the end time as second parameter.");
304 edgeID =
StoHelp::readTypedString(inputStorage,
"Setting travel time using 4 parameters requires the referenced edge as third parameter.");
305 value =
StoHelp::readTypedDouble(inputStorage,
"Setting travel time using 4 parameters requires the travel time as double as fourth parameter.");
306 }
else if (parameterCount == 2) {
307 edgeID =
StoHelp::readTypedString(inputStorage,
"Setting travel time using 2 parameters requires the referenced edge as first parameter.");
308 value =
StoHelp::readTypedDouble(inputStorage,
"Setting travel time using 2 parameters requires the travel time as double as second parameter.");
309 }
else if (parameterCount == 1) {
310 edgeID =
StoHelp::readTypedString(inputStorage,
"Setting travel time using 1 parameter requires the referenced edge as first parameter.");
314 libsumo::Vehicle::setAdaptedTraveltime(
id, edgeID, value, begTime, endTime);
318 const int parameterCount =
StoHelp::readCompound(inputStorage, -1,
"Setting travel time requires a compound object.");
321 double endTime = std::numeric_limits<double>::max();
323 if (parameterCount == 4) {
324 begTime =
StoHelp::readTypedDouble(inputStorage,
"Setting effort using 4 parameters requires the begin time as first parameter.");
325 endTime =
StoHelp::readTypedDouble(inputStorage,
"Setting effort using 4 parameters requires the end time as second parameter.");
326 edgeID =
StoHelp::readTypedString(inputStorage,
"Setting effort using 4 parameters requires the referenced edge as third parameter.");
327 value =
StoHelp::readTypedDouble(inputStorage,
"Setting effort using 4 parameters requires the effort as double as fourth parameter.");
328 }
else if (parameterCount == 2) {
329 edgeID =
StoHelp::readTypedString(inputStorage,
"Setting effort using 2 parameters requires the referenced edge as first parameter.");
330 value =
StoHelp::readTypedDouble(inputStorage,
"Setting effort using 2 parameters requires the effort as double as second parameter.");
331 }
else if (parameterCount == 1) {
332 edgeID =
StoHelp::readTypedString(inputStorage,
"Setting effort using 1 parameter requires the referenced edge as first parameter.");
336 libsumo::Vehicle::setEffort(
id, edgeID, value, begTime, endTime);
340 StoHelp::readCompound(inputStorage, 0,
"Rerouting by travel time requires an empty compound object.");
341 libsumo::Vehicle::rerouteTraveltime(
id,
false);
346 libsumo::Vehicle::rerouteEffort(
id);
350 libsumo::Vehicle::setSignals(
id,
StoHelp::readTypedInt(inputStorage,
"Setting signals requires an integer."));
353 const int parameterCount =
StoHelp::readCompound(inputStorage, -1,
"Setting position requires a compound object.");
354 if (parameterCount < 2 || parameterCount > 3) {
357 const std::string laneID =
StoHelp::readTypedString(inputStorage,
"The first parameter for setting a position must be the lane ID given as a string.");
358 const double position =
StoHelp::readTypedDouble(inputStorage,
"The second parameter for setting a position must be the position given as a double.");
360 if (parameterCount == 3) {
361 reason =
StoHelp::readTypedInt(inputStorage,
"The third parameter for setting a position must be the reason given as an int.");
364 libsumo::Vehicle::moveTo(
id, laneID, position, reason);
368 libsumo::Vehicle::setImpatience(
id,
StoHelp::readTypedDouble(inputStorage,
"Setting impatience requires a double."));
377 const double accel =
StoHelp::readTypedDouble(inputStorage,
"Setting acceleration requires the acceleration as first parameter given as a double.");
378 const double duration =
StoHelp::readTypedDouble(inputStorage,
"Setting acceleration requires the duration as second parameter given as a double.");
382 libsumo::Vehicle::setAcceleration(
id, accel, duration);
386 double prevSpeed = 0;
391 const int parameterCount = inputStorage.
readInt();
392 if (parameterCount == 2) {
393 prevSpeed =
StoHelp::readTypedDouble(inputStorage,
"Setting previous speed using 2 parameters requires the previous speed as first parameter given as a double.");
394 prevAcceleration =
StoHelp::readTypedDouble(inputStorage,
"Setting previous speed using 2 parameters requires the previous acceleration as second parameter given as a double.");
395 }
else if (parameterCount == 1) {
396 prevSpeed =
StoHelp::readTypedDouble(inputStorage,
"Setting previous speed using 1 parameter requires the previous speed as first parameter given as a double.");
409 libsumo::Vehicle::setPreviousSpeed(
id, prevSpeed, prevAcceleration);
413 libsumo::Vehicle::setSpeedMode(
id,
StoHelp::readTypedInt(inputStorage,
"Setting speed mode requires an integer."));
416 libsumo::Vehicle::setLaneChangeMode(
id,
StoHelp::readTypedInt(inputStorage,
"Setting lane change mode requires an integer."));
419 libsumo::Vehicle::setRoutingMode(
id,
StoHelp::readTypedInt(inputStorage,
"Setting routing mode requires an integer."));
422 libsumo::Vehicle::setColor(
id,
StoHelp::readTypedColor(inputStorage,
"The color must be given using the according type."));
429 const int departCode =
StoHelp::readTypedInt(inputStorage,
"Third parameter (depart) requires an integer.");
432 depart =
"triggered";
434 depart =
"containerTriggered";
443 const double departPosCode =
StoHelp::readTypedDouble(inputStorage,
"Fourth parameter (position) requires a double.");
444 std::string departPos =
toString(departPosCode);
446 departPos =
"random";
448 departPos =
"random_free";
459 const double departSpeedCode =
StoHelp::readTypedDouble(inputStorage,
"Fifth parameter (speed) requires a double.");
460 std::string departSpeed =
toString(departSpeedCode);
462 departSpeed =
"random";
466 departSpeed =
"desired";
468 departSpeed =
"speedLimit";
470 departSpeed =
"last";
475 const int departLaneCode =
StoHelp::readTypedByte(inputStorage,
"Sixth parameter (lane) requires a byte.");
476 std::string departLane =
toString(departLaneCode);
478 departLane =
"random";
482 departLane =
"allowed";
486 departLane =
"first";
488 libsumo::Vehicle::add(
id, routeID, vTypeID, depart, departLane, departPos, departSpeed);
492 StoHelp::readCompound(inputStorage, 14,
"Adding a fully specified vehicle needs fourteen parameters.");
496 const std::string departLane =
StoHelp::readTypedString(inputStorage,
"Fourth parameter (depart lane) requires a string.");
497 const std::string departPos =
StoHelp::readTypedString(inputStorage,
"Fifth parameter (depart position) requires a string.");
498 const std::string departSpeed =
StoHelp::readTypedString(inputStorage,
"Sixth parameter (depart speed) requires a string.");
499 const std::string arrivalLane =
StoHelp::readTypedString(inputStorage,
"Seventh parameter (arrival lane) requires a string.");
500 const std::string arrivalPos =
StoHelp::readTypedString(inputStorage,
"Eighth parameter (arrival position) requires a string.");
501 const std::string arrivalSpeed =
StoHelp::readTypedString(inputStorage,
"Ninth parameter (arrival speed) requires a string.");
502 const std::string fromTaz =
StoHelp::readTypedString(inputStorage,
"Tenth parameter (from taz) requires a string.");
505 const int personCapacity =
StoHelp::readTypedInt(inputStorage,
"13th parameter (person capacity) requires an int.");
506 const int personNumber =
StoHelp::readTypedInt(inputStorage,
"14th parameter (person number) requires an int.");
507 libsumo::Vehicle::add(
id, routeID, vTypeID, depart, departLane, departPos, departSpeed, arrivalLane, arrivalPos, arrivalSpeed,
508 fromTaz, toTaz, line, personCapacity, personNumber);
512 libsumo::Vehicle::remove(
id, (
char)
StoHelp::readTypedByte(inputStorage,
"Removing a vehicle requires a byte."));
516 const int parameterCount =
StoHelp::readCompound(inputStorage, -1,
"MoveToXY vehicle requires a compound object.");
517 if (parameterCount < 5 || parameterCount > 7) {
520 const std::string edgeID =
StoHelp::readTypedString(inputStorage,
"The first parameter for moveToXY must be the edge ID given as a string.");
521 const int laneIndex =
StoHelp::readTypedInt(inputStorage,
"The second parameter for moveToXY must be lane given as an int.");
522 const double x =
StoHelp::readTypedDouble(inputStorage,
"The third parameter for moveToXY must be the x-position given as a double.");
523 const double y =
StoHelp::readTypedDouble(inputStorage,
"The fourth parameter for moveToXY must be the y-position given as a double.");
524 const double angle =
StoHelp::readTypedDouble(inputStorage,
"The fifth parameter for moveToXY must be the angle given as a double.");
525 int keepRouteFlag = 1;
526 if (parameterCount >= 6) {
527 keepRouteFlag =
StoHelp::readTypedByte(inputStorage,
"The sixth parameter for moveToXY must be the keepRouteFlag given as a byte.");
529 double matchThreshold = 100.;
530 if (parameterCount == 7) {
531 matchThreshold =
StoHelp::readTypedDouble(inputStorage,
"The seventh parameter for moveToXY must be the matchThreshold given as a double.");
533 libsumo::Vehicle::moveToXY(
id, edgeID, laneIndex, x, y, angle, keepRouteFlag, matchThreshold);
537 libsumo::Vehicle::setSpeedFactor(
id,
StoHelp::readTypedDouble(inputStorage,
"Setting speed factor requires a double."));
549 StoHelp::readCompound(inputStorage, 2,
"A compound object of size 2 is needed for setting a parameter.");
550 const std::string name =
StoHelp::readTypedString(inputStorage,
"The name of the parameter must be given as a string.");
551 const std::string value =
StoHelp::readTypedString(inputStorage,
"The value of the parameter must be given as a string.");
552 libsumo::Vehicle::setParameter(
id, name, value);
556 const int parameterCount =
StoHelp::readCompound(inputStorage, -1,
"A compound object is needed for highlighting an object.");
557 if (parameterCount > 5) {
562 if (parameterCount > 0) {
563 col =
StoHelp::readTypedColor(inputStorage,
"The first parameter for highlighting must be the highlight color.");
566 if (parameterCount > 1) {
570 if (parameterCount > 2) {
573 double duration = -1;
574 if (parameterCount > 3) {
575 duration =
StoHelp::readTypedDouble(inputStorage,
"The fourth parameter for highlighting must be the highlight duration.");
578 if (parameterCount > 4) {
581 libsumo::Vehicle::highlight(
id, col, size, alphaMax, duration, type);
585 libsumo::Vehicle::dispatchTaxi(
id,
StoHelp::readTypedStringList(inputStorage,
"A dispatch command must be defined as a list of reservation ids."));
590 if (fabs(value) == std::numeric_limits<double>::infinity()) {
593 bool resetActionOffset = value >= 0.0;
594 libsumo::Vehicle::setActionStepLength(
id, fabs(value), resetActionOffset);
598 libsumo::Vehicle::setLateralLanePosition(
id,
StoHelp::readTypedDouble(inputStorage,
"Setting lateral lane position requires a double."));
602 libsumo::Vehicle::updateBestLanes(
id);
607 if (value < 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
610 libsumo::Vehicle::setMinGap(
id, value);
615 if (value < 0.0 || fabs(value) == std::numeric_limits<double>::infinity()) {
618 libsumo::Vehicle::setMinGapLat(
id, value);
644 const std::string m1 = replace ?
"Replacing" :
"Inserting";
645 const std::string m2 = replace ?
"replacement" :
"insertion";
646 const int parameterCount =
StoHelp::readCompound(inputStorage, -1, m1 +
" stop needs a compound object description.");
647 if (parameterCount != 8 && parameterCount != 9) {
651 const std::string edgeID =
StoHelp::readTypedString(inputStorage,
"The first stop " + m2 +
" parameter must be the edge id given as a string.");
652 const double pos =
StoHelp::readTypedDouble(inputStorage,
"The second stop " + m2 +
" parameter must be the end position along the edge given as a double.");
653 const int laneIndex =
StoHelp::readTypedByte(inputStorage,
"The third stop " + m2 +
" parameter must be the lane index given as a byte.");
654 const double duration =
StoHelp::readTypedDouble(inputStorage,
"The fourth stop " + m2 +
" parameter must be the stopping duration given as a double.");
655 const int stopFlags =
StoHelp::readTypedInt(inputStorage,
"The fifth stop " + m2 +
" parameter must be an int indicating its parking/triggered status.");
656 const double startPos =
StoHelp::readTypedDouble(inputStorage,
"The sixth stop " + m2 +
" parameter must be the start position along the edge given as a double.");
657 const double until =
StoHelp::readTypedDouble(inputStorage,
"The seventh stop " + m2 +
" parameter must be the minimum departure time given as a double.");
658 const int nextStopIndex =
StoHelp::readTypedInt(inputStorage,
"The eighth stop " + m2 +
" parameter must be the replacement index given as an int.");
660 if (parameterCount == 9) {
661 teleport =
StoHelp::readTypedByte(inputStorage,
"The ninth stop " + m2 +
" parameter must be the teleport flag given as a byte.");
664 libsumo::Vehicle::replaceStop(
id, nextStopIndex, edgeID, pos, laneIndex, duration, stopFlags, startPos, until, teleport);
666 libsumo::Vehicle::insertStop(
id, nextStopIndex, edgeID, pos, laneIndex, duration, stopFlags, startPos, until, teleport);
@ RANDOM
The lane is chosen randomly.
@ BEST_FREE
The least occupied lane from best lanes.
@ ALLOWED_FREE
The least occupied lane from lanes which allow the continuation.
@ FIRST_ALLOWED
The rightmost lane the vehicle may use.
@ FREE
The least occupied lane is used.
@ RANDOM
A random position is chosen.
@ GIVEN
The position is given.
@ FREE
A free position is chosen.
@ BASE
Back-at-zero position.
@ LAST
Insert behind the last vehicle as close as possible to still allow the specified departSpeed....
@ RANDOM_FREE
If a fixed number of random choices fails, a free position is chosen.
@ RANDOM
The speed is chosen randomly.
@ MAX
The maximum safe speed is used.
@ LIMIT
The maximum lane speed is used (speedLimit)
@ DESIRED
The maximum lane speed is used (speedLimit * speedFactor)
@ LAST
The speed of the last vehicle. Fallback to DepartSpeedDefinition::DESIRED if there is no vehicle on t...
@ AVG
The average speed on the lane. Fallback to DepartSpeedDefinition::DESIRED if there is no vehicle on t...
@ BEGIN
The departure is at simulation start.
@ NOW
The vehicle is discarded if emission fails (not fully implemented yet)
@ SPLIT
The departure is triggered by a train split.
@ CONTAINER_TRIGGERED
The departure is container triggered.
@ TRIGGERED
The departure is person triggered.
std::string toHex(const T i, std::streamsize numDigits=0)
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
The base class for microscopic and mesoscopic vehicles.
MSVehicleType & getSingularType()
Replaces the current vehicle type with a new one used by this vehicle only.
const MSEdge * getEdge() const
Returns the edge the vehicle is currently at.
const std::vector< MSLane * > & getLanes() const
Returns this edge's lanes.
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
MSVehicleControl & getVehicleControl()
Returns the vehicle control.
SUMOVehicle * getVehicle(const std::string &id) const
Returns the vehicle with the given id.
const std::string & getID() const
Returns the name of the vehicle type.
const std::string & getID() const
Returns the id.
Representation of a vehicle.
static bool insertReplaceStop(TraCIServer &server, tcpip::Storage &inputStorage, tcpip::Storage &outputStorage, const std::string &id, bool replace)
static bool processSet(TraCIServer &server, tcpip::Storage &inputStorage, tcpip::Storage &outputStorage)
Processes a set value command (Command 0xc4: Change Vehicle State)
static bool processGet(TraCIServer &server, tcpip::Storage &inputStorage, tcpip::Storage &outputStorage)
Processes a get value command (Command 0xa4: Get Vehicle Variable)
static bool setVariable(const int cmd, const int variable, const std::string &id, TraCIServer &server, tcpip::Storage &inputStorage, tcpip::Storage &outputStorage)
Processes a set value for the given type.
TraCI server used to control sumo by a remote TraCI client.
void writeStatusCmd(int commandId, int status, const std::string &description, tcpip::Storage &outputStorage)
Writes a status command to the given storage.
tcpip::Storage & getWrapperStorage()
void initWrapper(const int domainID, const int variable, const std::string &objID)
bool writeErrorStatusCmd(int commandId, const std::string &description, tcpip::Storage &outputStorage)
Writes a status command to the given storage with status = RTYPE_ERR.
void writeResponseWithLength(tcpip::Storage &outputStorage, tcpip::Storage &tempMsg)
static int readTypedUnsignedByte(tcpip::Storage &ret, const std::string &error="")
static int readTypedByte(tcpip::Storage &ret, const std::string &error="")
static int readCompound(tcpip::Storage &ret, int expectedSize=-1, const std::string &error="")
static std::vector< std::string > readTypedStringList(tcpip::Storage &ret, const std::string &error="")
static int readTypedInt(tcpip::Storage &ret, const std::string &error="")
static std::string readTypedString(tcpip::Storage &ret, const std::string &error="")
static const libsumo::TraCIColor readTypedColor(tcpip::Storage &ret, const std::string &error="")
static double readTypedDouble(tcpip::Storage &ret, const std::string &error="")
An error which allows to continue.
virtual std::string readString()
virtual int readUnsignedByte()
virtual double readDouble()
TRACI_CONST double INVALID_DOUBLE_VALUE
TRACI_CONST int VAR_LANECHANGE_MODE
TRACI_CONST int MOVE_AUTOMATIC
TRACI_CONST int VAR_VEHICLECLASS
TRACI_CONST int VAR_IMPATIENCE
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_SHAPECLASS
TRACI_CONST int VAR_EDGE_TRAVELTIME
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 TYPE_COMPOUND
TRACI_CONST int VAR_EDGE_EFFORT
TRACI_CONST int VAR_ROUTE
TRACI_CONST int VAR_HIGHLIGHT
TRACI_CONST int VAR_BOARDING_DURATION
TRACI_CONST int VAR_MOVE_TO
TRACI_CONST int VAR_UPDATE_BESTLANES
TRACI_CONST int VAR_COLOR
TRACI_CONST int VAR_WIDTH
TRACI_CONST int VAR_STOP_PARAMETER
TRACI_CONST int VAR_MAXSPEED
TRACI_CONST int CMD_CHANGETARGET
TRACI_CONST int CMD_REROUTE_TO_PARKING
TRACI_CONST int RESPONSE_GET_VEHICLE_VARIABLE
TRACI_CONST int CMD_REROUTE_TRAVELTIME
TRACI_CONST int VAR_PREV_SPEED
TRACI_CONST int VAR_SPEEDSETMODE
TRACI_CONST int CMD_REPLACE_STOP
TRACI_CONST int CMD_SET_VEHICLE_VARIABLE
TRACI_CONST int VAR_LENGTH
TRACI_CONST int VAR_MAXSPEED_LAT
TRACI_CONST int CMD_REROUTE_EFFORT
TRACI_CONST int VAR_PARAMETER
TRACI_CONST int CMD_INSERT_STOP
TRACI_CONST int VAR_IMPERFECTION
TRACI_CONST int VAR_HEIGHT
TRACI_CONST int VAR_APPARENT_DECEL
TRACI_CONST int VAR_SPEED
TRACI_CONST int VAR_DECEL
TRACI_CONST int VAR_SIGNALS
TRACI_CONST int VAR_MINGAP_LAT
TRACI_CONST int CMD_SLOWDOWN
TRACI_CONST int VAR_ACCELERATION
TRACI_CONST int VAR_ROUTE_ID
TRACI_CONST int TYPE_DOUBLE
TRACI_CONST int CMD_OPENGAP
TRACI_CONST int VAR_LANEPOSITION_LAT
TRACI_CONST int CMD_CHANGELANE
TRACI_CONST int VAR_EMERGENCY_DECEL
TRACI_CONST int VAR_EMISSIONCLASS
TRACI_CONST int VAR_ACCEL