SUMO - Simulation of Urban MObility
MSMeanData_Net.h
Go to the documentation of this file.
1 /****************************************************************************/
10 // Network state mean data collector for edges/lanes
11 /****************************************************************************/
12 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
13 // Copyright (C) 2004-2015 DLR (http://www.dlr.de/) and contributors
14 /****************************************************************************/
15 //
16 // This file is part of SUMO.
17 // SUMO is free software: you can redistribute it and/or modify
18 // it under the terms of the GNU General Public License as published by
19 // the Free Software Foundation, either version 3 of the License, or
20 // (at your option) any later version.
21 //
22 /****************************************************************************/
23 #ifndef MSMeanData_Net_h
24 #define MSMeanData_Net_h
25 
26 
27 // ===========================================================================
28 // included modules
29 // ===========================================================================
30 #ifdef _MSC_VER
31 #include <windows_config.h>
32 #else
33 #include <config.h>
34 #endif
35 
36 #include <vector>
37 #include <set>
38 #include <limits>
39 #include "MSMeanData.h"
40 
41 
42 // ===========================================================================
43 // class declarations
44 // ===========================================================================
45 class OutputDevice;
46 class MSEdgeControl;
47 class MSEdge;
48 class MSLane;
49 
50 
51 // ===========================================================================
52 // class definitions
53 // ===========================================================================
65 class MSMeanData_Net : public MSMeanData {
66 public:
75  public:
79  MSLaneMeanDataValues(MSLane* const lane, const SUMOReal length, const bool doAdd,
80  const std::set<std::string>* const vTypes = 0,
81  const MSMeanData_Net* parent = 0);
82 
84  virtual ~MSLaneMeanDataValues();
85 
88  void reset(bool afterWrite = false);
89 
94  void addTo(MSMeanData::MeanDataValues& val) const;
95 
98 
108  bool notifyLeave(SUMOVehicle& veh, SUMOReal lastPos, MSMoveReminder::Notification reason);
109 
110 
126 
127  bool isEmpty() const;
128 
136  void write(OutputDevice& dev, const SUMOTime period,
137  const SUMOReal numLanes, const SUMOReal defaultTravelTime,
138  const int numVehicles = -1) const;
139 
140  protected:
151  void notifyMoveInternal(SUMOVehicle& veh, SUMOReal timeOnLane,
152  SUMOReal speed);
153 
154  public:
158  unsigned nVehDeparted;
159 
161  unsigned nVehArrived;
162 
164  unsigned nVehEntered;
165 
167  unsigned nVehLeft;
168 
170  unsigned nVehVaporized;
171 
174 
175  private:
178 
181 
182 
186 
189 
190  };
191 
192 
193 public:
209  MSMeanData_Net(const std::string& id,
210  const SUMOTime dumpBegin, const SUMOTime dumpEnd,
211  const bool useLanes, const bool withEmpty, const bool printDefaults,
212  const bool withInternal, const bool trackVehicles,
213  const SUMOReal maxTravelTime, const SUMOReal minSamples,
214  const SUMOReal haltSpeed, const std::set<std::string> vTypes);
215 
216 
218  virtual ~MSMeanData_Net();
219 
220 protected:
226  MSMeanData::MeanDataValues* createValues(MSLane* const lane, const SUMOReal length, const bool doAdd) const;
227 
233  void resetOnly(SUMOTime stopTime);
234 
235 private:
238 
241 
244 
245 };
246 
247 
248 #endif
249 
250 /****************************************************************************/
251 
Data collector for edges/lanes.
Definition: MSMeanData.h:67
virtual ~MSLaneMeanDataValues()
Destructor.
MSLaneMeanDataValues(MSLane *const lane, const SUMOReal length, const bool doAdd, const std::set< std::string > *const vTypes=0, const MSMeanData_Net *parent=0)
Constructor.
void write(OutputDevice &dev, const SUMOTime period, const SUMOReal numLanes, const SUMOReal defaultTravelTime, const int numVehicles=-1) const
Writes output values into the given stream.
long long int SUMOTime
Definition: SUMOTime.h:43
unsigned nVehVaporized
The number of vehicles that left this lane within the sample interval.
void resetOnly(SUMOTime stopTime)
Resets network value in order to allow processing of the next interval.
void addTo(MSMeanData::MeanDataValues &val) const
Add the values of this to the given one and store them there.
Notification
Definition of a vehicle state.
const MSMeanData_Net * myParent
The meandata parent.
MSMeanData_Net(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 SUMOReal maxTravelTime, const SUMOReal minSamples, const SUMOReal haltSpeed, const std::set< std::string > vTypes)
Constructor.
unsigned nVehLaneChangeFrom
The number of vehicles that changed from this lane.
Data structure for mean (aggregated) edge/lane values.
SUMOReal waitSeconds
The number of vehicle probes with small speed.
A road/street connecting two junctions.
Definition: MSEdge.h:81
SUMOReal vehLengthSum
The sum of the lengths the vehicles had.
bool notifyEnter(SUMOVehicle &veh, MSMoveReminder::Notification reason)
Computes current values and adds them to their sums.
Representation of a vehicle.
Definition: SUMOVehicle.h:65
Data structure for mean (aggregated) edge/lane values.
Definition: MSMeanData.h:76
void notifyMoveInternal(SUMOVehicle &veh, SUMOReal timeOnLane, SUMOReal speed)
Internal notification about the vehicle moves.
unsigned nVehArrived
The number of vehicles that finished on the lane.
unsigned nVehLaneChangeTo
The number of vehicles that changed to this lane.
unsigned nVehEntered
The number of vehicles that entered this lane within the sample interval.
virtual ~MSMeanData_Net()
Destructor.
Stores edges and lanes, performs moving of vehicle.
Definition: MSEdgeControl.h:74
bool isEmpty() const
Returns whether any data was collected.
const SUMOReal myHaltSpeed
the minimum sample seconds
bool notifyLeave(SUMOVehicle &veh, SUMOReal lastPos, MSMoveReminder::Notification reason)
Called if the vehicle leaves the reminder&#39;s lane.
MSMeanData::MeanDataValues * createValues(MSLane *const lane, const SUMOReal length, const bool doAdd) const
Create an instance of MeanDataValues.
unsigned nVehLeft
The number of vehicles that left this lane within the sample interval.
MSMoveReminder & operator=(const MSMoveReminder &)
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:71
Network state mean data collector for edges/lanes.
#define SUMOReal
Definition: config.h:214
void reset(bool afterWrite=false)
Resets values so they may be used for the next interval.
Representation of a lane in the micro simulation.
Definition: MSLane.h:77