SUMO - Simulation of Urban MObility
TraCI_Vehicle.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2012-2017 German Aerospace Center (DLR) and others.
4 /****************************************************************************/
5 //
6 // This program and the accompanying materials
7 // are made available under the terms of the Eclipse Public License v2.0
8 // which accompanies this distribution, and is available at
9 // http://www.eclipse.org/legal/epl-v20.html
10 //
11 /****************************************************************************/
18 // C++ Vehicle API
19 /****************************************************************************/
20 #ifndef TraCI_Vehicle_h
21 #define TraCI_Vehicle_h
22 
23 
24 // ===========================================================================
25 // included modules
26 // ===========================================================================
27 #ifdef _MSC_VER
28 #include <windows_config.h>
29 #else
30 #include <config.h>
31 #endif
32 
33 #include <vector>
34 #include <traci-server/TraCIDefs.h>
36 
37 
38 // ===========================================================================
39 // class declarations
40 // ===========================================================================
41 class MSVehicle;
42 class MSVehicleType;
43 
44 
45 // ===========================================================================
46 // class definitions
47 // ===========================================================================
53 public:
56  static std::vector<std::string> getIDList();
57  static int getIDCount();
58  static double getSpeed(const std::string& vehicleID);
59  static double getSpeedWithoutTraCI(const std::string& vehicleID);
60  static TraCIPosition getPosition(const std::string& vehicleID);
61  static TraCIPosition getPosition3D(const std::string& vehicleID);
62  static double getAngle(const std::string& vehicleID);
63  static double getSlope(const std::string& vehicleID);
64  static std::string getRoadID(const std::string& vehicleID);
65  static std::string getLaneID(const std::string& vehicleID);
66  static int getLaneIndex(const std::string& vehicleID);
67  static std::string getTypeID(const std::string& vehicleID);
68  static std::string getRouteID(const std::string& vehicleID);
69  static int getRouteIndex(const std::string& vehicleID);
70  static TraCIColor getColor(const std::string& vehicleID);
71  static double getLanePosition(const std::string& vehicleID);
72  static double getLateralLanePosition(const std::string& vehicleID);
73  static double getCO2Emission(const std::string& vehicleID);
74  static double getCOEmission(const std::string& vehicleID);
75  static double getHCEmission(const std::string& vehicleID);
76  static double getPMxEmission(const std::string& vehicleID);
77  static double getNOxEmission(const std::string& vehicleID);
78  static double getFuelConsumption(const std::string& vehicleID);
79  static double getNoiseEmission(const std::string& vehicleID);
80  static double getElectricityConsumption(const std::string& vehicleID);
81  static int getPersonNumber(const std::string& vehicleID);
82  static std::pair<std::string, double> getLeader(const std::string& vehicleID, double dist);
83  static double getWaitingTime(const std::string& vehicleID);
84  static double getAccumulatedWaitingTime(const std::string& vehicleID);
85  static double getAdaptedTraveltime(const std::string& vehicleID, const std::string& edgeID, int time);
86  static double getEffort(const std::string& vehicleID, const std::string& edgeID, int time);
87  static bool isRouteValid(const std::string& vehicleID);
88  static std::vector<std::string> getEdges(const std::string& vehicleID);
89  static int getSignalStates(const std::string& vehicleID);
90  static std::vector<TraCIBestLanesData> getBestLanes(const std::string& vehicleID);
91  static std::vector<TraCINextTLSData> getNextTLS(const std::string& vehicleID);
92  static int getStopState(const std::string& vehicleID);
93  static double getDistance(const std::string& vehicleID);
94  static double getDrivingDistance(const std::string& vehicleID, const std::string& edgeID, double position, int laneIndex);
95  static double getDrivingDistance2D(const std::string& vehicleID, double x, double y);
96  static double getAllowedSpeed(const std::string& vehicleID);
97  static double getSpeedFactor(const std::string& vehicleID);
98  static int getSpeedMode(const std::string& vehicleID);
99  static int getLanechangeMode(const std::string& vehicleID);
100  static int getRoutingMode(const std::string& vehicleID);
101  static std::string getLine(const std::string& vehicleID);
102  static std::vector<std::string> getVia(const std::string& vehicleID);
103  static std::pair<int, int> getLaneChangeState(const std::string& vehicleID, int direction);
104  static std::string getParameter(const std::string& vehicleID, const std::string& key);
105  static const MSVehicleType& getVehicleType(const std::string& vehicleID);
107 
110  static std::string getEmissionClass(const std::string& vehicleID);
111  static std::string getShapeClass(const std::string& vehicleID);
112  static std::string getVClass(const std::string& vehicleID);
113  static double getLength(const std::string& vehicleID);
114  static double getAccel(const std::string& vehicleID);
115  static double getDecel(const std::string& vehicleID);
116  static double getEmergencyDecel(const std::string& vehicleID);
117  static double getApparentDecel(const std::string& vehicleID);
118  static double getActionStepLength(const std::string& vehicleID);
119  static double getLastActionTime(const std::string& vehicleID);
120  static double getTau(const std::string& vehicleID);
121  static double getImperfection(const std::string& vehicleID);
122  static double getSpeedDeviation(const std::string& vehicleID);
123  static double getMinGap(const std::string& vehicleID);
124  static double getMaxSpeed(const std::string& vehicleID);
125  static double getWidth(const std::string& vehicleID);
127 
130 
131  static void setStop(const std::string& vehicleID,
132  const std::string& edgeID,
133  double endPos = 1.,
134  int laneIndex = 0,
135  SUMOTime duration = 4294967295u, // 2^32-1
136  int flags = STOP_DEFAULT,
137  double startPos = INVALID_DOUBLE_VALUE,
138  SUMOTime until = -1);
139 
140  static void resume(const std::string& vehicleID);
141 
142  static void add(const std::string& vehicleID,
143  const std::string& routeID,
144  const std::string& typeID = "DEFAULT_VEHTYPE",
145  std::string depart = "-1",
146  const std::string& departLane = "first",
147  const std::string& departPos = "base",
148  const std::string& departSpeed = "0",
149  const std::string& arrivalLane = "current",
150  const std::string& arrivalPos = "max",
151  const std::string& arrivalSpeed = "current",
152  const std::string& fromTaz = "",
153  const std::string& toTaz = "",
154  const std::string& line = "",
155  int personCapacity = 0,
156  int personNumber = 0);
157 
158  static void changeTarget(const std::string& vehicleID, const std::string& edgeID);
159  static void changeLane(const std::string& vehicleID, int laneIndex, SUMOTime duration);
160  static void changeSublane(const std::string& vehicleID, double latDist);
161 
162  static void slowDown(const std::string& vehicleID, double speed, SUMOTime duration);
163  static void setSpeed(const std::string& vehicleID, double speed);
164  static void setType(const std::string& vehicleID, const std::string& typeID);
165  static void setRouteID(const std::string& vehicleID, const std::string& routeID);
166  static void setRoute(const std::string& vehicleID, const std::vector<std::string>& edgeIDs);
167  static void setAdaptedTraveltime(const std::string& vehicleID, const std::string& edgeID,
168  double time=INVALID_DOUBLE_VALUE, SUMOTime begTime=0, SUMOTime endTime=SUMOTime_MAX);
169  static void setEffort(const std::string& vehicleID, const std::string& edgeID,
170  double effort=INVALID_DOUBLE_VALUE, SUMOTime begTime=0, SUMOTime endTime=SUMOTime_MAX);
171  static void rerouteTraveltime(const std::string& vehicleID);
172  static void rerouteEffort(const std::string& vehicleID);
173  static void setSignals(const std::string& vehicleID, int signals);
174  static void moveTo(const std::string& vehicleID, const std::string& laneID, double position);
175  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);
176  static void setMaxSpeed(const std::string& vehicleID, double speed);
177  static void setActionStepLength(const std::string& vehicleID, double actionStepLength, bool resetActionOffset=true);
178  static void remove(const std::string& vehicleID, char reason = REMOVE_VAPORIZED);
179  static void setColor(const std::string& vehicleID, const TraCIColor& col);
180  static void setLine(const std::string& vehicleID, const std::string& line);
181  static void setVia(const std::string& vehicleID, const std::vector<std::string>& via);
182  static void setShapeClass(const std::string& vehicleID, const std::string& clazz);
183  static void setEmissionClass(const std::string& vehicleID, const std::string& clazz);
184  static void setParameter(const std::string& vehicleID, const std::string& key, const std::string& value);
186 
187 
188 private:
189  static MSVehicle* getVehicle(const std::string& id);
190 
191  static bool isVisible(const MSVehicle* veh);
192 
193  static bool isOnInit(const std::string& vehicleID);
194 
196  TraCI_Vehicle();
197 
199  TraCI_Vehicle(const TraCI_Vehicle& src);
200 
203 };
204 
205 
206 #endif
207 
208 /****************************************************************************/
209 
static void setSignals(const std::string &vehicleID, int signals)
static double getMinGap(const std::string &vehicleID)
static bool isOnInit(const std::string &vehicleID)
C++ TraCI client API implementation.
Definition: TraCI_Vehicle.h:52
Representation of a vehicle in the micro simulation.
Definition: MSVehicle.h:82
static double getLength(const std::string &vehicleID)
static int getPersonNumber(const std::string &vehicleID)
static void setRouteID(const std::string &vehicleID, const std::string &routeID)
static std::vector< TraCINextTLSData > getNextTLS(const std::string &vehicleID)
static double getAccel(const std::string &vehicleID)
static TraCIColor getColor(const std::string &vehicleID)
static double getApparentDecel(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 getAccumulatedWaitingTime(const std::string &vehicleID)
static double getPMxEmission(const std::string &vehicleID)
static double getAllowedSpeed(const std::string &vehicleID)
static double getDistance(const std::string &vehicleID)
static void setRoute(const std::string &vehicleID, const std::vector< std::string > &edgeIDs)
static void setColor(const std::string &vehicleID, const TraCIColor &col)
static void changeSublane(const std::string &vehicleID, double latDist)
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 std::string getEmissionClass(const std::string &vehicleID)
static void setParameter(const std::string &vehicleID, const std::string &key, const std::string &value)
static MSVehicle * getVehicle(const std::string &id)
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)
static double getSpeedDeviation(const std::string &vehicleID)
static int getStopState(const std::string &vehicleID)
static double getSpeedWithoutTraCI(const std::string &vehicleID)
The car-following model and parameter.
Definition: MSVehicleType.h:72
static double getActionStepLength(const std::string &vehicleID)
static double getTau(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 changeLane(const std::string &vehicleID, int laneIndex, SUMOTime duration)
static void setMaxSpeed(const std::string &vehicleID, double speed)
static double getLastActionTime(const std::string &vehicleID)
static double getEmergencyDecel(const std::string &vehicleID)
static double getWidth(const std::string &vehicleID)
static void setActionStepLength(const std::string &vehicleID, double actionStepLength, bool resetActionOffset=true)
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)
A 3D-position.
Definition: TraCIDefs.h:70
static double getElectricityConsumption(const std::string &vehicleID)
#define SUMOTime_MAX
Definition: TraCIDefs.h:52
static int getRoutingMode(const std::string &vehicleID)
static void setType(const std::string &vehicleID, const std::string &typeID)
static double getAngle(const std::string &vehicleID)
static int getSignalStates(const std::string &vehicleID)
static double getImperfection(const std::string &vehicleID)
static void moveTo(const std::string &vehicleID, const std::string &laneID, double position)
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)
static void setEffort(const std::string &vehicleID, const std::string &edgeID, double effort=INVALID_DOUBLE_VALUE, SUMOTime begTime=0, SUMOTime endTime=SUMOTime_MAX)
#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 std::string getVClass(const std::string &vehicleID)
static void changeTarget(const std::string &vehicleID, const std::string &edgeID)
static std::string getShapeClass(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)
A color.
Definition: TraCIDefs.h:77
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)
static void rerouteTraveltime(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 void slowDown(const std::string &vehicleID, double speed, SUMOTime duration)
static int getSpeedMode(const std::string &vehicleID)
static double getMaxSpeed(const std::string &vehicleID)
static int getLanechangeMode(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:51
static void resume(const std::string &vehicleID)
static double getSpeed(const std::string &vehicleID)
#define STOP_DEFAULT
static void rerouteEffort(const std::string &vehicleID)
static double getLanePosition(const std::string &vehicleID)
TraCI_Vehicle & operator=(const TraCI_Vehicle &src)
invalidated assignment operator
static std::pair< std::string, double > getLeader(const std::string &vehicleID, double dist)
static std::vector< std::string > getEdges(const std::string &vehicleID)
static std::vector< TraCIBestLanesData > getBestLanes(const std::string &vehicleID)
static void setAdaptedTraveltime(const std::string &vehicleID, const std::string &edgeID, double time=INVALID_DOUBLE_VALUE, SUMOTime begTime=0, SUMOTime endTime=SUMOTime_MAX)
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)
static double getDecel(const std::string &vehicleID)