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.dev/sumo
3 // Copyright (C) 2001-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 /****************************************************************************/
19 // Noise data collector for edges/lanes
20 /****************************************************************************/
21 #pragma once
22 #include <config.h>
23 
24 #include <vector>
25 #include <limits>
26 #include "MSMeanData.h"
27 
28 
29 // ===========================================================================
30 // class declarations
31 // ===========================================================================
32 class OutputDevice;
33 class MSLane;
34 
35 
36 // ===========================================================================
37 // class definitions
38 // ===========================================================================
51 public:
60  public:
62  MSLaneMeanDataValues(MSLane* const lane, const double length, const bool doAdd,
63  const MSMeanData_Harmonoise* parent);
64 
66  virtual ~MSLaneMeanDataValues();
67 
68 
71  void reset(bool afterWrite = false);
72 
75  void addTo(MSMeanData::MeanDataValues& val) const;
76 
77 
83  void update();
84 
93  void write(OutputDevice& dev, long long int attributeMask, const SUMOTime period,
94  const int numLanes, const double speedLimit, const double defaultTravelTime,
95  const int numVehicles = -1) const;
96 
97 
98  protected:
102  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 */);
103 
104  private:
107 
109  double currentTimeN;
110 
112  double meanNTemp;
114 
115 
118  };
119 
120 
121 public:
136  MSMeanData_Harmonoise(const std::string& id,
137  const SUMOTime dumpBegin, const SUMOTime dumpEnd,
138  const bool useLanes, const bool withEmpty,
139  const bool printDefaults, const bool withInternal,
140  const bool trackVehicles,
141  const double minSamples, const double maxTravelTime,
142  const std::string& vTypes,
143  const std::string& writeAttributes,
144  const std::vector<MSEdge*>& edges,
145  bool aggregate);
146 
147 
149  virtual ~MSMeanData_Harmonoise();
150 
153  virtual void detectorUpdate(const SUMOTime step);
154 
155 
156 protected:
162  MSMeanData::MeanDataValues* createValues(MSLane* const lane, const double length, const bool doAdd) const;
163 
164 private:
167 
170 
171 };
long long int SUMOTime
Definition: GUI.h:35
Representation of a lane in the micro simulation.
Definition: MSLane.h:84
Data structure for mean (aggregated) edge/lane values.
Definition: MSMeanData.h:66
Data structure for mean (aggregated) edge/lane values.
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.
void reset(bool afterWrite=false)
Resets values so they may be used for the next interval.
MSLaneMeanDataValues(MSLane *const lane, const double length, const bool doAdd, const MSMeanData_Harmonoise *parent)
Constructor.
double currentTimeN
Sum of produced noise at this time step(pow(10, (<NOISE>/10.)))
double meanNTemp
Sum of produced noise over time (pow(10, (<NOISE>/10.)))
void update()
Computes the noise in the last time step.
void write(OutputDevice &dev, long long int attributeMask, const SUMOTime period, const int numLanes, const double speedLimit, const double defaultTravelTime, const int numVehicles=-1) const
Writes output values into the given stream.
void addTo(MSMeanData::MeanDataValues &val) const
Add the values to this meanData.
const MSMeanData_Harmonoise * myParent
The meandata parent.
Noise data collector for edges/lanes.
MSMeanData::MeanDataValues * createValues(MSLane *const lane, const double length, const bool doAdd) const
Create an instance of MeanDataValues.
MSMeanData_Harmonoise(const MSMeanData_Harmonoise &)
Invalidated copy constructor.
virtual void detectorUpdate(const SUMOTime step)
Updates the detector.
MSMeanData_Harmonoise & operator=(const MSMeanData_Harmonoise &)
Invalidated assignment operator.
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, const std::string &writeAttributes, const std::vector< MSEdge * > &edges, bool aggregate)
Constructor.
virtual ~MSMeanData_Harmonoise()
Destructor.
Data collector for edges/lanes.
Definition: MSMeanData.h:57
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:61
Representation of a vehicle, person, or container.