Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
cpp/CEPHandler.h
Go to the documentation of this file.
1/****************************************************************************/
2// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3// Copyright (C) 2016-2024 German Aerospace Center (DLR) and others.
4// PHEMlight module
5// Copyright 2016 Technische Universitaet Graz, https://www.tugraz.at/
6// This program and the accompanying materials are made available under the
7// terms of the Eclipse Public License 2.0 which is available at
8// https://www.eclipse.org/legal/epl-2.0/
9// This Source Code may also be made available under the following Secondary
10// Licenses when the conditions for such availability set forth in the Eclipse
11// Public License 2.0 are satisfied: GNU General Public License, version 2
12// or later which is available at
13// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
14// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
15/****************************************************************************/
21//
22/****************************************************************************/
23
24
25#ifndef PHEMlightCEPHANDLER
26#define PHEMlightCEPHANDLER
27
28#include <string>
29#include <map>
30#include <vector>
31#include <utility>
32
33//C# TO C++ CONVERTER NOTE: Forward class declarations:
34namespace PHEMlightdll { class CEP; }
35namespace PHEMlightdll { class Helpers; }
36
37
38namespace PHEMlightdll {
39 class CEPHandler {
40 //--------------------------------------------------------------------------------------------------
41 // Constructors
42 //--------------------------------------------------------------------------------------------------
43
44 public:
45 CEPHandler();
46
47 //--------------------------------------------------------------------------------------------------
48 // Members
49 //--------------------------------------------------------------------------------------------------
50
51 private:
52 std::map<std::string, CEP*> _ceps;
53 public:
54 const std::map<std::string, CEP*>& getCEPS() const;
55
56
57 //--------------------------------------------------------------------------------------------------
58 // Methods
59 //--------------------------------------------------------------------------------------------------
60
61 bool GetCEP(const std::vector<std::string>& DataPath, Helpers* Helper);
62
63
64 //--------------------------------------------------------------------------------------------------
65 // Methods
66 //--------------------------------------------------------------------------------------------------
67
68 private:
69 bool Load(const std::vector<std::string>& DataPath, Helpers* Helper);
70
71 bool ReadVehicleFile(const std::vector<std::string>& DataPath, const std::string& emissionClass, Helpers* Helper, double& vehicleMass, double& vehicleLoading, double& vehicleMassRot, double& crossArea, double& cWValue, double& f0, double& f1, double& f2, double& f3, double& f4, double& axleRatio, double& auxPower, double& ratedPower, double& engineIdlingSpeed, double& engineRatedSpeed, double& effectiveWheelDiameter, std::vector<double>& transmissionGearRatios, std::string& vehicleMassType, std::string& vehicleFuelType, double& pNormV0, double& pNormP0, double& pNormV1, double& pNormP1, std::vector<std::vector<double> >& matrixSpeedInertiaTable, std::vector<std::vector<double> >& normedDragTable);
72
73 bool ReadEmissionData(bool readFC, const std::vector<std::string>& DataPath, const std::string& emissionClass, Helpers* Helper, std::vector<std::string>& header, std::vector<std::vector<double> >& matrix, std::vector<double>& idlingValues);
74
75
76 //--------------------------------------------------------------------------------------------------
77 // Functions
78 //--------------------------------------------------------------------------------------------------
79
80 //Split the string
81 std::vector<std::string> split(const std::string& s, char delim);
82
83 //Convert string to double
84 double todouble(const std::string& s);
85
86 //Convert string to double list
87 std::vector<double> todoubleList(const std::vector<std::string>& s);
88
89 //Read a line from file
90 std::string ReadLine(std::ifstream& s);
91 };
92}
93
94
95#endif //#ifndef PHEMlightCEPHANDLER
std::map< std::string, CEP * > _ceps
std::vector< std::string > split(const std::string &s, char delim)
const std::map< std::string, CEP * > & getCEPS() const
bool Load(const std::vector< std::string > &DataPath, Helpers *Helper)
bool ReadEmissionData(bool readFC, const std::vector< std::string > &DataPath, const std::string &emissionClass, Helpers *Helper, std::vector< std::string > &header, std::vector< std::vector< double > > &matrix, std::vector< double > &idlingValues)
double todouble(const std::string &s)
std::string ReadLine(std::ifstream &s)
bool GetCEP(const std::vector< std::string > &DataPath, Helpers *Helper)
std::vector< double > todoubleList(const std::vector< std::string > &s)
bool ReadVehicleFile(const std::vector< std::string > &DataPath, const std::string &emissionClass, Helpers *Helper, double &vehicleMass, double &vehicleLoading, double &vehicleMassRot, double &crossArea, double &cWValue, double &f0, double &f1, double &f2, double &f3, double &f4, double &axleRatio, double &auxPower, double &ratedPower, double &engineIdlingSpeed, double &engineRatedSpeed, double &effectiveWheelDiameter, std::vector< double > &transmissionGearRatios, std::string &vehicleMassType, std::string &vehicleFuelType, double &pNormV0, double &pNormP0, double &pNormV1, double &pNormP1, std::vector< std::vector< double > > &matrixSpeedInertiaTable, std::vector< std::vector< double > > &normedDragTable)