![]() |
SUMO - Simulation of Urban MObility
|
#include <MSPersonControl.h>
Public Types | |
typedef std::map< std::string, MSTransportable * >::const_iterator | constVehIt |
Definition of the internal persons map iterator. More... | |
typedef std::vector< MSTransportable * > | PersonVector |
Definition of a list of persons. More... | |
Public Member Functions | |
void | abortWaiting () |
aborts the plan for any person that is still waiting for a ride More... | |
bool | add (const std::string &id, MSPerson *person) |
Adds a single person, returns false if an id clash occured. More... | |
void | addWaiting (const MSEdge *edge, MSTransportable *person) |
adds a person to the list of persons waiting for a vehicle on the specified edge More... | |
bool | boardAnyWaiting (MSEdge *edge, MSVehicle *vehicle, MSVehicle::Stop *stop) |
board any applicable persons Boards any people who wait on that edge for the given vehicle and removes them from myWaiting More... | |
virtual MSPerson * | buildPerson (const SUMOVehicleParameter *pars, const MSVehicleType *vtype, MSTransportable::MSTransportablePlan *plan) const |
Builds a new person. More... | |
void | checkWaitingPersons (MSNet *net, const SUMOTime time) |
checks whether any persons waiting or walking time is over More... | |
virtual void | erase (MSTransportable *person) |
removes a single person More... | |
MSTransportable * | get (const std::string &id) const |
Returns the named person, if existing. More... | |
bool | hasNonWaiting () const |
checks whether any person is still engaged in walking / stopping More... | |
bool | hasPersons () const |
checks whether any person waits to finish her plan More... | |
bool | isWaiting4Vehicle (const MSEdge *const edge, MSPerson *p) const |
returns whether the the given person is waiting for a vehicle on the given edge More... | |
constVehIt | loadedPersonsBegin () const |
Returns the begin of the internal persons map. More... | |
constVehIt | loadedPersonsEnd () const |
Returns the end of the internal persons map. More... | |
MSPersonControl () | |
Constructor. More... | |
void | registerJammed () |
register a jammed person More... | |
void | setDeparture (SUMOTime time, MSPerson *person) |
sets the arrival time for a waiting or walking person More... | |
void | setWaitEnd (SUMOTime time, MSTransportable *person) |
sets the arrival time for a waiting or walking person More... | |
void | setWalking (MSTransportable *p) |
unsigned int | size () const |
Returns the number of known persons. More... | |
void | unsetWalking (MSTransportable *p) |
virtual | ~MSPersonControl () |
Destructor. More... | |
Retrieval of Person statistics (always accessable) | |
unsigned int | getLoadedPersonNumber () const |
Returns the number of build Persons. More... | |
unsigned int | getRunningPersonNumber () const |
Returns the number of build and inserted, but not yet deleted Persons. More... | |
unsigned int | getJammedPersonNumber () const |
Returns the number of times a person was jammed. More... | |
Protected Attributes | |
unsigned int | myJammedPersonNumber |
The number of jammed persons. More... | |
unsigned int | myLoadedPersonNumber |
The number of build persons. More... | |
std::map< std::string, MSTransportable * > | myPersons |
all persons by id More... | |
unsigned int | myRunningPersonNumber |
The number of persons within the network (build and inserted but not removed) More... | |
std::map< SUMOTime, PersonVector > | myWaiting4Departure |
Persons waiting for departure. More... | |
std::map< const MSEdge *, PersonVector > | myWaiting4Vehicle |
the lists of waiting persons More... | |
std::map< SUMOTime, PersonVector > | myWaitingUntil |
the lists of walking / stopping persons More... | |
std::map< std::string, MSTransportable * > | myWalking |
all persons by id More... | |
The class is used to handle persons who are not using a transportation system but are walking or waiting. Both is processed by waiting for the arrival time / the time the waiting is over.
Definition at line 59 of file MSPersonControl.h.
typedef std::map<std::string, MSTransportable*>::const_iterator MSPersonControl::constVehIt |
Definition of the internal persons map iterator.
Definition at line 65 of file MSPersonControl.h.
typedef std::vector<MSTransportable*> MSPersonControl::PersonVector |
Definition of a list of persons.
Definition at line 62 of file MSPersonControl.h.
MSPersonControl::MSPersonControl | ( | ) |
Constructor.
Definition at line 52 of file MSPersonControl.cpp.
|
virtual |
Destructor.
Definition at line 59 of file MSPersonControl.cpp.
References myPersons, and myWaiting4Vehicle.
void MSPersonControl::abortWaiting | ( | ) |
aborts the plan for any person that is still waiting for a ride
Definition at line 241 of file MSPersonControl.cpp.
References erase(), MSTransportable::getID(), myWaiting4Vehicle, MSEdge::removePerson(), and WRITE_WARNING.
Referenced by MSNet::simulationState().
bool MSPersonControl::add | ( | const std::string & | id, |
MSPerson * | person | ||
) |
Adds a single person, returns false if an id clash occured.
[in] | id | The id of the person |
[in] | person | The person to add |
Definition at line 69 of file MSPersonControl.cpp.
References myLoadedPersonNumber, myPersons, and myRunningPersonNumber.
void MSPersonControl::addWaiting | ( | const MSEdge * | edge, |
MSTransportable * | person | ||
) |
adds a person to the list of persons waiting for a vehicle on the specified edge
Definition at line 161 of file MSPersonControl.cpp.
References myWaiting4Vehicle.
Referenced by MSPerson::MSPersonStage_Driving::proceed().
bool MSPersonControl::boardAnyWaiting | ( | MSEdge * | edge, |
MSVehicle * | vehicle, | ||
MSVehicle::Stop * | stop | ||
) |
board any applicable persons Boards any people who wait on that edge for the given vehicle and removes them from myWaiting
[in] | the | edge on which the boarding should take place |
[in] | the | vehicle which is taking on passengers |
[in] | the | stop at which the vehicle is stopping |
Definition at line 176 of file MSPersonControl.cpp.
References MSVehicle::addPerson(), DELTA_T, MSVehicle::Stop::duration, MSVehicle::Stop::endPos, MSVehicleType::getBoardingDuration(), MSNet::getCurrentTimeStep(), MSNet::getInstance(), MSBaseVehicle::getParameter(), MSVehicleType::getPersonCapacity(), MSVehicle::getPersonNumber(), MSBaseVehicle::getVehicleType(), SUMOVehicleParameter::id, SUMOVehicleParameter::line, myWaiting4Vehicle, MSEdge::removePerson(), MSVehicle::Stop::startPos, and MSVehicle::Stop::timeToBoardNextPerson.
Referenced by MSVehicle::processNextStop().
|
virtual |
Builds a new person.
[in] | pars | The parameter |
[in] | vtype | The type (reusing vehicle type container here) |
[in] | plan | This person's plan |
Reimplemented in GUIPersonControl.
Definition at line 256 of file MSPersonControl.cpp.
Referenced by MSRouteHandler::closePerson().
checks whether any persons waiting or walking time is over
Definition at line 136 of file MSPersonControl.cpp.
References erase(), myWaiting4Departure, and myWaitingUntil.
Referenced by MSNet::simulationStep().
|
virtual |
removes a single person
Definition at line 91 of file MSPersonControl.cpp.
References OutputDevice::closeTag(), MSTransportable::getDesiredDepart(), OutputDevice::getDeviceByOption(), MSTransportable::getID(), MSNet::getInstance(), OptionsCont::getOptions(), myPersons, myRunningPersonNumber, OutputDevice::openTag(), MSTransportable::routeOutput(), time2string(), MSTransportable::tripInfoOutput(), and OutputDevice::writeAttr().
Referenced by abortWaiting(), checkWaitingPersons(), MSPerson::MSPersonStage_Walking::moveToNextEdge(), MSDevice_Transportable::notifyLeave(), MSDevice_Transportable::notifyMove(), and MSPerson::MSPersonStage_Walking::proceed().
MSTransportable * MSPersonControl::get | ( | const std::string & | id | ) | const |
Returns the named person, if existing.
[in] | id | The id of the person |
Definition at line 81 of file MSPersonControl.cpp.
References myPersons.
Referenced by TraCIServerAPI_Person::getPosition(), TraCIServerAPI_Person::processGet(), and TraCIServerAPI_Person::processSet().
|
inline |
Returns the number of times a person was jammed.
Definition at line 189 of file MSPersonControl.h.
References myJammedPersonNumber.
Referenced by MSNet::closeSimulation(), and GUINet::getParameterWindow().
|
inline |
Returns the number of build Persons.
Definition at line 174 of file MSPersonControl.h.
References myLoadedPersonNumber.
Referenced by MSNet::closeSimulation(), and GUINet::getParameterWindow().
|
inline |
Returns the number of build and inserted, but not yet deleted Persons.
Definition at line 182 of file MSPersonControl.h.
References myRunningPersonNumber.
Referenced by MSNet::closeSimulation(), and GUINet::getParameterWindow().
bool MSPersonControl::hasNonWaiting | ( | ) | const |
checks whether any person is still engaged in walking / stopping
Definition at line 220 of file MSPersonControl.cpp.
References myWaiting4Departure, myWaitingUntil, and myWalking.
Referenced by MSNet::simulationState().
bool MSPersonControl::hasPersons | ( | ) | const |
checks whether any person waits to finish her plan
Definition at line 214 of file MSPersonControl.cpp.
References myPersons.
Referenced by MSNet::simulationStep(), and MSFCDExport::write().
returns whether the the given person is waiting for a vehicle on the given edge
Definition at line 170 of file MSPersonControl.cpp.
References myWaiting4Vehicle.
|
inline |
Returns the begin of the internal persons map.
Definition at line 143 of file MSPersonControl.h.
References myPersons.
Referenced by TraCIServerAPI_Person::processGet().
|
inline |
Returns the end of the internal persons map.
Definition at line 151 of file MSPersonControl.h.
References myPersons.
Referenced by TraCIServerAPI_Person::processGet().
|
inline |
register a jammed person
Definition at line 164 of file MSPersonControl.h.
References myJammedPersonNumber.
Referenced by MSPModel_Striping::PState::walk().
sets the arrival time for a waiting or walking person
Definition at line 116 of file MSPersonControl.cpp.
References DELTA_T, and myWaiting4Departure.
Referenced by MSRouteHandler::closePerson().
void MSPersonControl::setWaitEnd | ( | SUMOTime | time, |
MSTransportable * | person | ||
) |
sets the arrival time for a waiting or walking person
Definition at line 126 of file MSPersonControl.cpp.
References DELTA_T, and myWaitingUntil.
Referenced by MSPerson::MSPersonStage_Waiting::proceed().
void MSPersonControl::setWalking | ( | MSTransportable * | p | ) |
Definition at line 226 of file MSPersonControl.cpp.
References MSTransportable::getID(), and myWalking.
Referenced by MSPerson::MSPersonStage_Walking::proceed().
|
inline |
Returns the number of known persons.
Definition at line 159 of file MSPersonControl.h.
References myPersons.
Referenced by TraCIServerAPI_Person::processGet().
void MSPersonControl::unsetWalking | ( | MSTransportable * | p | ) |
Definition at line 232 of file MSPersonControl.cpp.
References MSTransportable::getID(), and myWalking.
Referenced by MSPerson::MSPersonStage_Walking::moveToNextEdge().
|
protected |
The number of jammed persons.
Definition at line 218 of file MSPersonControl.h.
Referenced by getJammedPersonNumber(), and registerJammed().
|
protected |
The number of build persons.
Definition at line 212 of file MSPersonControl.h.
Referenced by add(), and getLoadedPersonNumber().
|
protected |
all persons by id
Definition at line 197 of file MSPersonControl.h.
Referenced by add(), erase(), get(), hasPersons(), GUIPersonControl::insertPersonIDs(), loadedPersonsBegin(), loadedPersonsEnd(), size(), and ~MSPersonControl().
|
protected |
The number of persons within the network (build and inserted but not removed)
Definition at line 215 of file MSPersonControl.h.
Referenced by add(), erase(), and getRunningPersonNumber().
|
protected |
Persons waiting for departure.
Definition at line 203 of file MSPersonControl.h.
Referenced by checkWaitingPersons(), hasNonWaiting(), and setDeparture().
|
protected |
the lists of waiting persons
Definition at line 209 of file MSPersonControl.h.
Referenced by abortWaiting(), addWaiting(), boardAnyWaiting(), isWaiting4Vehicle(), and ~MSPersonControl().
|
protected |
the lists of walking / stopping persons
Definition at line 206 of file MSPersonControl.h.
Referenced by checkWaitingPersons(), hasNonWaiting(), and setWaitEnd().
|
protected |
all persons by id
Definition at line 200 of file MSPersonControl.h.
Referenced by hasNonWaiting(), setWalking(), and unsetWalking().