SUMO - Simulation of Urban MObility
TraCI.h
Go to the documentation of this file.
1 /****************************************************************************/
9 // C++ TraCI client API implementation
10 /****************************************************************************/
11 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
12 // Copyright (C) 2012-2017 DLR (http://www.dlr.de/) and contributors
13 /****************************************************************************/
14 //
15 // This file is part of SUMO.
16 // SUMO is free software: you can redistribute it and/or modify
17 // it under the terms of the GNU General Public License as published by
18 // the Free Software Foundation, either version 3 of the License, or
19 // (at your option) any later version.
20 //
21 /****************************************************************************/
22 #ifndef TraCI_h
23 #define TraCI_h
24 
25 
26 // ===========================================================================
27 // included modules
28 // ===========================================================================
29 #ifdef _MSC_VER
30 #include <windows_config.h>
31 #else
32 #include <config.h>
33 #endif
34 
35 #include <vector>
36 #include <map>
37 #include <traci-server/TraCIDefs.h>
38 
39 class Position;
40 class PositionVector;
41 class RGBColor;
42 class MSEdge;
43 class MSLane;
44 
45 
46 // ===========================================================================
47 // class definitions
48 // ===========================================================================
53 class TraCI {
54 public:
57 
63  //void connect(const std::string& host, int port);
64 
65 
67  void close();
69 
71  static void load(const std::vector<std::string>& args);
72 
74  void simulationStep(SUMOTime time = 0);
75 
77  typedef std::map<int, TraCIValue> TraCIValues;
78  typedef std::map<std::string, TraCIValues> SubscribedValues;
79  typedef std::map<std::string, SubscribedValues> SubscribedContextValues;
80 
81  //void subscribe(int domID, const std::string& objID, SUMOTime beginTime, SUMOTime endTime, const std::vector<int>& vars) const;
82  //void subscribeContext(int domID, const std::string& objID, SUMOTime beginTime, SUMOTime endTime, int domain, double range, const std::vector<int>& vars) const;
83 
84  const SubscribedValues& getSubscriptionResults() const;
85  const TraCIValues& getSubscriptionResults(const std::string& objID) const;
86 
87  const SubscribedContextValues& getContextSubscriptionResults() const;
88  const SubscribedValues& getContextSubscriptionResults(const std::string& objID) const;
89 
91  static TraCIPositionVector makeTraCIPositionVector(const PositionVector& positionVector);
92  static TraCIPosition makeTraCIPosition(const Position& position);
93  static Position makePosition(const TraCIPosition& position);
94 
96  static TraCIColor makeTraCIColor(const RGBColor& color);
97  static RGBColor makeRGBColor(const TraCIColor& color);
98 
99  static MSEdge* getEdge(const std::string& edgeID);
100  static const MSLane* getLaneChecking(const std::string& edgeID, int laneIndex, double pos);
101  static std::pair<MSLane*, double> convertCartesianToRoadMap(Position pos);
102 
103  static std::vector<std::string>& getLoadArgs() {
104  return myLoadArgs;
105  }
106 
107 private:
109  TraCI(const TraCI& src);
110 
112  TraCI& operator=(const TraCI& src);
113 
114  SubscribedValues mySubscribedValues;
115  SubscribedContextValues mySubscribedContextValues;
116 
117  static std::vector<std::string> myLoadArgs;
118 };
119 
120 
121 #endif
122 
123 /****************************************************************************/
124 
static std::vector< std::string > & getLoadArgs()
Definition: TraCI.h:103
TraCI & operator=(const TraCI &src)
invalidated assignment operator
static TraCIColor makeTraCIColor(const RGBColor &color)
Definition: TraCI.cpp:128
static MSEdge * getEdge(const std::string &edgeID)
Definition: TraCI.cpp:160
static std::vector< std::string > myLoadArgs
Definition: TraCI.h:117
static void load(const std::vector< std::string > &args)
load a simulation with the given arguments
Definition: TraCI.cpp:61
A road/street connecting two junctions.
Definition: MSEdge.h:80
std::map< std::string, SubscribedValues > SubscribedContextValues
Definition: TraCI.h:79
std::map< std::string, TraCIValues > SubscribedValues
Definition: TraCI.h:78
static const MSLane * getLaneChecking(const std::string &edgeID, int laneIndex, double pos)
Definition: TraCI.cpp:169
A 3D-position.
Definition: TraCIDefs.h:71
static PositionVector makePositionVector(const TraCIPositionVector &vector)
Definition: TraCI.cpp:118
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:46
void close()
Connects to the specified SUMO server.
Definition: TraCI.cpp:66
A list of positions.
const SubscribedContextValues & getContextSubscriptionResults() const
Definition: TraCI.cpp:93
std::map< int, TraCIValue > TraCIValues
{object->{variable->value}}
Definition: TraCI.h:77
TraCI(const TraCI &src)
invalidated copy constructor
static std::pair< MSLane *, double > convertCartesianToRoadMap(Position pos)
Definition: TraCI.cpp:185
C++ TraCI client API implementation.
Definition: TraCI.h:53
void simulationStep(SUMOTime time=0)
Advances by one step (or up to the given time)
static TraCIPositionVector makeTraCIPositionVector(const PositionVector &positionVector)
helper functions
Definition: TraCI.cpp:108
SubscribedContextValues mySubscribedContextValues
Definition: TraCI.h:115
static Position makePosition(const TraCIPosition &position)
Definition: TraCI.cpp:153
static TraCIPosition makeTraCIPosition(const Position &position)
Definition: TraCI.cpp:144
long long int SUMOTime
Definition: TraCIDefs.h:52
const SubscribedValues & getSubscriptionResults() const
Definition: TraCI.cpp:79
static RGBColor makeRGBColor(const TraCIColor &color)
Definition: TraCI.cpp:138
Representation of a lane in the micro simulation.
Definition: MSLane.h:79
A list of positions.
SubscribedValues mySubscribedValues
Definition: TraCI.h:114