87 virtual void reset(
bool afterWrite =
false) = 0;
156 const int numVehicles = -1)
const = 0;
204 void reset(
bool afterWrite);
258 const int numVehicles = -1)
const;
314 const bool useLanes,
const bool withEmpty,
315 const bool printDefaults,
const bool withInternal,
316 const bool trackVehicles,
const SUMOReal minSamples,
318 const std::string& vTypes);
425 const SumoXMLTag tag,
const std::string
id)
const;
Data collector for edges/lanes.
virtual ~MeanDataValueTracker()
Destructor.
virtual MSMeanData::MeanDataValues * createValues(MSLane *const lane, const SUMOReal length, const bool doAdd) const =0
Create an instance of MeanDataValues.
SumoXMLTag
Numbers representing SUMO-XML - element names.
const SUMOReal myLaneLength
The length of the lane / edge the data collector is on.
std::vector< std::vector< MeanDataValues * > > myMeasures
Value collectors; sorted by edge, then by lane.
const bool myDumpInternal
Whether internal lanes/edges shall be written.
virtual ~TrackerEntry()
Constructor.
SUMOReal getMaxTravelTime() const
SUMOReal travelledDistance
The sum of the distances the vehicles travelled.
const SUMOReal myMaxTravelTime
the maximum travel time to write
Notification
Definition of a vehicle state.
std::map< const SUMOVehicle *, TrackerEntry * > myTrackedData
The map of vehicles to data entries.
MeanDataValues * myValues
The number of vehicles which left in the current interval.
bool notifyEnter(SUMOVehicle &veh, MSMoveReminder::Notification reason)
Computes current values and adds them to their sums.
MSMeanData & operator=(const MSMeanData &)
Invalidated assignment operator.
virtual bool writePrefix(OutputDevice &dev, const MeanDataValues &values, const SumoXMLTag tag, const std::string id) const
Checks for emptiness and writes prefix into the given stream.
TrackerEntry(MeanDataValues *const values)
Constructor.
std::list< TrackerEntry * > myCurrentData
The currently active meandata "intervals".
MeanDataValues(MSLane *const lane, const SUMOReal length, const bool doAdd, const MSMeanData *const parent)
Constructor.
A road/street connecting two junctions.
const bool myPrintDefaults
Whether empty lanes/edges shall be written.
SUMOReal getMinSamples() const
virtual bool notifyLeave(SUMOVehicle &veh, SUMOReal lastPos, MSMoveReminder::Notification reason)
Called if the vehicle leaves the reminder's lane.
int myNumVehicleLeft
The number of vehicles which left in the current interval.
Representation of a vehicle.
Data structure for mean (aggregated) edge/lane values.
MSEdgeVector myEdges
The corresponding first edges.
const bool myAmEdgeBased
Information whether the output shall be edge-based (not lane-based)
virtual bool notifyEnter(SUMOVehicle &veh, MSMoveReminder::Notification reason)
Called if the vehicle enters the reminder's lane.
virtual bool isEmpty() const
Returns whether any data was collected.
std::vector< MSEdge * > MSEdgeVector
MSMeanData(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 minSamples, const SUMOReal maxTravelTime, const std::string &vTypes)
Constructor.
virtual void writeXMLDetectorProlog(OutputDevice &dev) const
Opens the XML-output using "netstats" as root element.
virtual void write(OutputDevice &dev, const SUMOTime period, const SUMOReal numLanes, const SUMOReal defaultTravelTime, const int numVehicles=-1) const =0
Writes output values into the given stream.
Something on a lane to be noticed about vehicle movement.
const SUMOTime myDumpBegin
The first and the last time step to write information (-1 indicates always)
SUMOReal getTravelledDistance() const
Returns the total travelled distance.
virtual ~MSMeanData()
Destructor.
bool notifyMove(SUMOVehicle &veh, SUMOReal oldPos, SUMOReal newPos, SUMOReal newSpeed)
Checks whether the reminder still has to be notified about the vehicle moves.
void notifyMoveInternal(const SUMOVehicle &veh, const SUMOReal frontOnLane, const SUMOReal timeOnLane, const SUMOReal meanSpeedFrontOnLane, const SUMOReal meanSpeedVehicleOnLane, const SUMOReal travelledDistanceFrontOnLane, const SUMOReal travelledDistanceVehicleOnLane)
Internal notification about the vehicle moves.
const SUMOReal myMinSamples
the minimum sample seconds
bool isEmpty() const
Returns whether any data was collected.
virtual void addTo(MeanDataValues &val) const =0
Add the values of this to the given one and store them there.
virtual void openInterval(OutputDevice &dev, const SUMOTime startTime, const SUMOTime stopTime)
Writes the interval opener.
void addTo(MSMeanData::MeanDataValues &val) const
Add the values of this to the given one and store them there.
virtual ~MeanDataValues()
Destructor.
const MSMeanData *const myParent
The meandata parent.
void writeXMLOutput(OutputDevice &dev, SUMOTime startTime, SUMOTime stopTime)
Writes collected values into the given stream.
virtual void reset(bool afterWrite=false)=0
Resets values so they may be used for the next interval.
std::list< std::pair< SUMOTime, SUMOTime > > myPendingIntervals
The intervals for which output still has to be generated (only in the tracking case) ...
void writeEdge(OutputDevice &dev, const std::vector< MeanDataValues * > &edgeValues, MSEdge *edge, SUMOTime startTime, SUMOTime stopTime)
Writes edge values into the given stream.
virtual void update()
Called if a per timestep update is needed. Default does nothing.
int myNumVehicleEntered
The number of vehicles which entered in the current interval.
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.
virtual void detectorUpdate(const SUMOTime step)
Updates the detector.
SUMOReal getSamples() const
Returns the number of collected sample seconds.
Static storage of an output device and its base (abstract) implementation.
virtual SUMOReal getSamples() const
Returns the number of collected sample seconds.
std::vector< MSEdge * > MSEdgeVector
void resetOnly(SUMOTime stopTime)
Resets network value in order to allow processing of the next interval.
const bool myDumpEmpty
Whether empty lanes/edges shall be written.
Data structure for mean (aggregated) edge/lane values for tracked vehicles.
const bool myTrackVehicles
Whether vehicles are tracked.
Representation of a lane in the micro simulation.
virtual std::string getEdgeID(const MSEdge *const edge)
Return the relevant edge id.
Base of value-generating classes (detectors)
bool notifyLeave(SUMOVehicle &veh, SUMOReal lastPos, MSMoveReminder::Notification reason)
Called if the vehicle leaves the reminder's lane.
MeanDataValueTracker(MSLane *const lane, const SUMOReal length, const MSMeanData *const parent)
Constructor.
void init()
Adds the value collectors to all relevant edges.
void reset(bool afterWrite)
Resets values so they may be used for the next interval.