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-2017 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 double length, const bool doAdd,
80  const MSMeanData_Net* parent);
81 
83  virtual ~MSLaneMeanDataValues();
84 
87  void reset(bool afterWrite = false);
88 
93  void addTo(MSMeanData::MeanDataValues& val) const;
94 
97 
107  bool notifyLeave(SUMOVehicle& veh, double lastPos, MSMoveReminder::Notification reason, const MSLane* enteredLane = 0);
108 
109 
123  bool notifyEnter(SUMOVehicle& veh, MSMoveReminder::Notification reason, const MSLane* enteredLane = 0);
125 
126  bool isEmpty() const;
127 
135  void write(OutputDevice& dev, const SUMOTime period,
136  const double numLanes, const double defaultTravelTime,
137  const int numVehicles = -1) const;
138 
139  protected:
143  void notifyMoveInternal(const SUMOVehicle& veh, const double frontOnLane, const double timeOnLane, const double meanSpeedFrontOnLane, const double meanSpeedVehicleOnLane, const double travelledDistanceFrontOnLane, const double travelledDistanceVehicleOnLane);
144 
145  public:
150 
153 
156 
158  int nVehLeft;
159 
162 
164  double waitSeconds;
165 
166  private:
169 
172 
175 
178 
180  double vehLengthSum;
182 
185 
186  };
187 
188 
189 public:
205  MSMeanData_Net(const std::string& id,
206  const SUMOTime dumpBegin, const SUMOTime dumpEnd,
207  const bool useLanes, const bool withEmpty, const bool printDefaults,
208  const bool withInternal, const bool trackVehicles,
209  const double maxTravelTime, const double minSamples,
210  const double haltSpeed, const std::string& vTypes);
211 
212 
214  virtual ~MSMeanData_Net();
215 
216 protected:
222  MSMeanData::MeanDataValues* createValues(MSLane* const lane, const double length, const bool doAdd) const;
223 
229  void resetOnly(SUMOTime stopTime);
230 
231 private:
233  const double myHaltSpeed;
234 
237 
240 
241 };
242 
243 
244 #endif
245 
246 /****************************************************************************/
247 
Data collector for edges/lanes.
Definition: MSMeanData.h:67
double vehLengthSum
The sum of the lengths the vehicles had.
int nVehEntered
The number of vehicles that entered this lane within the sample interval.
virtual ~MSLaneMeanDataValues()
Destructor.
bool notifyLeave(SUMOVehicle &veh, double lastPos, MSMoveReminder::Notification reason, const MSLane *enteredLane=0)
Called if the vehicle leaves the reminder&#39;s lane.
int nVehVaporized
The number of vehicles that left this lane within the sample interval.
double frontSampleSeconds
The number of vehicle probes regarding the vehicle front.
void resetOnly(SUMOTime stopTime)
Resets network value in order to allow processing of the next interval.
Notification
Definition of a vehicle state.
const MSMeanData_Net * myParent
The meandata parent.
const double myHaltSpeed
the minimum sample seconds
void notifyMoveInternal(const SUMOVehicle &veh, const double frontOnLane, const double timeOnLane, const double meanSpeedFrontOnLane, const double meanSpeedVehicleOnLane, const double travelledDistanceFrontOnLane, const double travelledDistanceVehicleOnLane)
Internal notification about the vehicle moves.
MSMeanData::MeanDataValues * createValues(MSLane *const lane, const double length, const bool doAdd) const
Create an instance of MeanDataValues.
MSLaneMeanDataValues(MSLane *const lane, const double length, const bool doAdd, const MSMeanData_Net *parent)
Constructor.
Data structure for mean (aggregated) edge/lane values.
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.
A road/street connecting two junctions.
Definition: MSEdge.h:80
int nVehLaneChangeTo
The number of vehicles that changed to this lane.
Representation of a vehicle.
Definition: SUMOVehicle.h:67
Data structure for mean (aggregated) edge/lane values.
Definition: MSMeanData.h:76
virtual ~MSMeanData_Net()
Destructor.
Stores edges and lanes, performs moving of vehicle.
Definition: MSEdgeControl.h:74
bool notifyEnter(SUMOVehicle &veh, MSMoveReminder::Notification reason, const MSLane *enteredLane=0)
Computes current values and adds them to their sums.
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 double maxTravelTime, const double minSamples, const double haltSpeed, const std::string &vTypes)
Constructor.
double waitSeconds
The number of vehicle probes with small speed.
int nVehLeft
The number of vehicles that left this lane within the sample interval.
int nVehArrived
The number of vehicles that finished on the lane.
double frontTravelledDistance
The travelled distance regarding the vehicle front.
int nVehLaneChangeFrom
The number of vehicles that changed from this lane.
MSMoveReminder & operator=(const MSMoveReminder &)
void addTo(MSMeanData::MeanDataValues &val) const
Add the values of this to the given one and store them there.
bool isEmpty() const
Returns whether any data was collected.
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:71
Network state mean data collector for edges/lanes.
long long int SUMOTime
Definition: TraCIDefs.h:52
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:79