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:
57  static std::vector<std::string> getIDList();
58  static int getIDCount();
59  static double getSpeed(const std::string& vehicleID);
60  static double getSpeedWithoutTraCI(const std::string& vehicleID);
61  static TraCIPosition getPosition(const std::string& vehicleID);
62  static TraCIPosition getPosition3D(const std::string& vehicleID);
63  static double getAngle(const std::string& vehicleID);
64  static double getSlope(const std::string& vehicleID);
65  static std::string getRoadID(const std::string& vehicleID);
66  static std::string getLaneID(const std::string& vehicleID);
67  static int getLaneIndex(const std::string& vehicleID);
68  static std::string getTypeID(const std::string& vehicleID);
69  static std::string getRouteID(const std::string& vehicleID);
70  static int getRouteIndex(const std::string& vehicleID);
71  static TraCIColor getColor(const std::string& vehicleID);
72  static double getLanePosition(const std::string& vehicleID);
73  static double getLateralLanePosition(const std::string& vehicleID);
74  static double getCO2Emission(const std::string& vehicleID);
75  static double getCOEmission(const std::string& vehicleID);
76  static double getHCEmission(const std::string& vehicleID);
77  static double getPMxEmission(const std::string& vehicleID);
78  static double getNOxEmission(const std::string& vehicleID);
79  static double getFuelConsumption(const std::string& vehicleID);
80  static double getNoiseEmission(const std::string& vehicleID);
81  static double getElectricityConsumption(const std::string& vehicleID);
82  static int getPersonNumber(const std::string& vehicleID);
83  static std::pair<std::string, double> getLeader(const std::string& vehicleID, double dist);
84  static double getWaitingTime(const std::string& vehicleID);
85  static double getAccumulatedWaitingTime(const std::string& vehicleID);
86  static double getAdaptedTraveltime(const std::string& vehicleID, const std::string& edgeID, int time);
87  static double getEffort(const std::string& vehicleID, const std::string& edgeID, int time);
88  static bool isRouteValid(const std::string& vehicleID);
89  static std::vector<std::string> getEdges(const std::string& vehicleID);
90  static int getSignalStates(const std::string& vehicleID);
91  static std::vector<TraCIBestLanesData> getBestLanes(const std::string& vehicleID);
92  static std::vector<TraCINextTLSData> getNextTLS(const std::string& vehicleID);
93  static int getStopState(const std::string& vehicleID);
94  static double getDistance(const std::string& vehicleID);
95  static double getDrivingDistance(const std::string& vehicleID, const std::string& edgeID, double position, int laneIndex);
96  static double getDrivingDistance2D(const std::string& vehicleID, double x, double y);
97  static double getAllowedSpeed(const std::string& vehicleID);
98  static double getSpeedFactor(const std::string& vehicleID);
99  static int getSpeedMode(const std::string& vehicleID);
100  static int getLanechangeMode(const std::string& vehicleID);
101  static int getRoutingMode(const std::string& vehicleID);
102  static std::string getLine(const std::string& vehicleID);
103  static std::vector<std::string> getVia(const std::string& vehicleID);
104  static std::pair<int, int> getLaneChangeState(const std::string& vehicleID, int direction);
105  static std::string getParameter(const std::string& vehicleID, const std::string& key);
106 
107  static const MSVehicleType& getVehicleType(const std::string& vehicleID);
108  static std::string getEmissionClass(const std::string& vehicleID);
109  static std::string getShapeClass(const std::string& vehicleID);
110  static std::string getVClass(const std::string& vehicleID);
111  static double getLength(const std::string& vehicleID);
112  static double getAccel(const std::string& vehicleID);
113  static double getDecel(const std::string& vehicleID);
114  static double getEmergencyDecel(const std::string& vehicleID);
115  static double getApparentDecel(const std::string& vehicleID);
116  static double getTau(const std::string& vehicleID);
117  static double getImperfection(const std::string& vehicleID);
118  static double getSpeedDeviation(const std::string& vehicleID);
119  static double getMinGap(const std::string& vehicleID);
120  static double getMaxSpeed(const std::string& vehicleID);
121  static double getWidth(const std::string& vehicleID);
122 
124 
127 
128  static void setStop(const std::string& vehicleID,
129  const std::string& edgeID,
130  double endPos = 1.,
131  int laneIndex = 0,
132  SUMOTime duration = 4294967295u, // 2^32-1
133  int flags = STOP_DEFAULT,
134  double startPos = INVALID_DOUBLE_VALUE,
135  SUMOTime until = -1);
136 
137  static void resume(const std::string& vehicleID);
138 
139  static void add(const std::string& vehicleID,
140  const std::string& routeID,
141  const std::string& typeID = "DEFAULT_VEHTYPE",
142  std::string depart = "-1",
143  const std::string& departLane = "first",
144  const std::string& departPos = "base",
145  const std::string& departSpeed = "0",
146  const std::string& arrivalLane = "current",
147  const std::string& arrivalPos = "max",
148  const std::string& arrivalSpeed = "current",
149  const std::string& fromTaz = "",
150  const std::string& toTaz = "",
151  const std::string& line = "",
152  int personCapacity = 0,
153  int personNumber = 0);
154 
155  static void changeLane(const std::string& vehID, int laneIndex, SUMOTime duration);
156 
157  static void moveTo(const std::string& vehicleID, const std::string& laneID, double position);
158  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);
159  static void slowDown(const std::string& vehicleID, double speed, int duration);
160  static void setSpeed(const std::string& vehicleID, double speed);
161  static void setMaxSpeed(const std::string& vehicleID, double speed);
162  static void remove(const std::string& vehicleID, char reason = REMOVE_VAPORIZED);
163  static void setColor(const std::string& vehicleID, const TraCIColor& col);
164  static void setLine(const std::string& vehicleID, const std::string& line);
165  static void setVia(const std::string& vehicleID, const std::vector<std::string>& via);
166  static void setShapeClass(const std::string& vehicleID, const std::string& clazz);
167  static void setEmissionClass(const std::string& vehicleID, const std::string& clazz);
168  static void setParameter(const std::string& vehicleID, const std::string& key, const std::string& value);
170 
171 
172 private:
173  static MSVehicle* getVehicle(const std::string& id);
174 
175  static bool isVisible(const MSVehicle* veh);
176 
177  static bool onInit(const std::string& vehicleID);
178 
180  TraCI_Vehicle();
181 
183  TraCI_Vehicle(const TraCI_Vehicle& src);
184 
187 };
188 
189 
190 #endif
191 
192 /****************************************************************************/
193 
static double getMinGap(const std::string &vehicleID)
C++ TraCI client API implementation.
Definition: TraCI_Vehicle.h:53
Representation of a vehicle in the micro simulation.
Definition: MSVehicle.h:83
static double getLength(const std::string &vehicleID)
static int getPersonNumber(const std::string &vehicleID)
static std::vector< TraCINextTLSData > getNextTLS(const std::string &vehicleID)
static double getAccel(const std::string &vehicleID)
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 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 setColor(const std::string &vehicleID, const TraCIColor &col)
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:73
static double getTau(const std::string &vehicleID)
TraCI_Vehicle()
invalidated standard constructor
static double getEmergencyDecel(const std::string &vehicleID)
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 getWidth(const std::string &vehicleID)
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:71
static double getElectricityConsumption(const std::string &vehicleID)
static int getRoutingMode(const std::string &vehicleID)
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)
#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 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)
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 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: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
static std::pair< std::string, double > getLeader(const std::string &vehicleID, double dist)
static double getApparentDecel(const std::string &vehicleID)
static std::vector< std::string > getEdges(const std::string &vehicleID)
static bool onInit(const std::string &vehicleID)
static std::vector< TraCIBestLanesData > getBestLanes(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)
static double getDecel(const std::string &vehicleID)