Line data Source code
1 : /****************************************************************************/
2 : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3 : // Copyright (C) 2017-2024 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 ChargingStation.cpp
15 : /// @author Angelo Banse
16 : /// @date 10.11.2020
17 : ///
18 : // C++ TraCI client API implementation
19 : /****************************************************************************/
20 : #include <config.h>
21 :
22 : #define LIBTRACI 1
23 : #include <libsumo/TraCIConstants.h>
24 : #include <libsumo/ChargingStation.h>
25 : #include "Connection.h"
26 : #include "Domain.h"
27 :
28 :
29 : namespace libtraci {
30 :
31 : typedef Domain<libsumo::CMD_GET_CHARGINGSTATION_VARIABLE, libsumo::CMD_SET_CHARGINGSTATION_VARIABLE> Dom;
32 :
33 : // ===========================================================================
34 : // static member definitions
35 : // ===========================================================================
36 :
37 : std::vector<std::string>
38 145 : ChargingStation::getIDList() {
39 289 : return Dom::getStringVector(libsumo::TRACI_ID_LIST, "");
40 : }
41 :
42 : int
43 3 : ChargingStation::getIDCount() {
44 6 : return (int)Dom::getStringVector(libsumo::TRACI_ID_LIST, "").size();
45 : }
46 :
47 :
48 : std::string
49 6 : ChargingStation::getLaneID(const std::string& stopID) {
50 6 : return Dom::getString(libsumo::VAR_LANE_ID, stopID);
51 : }
52 :
53 : double
54 6 : ChargingStation::getStartPos(const std::string& stopID) {
55 6 : return Dom::getDouble(libsumo::VAR_POSITION, stopID);
56 : }
57 :
58 : double
59 6 : ChargingStation::getEndPos(const std::string& stopID) {
60 6 : return Dom::getDouble(libsumo::VAR_LANEPOSITION, stopID);
61 : }
62 :
63 : std::string
64 6 : ChargingStation::getName(const std::string& stopID) {
65 6 : return Dom::getString(libsumo::VAR_NAME, stopID);
66 : }
67 :
68 : int
69 20 : ChargingStation::getVehicleCount(const std::string& stopID) {
70 20 : return Dom::getInt(libsumo::VAR_STOP_STARTING_VEHICLES_NUMBER, stopID);
71 : }
72 :
73 : std::vector<std::string>
74 20 : ChargingStation::getVehicleIDs(const std::string& stopID) {
75 20 : return Dom::getStringVector(libsumo::VAR_STOP_STARTING_VEHICLES_IDS, stopID);
76 : }
77 :
78 : double
79 104 : ChargingStation::getChargingPower(const std::string& stopID) {
80 104 : return Dom::getDouble(libsumo::VAR_CS_POWER, stopID);
81 : }
82 :
83 : double
84 104 : ChargingStation::getEfficiency(const std::string& stopID) {
85 104 : return Dom::getDouble(libsumo::VAR_CS_EFFICIENCY, stopID);
86 : }
87 :
88 : double
89 4 : ChargingStation::getChargeDelay(const std::string& stopID) {
90 4 : return Dom::getDouble(libsumo::VAR_CS_CHARGE_DELAY, stopID);
91 : }
92 :
93 : int
94 4 : ChargingStation::getChargeInTransit(const std::string& stopID) {
95 4 : return Dom::getInt(libsumo::VAR_CS_CHARGE_IN_TRANSIT, stopID);
96 : }
97 :
98 0 : LIBTRACI_PARAMETER_IMPLEMENTATION(ChargingStation, CHARGINGSTATION)
99 :
100 : void
101 102 : ChargingStation::setChargingPower(const std::string& stopID, double chargingpower) {
102 102 : Dom::setDouble(libsumo::VAR_CS_POWER, stopID, chargingpower);
103 102 : }
104 :
105 : void
106 102 : ChargingStation::setEfficiency(const std::string& stopID, double efficiency) {
107 102 : Dom::setDouble(libsumo::VAR_CS_EFFICIENCY, stopID, efficiency);
108 102 : }
109 :
110 : void
111 2 : ChargingStation::setChargeDelay(const std::string& stopID, double delay) {
112 2 : Dom::setDouble(libsumo::VAR_CS_CHARGE_DELAY, stopID, delay);
113 2 : }
114 :
115 : void
116 2 : ChargingStation::setChargeInTransit(const std::string& stopID, bool value) {
117 2 : Dom::setInt(libsumo::VAR_CS_CHARGE_IN_TRANSIT, stopID, value);
118 2 : }
119 :
120 :
121 102 : LIBTRACI_SUBSCRIPTION_IMPLEMENTATION(ChargingStation, CHARGINGSTATION)
122 :
123 : }
124 :
125 :
126 : /****************************************************************************/
|