87 virtual void reset(
bool afterWrite =
false) = 0;
121 double newPos,
double newSpeed);
155 const double numLanes,
const double defaultTravelTime,
156 const int numVehicles = -1)
const = 0;
204 void reset(
bool afterWrite);
218 void notifyMoveInternal(
const SUMOVehicle& veh,
const double frontOnLane,
const double timeOnLane,
const double meanSpeedFrontOnLane,
const double meanSpeedVehicleOnLane,
const double travelledDistanceFrontOnLane,
const double travelledDistanceVehicleOnLane);
257 const double numLanes,
const double defaultTravelTime,
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 double minSamples,
317 const double maxTravelTime,
318 const std::string& vTypes);
425 const SumoXMLTag tag,
const std::string
id)
const;
Data collector for edges/lanes.
SumoXMLTag
Numbers representing SUMO-XML - element names.
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 bool notifyEnter(SUMOVehicle &veh, MSMoveReminder::Notification reason, const MSLane *enteredLane=0)
Called if the vehicle enters the reminder's lane.
virtual ~TrackerEntry()
Constructor.
const double myMaxTravelTime
the maximum travel time to write
virtual 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.
Notification
Definition of a vehicle state.
virtual void write(OutputDevice &dev, const SUMOTime period, const double numLanes, const double defaultTravelTime, const int numVehicles=-1) const =0
Writes output values into the given stream.
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.
TrackerEntry(MeanDataValues *const values)
Constructor.
std::list< TrackerEntry * > myCurrentData
The currently active meandata "intervals".
virtual MSMeanData::MeanDataValues * createValues(MSLane *const lane, const double length, const bool doAdd) const =0
Create an instance of MeanDataValues.
bool notifyMove(SUMOVehicle &veh, double oldPos, double newPos, double newSpeed)
Checks whether the reminder still has to be notified about the vehicle moves.
A road/street connecting two junctions.
const bool myPrintDefaults
Whether empty lanes/edges shall be written.
double travelledDistance
The sum of the distances the vehicles travelled.
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)
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 double minSamples, const double maxTravelTime, const std::string &vTypes)
Constructor.
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)
const double myLaneLength
The length of the lane / edge the data collector is on.
virtual ~MSMeanData()
Destructor.
const double 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.
double getTravelledDistance() const
Returns the total travelled distance.
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) ...
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.
virtual double 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.
MeanDataValues(MSLane *const lane, const double length, const bool doAdd, const MSMeanData *const parent)
Constructor.
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.
double getMaxTravelTime() const
virtual std::string getEdgeID(const MSEdge *const edge)
Return the relevant edge id.
virtual bool notifyLeave(SUMOVehicle &veh, double lastPos, MSMoveReminder::Notification reason, const MSLane *enteredLane=0)
Called if the vehicle leaves the reminder's lane.
Base of value-generating classes (detectors)
double getMinSamples() const
void init()
Adds the value collectors to all relevant edges.