SUMO - Simulation of Urban MObility
Edge.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2017-2018 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
15 // C++ TraCI client API implementation
16 /****************************************************************************/
17 
18 #ifndef SUMO_Edge_H
19 #define SUMO_Edge_H
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 #include <config.h>
25 
26 #include <string>
27 #include <vector>
28 #include <memory>
29 #include <libsumo/TraCIDefs.h>
31 
32 
33 // ===========================================================================
34 // class declarations
35 // ===========================================================================
36 class MSEdge;
37 class PositionVector;
38 namespace libsumo {
39 class VariableWrapper;
40 }
41 
42 
43 // ===========================================================================
44 // class definitions
45 // ===========================================================================
50 namespace libsumo {
51 
52 class Edge {
53 public:
54  static std::vector<std::string> getIDList();
55  static int getIDCount();
56  static double getAdaptedTraveltime(const std::string& id, double time);
57  static double getEffort(const std::string& id, double time);
58  static double getTraveltime(const std::string& id);
59  static double getWaitingTime(const std::string& id);
60  static const std::vector<std::string> getLastStepPersonIDs(const std::string& id);
61  static const std::vector<std::string> getLastStepVehicleIDs(const std::string& id);
62  static double getCO2Emission(const std::string& id);
63  static double getCOEmission(const std::string& id);
64  static double getHCEmission(const std::string& id);
65  static double getPMxEmission(const std::string& id);
66  static double getNOxEmission(const std::string& id);
67  static double getFuelConsumption(const std::string& id);
68  static double getNoiseEmission(const std::string& id);
69  static double getElectricityConsumption(const std::string& id);
70  static int getLastStepVehicleNumber(const std::string& id);
71  static double getLastStepMeanSpeed(const std::string& id);
72  static double getLastStepOccupancy(const std::string& id);
73  static int getLastStepHaltingNumber(const std::string& id);
74  static double getLastStepLength(const std::string& id);
75  static int getLaneNumber(const std::string& id);
76  static std::string getStreetName(const std::string& id);
77  static std::string getParameter(const std::string& id, const std::string& paramName);
78  static void setAllowedVehicleClasses(const std::string& id, std::vector<std::string> vector);
79  static void setDisallowedVehicleClasses(const std::string& id, std::vector<std::string> classes);
80  static void setAllowedSVCPermissions(const std::string& id, int permissions);
81  static void adaptTraveltime(const std::string& id, double value, double begTime = 0., double endTime = std::numeric_limits<double>::max());
82  static void setEffort(const std::string& id, double value, double begTime = 0., double endTime = std::numeric_limits<double>::max());
83  static void setMaxSpeed(const std::string& id, double value);
84  static void setParameter(const std::string& id, const std::string& name, const std::string& value);
85 
87 
92  static void storeShape(const std::string& id, PositionVector& shape);
93 
94  static std::shared_ptr<VariableWrapper> makeWrapper();
95 
96  static bool handleVariable(const std::string& objID, const int variable, VariableWrapper* wrapper);
97 
98 private:
99  static MSEdge* getEdge(const std::string& id);
100 
101 private:
104 
105 private:
107  Edge() = delete;
108 
109 };
110 
111 }
112 
113 
114 #endif //SUMO_Edge_H
115 
116 /****************************************************************************/
std::map< std::string, TraCIResults > SubscriptionResults
{object->{variable->value}}
Definition: TraCIDefs.h:199
static void setEffort(const std::string &id, double value, double begTime=0., double endTime=std::numeric_limits< double >::max())
Definition: Edge.cpp:326
static double getNOxEmission(const std::string &id)
Definition: Edge.cpp:170
static int getIDCount()
Definition: Edge.cpp:50
#define LIBSUMO_SUBSCRIPTION_API
Definition: TraCIDefs.h:44
static double getCO2Emission(const std::string &id)
Definition: Edge.cpp:130
static ContextSubscriptionResults myContextSubscriptionResults
Definition: Edge.h:103
static double getFuelConsumption(const std::string &id)
Definition: Edge.cpp:180
static double getLastStepMeanSpeed(const std::string &id)
Definition: Edge.cpp:223
static double getHCEmission(const std::string &id)
Definition: Edge.cpp:150
static double getAdaptedTraveltime(const std::string &id, double time)
Definition: Edge.cpp:56
static void setDisallowedVehicleClasses(const std::string &id, std::vector< std::string > classes)
Definition: Edge.cpp:300
std::map< std::string, SubscriptionResults > ContextSubscriptionResults
Definition: TraCIDefs.h:200
Edge()=delete
invalidated standard constructor
static double getElectricityConsumption(const std::string &id)
Definition: Edge.cpp:203
static std::string getParameter(const std::string &id, const std::string &paramName)
Definition: Edge.cpp:287
static double getLastStepOccupancy(const std::string &id)
Definition: Edge.cpp:229
A road/street connecting two junctions.
Definition: MSEdge.h:75
static SubscriptionResults mySubscriptionResults
Definition: Edge.h:102
static void setAllowedVehicleClasses(const std::string &id, std::vector< std::string > vector)
Definition: Edge.cpp:293
static std::string getStreetName(const std::string &id)
Definition: Edge.cpp:281
static double getTraveltime(const std::string &id)
Definition: Edge.cpp:78
static double getNoiseEmission(const std::string &id)
Definition: Edge.cpp:190
A list of positions.
static double getEffort(const std::string &id, double time)
Definition: Edge.cpp:67
static double getCOEmission(const std::string &id)
Definition: Edge.cpp:140
static int getLastStepHaltingNumber(const std::string &id)
Definition: Edge.cpp:240
static const std::vector< std::string > getLastStepVehicleIDs(const std::string &id)
Definition: Edge.cpp:116
static void setAllowedSVCPermissions(const std::string &id, int permissions)
Definition: Edge.cpp:307
Definition: Edge.cpp:30
static double getWaitingTime(const std::string &id)
Definition: Edge.cpp:94
static void setMaxSpeed(const std::string &id, double value)
Definition: Edge.cpp:332
static void adaptTraveltime(const std::string &id, double value, double begTime=0., double endTime=std::numeric_limits< double >::max())
Definition: Edge.cpp:320
static MSEdge * getEdge(const std::string &id)
Definition: Edge.cpp:84
static std::shared_ptr< VariableWrapper > makeWrapper()
Definition: Edge.cpp:360
static double getPMxEmission(const std::string &id)
Definition: Edge.cpp:160
static int getLaneNumber(const std::string &id)
Definition: Edge.cpp:275
static double getLastStepLength(const std::string &id)
Definition: Edge.cpp:256
static const std::vector< std::string > getLastStepPersonIDs(const std::string &id)
Definition: Edge.cpp:104
static std::vector< std::string > getIDList()
Definition: Edge.cpp:42
static bool handleVariable(const std::string &objID, const int variable, VariableWrapper *wrapper)
Definition: Edge.cpp:366
static LIBSUMO_SUBSCRIPTION_API void storeShape(const std::string &id, PositionVector &shape)
Saves the shape of the requested object in the given container.
Definition: Edge.cpp:349
static int getLastStepVehicleNumber(const std::string &id)
Definition: Edge.cpp:213
static void setParameter(const std::string &id, const std::string &name, const std::string &value)
Definition: Edge.cpp:340