Eclipse SUMO - Simulation of Urban MObility
libtraci/InductionLoop.cpp
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2012-2022 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials are made available under the
5 // terms of the Eclipse Public License 2.0 which is available at
6 // https://www.eclipse.org/legal/epl-2.0/
7 // This Source Code may also be made available under the following Secondary
8 // Licenses when the conditions for such availability set forth in the Eclipse
9 // Public License 2.0 are satisfied: GNU General Public License, version 2
10 // or later which is available at
11 // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12 // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13 /****************************************************************************/
21 // C++ TraCI client API implementation
22 /****************************************************************************/
23 #include <config.h>
24 
25 #define LIBTRACI 1
26 #include <libsumo/InductionLoop.h>
27 #include "Domain.h"
28 
29 
30 namespace libtraci {
31 
32 typedef Domain<libsumo::CMD_GET_INDUCTIONLOOP_VARIABLE, libsumo::CMD_SET_INDUCTIONLOOP_VARIABLE> Dom;
33 
34 
35 // ===========================================================================
36 // member definitions
37 // ===========================================================================
38 std::vector<std::string>
39 InductionLoop::getIDList() {
41 }
42 
43 
44 int
45 InductionLoop::getIDCount() {
46  return Dom::getInt(libsumo::ID_COUNT, "");
47 }
48 
49 
50 double
51 InductionLoop::getPosition(const std::string& detID) {
53 }
54 
55 
56 std::string
57 InductionLoop::getLaneID(const std::string& detID) {
58  return Dom::getString(libsumo::VAR_LANE_ID, detID);
59 }
60 
61 
62 int
63 InductionLoop::getLastStepVehicleNumber(const std::string& detID) {
65 }
66 
67 
68 double
69 InductionLoop::getLastStepMeanSpeed(const std::string& detID) {
71 }
72 
73 
74 std::vector<std::string>
75 InductionLoop::getLastStepVehicleIDs(const std::string& detID) {
77 }
78 
79 
80 double
81 InductionLoop::getLastStepOccupancy(const std::string& detID) {
83 }
84 
85 
86 double
87 InductionLoop::getLastStepMeanLength(const std::string& detID) {
89 }
90 
91 
92 double
93 InductionLoop::getTimeSinceDetection(const std::string& detID) {
95 }
96 
97 
98 std::vector<libsumo::TraCIVehicleData>
99 InductionLoop::getVehicleData(const std::string& detID) {
100  std::vector<libsumo::TraCIVehicleData> result;
102  ret.readInt(); // components
103  // number of items
104  ret.readUnsignedByte();
105  const int n = ret.readInt();
106  for (int i = 0; i < n; ++i) {
108 
109  ret.readUnsignedByte();
110  vd.id = ret.readString();
111 
112  ret.readUnsignedByte();
113  vd.length = ret.readDouble();
114 
115  ret.readUnsignedByte();
116  vd.entryTime = ret.readDouble();
117 
118  ret.readUnsignedByte();
119  vd.leaveTime = ret.readDouble();
120 
121  ret.readUnsignedByte();
122  vd.typeID = ret.readString();
123 
124  result.push_back(vd);
125  }
126  return result;
127 }
128 
129 
132 
133 
134 } // namespace libtraci
135 
136 /****************************************************************************/
#define LIBTRACI_SUBSCRIPTION_IMPLEMENTATION(CLASS, DOMAIN)
Definition: Domain.h:38
#define LIBTRACI_PARAMETER_IMPLEMENTATION(CLASS, DOMAIN)
Definition: Domain.h:76
C++ TraCI client API implementation.
Definition: InductionLoop.h:32
static std::vector< std::string > getStringVector(int var, const std::string &id, tcpip::Storage *add=nullptr)
Definition: Domain.h:170
static std::string getString(int var, const std::string &id, tcpip::Storage *add=nullptr)
Definition: Domain.h:166
static int getInt(int var, const std::string &id, tcpip::Storage *add=nullptr)
Definition: Domain.h:124
static double getDouble(int var, const std::string &id, tcpip::Storage *add=nullptr)
Definition: Domain.h:128
static tcpip::Storage & get(int var, const std::string &id, tcpip::Storage *add=nullptr, int expectedType=libsumo::TYPE_COMPOUND)
Definition: Domain.h:110
virtual std::string readString()
Definition: storage.cpp:180
virtual int readUnsignedByte()
Definition: storage.cpp:155
virtual double readDouble()
Definition: storage.cpp:362
virtual int readInt()
Definition: storage.cpp:311
TRACI_CONST int LAST_STEP_VEHICLE_ID_LIST
TRACI_CONST int LAST_STEP_VEHICLE_NUMBER
TRACI_CONST int TRACI_ID_LIST
TRACI_CONST int LAST_STEP_VEHICLE_DATA
TRACI_CONST int LAST_STEP_LENGTH
TRACI_CONST int VAR_POSITION
TRACI_CONST int LAST_STEP_MEAN_SPEED
TRACI_CONST int ID_COUNT
TRACI_CONST int VAR_LANE_ID
TRACI_CONST int LAST_STEP_OCCUPANCY
TRACI_CONST int LAST_STEP_TIME_SINCE_DETECTION
Domain< libsumo::CMD_GET_BUSSTOP_VARIABLE, libsumo::CMD_SET_BUSSTOP_VARIABLE > Dom
mirrors MSInductLoop::VehicleData
Definition: TraCIDefs.h:357
std::string id
The id of the vehicle.
Definition: TraCIDefs.h:359
double entryTime
Entry-time of the vehicle in [s].
Definition: TraCIDefs.h:363
std::string typeID
Type of the vehicle in.
Definition: TraCIDefs.h:367
double length
Length of the vehicle.
Definition: TraCIDefs.h:361
double leaveTime
Leave-time of the vehicle in [s].
Definition: TraCIDefs.h:365