Eclipse SUMO - Simulation of Urban MObility
MSMeanData_Harmonoise.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
15 // Noise data collector for edges/lanes
16 /****************************************************************************/
17 #ifndef MSMeanData_Harmonoise_h
18 #define MSMeanData_Harmonoise_h
19 
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 #include <config.h>
25 
26 #include <vector>
27 #include <limits>
28 #include "MSMeanData.h"
29 
30 
31 // ===========================================================================
32 // class declarations
33 // ===========================================================================
34 class OutputDevice;
35 class MSLane;
36 
37 
38 // ===========================================================================
39 // class definitions
40 // ===========================================================================
53 public:
62  public:
64  MSLaneMeanDataValues(MSLane* const lane, const double length, const bool doAdd,
65  const MSMeanData_Harmonoise* parent);
66 
68  virtual ~MSLaneMeanDataValues();
69 
70 
73  void reset(bool afterWrite = false);
74 
77  void addTo(MSMeanData::MeanDataValues& val) const;
78 
79 
85  void update();
86 
95  void write(OutputDevice& dev, const SUMOTime period,
96  const double numLanes, const double defaultTravelTime,
97  const int numVehicles = -1) const;
98 
99 
100  protected:
104  void notifyMoveInternal(const SUMOTrafficObject& veh, const double /* frontOnLane */, const double timeOnLane, const double meanSpeedFrontOnLane, const double meanSpeedVehicleOnLane, const double travelledDistanceFrontOnLane, const double travelledDistanceVehicleOnLane, const double /* meanLengthOnLane */);
105 
106  private:
109 
111  double currentTimeN;
112 
114  double meanNTemp;
116 
117 
120  };
121 
122 
123 public:
138  MSMeanData_Harmonoise(const std::string& id,
139  const SUMOTime dumpBegin, const SUMOTime dumpEnd,
140  const bool useLanes, const bool withEmpty,
141  const bool printDefaults, const bool withInternal,
142  const bool trackVehicles,
143  const double minSamples, const double maxTravelTime,
144  const std::string& vTypes);
145 
146 
148  virtual ~MSMeanData_Harmonoise();
149 
152  virtual void detectorUpdate(const SUMOTime step);
153 
154 
155 protected:
161  MSMeanData::MeanDataValues* createValues(MSLane* const lane, const double length, const bool doAdd) const;
162 
163 private:
166 
169 
170 };
171 
172 
173 #endif
174 
175 /****************************************************************************/
176 
SUMOTrafficObject
Representation of a vehicle or person.
Definition: SUMOTrafficObject.h:47
MSMeanData_Harmonoise::MSLaneMeanDataValues::addTo
void addTo(MSMeanData::MeanDataValues &val) const
Add the values to this meanData.
Definition: MSMeanData_Harmonoise.cpp:61
MSMeanData_Harmonoise::MSLaneMeanDataValues::meanNTemp
double meanNTemp
Sum of produced noise over time (pow(10, (<NOISE>/10.)))
Definition: MSMeanData_Harmonoise.h:114
MSLane
Representation of a lane in the micro simulation.
Definition: MSLane.h:82
MSMeanData_Harmonoise::createValues
MSMeanData::MeanDataValues * createValues(MSLane *const lane, const double length, const bool doAdd) const
Create an instance of MeanDataValues.
Definition: MSMeanData_Harmonoise.cpp:125
OutputDevice
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:63
MSMeanData_Harmonoise
Noise data collector for edges/lanes.
Definition: MSMeanData_Harmonoise.h:52
MSMeanData_Harmonoise::MSMeanData_Harmonoise
MSMeanData_Harmonoise(const std::string &id, const SUMOTime dumpBegin, const SUMOTime dumpEnd, const bool useLanes, const bool withEmpty, const bool printDefaults, const bool withInternal, const bool trackVehicles, const double minSamples, const double maxTravelTime, const std::string &vTypes)
Constructor.
Definition: MSMeanData_Harmonoise.cpp:109
MSMeanData_Harmonoise::MSLaneMeanDataValues::update
void update()
Computes the noise in the last time step.
Definition: MSMeanData_Harmonoise.cpp:70
SUMOTime
long long int SUMOTime
Definition: SUMOTime.h:34
MSMeanData_Harmonoise::MSLaneMeanDataValues::myParent
const MSMeanData_Harmonoise * myParent
The meandata parent.
Definition: MSMeanData_Harmonoise.h:119
MSMeanData
Data collector for edges/lanes.
Definition: MSMeanData.h:59
MSMeanData_Harmonoise::MSLaneMeanDataValues::MSLaneMeanDataValues
MSLaneMeanDataValues(MSLane *const lane, const double length, const bool doAdd, const MSMeanData_Harmonoise *parent)
Constructor.
Definition: MSMeanData_Harmonoise.cpp:41
MSMeanData_Harmonoise::detectorUpdate
virtual void detectorUpdate(const SUMOTime step)
Updates the detector.
Definition: MSMeanData_Harmonoise.cpp:131
MSMeanData::MeanDataValues
Data structure for mean (aggregated) edge/lane values.
Definition: MSMeanData.h:68
MSMeanData_Harmonoise::operator=
MSMeanData_Harmonoise & operator=(const MSMeanData_Harmonoise &)
Invalidated assignment operator.
MSMeanData_Harmonoise::MSLaneMeanDataValues
Data structure for mean (aggregated) edge/lane values.
Definition: MSMeanData_Harmonoise.h:61
MSMeanData_Harmonoise::~MSMeanData_Harmonoise
virtual ~MSMeanData_Harmonoise()
Destructor.
Definition: MSMeanData_Harmonoise.cpp:121
MSMeanData_Harmonoise::MSLaneMeanDataValues::reset
void reset(bool afterWrite=false)
Resets values so they may be used for the next interval.
Definition: MSMeanData_Harmonoise.cpp:52
MSMeanData_Harmonoise::MSLaneMeanDataValues::currentTimeN
double currentTimeN
Sum of produced noise at this time step(pow(10, (<NOISE>/10.)))
Definition: MSMeanData_Harmonoise.h:111
MSMeanData_Harmonoise::MSLaneMeanDataValues::~MSLaneMeanDataValues
virtual ~MSLaneMeanDataValues()
Destructor.
Definition: MSMeanData_Harmonoise.cpp:47
config.h
MSMeanData.h
MSMeanData_Harmonoise::MSLaneMeanDataValues::notifyMoveInternal
void notifyMoveInternal(const SUMOTrafficObject &veh, const double, const double timeOnLane, const double meanSpeedFrontOnLane, const double meanSpeedVehicleOnLane, const double travelledDistanceFrontOnLane, const double travelledDistanceVehicleOnLane, const double)
Internal notification about the vehicle moves.
Definition: MSMeanData_Harmonoise.cpp:77
MSMeanData_Harmonoise::MSLaneMeanDataValues::write
void write(OutputDevice &dev, const SUMOTime period, const double numLanes, const double defaultTravelTime, const int numVehicles=-1) const
Writes output values into the given stream.
Definition: MSMeanData_Harmonoise.cpp:88