SUMO - Simulation of Urban MObility
|
#include <MSLink.h>
Data Structures | |
struct | ApproachingVehicleInformation |
class | vehicle_in_request_finder |
Public Member Functions | |
void | addBlockedLink (MSLink *link) |
bool | blockedAtTime (SUMOTime arrivalTime, SUMOTime leaveTime) const |
LinkDirection | getDirection () const |
Returns the direction the vehicle passing this link take. | |
MSLane * | getLane () const |
Returns the connected lane. | |
SUMOReal | getLength () const |
Returns the length of this link. | |
unsigned int | getRespondIndex () const |
Returns the respond index (for visualization) | |
LinkState | getState () const |
Returns the current state of the link. | |
bool | hasApproachingFoe (SUMOTime arrivalTime, SUMOTime leaveTime) const |
Returns the information whether a vehicle is approaching on one of the link's foe streams. | |
bool | havePriority () const |
Returns whether this link is a major link. | |
bool | isBlockingAnyone () const |
bool | isCont () const |
bool | isCrossing () const |
Returns whether this link belongs to a junction where more than one edge is incoming. | |
MSLink (MSLane *succLane, LinkDirection dir, LinkState state, SUMOReal length) | |
Constructor for simulation not using internal lanes. | |
bool | opened (SUMOTime arrivalTime, SUMOReal arrivalSpeed, SUMOReal vehicleLength) const |
Returns the information whether the link may be passed. | |
void | removeApproaching (SUMOVehicle *veh) |
void | setApproaching (SUMOVehicle *approaching, SUMOTime arrivalTime, SUMOReal speed, bool setRequest) |
Sets the information about an approaching vehicle. | |
void | setRequestInformation (unsigned int requestIdx, unsigned int respondIdx, bool isCrossing, bool isCont, const std::vector< MSLink * > &foeLinks, const std::vector< MSLane * > &foeLanes) |
Sets the request information. | |
void | setTLState (LinkState state, SUMOTime t) |
Sets the current tl-state. | |
bool | willHaveBlockedFoe () const |
~MSLink () | |
Destructor. |
Private Types | |
typedef std::vector < ApproachingVehicleInformation > | LinkApproachingVehicles |
Private Member Functions | |
MSLink (const MSLink &s) | |
invalidated copy constructor | |
MSLink & | operator= (const MSLink &s) |
invalidated assignment operator |
Private Attributes | |
bool | myAmCont |
LinkApproachingVehicles | myApproachingVehicles |
std::set< MSLink * > | myBlockedFoeLinks |
LinkDirection | myDirection |
An abstract (hopefully human readable) definition of the link's direction. | |
std::vector< MSLane * > | myFoeLanes |
std::vector< MSLink * > | myFoeLinks |
bool | myIsCrossing |
Whether any foe links exist. | |
MSLane * | myLane |
The lane approached by this link. | |
SUMOReal | myLength |
The length of the link. | |
unsigned int | myRequestIdx |
The position of the link within this request. | |
unsigned int | myRespondIdx |
The position within this respond. | |
LinkState | myState |
The state of the link. |
Static Private Attributes | |
static SUMOTime | myLookaheadTime = TIME2STEPS(1) |
|
private |
MSLink::MSLink | ( | MSLane * | succLane, |
LinkDirection | dir, | ||
LinkState | state, | ||
SUMOReal | length | ||
) |
Constructor for simulation not using internal lanes.
[in] | succLane | The lane approached by this link |
[in] | dir | The direction of this link |
[in] | state | The state of this link |
[in] | length | The length of this link |
Definition at line 55 of file MSLink.cpp.
MSLink::~MSLink | ( | ) |
Destructor.
Definition at line 73 of file MSLink.cpp.
|
private |
invalidated copy constructor
void MSLink::addBlockedLink | ( | MSLink * | link | ) |
Definition at line 102 of file MSLink.cpp.
References myBlockedFoeLinks.
Definition at line 164 of file MSLink.cpp.
References myApproachingVehicles, and myLookaheadTime.
LinkDirection MSLink::getDirection | ( | ) | const |
Returns the direction the vehicle passing this link take.
Definition at line 194 of file MSLink.cpp.
References myDirection.
MSLane * MSLink::getLane | ( | ) | const |
Returns the connected lane.
Definition at line 206 of file MSLink.cpp.
References myLane.
Referenced by MSVehicle::checkRewindLinkLanes(), GUIVehicle::drawGLAdditional(), Command_SaveTLSSwitches::execute(), MSLinkContHelper::getConnectingLink(), MSVehicle::moveChecked(), TraCIServerAPI_TLS::processGet(), and TraCIServerAPI_Lane::processGet().
|
inline |
Returns the length of this link.
Definition at line 207 of file MSLink.h.
References myLength.
Referenced by opened(), TraCIServerAPI_Lane::processGet(), and setApproaching().
unsigned int MSLink::getRespondIndex | ( | ) | const |
Returns the respond index (for visualization)
Definition at line 220 of file MSLink.cpp.
References myRespondIdx.
|
inline |
Returns the current state of the link.
Definition at line 162 of file MSLink.h.
References myState.
Referenced by Command_SaveTLCoupledLaneDet::execute(), MSVehicle::moveChecked(), and GUILaneWrapper::ROWdrawAction_drawLinkRules().
Returns the information whether a vehicle is approaching on one of the link's foe streams.
Valid after the vehicles have set their requests
Definition at line 178 of file MSLink.cpp.
References myFoeLanes, and myFoeLinks.
Referenced by TraCIServerAPI_Lane::processGet().
|
inline |
Returns whether this link is a major link.
Definition at line 198 of file MSLink.h.
References myState.
Referenced by MSVehicle::checkRewindLinkLanes(), MSVehicle::moveChecked(), and TraCIServerAPI_Lane::processGet().
|
inline |
Definition at line 141 of file MSLink.h.
References myApproachingVehicles.
|
inline |
Definition at line 220 of file MSLink.h.
References myAmCont.
Referenced by MSVehicle::checkRewindLinkLanes(), MSVehicle::moveChecked(), and setRequestInformation().
|
inline |
Returns whether this link belongs to a junction where more than one edge is incoming.
Definition at line 215 of file MSLink.h.
References myIsCrossing.
Referenced by MSVehicle::checkRewindLinkLanes(), and setRequestInformation().
Returns the information whether the link may be passed.
Valid after the junctions have set their reponds
Definition at line 129 of file MSLink.cpp.
References getLength(), MSGlobals::gUseMesoSim, LINKSTATE_TL_RED, myAmCont, myFoeLanes, myFoeLinks, myState, SUMOReal, and TIME2STEPS.
Referenced by MSVehicle::checkRewindLinkLanes(), MSVehicle::moveChecked(), and TraCIServerAPI_Lane::processGet().
void MSLink::removeApproaching | ( | SUMOVehicle * | veh | ) |
Definition at line 120 of file MSLink.cpp.
References myApproachingVehicles.
Referenced by MSVehicle::moveChecked().
void MSLink::setApproaching | ( | SUMOVehicle * | approaching, |
SUMOTime | arrivalTime, | ||
SUMOReal | speed, | ||
bool | setRequest | ||
) |
Sets the information about an approaching vehicle.
The information is stored in myApproachingVehicles.
[in] | approaching | The approaching vehicle |
Definition at line 90 of file MSLink.cpp.
References getLength(), MSVehicleType::getLengthWithGap(), SUMOVehicle::getVehicleType(), myApproachingVehicles, and TIME2STEPS.
void MSLink::setRequestInformation | ( | unsigned int | requestIdx, |
unsigned int | respondIdx, | ||
bool | isCrossing, | ||
bool | isCont, | ||
const std::vector< MSLink * > & | foeLinks, | ||
const std::vector< MSLane * > & | foeLanes | ||
) |
Sets the request information.
Because traffic lights and junction logics are loaded after links, we have to assign the information about the right-of-way requests and responses after the initialisation.
[in] | requestIdx | This link's index within this request |
[in] | respondIdx | This link's index within this respond |
[in] | foes | This link's foes |
Definition at line 77 of file MSLink.cpp.
References isCont(), isCrossing(), myAmCont, myFoeLanes, myFoeLinks, myIsCrossing, myRequestIdx, and myRespondIdx.
Sets the current tl-state.
[in] | state | The current state of the link |
Definition at line 200 of file MSLink.cpp.
References myState.
Referenced by MSTrafficLightLogic::addLink().
bool MSLink::willHaveBlockedFoe | ( | ) | const |
Definition at line 109 of file MSLink.cpp.
References myBlockedFoeLinks.
|
private |
Definition at line 283 of file MSLink.h.
Referenced by isCont(), opened(), and setRequestInformation().
|
private |
Definition at line 262 of file MSLink.h.
Referenced by blockedAtTime(), isBlockingAnyone(), removeApproaching(), and setApproaching().
|
private |
Definition at line 263 of file MSLink.h.
Referenced by addBlockedLink(), and willHaveBlockedFoe().
|
private |
An abstract (hopefully human readable) definition of the link's direction.
Definition at line 275 of file MSLink.h.
Referenced by getDirection().
|
private |
Definition at line 291 of file MSLink.h.
Referenced by hasApproachingFoe(), opened(), and setRequestInformation().
|
private |
Definition at line 290 of file MSLink.h.
Referenced by hasApproachingFoe(), opened(), and setRequestInformation().
|
private |
Whether any foe links exist.
Definition at line 281 of file MSLink.h.
Referenced by isCrossing(), and setRequestInformation().
|
private |
|
private |
|
staticprivate |
Definition at line 292 of file MSLink.h.
Referenced by blockedAtTime().
|
private |
The position of the link within this request.
Definition at line 266 of file MSLink.h.
Referenced by setRequestInformation().
|
private |
The position within this respond.
Definition at line 269 of file MSLink.h.
Referenced by getRespondIndex(), and setRequestInformation().
|
private |
The state of the link.
Definition at line 272 of file MSLink.h.
Referenced by getState(), havePriority(), opened(), and setTLState().