43 #define NOT_ARRIVED TIME2STEPS(-1) 68 into.push_back(device);
100 double ,
double newSpeed) {
113 const double timeOnLane,
115 const double meanSpeedVehicleOnLane,
166 double finalPosOnInternal = 0;
173 finalPosOnInternal = finalPos;
220 os.
writeAttr(
"routeLength", routeLength);
225 std::ostringstream str;
226 for (std::vector<MSDevice*>::const_iterator i = devices.begin(); i != devices.end(); ++i) {
227 if (i != devices.begin()) {
230 str << (*i)->getID();
275 std::ostringstream msg;
278 msg <<
"Statistics (avg):\n" 340 std::vector<std::string> internals;
virtual double getDepartPos() const =0
Returns this vehicle's real departure position.
double getLength() const
return the length of the edge
static double gLateralResolution
SUMOTime myArrivalTime
The vehicle's arrival time.
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
MSEdge & getEdge() const
Returns the lane's edge.
virtual double getChosenSpeedFactor() const =0
Representation of a vehicle in the micro simulation.
virtual SUMOTime getDeparture() const =0
Returns this vehicle's real departure time.
static SUMOTime myTotalWaitingTime
virtual SUMOTime getWaitingTime() const =0
bool notifyEnter(SUMOVehicle &veh, MSMoveReminder::Notification reason, const MSLane *enteredLane=0)
Saves departure info on insertion.
static double myTotalRouteLength
void computeLengthAndDuration(double &routeLength, SUMOTime &duration) const
bool notifyLeave(SUMOVehicle &veh, double lastPos, MSMoveReminder::Notification reason, const MSLane *enteredLane=0)
Saves arrival info.
A device which collects info on the vehicle trip (mainly on departure and arrival) ...
SUMOVehicle & myHolder
The vehicle that stores the device.
int gPrecision
the precision for floating point outputs
static double getAvgTimeLoss()
virtual const ConstMSEdgeVector::const_iterator & getCurrentRouteEdge() const =0
Returns an iterator pointing to the current edge in this vehicles route.
bool hasInternalLinks() const
return whether the network contains internal links
Notification
Definition of a vehicle state.
std::string time2string(SUMOTime t)
void generateOutput() const
Called on writing tripinfo output.
static void buildVehicleDevices(SUMOVehicle &v, std::vector< MSDevice * > &into)
Build devices for the given vehicle, if needed.
virtual const MSEdge * getEdge() const =0
Returns the edge the vehicle is currently at.
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
~MSDevice_Tripinfo()
Destructor.
virtual double getPositionOnLane() const =0
Get the vehicle's position along the lane.
The vehicle got vaporized.
static double myVehicleCount
global tripinfo statistics
SUMOTime getCurrentTimeStep() const
Returns the current simulation step.
const MSLane * getLane() const
Returns the lane the reminder works on.
double myArrivalSpeed
The speed when arriving.
virtual bool hasDeparted() const =0
Returns whether this vehicle has departed.
static OptionsCont & getOptions()
Retrieves the options.
static double getAvgDuration()
SUMOTime myWaitingTime
The overall waiting time.
static DeviceSet myPendingOutput
const std::string & getID() const
Returns the id.
static void generateOutputForUnfinished()
generate output for vehicles which are still in the network
double getVehicleMaxSpeed(const SUMOVehicle *const veh) const
Returns the maximum speed the vehicle may use on this edge.
virtual double getSpeed() const =0
Returns the vehicle's current speed.
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
static std::string printStatistics()
get statistics for printing to stdout
Representation of a vehicle.
void updateStatistics(SUMOTime timeLoss) const
update tripinfo statistics
Encapsulated SAX-Attributes.
static SUMOTime myTotalDuration
The vehicle arrived at its destination (is deleted)
void saveState(OutputDevice &out) const
Saves the state of the device.
virtual SUMOTime getDepartDelay() const =0
virtual double getArrivalPos() const =0
Returns this vehicle's desired arrivalPos for its current route (may change on reroute) ...
virtual bool isStopped() const =0
Returns whether the vehicle is at a stop.
static bool gUsingInternalLanes
Information whether the simulation regards internal lanes.
virtual const MSVehicleType & getVehicleType() const =0
Returns the vehicle's type.
virtual std::string getString(int id) const =0
Returns the string-value of the named (by its enum-value) attribute.
double myArrivalPosLat
The lateral position on the lane the vehicle arrived at.
bool isInternal() const
return whether this edge is an internal edge
virtual int getNumberReroutes() const =0
Returns the number of new routes this vehicle got.
std::string myDepartLane
The lane the vehicle departed at.
Abstract in-vehicle device.
static double getAvgWaitingTime()
The vehicle has departed (was inserted into the network)
bool notifyMove(SUMOVehicle &veh, double oldPos, double newPos, double newSpeed)
Checks for waiting steps when the vehicle moves.
virtual const MSRoute & getRoute() const =0
Returns the current route.
MSRouteIterator end() const
Returns the end of the list of edges to pass.
std::string myArrivalLane
The lane the vehicle arrived at.
static OutputDevice & getDeviceByOption(const std::string &name)
Returns the device described by the option.
double myDepartSpeed
The speed on departure.
MSDevice_Tripinfo()
dummy constructor
static SUMOTime myTotalDepartDelay
const std::string & getID() const
Returns the name of the vehicle type.
virtual const std::string & getID() const =0
Get the vehicle's ID.
static double getAvgRouteLength()
accessors for GUINet-Parameters
const double SUMO_const_haltingSpeed
the speed threshold at which vehicles are considered as halting
double getDistanceBetween(double fromPos, double toPos, const MSEdge *fromEdge, const MSEdge *toEdge, bool includeInternal=true) const
Compute the distance between 2 given edges on this route, including the length of internal lanes...
virtual const std::vector< MSDevice * > & getDevices() const =0
Returns this vehicle's devices.
static double getAvgDepartDelay()
Static storage of an output device and its base (abstract) implementation.
bool closeTag()
Closes the most recently opened tag.
std::set< const MSDevice_Tripinfo *, Named::NamedLikeComparatorIdLess< MSDevice_Tripinfo > > DeviceSet
devices which may still need to produce output
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, see MSMoveReminder::notifyMoveInternal() ...
static SUMOTime myTotalTimeLoss
SUMOTime myMesoTimeLoss
The time loss when compared to the desired and allowed speed.
double myDepartPosLat
The lateral depart position.
void loadState(const SUMOSAXAttributes &attrs)
Loads the state of the device from the given description.
Representation of a lane in the micro simulation.
double myArrivalPos
The position on the lane the vehicle arrived at.
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
MSRouteIterator begin() const
Returns the begin of the list of edges to pass.