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;
260 int getNumReady()
const;
271 : myNumVehicleEntered(0), myNumVehicleLeft(0), myValues(values) {}
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 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 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.
virtual bool isEmpty() const
Returns whether any data was collected.
MeanDataValues * myValues
The number of vehicles which left in the current interval.
virtual 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.
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.
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.
SUMOReal getMaxTravelTime() const
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.
std::vector< MSEdge * > MSEdgeVector
virtual SUMOReal getSamples() const
Returns the number of collected sample seconds.
SUMOReal getMinSamples() const
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 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)
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.
const SUMOReal myMinSamples
the minimum sample seconds
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.
virtual ~MeanDataValues()
Destructor.
SUMOReal getTravelledDistance() const
Returns the total travelled distance.
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) ...
virtual void writeXMLDetectorProlog(OutputDevice &dev) const
Opens the XML-output using "netstats" as root element.
virtual void update()
Called if a per timestep update is needed. Default does nothing.
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.
int myNumVehicleEntered
The number of vehicles which entered in the current interval.
MSMoveReminder & operator=(const MSMoveReminder &)
virtual void detectorUpdate(const SUMOTime step)
Updates the detector.
Static storage of an output device and its base (abstract) implementation.
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.
void writeEdge(OutputDevice &dev, const std::vector< MeanDataValues *> &edgeValues, MSEdge *edge, SUMOTime startTime, SUMOTime stopTime)
Writes edge values into the given stream.
virtual std::string getEdgeID(const MSEdge *const edge)
Return the relevant edge id.
Base of value-generating classes (detectors)
void init()
Adds the value collectors to all relevant edges.