 |
Eclipse SUMO - Simulation of Urban MObility
|
Go to the documentation of this file.
66 if (oc.
isSet(
"vehroute-output")) {
84 if (maxRoutes < std::numeric_limits<int>::max()) {
129 (*i).route->release();
138 MSVehicle& vehicle = static_cast<MSVehicle&>(veh);
207 const MSEdge* lastEdge =
nullptr;
208 for (; i < index; ++i) {
221 const MSEdge* lastEdge =
nullptr;
234 const MSEdge* upTo =
nullptr;
236 int remainingWithExitTime = (int)
myExits.size() - numWritten;
237 assert(remainingWithExitTime >= 0);
245 os <<
"\" exitTimes=\"";
246 for (std::vector<SUMOTime>::const_iterator it =
myExits.begin(); it !=
myExits.end(); ++it) {
254 (os <<
"\"").closeTag();
299 od.writeAttr(
"routeLength", routeLength);
304 if (routeDist !=
nullptr) {
305 const std::vector<const MSRoute*>& routes = routeDist->
getVals();
307 while (index < routes.size() && routes[index] !=
myCurrentRoute) {
311 const std::vector<double>& probs = routeDist->
getProbs();
312 for (
int i = 0; i < (int)routes.size(); ++i) {
323 routes[i]->writeEdgeIDs(od, *routes[i]->begin());
324 (od <<
"\"").closeTag();
352 std::map<const std::string, std::string>& infos =
myRouteInfos[it->first];
353 for (std::map<const std::string, std::string>::const_iterator it2 = infos.begin(); it2 != infos.end(); ++it2) {
354 routeOut << it2->second;
361 routeOut << od.getString();
399 if (it.first->hasDeparted()) {
400 it.second->writeOutput(
false);
418 std::vector<std::string> internals;
428 internals.push_back(replacedOnEdge);
449 for (
int i = 0; i < size; ++i) {
static bool myDUAStyle
A shortcut for the Option "vehroute-output.dua".
bool isSet(const std::string &name, bool failOnNonExistant=true) const
Returns the information whether the named option is set.
The vehicle changes lanes (micro only)
bool hasInternalLinks() const
return whether the network contains internal links
const MSRoute * getRoute(int index) const
Called on route retrieval.
Representation of a vehicle or person.
static bool createDeviceByOption(const std::string &optionName, const std::string &rootElement="", const std::string &schemaFile="")
Creates the device using the output definition stored in the named option.
static std::map< const SUMOTime, std::map< const std::string, std::string > > myRouteInfos
void release() const
deletes the route if there are no further references to it
const std::string & getID() const
Returns the name of the vehicle type.
bool wasSet(int what) const
Returns whether the given parameter was set.
Representation of a lane in the micro simulation.
An output device that encapsulates an ofstream.
static bool myIncludeIncomplete
A shortcut for the Option "vehroute-output.incomplete".
virtual std::string getString(int id) const =0
Returns the string-value of the named (by its enum-value) attribute.
virtual const SUMOVehicleParameter & getParameter() const =0
Returns the vehicle's parameter (including departure definition)
std::map< const SUMOVehicle *, MSDevice_Vehroutes *, ComparatorNumericalIdLess > myDevices
A map for internal notification.
Static storage of an output device and its base (abstract) implementation.
void loadState(const SUMOSAXAttributes &attrs)
Loads the state of the device from the given description.
std::vector< SUMOTime > myExits
The times the vehicle exites an edge.
void generateOutput() const
Called on writing vehroutes output.
bool notifyEnter(SUMOTrafficObject &veh, MSMoveReminder::Notification reason, const MSLane *enteredLane=0)
Does nothing, returns true only if exit times should be collected.
virtual const MSEdge * getEdge() const =0
Returns the edge the vehicle is currently at.
static void init()
Static intialization.
virtual const MSVehicleType & getVehicleType() const =0
Returns the vehicle's type.
virtual const std::string & getID() const =0
Get the vehicle's ID.
const int VEHPARS_FORCE_REROUTE
virtual void erase(MSTransportable *transportable)
removes a single transportable
The simulated network and simulation perfomer.
virtual const ConstMSEdgeVector::const_iterator & getCurrentRouteEdge() const =0
Returns an iterator pointing to the current edge in this vehicles route.
static bool mySaveExits
A shortcut for the Option "vehroute-output.exit-times".
bool isBinary() const
Returns whether we have a binary output.
const int myMaxRoutes
The maximum number of routes to report.
Representation of a vehicle.
bool getBool(const std::string &name) const
Returns the boolean-value of the named option (only for Option_Bool)
static OptionsCont & getOptions()
Retrieves the options.
double myDepartPosLat
The lateral depart position.
bool hasPersons() const
Returns whether persons are simulated.
Structure representing possible vehicle parameter.
bool notifyLeave(SUMOTrafficObject &veh, double lastPos, Notification reason, const MSLane *enteredLane=0)
Saves exit times if needed.
static std::map< const SUMOTime, int > myDepartureCounts
Map needed to sort vehicles by departure time.
SUMOVehicle & myHolder
The vehicle that stores the device.
A class that is notified about reroutings.
The vehicle got a new route.
const MSRoute * myCurrentRoute
The currently used route.
const int VEHPARS_DEPARTSPEED_SET
std::string getString() const
Returns the current content as a string.
void writeParams(OutputDevice &device) const
write Params in the given outputdevice
bool closeTag(const std::string &comment="")
Closes the most recently opened tag and optionally adds a comment.
static bool myWriteCosts
A shortcut for the Option "vehroute-output.costs".
double getLateralPositionOnLane() const
Get the vehicle's lateral position on the lane.
double getCosts() const
Returns the costs of the route.
std::string line
The vehicle's line (mainly for public transport)
static StateListener myStateListener
A class that is notified about reroutings.
virtual SUMOTime getDeparture() const =0
Returns this vehicle's real departure time.
virtual const MSRoute & getRoute() const =0
Returns the current route.
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
int size() const
Returns the number of edges to pass.
static bool myRouteLength
A shortcut for the Option "vehroute-output.route-length".
void saveState(OutputDevice &out) const
Saves the state of the device.
static bool mySorted
A shortcut for the Option "vehroute-output.sorted".
VehicleState
Definition of a vehicle state.
static RandomDistributor< const MSRoute * > * distDictionary(const std::string &id)
Returns the named route distribution.
static MSDevice_Vehroutes * buildVehicleDevices(SUMOVehicle &v, std::vector< MSVehicleDevice * > &into, int maxRoutes=std::numeric_limits< int >::max())
Build devices for the given vehicle, if needed.
SUMOTime getCurrentTimeStep() const
Returns the current simulation step.
const std::string DEFAULT_VTYPE_ID
static bool dictionary(const std::string &id, MSEdge *edge)
Inserts edge into the static dictionary Returns true if the key id isn't already in the dictionary....
static bool mySkipPTLines
A shortcut for the Option "vehroute-output.skip-ptlines".
static void generateOutputForUnfinished()
generate vehroute output for vehicles which are still in the network
Information about a replaced route.
void writeXMLRoute(OutputDevice &os, int index=-1) const
Called on route output.
void addVehicleStateListener(VehicleStateListener *listener)
Adds a vehicle states listener.
constVehIt loadedBegin() const
Returns the begin of the internal transportables map.
double getSavings() const
Returns the estimated savings due to using this route (compare to the route before rerouting)
std::string time2string(SUMOTime t)
void write(OutputDevice &dev) const
Writes the stop as XML.
A storage for options typed value containers)
A road/street connecting two junctions.
void vehicleStateChanged(const SUMOVehicle *const vehicle, MSNet::VehicleState to, const std::string &info="")
Called if a vehicle changes its state.
static bool myLastRouteOnly
A shortcut for the Option "vehroute-output.last-route".
int myDepartLane
The lane the vehicle departed at.
const std::vector< double > & getProbs() const
Returns the probabilities assigned to the members of the distribution.
The vehicle has departed (was inserted into the network)
static bool myIntendedDepart
A shortcut for the Option "vehroute-output.intended-depart".
MSDevice_Vehroutes(SUMOVehicle &holder, const std::string &id, int maxRoutes)
Constructor.
const int VEHPARS_DEPARTLANE_SET
static bool gUsingInternalLanes
Information whether the simulation regards internal lanes.
MSLane * getLane() const
Returns the lane the vehicle is on.
void stopEnded(const SUMOVehicleParameter::Stop &stop)
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
void addRoute(const std::string &info)
Called on route change.
double myDepartPos
The lane the vehicle departed at.
const int VEHPARS_DEPARTPOSLAT_SET
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
constVehIt loadedEnd() const
Returns the end of the internal transportables map.
virtual MSTransportableControl & getPersonControl()
Returns the person control.
int writeEdgeIDs(OutputDevice &os, const MSEdge *const from, const MSEdge *const upTo=0) const
Output the edge ids up to but not including the id of the given edge.
A device which collects info on the vehicle trip (mainly on departure and arrival)
virtual bool hasDeparted() const =0
Returns whether this vehicle has departed.
const int VEHPARS_DEPARTPOS_SET
const MSEdge * myLastSavedAt
The last edge the exit time was saved for.
virtual int getNumberReroutes() const =0
Returns the number of new routes this vehicle got.
std::vector< RouteReplaceInfo > myReplacedRoutes
Prior routes.
void writeOutput(const bool hasArrived) const
Called on writing vehroutes output.
virtual double getArrivalPos() const =0
Returns this vehicle's desired arrivalPos for its current route (may change on reroute)
MSRouteIterator begin() const
Returns the begin of the list of edges to pass.
begin/end of the description of a route
static bool dictionary(const std::string &id, const MSRoute *route)
Adds a route to the dictionary.
~MSDevice_Vehroutes()
Destructor.
void addReference() const
increments the reference counter for the route
virtual double getPositionOnLane() const =0
Get the vehicle's position along the lane.
double getDistanceBetween(double fromPos, double toPos, const MSEdge *fromEdge, const MSEdge *toEdge, bool includeInternal=true, int routePosition=0) const
Compute the distance between 2 given edges on this route, including the length of internal lanes....
Encapsulated SAX-Attributes.
const std::string & getID() const
Returns the id.
Notification
Definition of a vehicle state.
virtual double getDepartPos() const =0
Returns this vehicle's real departure position.
static OutputDevice & getDeviceByOption(const std::string &name)
Returns the device described by the option.
int getIndex() const
Returns the lane's index.
OutputDevice_String myStopOut
The vehicle is being teleported.
const std::vector< T > & getVals() const
Returns the members of the distribution.
Definition of vehicle stop (position and duration)
virtual double getSpeed() const =0
Returns the vehicle's current speed.
double myDepartSpeed
The speed on departure.
Representation of a vehicle in the micro simulation.
Abstract in-vehicle device.