SUMO - Simulation of Urban MObility
TraCI_Vehicle.h
Go to the documentation of this file.
1 /****************************************************************************/
8 // C++ Vehicle API
9 /****************************************************************************/
10 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
11 // Copyright (C) 2012-2017 DLR (http://www.dlr.de/) and contributors
12 /****************************************************************************/
13 //
14 // This file is part of SUMO.
15 // SUMO is free software: you can redistribute it and/or modify
16 // it under the terms of the GNU General Public License as published by
17 // the Free Software Foundation, either version 3 of the License, or
18 // (at your option) any later version.
19 //
20 /****************************************************************************/
21 #ifndef TraCI_Vehicle_h
22 #define TraCI_Vehicle_h
23 
24 
25 // ===========================================================================
26 // included modules
27 // ===========================================================================
28 #ifdef _MSC_VER
29 #include <windows_config.h>
30 #else
31 #include <config.h>
32 #endif
33 
34 #include <vector>
35 #include <traci-server/TraCIDefs.h>
37 
38 
39 // ===========================================================================
40 // class declarations
41 // ===========================================================================
42 class MSVehicle;
43 class MSVehicleType;
44 
45 
46 // ===========================================================================
47 // class definitions
48 // ===========================================================================
54 public:
55  struct NextTLSData {
56  /* @brief Constructor */
59  std::string id;
61  int tlIndex;
63  double dist;
65  char state;
66  };
67 
68  struct BestLanesData {
69  /* @brief Constructor */
72  std::string laneID;
74  double length;
82  std::vector<std::string> continuationLanes;
83  };
84 
85 
88  static std::vector<std::string> getIDList();
89  static int getIDCount();
90  static double getSpeed(const std::string& vehicleID);
91  static double getSpeedWithoutTraCI(const std::string& vehicleID);
92  static TraCIPosition getPosition(const std::string& vehicleID);
93  static TraCIPosition getPosition3D(const std::string& vehicleID);
94  static double getAngle(const std::string& vehicleID);
95  static double getSlope(const std::string& vehicleID);
96  static std::string getRoadID(const std::string& vehicleID);
97  static std::string getLaneID(const std::string& vehicleID);
98  static int getLaneIndex(const std::string& vehicleID);
99  static std::string getTypeID(const std::string& vehicleID);
100  static std::string getRouteID(const std::string& vehicleID);
101  static int getRouteIndex(const std::string& vehicleID);
102  static TraCIColor getColor(const std::string& vehicleID);
103  static double getLanePosition(const std::string& vehicleID);
104  static double getLateralLanePosition(const std::string& vehicleID);
105  static double getCO2Emission(const std::string& vehicleID);
106  static double getCOEmission(const std::string& vehicleID);
107  static double getHCEmission(const std::string& vehicleID);
108  static double getPMxEmission(const std::string& vehicleID);
109  static double getNOxEmission(const std::string& vehicleID);
110  static double getFuelConsumption(const std::string& vehicleID);
111  static double getNoiseEmission(const std::string& vehicleID);
112  static double getElectricityConsumption(const std::string& vehicleID);
113  static int getPersonNumber(const std::string& vehicleID);
114  static std::pair<std::string, double> getLeader(const std::string& vehicleID, double dist);
115  static double getWaitingTime(const std::string& vehicleID);
116  static double getAdaptedTraveltime(const std::string& vehicleID, const std::string& edgeID, int time);
117  static double getEffort(const std::string& vehicleID, const std::string& edgeID, int time);
118  static bool isRouteValid(const std::string& vehicleID);
119  static std::vector<std::string> getEdges(const std::string& vehicleID);
120  static int getSignalStates(const std::string& vehicleID);
121  static std::vector<BestLanesData> getBestLanes(const std::string& vehicleID);
122  static std::vector<NextTLSData> getNextTLS(const std::string& vehicleID);
123  static int getStopState(const std::string& vehicleID);
124  static double getDistance(const std::string& vehicleID);
125  static double getDrivingDistance(const std::string& vehicleID, const std::string& edgeID, double position, int laneIndex);
126  static double getDrivingDistance2D(const std::string& vehicleID, double x, double y);
127  static double getAllowedSpeed(const std::string& vehicleID);
128  static double getSpeedFactor(const std::string& vehicleID);
129  static int getSpeedMode(const std::string& vehicleID);
130  static std::string getLine(const std::string& vehicleID);
131  static std::vector<std::string> getVia(const std::string& vehicleID);
132  static std::pair<int, int> getLaneChangeState(const std::string& vehicleID, int direction);
133  static std::string getParameter(const std::string& vehicleID, const std::string& key);
134 
135  static const MSVehicleType& getVehicleType(const std::string& vehicleID);
136  /* Type requests not yet implemented
137  static std::string getEmissionClass(const std::string& vehicleID);
138  static std::string getShapeClass(const std::string& vehicleID);
139  static std::string getVClass(const std::string& vehicleID);
140  static double getLength(const std::string& vehicleID);
141  static double getAccel(const std::string& vehicleID);
142  static double getDecel(const std::string& vehicleID);
143  static double getTau(const std::string& vehicleID);
144  static double getImperfection(const std::string& vehicleID);
145  static double getSpeedDeviation(const std::string& vehicleID);
146  static double getMinGap(const std::string& vehicleID);
147  static double getMaxSpeed(const std::string& vehicleID);
148  static double getWidth(const std::string& vehicleID);
149  */
151 
154 
155  static void setStop(const std::string& vehicleID,
156  const std::string& edgeID,
157  double endPos = 1.,
158  int laneIndex = 0,
159  SUMOTime duration = 4294967295u, // 2^32-1
160  int flags = STOP_DEFAULT,
161  double startPos = INVALID_DOUBLE_VALUE,
162  SUMOTime until = -1);
163 
164  static void resume(const std::string& vehicleID);
165 
166  static void add(const std::string& vehicleID,
167  const std::string& routeID,
168  const std::string& typeID = "DEFAULT_VEHTYPE",
169  std::string depart = "-1",
170  const std::string& departLane = "first",
171  const std::string& departPos = "base",
172  const std::string& departSpeed = "0",
173  const std::string& arrivalLane = "current",
174  const std::string& arrivalPos = "max",
175  const std::string& arrivalSpeed = "current",
176  const std::string& fromTaz = "",
177  const std::string& toTaz = "",
178  const std::string& line = "",
179  int personCapacity = 0,
180  int personNumber = 0);
181 
182  static void changeLane(const std::string& vehID, int laneIndex, SUMOTime duration);
183 
184  static void moveTo(const std::string& vehicleID, const std::string& laneID, double position);
185  static 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);
186  static void slowDown(const std::string& vehicleID, double speed, int duration);
187  static void setSpeed(const std::string& vehicleID, double speed);
188  static void setMaxSpeed(const std::string& vehicleID, double speed);
189  static void remove(const std::string& vehicleID, char reason = REMOVE_VAPORIZED);
190  static void setColor(const std::string& vehicleID, const TraCIColor& c);
191  static void setLine(const std::string& vehicleID, const std::string& line);
192  static void setVia(const std::string& vehicleID, const std::vector<std::string>& via);
193  static void setShapeClass(const std::string& vehicleID, const std::string& clazz);
194  static void setEmissionClass(const std::string& vehicleID, const std::string& clazz);
195  static void setParameter(const std::string& vehicleID, const std::string& key, const std::string& value);
197 
198 
199 private:
200  static MSVehicle* getVehicle(const std::string& id);
201 
202  static bool isVisible(const MSVehicle* veh);
203 
204  static bool onInit(const std::string& vehicleID);
205 
207  TraCI_Vehicle();
208 
210  TraCI_Vehicle(const TraCI_Vehicle& src);
211 
214 };
215 
216 
217 #endif
218 
219 /****************************************************************************/
220 
C++ TraCI client API implementation.
Definition: TraCI_Vehicle.h:53
std::vector< std::string > continuationLanes
The sequence of lanes that best allows continuing the route without lane change.
Definition: TraCI_Vehicle.h:82
Representation of a vehicle in the micro simulation.
Definition: MSVehicle.h:83
static int getPersonNumber(const std::string &vehicleID)
double nextOccupation
The traffic density along length.
Definition: TraCI_Vehicle.h:76
static TraCIColor getColor(const std::string &vehicleID)
static std::string getLaneID(const std::string &vehicleID)
static void setLine(const std::string &vehicleID, const std::string &line)
static double getPMxEmission(const std::string &vehicleID)
static double getAllowedSpeed(const std::string &vehicleID)
static double getDistance(const std::string &vehicleID)
int bestLaneOffset
The offset of this lane from the best lane.
Definition: TraCI_Vehicle.h:78
static double getNOxEmission(const std::string &vehicleID)
static std::vector< std::string > getVia(const std::string &vehicleID)
static double getWaitingTime(const std::string &vehicleID)
static bool isVisible(const MSVehicle *veh)
static 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)
static void setParameter(const std::string &vehicleID, const std::string &key, const std::string &value)
static MSVehicle * getVehicle(const std::string &id)
std::string laneID
The id of the lane.
Definition: TraCI_Vehicle.h:72
static int getRouteIndex(const std::string &vehicleID)
static std::pair< int, int > getLaneChangeState(const std::string &vehicleID, int direction)
static TraCIPosition getPosition3D(const std::string &vehicleID)
static std::string getRouteID(const std::string &vehicleID)
static std::vector< std::string > getIDList()
static double getCO2Emission(const std::string &vehicleID)
double dist
The distance to the tls.
Definition: TraCI_Vehicle.h:63
static int getStopState(const std::string &vehicleID)
static double getSpeedWithoutTraCI(const std::string &vehicleID)
The car-following model and parameter.
Definition: MSVehicleType.h:74
static void setColor(const std::string &vehicleID, const TraCIColor &c)
static std::vector< BestLanesData > getBestLanes(const std::string &vehicleID)
TraCI_Vehicle()
invalidated standard constructor
static std::string getLine(const std::string &vehicleID)
static TraCIPosition getPosition(const std::string &vehicleID)
static double getAdaptedTraveltime(const std::string &vehicleID, const std::string &edgeID, int time)
static void slowDown(const std::string &vehicleID, double speed, int duration)
static void setMaxSpeed(const std::string &vehicleID, double speed)
static double getNoiseEmission(const std::string &vehicleID)
static void setEmissionClass(const std::string &vehicleID, const std::string &clazz)
static double getFuelConsumption(const std::string &vehicleID)
static double getDrivingDistance2D(const std::string &vehicleID, double x, double y)
static bool isRouteValid(const std::string &vehicleID)
int tlIndex
The tls index of the controlled link.
Definition: TraCI_Vehicle.h:61
A 3D-position.
Definition: TraCIDefs.h:71
static double getElectricityConsumption(const std::string &vehicleID)
static double getAngle(const std::string &vehicleID)
static int getSignalStates(const std::string &vehicleID)
char state
The current state of the tls.
Definition: TraCI_Vehicle.h:65
static void moveTo(const std::string &vehicleID, const std::string &laneID, double position)
bool allowsContinuation
Whether this lane allows continuing the route.
Definition: TraCI_Vehicle.h:80
static void setStop(const std::string &vehicleID, const std::string &edgeID, double endPos=1., int laneIndex=0, SUMOTime duration=4294967295u, int flags=STOP_DEFAULT, double startPos=INVALID_DOUBLE_VALUE, SUMOTime until=-1)
double length
The length than can be driven from that lane without lane change.
Definition: TraCI_Vehicle.h:74
#define INVALID_DOUBLE_VALUE
static double getHCEmission(const std::string &vehicleID)
static double getCOEmission(const std::string &vehicleID)
static int getIDCount()
static std::string getParameter(const std::string &vehicleID, const std::string &key)
static double getSlope(const std::string &vehicleID)
static 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)
static const MSVehicleType & getVehicleType(const std::string &vehicleID)
static void changeLane(const std::string &vehID, int laneIndex, SUMOTime duration)
static double getSpeedFactor(const std::string &vehicleID)
static void setVia(const std::string &vehicleID, const std::vector< std::string > &via)
static std::string getRoadID(const std::string &vehicleID)
#define REMOVE_VAPORIZED
static double getDrivingDistance(const std::string &vehicleID, const std::string &edgeID, double position, int laneIndex)
static double getLateralLanePosition(const std::string &vehicleID)
static int getSpeedMode(const std::string &vehicleID)
static std::string getTypeID(const std::string &vehicleID)
static int getLaneIndex(const std::string &vehicleID)
long long int SUMOTime
Definition: TraCIDefs.h:52
static void resume(const std::string &vehicleID)
static double getSpeed(const std::string &vehicleID)
#define STOP_DEFAULT
static double getLanePosition(const std::string &vehicleID)
TraCI_Vehicle & operator=(const TraCI_Vehicle &src)
invalidated assignment operator
std::string id
The id of the next tls.
Definition: TraCI_Vehicle.h:59
static std::pair< std::string, double > getLeader(const std::string &vehicleID, double dist)
static std::vector< NextTLSData > getNextTLS(const std::string &vehicleID)
static std::vector< std::string > getEdges(const std::string &vehicleID)
static bool onInit(const std::string &vehicleID)
static void setSpeed(const std::string &vehicleID, double speed)
static void setShapeClass(const std::string &vehicleID, const std::string &clazz)
static double getEffort(const std::string &vehicleID, const std::string &edgeID, int time)