Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/src/libtraci/VehicleType.cpp
169665 views
1
/****************************************************************************/
2
// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3
// Copyright (C) 2017-2025 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
/****************************************************************************/
14
/// @file VehicleType.cpp
15
/// @author Jakob Erdmann
16
/// @author Michael Behrisch
17
/// @date 30.05.2012
18
///
19
// C++ TraCI client API implementation
20
/****************************************************************************/
21
#include <config.h>
22
#include <sstream>
23
24
#define LIBTRACI 1
25
#include <libsumo/VehicleType.h>
26
#include "Connection.h"
27
#include "Domain.h"
28
29
30
namespace libtraci {
31
32
typedef Domain<libsumo::CMD_GET_VEHICLETYPE_VARIABLE, libsumo::CMD_SET_VEHICLETYPE_VARIABLE> Dom;
33
34
35
// ===========================================================================
36
// static member definitions
37
// ===========================================================================
38
std::vector<std::string>
39
VehicleType::getIDList() {
40
return Dom::getStringVector(libsumo::TRACI_ID_LIST, "");
41
}
42
43
44
int
45
VehicleType::getIDCount() {
46
return Dom::getInt(libsumo::ID_COUNT, "");
47
}
48
49
50
LIBTRACI_SUBSCRIPTION_IMPLEMENTATION(VehicleType, VEHICLETYPE)
51
LIBTRACI_PARAMETER_IMPLEMENTATION(VehicleType, VEHICLETYPE)
52
53
54
void
55
VehicleType::copy(const std::string& origTypeID, const std::string& newTypeID) {
56
Dom::setString(libsumo::COPY, origTypeID, newTypeID);
57
}
58
59
double
60
VehicleType::getSpeedFactor(const std::string& typeID) {
61
return Dom::getDouble(libsumo::VAR_SPEED_FACTOR, typeID);
62
}
63
64
double
65
VehicleType::getSpeedDeviation(const std::string& typeID) {
66
return Dom::getDouble(libsumo::VAR_SPEED_DEVIATION, typeID);
67
}
68
69
70
std::string
71
VehicleType::getEmissionClass(const std::string& typeID) {
72
return Dom::getString(libsumo::VAR_EMISSIONCLASS, typeID);
73
}
74
75
std::string
76
VehicleType::getShapeClass(const std::string& typeID) {
77
return Dom::getString(libsumo::VAR_SHAPECLASS, typeID);
78
}
79
80
81
double
82
VehicleType::getLength(const std::string& typeID) {
83
return Dom::getDouble(libsumo::VAR_LENGTH, typeID);
84
}
85
86
87
double
88
VehicleType::getAccel(const std::string& typeID) {
89
return Dom::getDouble(libsumo::VAR_ACCEL, typeID);
90
}
91
92
93
double
94
VehicleType::getDecel(const std::string& typeID) {
95
return Dom::getDouble(libsumo::VAR_DECEL, typeID);
96
}
97
98
99
double VehicleType::getEmergencyDecel(const std::string& typeID) {
100
return Dom::getDouble(libsumo::VAR_EMERGENCY_DECEL, typeID);
101
}
102
103
104
double VehicleType::getApparentDecel(const std::string& typeID) {
105
return Dom::getDouble(libsumo::VAR_APPARENT_DECEL, typeID);
106
}
107
108
109
double VehicleType::getActionStepLength(const std::string& typeID) {
110
return Dom::getDouble(libsumo::VAR_ACTIONSTEPLENGTH, typeID);
111
}
112
113
114
double
115
VehicleType::getTau(const std::string& typeID) {
116
return Dom::getDouble(libsumo::VAR_TAU, typeID);
117
}
118
119
120
double
121
VehicleType::getImperfection(const std::string& typeID) {
122
return Dom::getDouble(libsumo::VAR_IMPERFECTION, typeID);
123
}
124
125
126
std::string
127
VehicleType::getVehicleClass(const std::string& typeID) {
128
return Dom::getString(libsumo::VAR_VEHICLECLASS, typeID);
129
}
130
131
132
double
133
VehicleType::getMinGap(const std::string& typeID) {
134
return Dom::getDouble(libsumo::VAR_MINGAP, typeID);
135
}
136
137
138
double
139
VehicleType::getMinGapLat(const std::string& typeID) {
140
return Dom::getDouble(libsumo::VAR_MINGAP_LAT, typeID);
141
}
142
143
144
double
145
VehicleType::getMaxSpeed(const std::string& typeID) {
146
return Dom::getDouble(libsumo::VAR_MAXSPEED, typeID);
147
}
148
149
150
double
151
VehicleType::getMaxSpeedLat(const std::string& typeID) {
152
return Dom::getDouble(libsumo::VAR_MAXSPEED_LAT, typeID);
153
}
154
155
156
std::string
157
VehicleType::getLateralAlignment(const std::string& typeID) {
158
return Dom::getString(libsumo::VAR_LATALIGNMENT, typeID);
159
}
160
161
162
double
163
VehicleType::getWidth(const std::string& typeID) {
164
return Dom::getDouble(libsumo::VAR_WIDTH, typeID);
165
}
166
167
168
double
169
VehicleType::getHeight(const std::string& typeID) {
170
return Dom::getDouble(libsumo::VAR_HEIGHT, typeID);
171
}
172
173
174
double
175
VehicleType::getMass(const std::string& typeID) {
176
return Dom::getDouble(libsumo::VAR_MASS, typeID);
177
}
178
179
180
libsumo::TraCIColor
181
VehicleType::getColor(const std::string& typeID) {
182
return Dom::getCol(libsumo::VAR_COLOR, typeID);
183
}
184
185
186
int
187
VehicleType::getPersonCapacity(const std::string& typeID) {
188
return Dom::getInt(libsumo::VAR_PERSON_CAPACITY, typeID);
189
}
190
191
192
double
193
VehicleType::getScale(const std::string& typeID) {
194
return Dom::getDouble(libsumo::VAR_SCALE, typeID);
195
}
196
197
198
double
199
VehicleType::getBoardingDuration(const std::string& typeID) {
200
return Dom::getDouble(libsumo::VAR_BOARDING_DURATION, typeID);
201
}
202
203
204
double
205
VehicleType::getImpatience(const std::string& typeID) {
206
return Dom::getDouble(libsumo::VAR_IMPATIENCE, typeID);
207
}
208
209
210
void
211
VehicleType::setImpatience(const std::string& typeID, double impatience) {
212
Dom::setDouble(libsumo::VAR_IMPATIENCE, typeID, impatience);
213
}
214
215
void
216
VehicleType::setBoardingDuration(const std::string& typeID, double boardingDuration) {
217
Dom::setDouble(libsumo::VAR_BOARDING_DURATION, typeID, boardingDuration);
218
}
219
220
void
221
VehicleType::setActionStepLength(const std::string& typeID, double actionStepLength, bool resetActionOffset) {
222
//if (actionStepLength < 0) {
223
// raise TraCIException("Invalid value for actionStepLength. Given value must be non-negative.")
224
//{
225
// Use negative value to indicate resetActionOffset == False
226
if (!resetActionOffset) {
227
actionStepLength *= -1;
228
}
229
Dom::setDouble(libsumo::VAR_ACTIONSTEPLENGTH, typeID, actionStepLength);
230
}
231
232
233
void
234
VehicleType::setColor(const std::string& typeID, const libsumo::TraCIColor& col) {
235
Dom::setCol(libsumo::VAR_COLOR, typeID, col);
236
}
237
238
239
void
240
VehicleType::setSpeedFactor(const std::string& typeID, double factor) {
241
Dom::setDouble(libsumo::VAR_SPEED_FACTOR, typeID, factor);
242
}
243
244
245
void
246
VehicleType::setSpeedDeviation(const std::string& typeID, double deviation) {
247
Dom::setDouble(libsumo::VAR_SPEED_DEVIATION, typeID, deviation);
248
}
249
250
251
void
252
VehicleType::setLength(const std::string& typeID, double length) {
253
Dom::setDouble(libsumo::VAR_LENGTH, typeID, length);
254
}
255
256
257
void
258
VehicleType::setMaxSpeed(const std::string& typeID, double speed) {
259
Dom::setDouble(libsumo::VAR_MAXSPEED, typeID, speed);
260
}
261
262
263
void
264
VehicleType::setVehicleClass(const std::string& typeID, const std::string& clazz) {
265
Dom::setString(libsumo::VAR_VEHICLECLASS, typeID, clazz);
266
}
267
268
269
void
270
VehicleType::setShapeClass(const std::string& typeID, const std::string& clazz) {
271
Dom::setString(libsumo::VAR_SHAPECLASS, typeID, clazz);
272
}
273
274
275
void
276
VehicleType::setEmissionClass(const std::string& typeID, const std::string& clazz) {
277
Dom::setString(libsumo::VAR_EMISSIONCLASS, typeID, clazz);
278
}
279
280
281
void
282
VehicleType::setWidth(const std::string& typeID, double width) {
283
Dom::setDouble(libsumo::VAR_WIDTH, typeID, width);
284
}
285
286
287
void
288
VehicleType::setHeight(const std::string& typeID, double height) {
289
Dom::setDouble(libsumo::VAR_HEIGHT, typeID, height);
290
}
291
292
293
void
294
VehicleType::setMass(const std::string& typeID, double mass) {
295
Dom::setDouble(libsumo::VAR_MASS, typeID, mass);
296
}
297
298
299
void
300
VehicleType::setMinGap(const std::string& typeID, double minGap) {
301
Dom::setDouble(libsumo::VAR_MINGAP, typeID, minGap);
302
}
303
304
305
void
306
VehicleType::setAccel(const std::string& typeID, double accel) {
307
Dom::setDouble(libsumo::VAR_ACCEL, typeID, accel);
308
}
309
310
311
void
312
VehicleType::setDecel(const std::string& typeID, double decel) {
313
Dom::setDouble(libsumo::VAR_DECEL, typeID, decel);
314
}
315
316
317
void
318
VehicleType::setEmergencyDecel(const std::string& typeID, double decel) {
319
Dom::setDouble(libsumo::VAR_EMERGENCY_DECEL, typeID, decel);
320
}
321
322
323
void
324
VehicleType::setApparentDecel(const std::string& typeID, double decel) {
325
Dom::setDouble(libsumo::VAR_APPARENT_DECEL, typeID, decel);
326
}
327
328
329
void
330
VehicleType::setImperfection(const std::string& typeID, double imperfection) {
331
Dom::setDouble(libsumo::VAR_IMPERFECTION, typeID, imperfection);
332
}
333
334
335
void
336
VehicleType::setTau(const std::string& typeID, double tau) {
337
Dom::setDouble(libsumo::VAR_TAU, typeID, tau);
338
}
339
340
341
void
342
VehicleType::setMinGapLat(const std::string& typeID, double minGapLat) {
343
Dom::setDouble(libsumo::VAR_MINGAP_LAT, typeID, minGapLat);
344
}
345
346
347
void
348
VehicleType::setMaxSpeedLat(const std::string& typeID, double speed) {
349
Dom::setDouble(libsumo::VAR_MAXSPEED_LAT, typeID, speed);
350
}
351
352
353
void
354
VehicleType::setLateralAlignment(const std::string& typeID, const std::string& latAlignment) {
355
Dom::setString(libsumo::VAR_LATALIGNMENT, typeID, latAlignment);
356
}
357
358
void
359
VehicleType::setScale(const std::string& typeID, double value) {
360
Dom::setDouble(libsumo::VAR_SCALE, typeID, value);
361
}
362
363
}
364
365
366
/****************************************************************************/
367
368