SUMO - Simulation of Urban MObility
|
A loaded (complete) traffic light logic. More...
#include <NBLoadedTLDef.h>
Data Structures | |||
class | SignalGroup | ||
A single signal group, may control several connections. More... | |||
Public Types | |||
typedef std::map< std::string, SignalGroup * > | SignalGroupCont | ||
Definition of the container for signal groups. | |||
enum | TLColor { TLCOLOR_RED, TLCOLOR_YELLOW, TLCOLOR_REDYELLOW, TLCOLOR_GREEN, TLCOLOR_BLINK } | ||
An enumeration of possible tl-signal states. More... | |||
Public Member Functions | |||
void | addControlledInnerEdges (const std::vector< std::string > &edges) | ||
Adds the given ids into the list of edges not controlled by the tls. | |||
void | addSignalGroup (const std::string &id) | ||
Adds a signal group. | |||
void | addSignalGroupPhaseBegin (const std::string &groupid, SUMOTime time, TLColor color) | ||
Sets the information about the begin of a phase. | |||
bool | addToSignalGroup (const std::string &groupid, const NBConnection &connection) | ||
Adds a connection to a signal group. | |||
bool | addToSignalGroup (const std::string &groupid, const NBConnectionVector &connections) | ||
Adds a list of connections to a signal group. | |||
NBTrafficLightLogic * | compute (const NBEdgeCont &ec, OptionsCont &oc) | ||
Computes the traffic light logic. | |||
SignalGroup * | findGroup (NBEdge *from, NBEdge *to) const | ||
Returns the signal group which is responsible for the given connection. | |||
bool | foes (const NBEdge *const from1, const NBEdge *const to1, const NBEdge *const from2, const NBEdge *const to2) const | ||
Returns the information whether the given flows cross. | |||
bool | forbids (const NBEdge *const possProhibitorFrom, const NBEdge *const possProhibitorTo, const NBEdge *const possProhibitedFrom, const NBEdge *const possProhibitedTo, bool regardNonSignalisedLowerPriority) const | ||
Returns the information whether "prohibited" flow must let "prohibitor" flow pass. | |||
const NBConnectionVector & | getControlledLinks () const | ||
returns the controlled links (depends on previous call to collectLinks) | |||
const std::vector< NBNode * > & | getControlledNodes () const | ||
const std::string & | getID () const | ||
Returns the id. | |||
const EdgeVector & | getIncomingEdges () const | ||
Returns the list of incoming edges (must be build first) | |||
const std::string & | getProgramID () const | ||
Returns the ProgramID. | |||
bool | isLeftMover (const NBEdge *const from, const NBEdge *const to) const | ||
returns the information whether the given link is a left-mover | |||
bool | mustBrake (const NBEdge *const from, const NBEdge *const to) const | ||
Returns the information whether the described flow must let any other flow pass. | |||
bool | mustBrake (const NBConnection &possProhibited, const NBConnection &possProhibitor, bool regardNonSignalisedLowerPriority) const | ||
Returns the information whether the described flow must let the other flow pass. | |||
bool | mustBrake (const NBEdge *const possProhibitedFrom, const NBEdge *const possProhibitedTo, const NBEdge *const possProhibitorFrom, const NBEdge *const possProhibitorTo, bool regardNonSignalisedLowerPriority) const | ||
Returns the information whether the described flow must let any other flow pass. | |||
NBLoadedTLDef (const std::string &id, const std::vector< NBNode * > &junctions) | |||
Constructor. | |||
NBLoadedTLDef (const std::string &id, NBNode *junction) | |||
Constructor. | |||
NBLoadedTLDef (const std::string &id) | |||
Constructor. | |||
void | setCycleDuration (unsigned int cycleDur) | ||
Sets the duration of a cycle. | |||
void | setID (const std::string &newID) | ||
resets the id | |||
virtual void | setParticipantsInformation () | ||
Builds the list of participating nodes/edges/links. | |||
void | setProgramID (const std::string &programID) | ||
void | setSignalYellowTimes (const std::string &groupid, SUMOTime tRedYellow, SUMOTime tYellow) | ||
Sets the times the light is yellow or red/yellow. | |||
~NBLoadedTLDef () | |||
Destructor. | |||
Public methods from NBTrafficLightDefinition-interface | |||
void | setTLControllingInformation (const NBEdgeCont &ec) const | ||
Informs edges about being controlled by a tls. | |||
void | remapRemoved (NBEdge *removed, const EdgeVector &incoming, const EdgeVector &outgoing) | ||
Replaces occurences of the removed edge in incoming/outgoing edges of all definitions. | |||
Access to controlled nodes | |||
virtual void | addNode (NBNode *node) | ||
Adds a node to the traffic light logic. | |||
virtual void | removeNode (NBNode *node) | ||
Removes the given node from the list of controlled nodes. | |||
const std::vector< NBNode * > & | getNodes () const | ||
Returns the list of controlled nodes. | |||
Static Public Attributes | |||
static const std::string | DefaultProgramID = "0" | ||
Protected Member Functions | |||
virtual bool | amInvalid () const | ||
void | collectEdges () | ||
Build the list of participating edges. | |||
unsigned int | computeBrakingTime (SUMOReal minDecel) const | ||
Computes the time vehicles may need to brake. | |||
Protected methods from NBTrafficLightDefinition-interface | |||
NBTrafficLightLogic * | myCompute (const NBEdgeCont &ec, unsigned int brakingTime) | ||
Computes the traffic light logic finally in dependence to the type. | |||
void | collectNodes () | ||
Collects the nodes participating in this traffic light. | |||
void | collectLinks () | ||
Collects the links participating in this traffic light
| |||
bool | mustBrake (const NBEdgeCont &ec, const NBConnection &possProhibited, const std::string &state, unsigned int strmpos) const | ||
Returns the information whether a connection must brake, given a phase. | |||
void | replaceRemoved (NBEdge *removed, int removedLane, NBEdge *by, int byLane) | ||
Replaces a removed edge/lane. | |||
Protected Attributes | |||
std::set< std::string > | myControlledInnerEdges | ||
Set of inner edges that shall be controlled, though. | |||
NBConnectionVector | myControlledLinks | ||
The list of controlled links. | |||
std::vector< NBNode * > | myControlledNodes | ||
The container with participating nodes. | |||
EdgeVector | myEdgesWithin | ||
The list of edges within the area controlled by the tls. | |||
std::string | myID | ||
The name of the object. | |||
EdgeVector | myIncomingEdges | ||
The list of incoming edges. | |||
std::string | mySubID | ||
The tls program's subid. | |||
Private Member Functions | |||
std::string | buildPhaseState (const NBEdgeCont &ec, unsigned int time) const | ||
Builds the phase for a given time. | |||
Private Attributes | |||
unsigned int | myCycleDuration | ||
The duration of a single cycle. | |||
SignalGroupCont | mySignalGroups | ||
Controlled signal groups. |
A loaded (complete) traffic light logic.
Definition at line 49 of file NBLoadedTLDef.h.
typedef std::map<std::string, SignalGroup*> NBLoadedTLDef::SignalGroupCont |
Definition of the container for signal groups.
Definition at line 204 of file NBLoadedTLDef.h.
enum NBTrafficLightDefinition::TLColor [inherited] |
An enumeration of possible tl-signal states.
TLCOLOR_RED |
Signal shows red. |
TLCOLOR_YELLOW |
Signal shows yellow. |
TLCOLOR_REDYELLOW |
Signal shows red/yellow (unused) |
TLCOLOR_GREEN |
Signal shows green. |
TLCOLOR_BLINK |
Signal is blinking yellow. |
Definition at line 81 of file NBTrafficLightDefinition.h.
NBLoadedTLDef::NBLoadedTLDef | ( | const std::string & | id, |
const std::vector< NBNode * > & | junctions | ||
) |
Constructor.
[in] | id | The id of the tls |
[in] | junctions | Junctions controlled by this tls |
Definition at line 268 of file NBLoadedTLDef.cpp.
NBLoadedTLDef::NBLoadedTLDef | ( | const std::string & | id, |
NBNode * | junction | ||
) |
Constructor.
[in] | id | The id of the tls |
[in] | junction | The junction controlled by this tls |
Definition at line 273 of file NBLoadedTLDef.cpp.
NBLoadedTLDef::NBLoadedTLDef | ( | const std::string & | id | ) |
void NBTrafficLightDefinition::addControlledInnerEdges | ( | const std::vector< std::string > & | edges | ) | [inherited] |
Adds the given ids into the list of edges not controlled by the tls.
[in] | edges | The list of edge ids to add the inner edges to |
Definition at line 345 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::myControlledInnerEdges.
void NBTrafficLightDefinition::addNode | ( | NBNode * | node | ) | [virtual, inherited] |
Adds a node to the traffic light logic.
[in] | node | A further node that shall be controlled by the tls |
Definition at line 325 of file NBTrafficLightDefinition.cpp.
References NBNode::addTrafficLight(), and NBTrafficLightDefinition::myControlledNodes.
Referenced by NBLoadedSUMOTLDef::addConnection(), addToSignalGroup(), and NBTrafficLightDefinition::NBTrafficLightDefinition().
void NBLoadedTLDef::addSignalGroup | ( | const std::string & | id | ) |
Adds a signal group.
[in] | id | The id of the signal group |
Definition at line 546 of file NBLoadedTLDef.cpp.
References mySignalGroups.
Referenced by NIVissimTL::NIVissimTLSignalGroup::addTo(), and NIVisumTL::build().
void NBLoadedTLDef::addSignalGroupPhaseBegin | ( | const std::string & | groupid, |
SUMOTime | time, | ||
TLColor | color | ||
) |
Sets the information about the begin of a phase.
[in] | groupid | The id of the signal group to add the phase to |
[in] | time | The time the phase starts at |
[in] | color | The color of the signal during this phase |
Definition at line 553 of file NBLoadedTLDef.cpp.
References mySignalGroups.
Referenced by NIVissimTL::NIVissimTLSignalGroup::addTo(), and NIVisumTL::build().
bool NBLoadedTLDef::addToSignalGroup | ( | const std::string & | groupid, |
const NBConnection & | connection | ||
) |
Adds a connection to a signal group.
[in] | groupid | The id of the signal group to add the connection to |
[in] | connection | The connection to add |
Definition at line 514 of file NBLoadedTLDef.cpp.
References NBTrafficLightDefinition::addNode(), NBNode::addTrafficLight(), NBConnection::getFrom(), NBEdge::getFromNode(), NBConnection::getTo(), NBEdge::getToNode(), and mySignalGroups.
Referenced by NIVissimTL::NIVissimTLSignal::addTo(), addToSignalGroup(), and NIVisumTL::build().
bool NBLoadedTLDef::addToSignalGroup | ( | const std::string & | groupid, |
const NBConnectionVector & | connections | ||
) |
Adds a list of connections to a signal group.
[in] | groupid | The id of the signal group to add the connections to |
[in] | connections | The connections to add |
Definition at line 535 of file NBLoadedTLDef.cpp.
References addToSignalGroup().
bool NBTrafficLightDefinition::amInvalid | ( | ) | const [protected, virtual, inherited] |
Reimplemented in NBLoadedSUMOTLDef.
Definition at line 121 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::myControlledLinks.
Referenced by NBTrafficLightDefinition::compute().
std::string NBLoadedTLDef::buildPhaseState | ( | const NBEdgeCont & | ec, |
unsigned int | time | ||
) | const [private] |
Builds the phase for a given time.
[in] | ec | The edge control to use |
[in] | time | The time to build the phase for |
Definition at line 370 of file NBLoadedTLDef.cpp.
References NBConnection::check(), NBLoadedTLDef::SignalGroup::getConnection(), NBLoadedTLDef::SignalGroup::getLinkNo(), NBLoadedTLDef::SignalGroup::hasYellow(), NBLoadedTLDef::SignalGroup::mayDrive(), mustBrake(), and mySignalGroups.
Referenced by myCompute().
void NBTrafficLightDefinition::collectEdges | ( | ) | [protected, inherited] |
Build the list of participating edges.
Definition at line 142 of file NBTrafficLightDefinition.cpp.
References Named::getID(), NBTrafficLightDefinition::myControlledInnerEdges, NBTrafficLightDefinition::myControlledNodes, NBTrafficLightDefinition::myEdgesWithin, and NBTrafficLightDefinition::myIncomingEdges.
Referenced by NBOwnTLDef::setParticipantsInformation(), and NBTrafficLightDefinition::setParticipantsInformation().
void NBLoadedTLDef::collectLinks | ( | ) | [protected, virtual] |
Collects the links participating in this traffic light
ProcessError | If a link could not be found. |
Implements NBTrafficLightDefinition.
Definition at line 483 of file NBLoadedTLDef.cpp.
References NBEdge::getConnectionsFromLane(), NBEdge::getNumLanes(), NBTrafficLightDefinition::myControlledLinks, NBTrafficLightDefinition::myIncomingEdges, NBEdge::Connection::toEdge, and NBEdge::Connection::toLane.
void NBLoadedTLDef::collectNodes | ( | ) | [protected] |
Collects the nodes participating in this traffic light.
Definition at line 465 of file NBLoadedTLDef.cpp.
References NBLoadedTLDef::SignalGroup::getConnection(), NBConnection::getFrom(), NBLoadedTLDef::SignalGroup::getLinkNo(), NBEdge::getToNode(), NBTrafficLightDefinition::myControlledNodes, and mySignalGroups.
NBTrafficLightLogic * NBTrafficLightDefinition::compute | ( | const NBEdgeCont & | ec, |
OptionsCont & | oc | ||
) | [inherited] |
Computes the traffic light logic.
Does some initialisation at first, then calls myCompute to finally build the tl-logic
[in] | ec | The edge container in order to retrieve edge information |
[in] | oc | The options container holding options needed during the building |
Definition at line 98 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::amInvalid(), NBTrafficLightDefinition::computeBrakingTime(), OptionsCont::getFloat(), Named::getID(), OptionsCont::getInt(), OptionsCont::isSet(), NBTrafficLightDefinition::myCompute(), NBTrafficLightDefinition::myControlledNodes, and WRITE_WARNING.
Referenced by NBTrafficLightLogicCont::computeSingleLogic().
unsigned int NBTrafficLightDefinition::computeBrakingTime | ( | SUMOReal | minDecel | ) | const [protected, inherited] |
Computes the time vehicles may need to brake.
This time depends on the maximum speed allowed on incoming junctions. It is computed as max_speed_allowed / minimum_vehicle_decleration
Definition at line 127 of file NBTrafficLightDefinition.cpp.
References NBContHelper::maxSpeed(), NBTrafficLightDefinition::myIncomingEdges, and SUMOReal.
Referenced by NBTrafficLightDefinition::compute().
NBLoadedTLDef::SignalGroup * NBLoadedTLDef::findGroup | ( | NBEdge * | from, |
NBEdge * | to | ||
) | const |
Returns the signal group which is responsible for the given connection.
[in] | from | The connection's start edge |
[in] | to | The connection's end edge |
Definition at line 503 of file NBLoadedTLDef.cpp.
References mySignalGroups.
bool NBTrafficLightDefinition::foes | ( | const NBEdge *const | from1, |
const NBEdge *const | to1, | ||
const NBEdge *const | from2, | ||
const NBEdge *const | to2 | ||
) | const [inherited] |
Returns the information whether the given flows cross.
[in] | from1 | The starting edge of the first stream |
[in] | to1 | The ending edge of the first stream |
[in] | from2 | The starting edge of the second stream |
[in] | to2 | The ending edge of the second stream |
Definition at line 302 of file NBTrafficLightDefinition.cpp.
References NBNode::foes(), and NBTrafficLightDefinition::myControlledNodes.
Referenced by NBOwnTLDef::computeUnblockedWeightedStreamNumber().
bool NBTrafficLightDefinition::forbids | ( | const NBEdge *const | possProhibitorFrom, |
const NBEdge *const | possProhibitorTo, | ||
const NBEdge *const | possProhibitedFrom, | ||
const NBEdge *const | possProhibitedTo, | ||
bool | regardNonSignalisedLowerPriority | ||
) | const [inherited] |
Returns the information whether "prohibited" flow must let "prohibitor" flow pass.
[in] | possProhibitedFrom | The maybe prohibited connection's begin |
[in] | possProhibitedTo | The maybe prohibited connection's end |
[in] | possProhibitorFrom | The maybe prohibiting connection's begin |
[in] | possProhibitorTo | The maybe prohibiting connection's end |
[in] | regardNonSignalisedLowerPriority | Whether the right of way rules without traffic lights shall be regarded |
Definition at line 225 of file NBTrafficLightDefinition.cpp.
References NBNode::foes(), NBNode::forbids(), NBEdge::getConnectedEdges(), and NBTrafficLightDefinition::myControlledNodes.
Referenced by NBTrafficLightDefinition::mustBrake(), and NBOwnTLDef::myCompute().
const NBConnectionVector& NBTrafficLightDefinition::getControlledLinks | ( | ) | const [inline, inherited] |
returns the controlled links (depends on previous call to collectLinks)
Definition at line 274 of file NBTrafficLightDefinition.h.
References NBTrafficLightDefinition::myControlledLinks.
Referenced by NBLoadedSUMOTLDef::NBLoadedSUMOTLDef().
const std::vector<NBNode*>& NBTrafficLightDefinition::getControlledNodes | ( | ) | const [inline, inherited] |
Definition at line 280 of file NBTrafficLightDefinition.h.
References NBTrafficLightDefinition::myControlledNodes.
Referenced by NIXMLTrafficLightsHandler::initTrafficLightLogic().
const std::string& Named::getID | ( | ) | const [inline, inherited] |
Returns the id.
Reimplemented in MS_E2_ZS_CollectorOverLanes.
Definition at line 61 of file Named.h.
References Named::myID.
Referenced by MSDetectorControl::add(), ShapeContainer::add(), RORouteDef_Alternatives::addAlternative(), MSNet::addBusStop(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), NIImporter_OpenDrive::addE2EConnectionsSecure(), RONet::addNode(), NIImporter_SUMO::addPhase(), RONet::addRouteDef(), NBDistrict::addSink(), NBDistrict::addSource(), MSRouteHandler::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), NIVisumTL::build(), MS_E2_ZS_CollectorOverLanes::buildCollector(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), NBEdge::buildInnerEdges(), NIVissimEdge::buildNBEdge(), NBNodeCont::buildOffRamp(), NBNodeCont::buildOnRamp(), ODDistrictHandler::closeDistrict(), NBTrafficLightDefinition::collectEdges(), NBOwnTLDef::collectLinks(), NBTrafficLightDefinition::compute(), NBNode::computeInternalLaneShape(), NBEdge::computeLaneShapes(), NBNode::computeLogic(), NBNode::computeNodeShape(), NBTrafficLightLogicCont::computeSingleLogic(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NBEdge::connections_sorter(), MSLane::detectCollisions(), NIVissimDistrictConnection::dict_BuildDistricts(), MSE3Collector::enter(), Command_SaveTLSSwitches::execute(), MSVTypeProbe::execute(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), NBEdgeCont::extract(), MSNet::getBusStopID(), NIImporter_VISUM::getNamedEdgeContinuating(), NLTriggerBuilder::getPosition(), NBNode::getPossiblySplittedIncoming(), NBNode::getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), NBEdgeCont::ignoreFilterMatch(), MSActuatedTrafficLightLogic::init(), MSAgentbasedTrafficLightLogic::init(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBTrafficLightLogicCont::insert(), NBNodeCont::insert(), NBEdgeCont::insert(), NBEdgeCont::joinSameNodeConnectingEdges(), MSE3Collector::leave(), NIImporter_OpenDrive::loadNetwork(), MSLane::moveCritical(), MSVehicle::MSVehicle(), RORDLoader_SUMOBase::myCharacters(), NBOwnTLDef::myCompute(), myCompute(), NIXMLTrafficLightsHandler::myEndElement(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSDevice_Tripinfo::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), Named::ComparatorIdLess::operator()(), NBTurningDirectionsComputer::combination_by_angle_sorter::operator()(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBContHelper::same_connection_edge_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIImporter_VISUM::parse_Turns(), NIImporter_VISUM::parse_TurnsToSignalGroups(), NIXMLConnectionsHandler::parseDeprecatedLaneDefinition(), NIXMLConnectionsHandler::parseLaneBound(), NBLoadedTLDef::SignalGroup::patchTYellow(), RORouteDef_Complete::preComputeCurrentRoute(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_Vehicle::processGet(), NWWriter_SUMO::prohibitionConnection(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), NBLoadedSUMOTLDef::removeConnection(), NBNode::removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBNodeCont::rename(), NBEdgeCont::rename(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), NBNodeCont::setAsTLControlled(), NBEdge::setControllingTLInformation(), MSLane::setCritical(), NIXMLEdgesHandler::setNodes(), NBOwnTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), setTLControllingInformation(), NBEdgeCont::splitAt(), RORDLoader_SUMOBase::startRoute(), NBEdge::startShapeAt(), NIXMLConnectionsHandler::validateLaneInfo(), MSInstantInductLoop::write(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_SUMO::writeInternalConnections(), NWWriter_SUMO::writeJunction(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), MSInductLoop::writeTypedXMLOutput(), MSRouteProbe::writeXMLOutput(), and MSE2Collector::writeXMLOutput().
const EdgeVector & NBTrafficLightDefinition::getIncomingEdges | ( | ) | const [inherited] |
Returns the list of incoming edges (must be build first)
Definition at line 351 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::myIncomingEdges.
Referenced by NBOwnTLDef::myCompute().
const std::vector<NBNode*>& NBTrafficLightDefinition::getNodes | ( | ) | const [inline, inherited] |
Returns the list of controlled nodes.
Definition at line 154 of file NBTrafficLightDefinition.h.
References NBTrafficLightDefinition::myControlledNodes.
const std::string& NBTrafficLightDefinition::getProgramID | ( | ) | const [inline, inherited] |
Returns the ProgramID.
Definition at line 288 of file NBTrafficLightDefinition.h.
References NBTrafficLightDefinition::mySubID.
Referenced by NIImporter_SUMO::addPhase(), NBTrafficLightLogicCont::computeSingleLogic(), NBTrafficLightLogicCont::extract(), NBTrafficLightLogicCont::insert(), NBOwnTLDef::myCompute(), myCompute(), NIXMLTrafficLightsHandler::myEndElement(), NIImporter_SUMO::myEndElement(), and NBLoadedSUMOTLDef::removeConnection().
bool NBTrafficLightDefinition::isLeftMover | ( | const NBEdge *const | from, |
const NBEdge *const | to | ||
) | const [inherited] |
returns the information whether the given link is a left-mover
[in] | from | The connection's start edge |
[in] | to | The connection's end edge |
Definition at line 173 of file NBTrafficLightDefinition.cpp.
References NBNode::isLeftMover(), and NBTrafficLightDefinition::myControlledNodes.
Referenced by NBOwnTLDef::myCompute().
bool NBTrafficLightDefinition::mustBrake | ( | const NBEdge *const | from, |
const NBEdge *const | to | ||
) | const [inherited] |
Returns the information whether the described flow must let any other flow pass.
If the from/to connection passes only one junction (from is incoming into same node as to outgoes from) the node is asked whether the flow must brake- Otherwise true is returned (recheck!) "from" must be an incoming edge into one of the participating nodes!
[in] | from | The connection's start edge |
[in] | to | The connection's end edge |
Definition at line 189 of file NBTrafficLightDefinition.cpp.
References NBNode::mustBrake(), and NBTrafficLightDefinition::myControlledNodes.
Referenced by mustBrake().
bool NBTrafficLightDefinition::mustBrake | ( | const NBConnection & | possProhibited, |
const NBConnection & | possProhibitor, | ||
bool | regardNonSignalisedLowerPriority | ||
) | const [inherited] |
Returns the information whether the described flow must let the other flow pass.
[in] | possProhibited | The maybe prohibited connection |
[in] | possProhibitor | The maybe prohibiting connection |
[in] | regardNonSignalisedLowerPriority | Whether the right of way rules without traffic lights shall be regarded |
Definition at line 215 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::forbids(), NBConnection::getFrom(), and NBConnection::getTo().
bool NBTrafficLightDefinition::mustBrake | ( | const NBEdge *const | possProhibitedFrom, |
const NBEdge *const | possProhibitedTo, | ||
const NBEdge *const | possProhibitorFrom, | ||
const NBEdge *const | possProhibitorTo, | ||
bool | regardNonSignalisedLowerPriority | ||
) | const [inherited] |
Returns the information whether the described flow must let any other flow pass.
[in] | possProhibitedFrom | The maybe prohibited connection's begin |
[in] | possProhibitedTo | The maybe prohibited connection's end |
[in] | possProhibitorFrom | The maybe prohibiting connection's begin |
[in] | possProhibitorTo | The maybe prohibiting connection's end |
[in] | regardNonSignalisedLowerPriority | Whether the right of way rules without traffic lights shall be regarded |
Definition at line 203 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::forbids().
bool NBLoadedTLDef::mustBrake | ( | const NBEdgeCont & | ec, |
const NBConnection & | possProhibited, | ||
const std::string & | state, | ||
unsigned int | strmpos | ||
) | const [protected] |
Returns the information whether a connection must brake, given a phase.
[in] | ec | The edge control to retrieve edges from |
[in] | possProhibited | The connection to investigate |
[in] | state | The state |
[in] | strmpos | The index of this connection within the masks |
Definition at line 424 of file NBLoadedTLDef.cpp.
References NBConnection::check(), NBLoadedTLDef::SignalGroup::getConnection(), NBConnection::getFrom(), NBLoadedTLDef::SignalGroup::getLinkNo(), NBTrafficLightDefinition::mustBrake(), and mySignalGroups.
Referenced by buildPhaseState().
NBTrafficLightLogic * NBLoadedTLDef::myCompute | ( | const NBEdgeCont & | ec, |
unsigned int | brakingTime | ||
) | [protected, virtual] |
Computes the traffic light logic finally in dependence to the type.
[in] | ec | The edge container |
[in] | brakingTime | Duration a vehicle needs for braking in front of the tls |
Implements NBTrafficLightDefinition.
Definition at line 289 of file NBLoadedTLDef.cpp.
References NBTrafficLightLogic::addStep(), buildPhaseState(), MsgHandler::clear(), NBTrafficLightLogic::closeBuilding(), Named::getID(), OptionsCont::getOptions(), NBTrafficLightDefinition::getProgramID(), NBLoadedTLDef::SignalGroup::getTimes(), MsgHandler::getWarningInstance(), myCycleDuration, mySignalGroups, NBLoadedTLDef::SignalGroup::patchTYellow(), NBLoadedTLDef::SignalGroup::sortPhases(), TIME2STEPS, and WRITE_WARNING.
void NBLoadedTLDef::remapRemoved | ( | NBEdge * | removed, |
const EdgeVector & | incoming, | ||
const EdgeVector & | outgoing | ||
) | [virtual] |
Replaces occurences of the removed edge in incoming/outgoing edges of all definitions.
[in] | removed | The removed edge |
[in] | incoming | The edges to use instead if an incoming edge was removed |
[in] | outgoing | The edges to use instead if an outgoing edge was removed |
Implements NBTrafficLightDefinition.
Definition at line 574 of file NBLoadedTLDef.cpp.
References NBLoadedTLDef::SignalGroup::containsIncoming(), NBLoadedTLDef::SignalGroup::containsOutgoing(), mySignalGroups, NBLoadedTLDef::SignalGroup::remapIncoming(), and NBLoadedTLDef::SignalGroup::remapOutgoing().
void NBTrafficLightDefinition::removeNode | ( | NBNode * | node | ) | [virtual, inherited] |
Removes the given node from the list of controlled nodes.
[in] | node | The node that shall not be controlled by the tls any more |
Definition at line 335 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::myControlledNodes.
Referenced by NBNode::removeTrafficLight().
void NBLoadedTLDef::replaceRemoved | ( | NBEdge * | removed, |
int | removedLane, | ||
NBEdge * | by, | ||
int | byLane | ||
) | [protected, virtual] |
Replaces a removed edge/lane.
[in] | removed | The edge to replace |
[in] | removedLane | The lane of this edge to replace |
[in] | by | The edge to insert instead |
[in] | byLane | This edge's lane to insert instead |
Implements NBTrafficLightDefinition.
Definition at line 590 of file NBLoadedTLDef.cpp.
References NBLoadedTLDef::SignalGroup::containsIncoming(), NBLoadedTLDef::SignalGroup::containsOutgoing(), mySignalGroups, and NBLoadedTLDef::SignalGroup::remap().
void NBLoadedTLDef::setCycleDuration | ( | unsigned int | cycleDur | ) |
Sets the duration of a cycle.
[in] | cycleDur | The duration of the cycle |
Definition at line 568 of file NBLoadedTLDef.cpp.
References myCycleDuration.
Referenced by NIVisumTL::build().
void Named::setID | ( | const std::string & | newID | ) | [inline, inherited] |
resets the id
Definition at line 67 of file Named.h.
References Named::myID.
Referenced by NBNodeCont::rename(), and NBEdgeCont::rename().
void NBTrafficLightDefinition::setParticipantsInformation | ( | ) | [virtual, inherited] |
Builds the list of participating nodes/edges/links.
Reimplemented in NBOwnTLDef.
Definition at line 134 of file NBTrafficLightDefinition.cpp.
References NBTrafficLightDefinition::collectEdges(), and NBTrafficLightDefinition::collectLinks().
void NBTrafficLightDefinition::setProgramID | ( | const std::string & | programID | ) | [inline, inherited] |
Definition at line 293 of file NBTrafficLightDefinition.h.
References NBTrafficLightDefinition::mySubID.
Referenced by NBTrafficLightLogicCont::insert().
void NBLoadedTLDef::setSignalYellowTimes | ( | const std::string & | groupid, |
SUMOTime | tRedYellow, | ||
SUMOTime | tYellow | ||
) |
Sets the times the light is yellow or red/yellow.
[in] | groupid | The id of the signal group to add the phase to |
[in] | tRedYellow | The duration of redyellow |
[in] | tYellow | The duration of yellow |
Definition at line 560 of file NBLoadedTLDef.cpp.
References mySignalGroups.
Referenced by NIVissimTL::NIVissimTLSignalGroup::addTo(), and NIVisumTL::build().
void NBLoadedTLDef::setTLControllingInformation | ( | const NBEdgeCont & | ec | ) | const [virtual] |
Informs edges about being controlled by a tls.
[in] | ec | The container of edges |
Implements NBTrafficLightDefinition.
Definition at line 345 of file NBLoadedTLDef.cpp.
References NBLoadedTLDef::SignalGroup::getConnection(), NBConnection::getFrom(), NBConnection::getFromLane(), Named::getID(), NBLoadedTLDef::SignalGroup::getLinkNo(), NBEdge::getNumLanes(), mySignalGroups, NBEdge::setControllingTLInformation(), and WRITE_WARNING.
const std::string NBTrafficLightDefinition::DefaultProgramID = "0" [static, inherited] |
Definition at line 75 of file NBTrafficLightDefinition.h.
Referenced by NIXMLTrafficLightsHandler::initTrafficLightLogic().
std::set<std::string> NBTrafficLightDefinition::myControlledInnerEdges [protected, inherited] |
Set of inner edges that shall be controlled, though.
Definition at line 345 of file NBTrafficLightDefinition.h.
Referenced by NBLoadedSUMOTLDef::addConnection(), NBTrafficLightDefinition::addControlledInnerEdges(), and NBTrafficLightDefinition::collectEdges().
NBConnectionVector NBTrafficLightDefinition::myControlledLinks [protected, inherited] |
The list of controlled links.
Definition at line 342 of file NBTrafficLightDefinition.h.
Referenced by NBLoadedSUMOTLDef::addConnection(), NBLoadedSUMOTLDef::amInvalid(), NBTrafficLightDefinition::amInvalid(), NBOwnTLDef::collectLinks(), collectLinks(), NBTrafficLightDefinition::getControlledLinks(), NBLoadedSUMOTLDef::NBLoadedSUMOTLDef(), NBLoadedSUMOTLDef::removeConnection(), NBOwnTLDef::setTLControllingInformation(), and NBLoadedSUMOTLDef::setTLControllingInformation().
std::vector<NBNode*> NBTrafficLightDefinition::myControlledNodes [protected, inherited] |
The container with participating nodes.
Definition at line 333 of file NBTrafficLightDefinition.h.
Referenced by NBTrafficLightDefinition::addNode(), NBLoadedSUMOTLDef::amInvalid(), NBTrafficLightDefinition::collectEdges(), collectNodes(), NBTrafficLightDefinition::compute(), NBTrafficLightDefinition::foes(), NBTrafficLightDefinition::forbids(), NBTrafficLightDefinition::getControlledNodes(), NBTrafficLightDefinition::getNodes(), NBTrafficLightDefinition::isLeftMover(), NBTrafficLightDefinition::mustBrake(), NBTrafficLightDefinition::NBTrafficLightDefinition(), and NBTrafficLightDefinition::removeNode().
unsigned int NBLoadedTLDef::myCycleDuration [private] |
The duration of a single cycle.
Definition at line 372 of file NBLoadedTLDef.h.
Referenced by myCompute(), and setCycleDuration().
EdgeVector NBTrafficLightDefinition::myEdgesWithin [protected, inherited] |
The list of edges within the area controlled by the tls.
Definition at line 339 of file NBTrafficLightDefinition.h.
Referenced by NBTrafficLightDefinition::collectEdges().
std::string Named::myID [protected, inherited] |
The name of the object.
Reimplemented in MS_E2_ZS_CollectorOverLanes.
Definition at line 83 of file Named.h.
Referenced by NLDetectorBuilder::addE3Entry(), NLDetectorBuilder::addE3Exit(), NBEdge::computeEdgeShape(), Named::getID(), NBEdge::getLaneID(), NBEdge::init(), RORouteDef_OrigDest::preComputeCurrentRoute(), RORouteDef_Alternatives::preComputeCurrentRoute(), RORouteDef_Complete::preComputeCurrentRoute(), MSRoute::release(), Named::setID(), NBEdge::splitGeometry(), MSXMLRawOut::writeLane(), NBNode::writeLogic(), MSE3Collector::writeXMLOutput(), and MSMeanData::writeXMLOutput().
EdgeVector NBTrafficLightDefinition::myIncomingEdges [protected, inherited] |
The list of incoming edges.
Definition at line 336 of file NBTrafficLightDefinition.h.
Referenced by NBTrafficLightDefinition::collectEdges(), NBOwnTLDef::collectLinks(), collectLinks(), NBTrafficLightDefinition::computeBrakingTime(), and NBTrafficLightDefinition::getIncomingEdges().
SignalGroupCont NBLoadedTLDef::mySignalGroups [private] |
Controlled signal groups.
Definition at line 369 of file NBLoadedTLDef.h.
Referenced by addSignalGroup(), addSignalGroupPhaseBegin(), addToSignalGroup(), buildPhaseState(), collectNodes(), findGroup(), mustBrake(), myCompute(), remapRemoved(), replaceRemoved(), setSignalYellowTimes(), setTLControllingInformation(), and ~NBLoadedTLDef().
std::string NBTrafficLightDefinition::mySubID [protected, inherited] |
The tls program's subid.
Definition at line 348 of file NBTrafficLightDefinition.h.
Referenced by NBTrafficLightDefinition::getProgramID(), and NBTrafficLightDefinition::setProgramID().