SUMO - Simulation of Urban MObility
MSOffTrafficLightLogic Class Reference

A traffic lights logic which represents a tls in an off-mode. More...

#include <MSOffTrafficLightLogic.h>

Inheritance diagram for MSOffTrafficLightLogic:
MSTrafficLightLogic

Public Types

Structure definitions
typedef std::vector
< MSPhaseDefinition * > 
Phases
 Definition of a list of phases, being the junction logic.
typedef std::vector< MSLink * > LinkVector
 Definition of the list of links that participate in this tl-light.
typedef std::vector< LinkVectorLinkVectorVector
 Definition of a list that holds lists of links that do have the same attribute.
typedef std::vector< MSLane * > LaneVector
 Definition of the list of links that participate in this tl-light.
typedef std::vector< LaneVectorLaneVectorVector
 Definition of a list that holds lists of links that do have the same attribute.

Public Member Functions

virtual void init (NLDetectorBuilder &nb)
 Initialises the tls with information about incoming lanes.
 MSOffTrafficLightLogic (MSTLLogicControl &tlcontrol, const std::string &id)
 Constructor.
 ~MSOffTrafficLightLogic ()
 Destructor.
Handling of controlled links
void adaptLinkInformationFrom (const MSTrafficLightLogic &logic)
 Applies information about controlled links and lanes from the given logic.
Switching and setting current rows
SUMOTime trySwitch (bool isActive)
 Switches to the next phase.
Static Information Retrieval
unsigned int getPhaseNumber () const
 Returns the number of phases.
const PhasesgetPhases () const
 Returns the phases of this tls program.
const MSPhaseDefinitiongetPhase (unsigned int givenstep) const
 Returns the definition of the phase from the given position within the plan.
Dynamic Information Retrieval
unsigned int getCurrentPhaseIndex () const
 Returns the current index within the program.
const MSPhaseDefinitiongetCurrentPhaseDef () const
 Returns the definition of the current phase.
Conversion between time and phase
SUMOTime getPhaseIndexAtTime (SUMOTime simStep) const
 Returns the index of the logic at the given simulation step.
SUMOTime getOffsetFromIndex (unsigned int index) const
 Returns the position (start of a phase during a cycle) from of a given step.
unsigned int getIndexFromOffset (SUMOTime offset) const
 Returns the step (the phasenumber) of a given position of the cycle.
Changing phases and phase durations
void changeStepAndDuration (MSTLLogicControl &tlcontrol, SUMOTime simStep, unsigned int step, SUMOTime stepDuration)
 Changes the current phase and her duration.
Handling of controlled links
void addLink (MSLink *link, MSLane *lane, unsigned int pos)
 Adds a link on building.
std::map< MSLink *, LinkStatecollectLinkStates () const
 Returns the (uncontrolled) states of the controlled links.
void resetLinkStates (const std::map< MSLink *, LinkState > &vals) const
 Resets the states of controlled links.
Switching and setting current rows
bool setTrafficLightSignals (SUMOTime t) const
 Applies the current signal states to controlled links.
Static Information Retrieval
const std::string & getID () const
 Returns this tl-logic's id.
const std::string & getProgramID () const
 Returns this tl-logic's id.
const LaneVectorVectorgetLanes () const
 Returns the list of lists of all lanes controlled by this tls.
const LaneVectorgetLanesAt (unsigned int i) const
 Returns the list of lanes that are controlled by the signals at the given position.
const LinkVectorVectorgetLinks () const
 Returns the list of lists of all affected links.
const LinkVectorgetLinksAt (unsigned int i) const
 Returns the list of links that are controlled by the signals at the given position.
int getLinkIndex (const MSLink *const link) const
 Returns the index of the given link.
Dynamic Information Retrieval
SUMOTime getDefaultCycleTime () const
 Returns the cycle time (in ms)
SUMOTime getNextSwitchTime () const
 Returns the assumed next switch time.
Changing phases and phase durations
void addOverridingDuration (SUMOTime duration)
 Changes the duration of the next phase.
void setCurrentDurationIncrement (SUMOTime delay)
 Delays current phase by the given delay.
Algorithm parameter handling
void setParameter (const std::map< std::string, std::string > &params)
 Inserts read parameter.
std::string getParameterValue (const std::string &key) const
 Returns a named parameter.

Protected Attributes

SUMOTime myCurrentDurationIncrement
 A value for enlarge the current duration.
SUMOTime myDefaultCycleTime
 The cycle time (without changes)
std::string myID
 The id of the logic.
LaneVectorVector myLanes
 The list of links which do participate in this traffic light.
LinkVectorVector myLinks
 The list of links which do participate in this traffic light.
std::vector< SUMOTimemyOverridingTimes
 A list of duration overrides.
std::map< std::string,
std::string > 
myParameter
 Given parameter.
std::string myProgramID
SwitchCommandmySwitchCommand
 The current switch command.

Private Member Functions

void rebuildPhase ()
 (Re)builds the internal phase definition

Private Attributes

MSTrafficLightLogic::Phases myPhaseDefinition
 The phase definition (only one)

Detailed Description

A traffic lights logic which represents a tls in an off-mode.

Definition at line 53 of file MSOffTrafficLightLogic.h.


Member Typedef Documentation

typedef std::vector<MSLane*> MSTrafficLightLogic::LaneVector [inherited]

Definition of the list of links that participate in this tl-light.

Definition at line 77 of file MSTrafficLightLogic.h.

typedef std::vector<LaneVector> MSTrafficLightLogic::LaneVectorVector [inherited]

Definition of a list that holds lists of links that do have the same attribute.

Definition at line 80 of file MSTrafficLightLogic.h.

typedef std::vector<MSLink*> MSTrafficLightLogic::LinkVector [inherited]

Definition of the list of links that participate in this tl-light.

Definition at line 71 of file MSTrafficLightLogic.h.

typedef std::vector<LinkVector> MSTrafficLightLogic::LinkVectorVector [inherited]

Definition of a list that holds lists of links that do have the same attribute.

Definition at line 74 of file MSTrafficLightLogic.h.

typedef std::vector<MSPhaseDefinition*> MSTrafficLightLogic::Phases [inherited]

Definition of a list of phases, being the junction logic.

Definition at line 68 of file MSTrafficLightLogic.h.


Constructor & Destructor Documentation

MSOffTrafficLightLogic::MSOffTrafficLightLogic ( MSTLLogicControl tlcontrol,
const std::string &  id 
)

Constructor.

Parameters:
[in]tlcontrolThe tls control responsible for this tls
[in]idThis tls' id The sub-id is always "off".

Definition at line 48 of file MSOffTrafficLightLogic.cpp.

References MSTrafficLightLogic::myDefaultCycleTime, and TIME2STEPS.


Member Function Documentation

Applies information about controlled links and lanes from the given logic.

Parameters:
[in]logicThe logic to use the information about controlled links/lanes from
See also:
MSTrafficLightLogic::adaptLinkInformationFrom

Reimplemented from MSTrafficLightLogic.

Definition at line 70 of file MSOffTrafficLightLogic.cpp.

References rebuildPhase().

void MSTrafficLightLogic::addLink ( MSLink link,
MSLane lane,
unsigned int  pos 
) [inherited]

Adds a link on building.

Parameters:
[in]linkThe controlled link
[in]laneThe lane this link starts at
[in]posThe link's index (signal group) within this program

Definition at line 125 of file MSTrafficLightLogic.cpp.

References MSTrafficLightLogic::getCurrentPhaseDef(), MSNet::getInstance(), MSTrafficLightLogic::myLanes, MSTrafficLightLogic::myLinks, and MSLink::setTLState().

void MSTrafficLightLogic::addOverridingDuration ( SUMOTime  duration) [inherited]

Changes the duration of the next phase.

Parameters:
[in]durationThe new duration

Definition at line 216 of file MSTrafficLightLogic.cpp.

References MSTrafficLightLogic::myOverridingTimes.

void MSOffTrafficLightLogic::changeStepAndDuration ( MSTLLogicControl tlcontrol,
SUMOTime  simStep,
unsigned int  step,
SUMOTime  stepDuration 
) [inline, virtual]

Changes the current phase and her duration.

Parameters:
[in]tlcontrolThe responsible traffic lights control
[in]simStepThe current simulation step
[in]stepIndex of the phase to use
[in]stepDurationThe left duration of the phase
See also:
MSTrafficLightLogic::changeStepAndDuration

Implements MSTrafficLightLogic.

Definition at line 187 of file MSOffTrafficLightLogic.h.

References UNUSED_PARAMETER.

std::map< MSLink *, LinkState > MSTrafficLightLogic::collectLinkStates ( ) const [inherited]

Returns the (uncontrolled) states of the controlled links.

Returns:
The controlled link's states

Definition at line 150 of file MSTrafficLightLogic.cpp.

References MSTrafficLightLogic::myLinks.

Returns the definition of the current phase.

Returns:
The current phase
See also:
MSTrafficLightLogic::getCurrentPhaseDef

Implements MSTrafficLightLogic.

Definition at line 119 of file MSOffTrafficLightLogic.cpp.

References myPhaseDefinition.

unsigned int MSOffTrafficLightLogic::getCurrentPhaseIndex ( ) const [virtual]

Returns the current index within the program.

Returns:
The index of the current phase within the tls
See also:
MSTrafficLightLogic::getCurrentPhaseIndex

Implements MSTrafficLightLogic.

Definition at line 113 of file MSOffTrafficLightLogic.cpp.

SUMOTime MSTrafficLightLogic::getDefaultCycleTime ( ) const [inline, inherited]

Returns the cycle time (in ms)

Returns:
The (maybe changing) cycle time of this tls

Definition at line 263 of file MSTrafficLightLogic.h.

References MSTrafficLightLogic::myDefaultCycleTime.

Referenced by MSTLLogicControl::WAUTSwitchProcedure::isPosAtGSP().

unsigned int MSOffTrafficLightLogic::getIndexFromOffset ( SUMOTime  offset) const [virtual]

Returns the step (the phasenumber) of a given position of the cycle.

Parameters:
[in]offsetThe offset (time) for which the according phase shall be returned
Returns:
The according phase
See also:
MSTrafficLightLogic::getIndexFromOffset

Implements MSTrafficLightLogic.

Definition at line 138 of file MSOffTrafficLightLogic.cpp.

const LaneVectorVector& MSTrafficLightLogic::getLanes ( ) const [inline, inherited]

Returns the list of lists of all lanes controlled by this tls.

Returns:
All lanes controlled by this tls, sorted by the signal index

Definition at line 186 of file MSTrafficLightLogic.h.

References MSTrafficLightLogic::myLanes.

Referenced by GUITrafficLightLogicWrapper::getCenteringBoundary(), and TraCIServerAPI_TLS::processGet().

const LaneVector& MSTrafficLightLogic::getLanesAt ( unsigned int  i) const [inline, inherited]

Returns the list of lanes that are controlled by the signals at the given position.

Parameters:
[in]iThe index of the signal
Returns:
The lanes controlled by the signal at the given index

Definition at line 195 of file MSTrafficLightLogic.h.

References MSTrafficLightLogic::myLanes.

Referenced by MSAgentbasedTrafficLightLogic::collectData(), GUITrafficLightLogicWrapper::drawGL(), MSActuatedTrafficLightLogic::duration(), Command_SaveTLSSwitches::execute(), MSActuatedTrafficLightLogic::gapControl(), and GUIViewTraffic::onGamingClick().

int MSTrafficLightLogic::getLinkIndex ( const MSLink *const  link) const [inherited]

Returns the index of the given link.

Parameters:
[in]linkThe link to retrieve the index for
Returns:
The index of the given link (-1 if it is not controlled by this tls)

Definition at line 192 of file MSTrafficLightLogic.cpp.

References MSTrafficLightLogic::myLinks.

Referenced by GUITrafficLightLogicWrapper::getLinkIndex().

const LinkVector& MSTrafficLightLogic::getLinksAt ( unsigned int  i) const [inline, inherited]

Returns the list of links that are controlled by the signals at the given position.

Parameters:
[in]iThe index of the signal
Returns:
The links controlled by the signal at the given index

Definition at line 212 of file MSTrafficLightLogic.h.

References MSTrafficLightLogic::myLinks.

Returns the assumed next switch time.

The time may change in case of adaptive/actuated traffic lights.

Returns:
The assumed next switch time (simulation time)

Definition at line 209 of file MSTrafficLightLogic.cpp.

References MSTrafficLightLogic::SwitchCommand::getNextSwitchTime(), and MSTrafficLightLogic::mySwitchCommand.

Referenced by MSTLLogicControl::WAUTSwitchProcedure::isPosAtGSP(), and TraCIServerAPI_TLS::processGet().

SUMOTime MSOffTrafficLightLogic::getOffsetFromIndex ( unsigned int  index) const [virtual]

Returns the position (start of a phase during a cycle) from of a given step.

Parameters:
[in]indexThe index of the phase to return the begin of
Returns:
The begin time of the phase
See also:
MSTrafficLightLogic::getOffsetFromIndex

Implements MSTrafficLightLogic.

Definition at line 132 of file MSOffTrafficLightLogic.cpp.

std::string MSTrafficLightLogic::getParameterValue ( const std::string &  key) const [inherited]

Returns a named parameter.

Parameters:
[in]keyThe name of the parameter
Returns:
The value of the parameter, "" if the parameter is not known

Definition at line 237 of file MSTrafficLightLogic.cpp.

References MSTrafficLightLogic::myParameter.

Referenced by MSTLLogicControl::WAUTSwitchProcedure::getGSPValue(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::getStretchAreaNo(), and MSTLLogicControl::WAUTSwitchProcedure_Stretch::getStretchBereichDef().

const MSPhaseDefinition & MSOffTrafficLightLogic::getPhase ( unsigned int  givenstep) const [virtual]

Returns the definition of the phase from the given position within the plan.

Parameters:
[in]givenstepThe index of the phase within the plan
Returns:
The definition of the phase at the given position
See also:
MSTrafficLightLogic::getPhase

Implements MSTrafficLightLogic.

Definition at line 106 of file MSOffTrafficLightLogic.cpp.

References myPhaseDefinition.

Returns the index of the logic at the given simulation step.

Returns:
The (estimated) index of the tls at the given simulation time step
See also:
MSTrafficLightLogic::getPhaseIndexAtTime

Implements MSTrafficLightLogic.

Definition at line 126 of file MSOffTrafficLightLogic.cpp.

unsigned int MSOffTrafficLightLogic::getPhaseNumber ( ) const [virtual]

Returns the number of phases.

Returns:
The number of this tls program's phases
See also:
MSTrafficLightLogic::getPhaseNumber

Implements MSTrafficLightLogic.

Definition at line 94 of file MSOffTrafficLightLogic.cpp.

Returns the phases of this tls program.

Returns:
The phases of this tls program
See also:
MSTrafficLightLogic::getPhases

Implements MSTrafficLightLogic.

Definition at line 100 of file MSOffTrafficLightLogic.cpp.

References myPhaseDefinition.

Initialises the tls with information about incoming lanes.

Parameters:
[in]nbThe detector builder
[in]edgeContinuationsInformation about edge predecessors/successors

Reimplemented from MSTrafficLightLogic.

Definition at line 63 of file MSOffTrafficLightLogic.cpp.

References rebuildPhase().

(Re)builds the internal phase definition

Definition at line 77 of file MSOffTrafficLightLogic.cpp.

References MSTrafficLightLogic::getLinks(), myPhaseDefinition, and TIME2STEPS.

Referenced by adaptLinkInformationFrom(), and init().

void MSTrafficLightLogic::resetLinkStates ( const std::map< MSLink *, LinkState > &  vals) const [inherited]

Resets the states of controlled links.

Parameters:
[in]valsThe state of controlled links to use

Definition at line 179 of file MSTrafficLightLogic.cpp.

References MSNet::getCurrentTimeStep(), MSNet::getInstance(), and MSTrafficLightLogic::myLinks.

Delays current phase by the given delay.

Parameters:
[in]delayThe time by which the current phase shall be delayed

Definition at line 222 of file MSTrafficLightLogic.cpp.

References MSTrafficLightLogic::myCurrentDurationIncrement.

void MSTrafficLightLogic::setParameter ( const std::map< std::string, std::string > &  params) [inherited]

Inserts read parameter.

Parameters:
[in]paramsThe parameter to use

Definition at line 231 of file MSTrafficLightLogic.cpp.

References MSTrafficLightLogic::myParameter.

Referenced by NLJunctionControlBuilder::closeTrafficLightLogic().

Applies the current signal states to controlled links.

Parameters:
[in]tThe current time
Returns:
Always true
See also:
LinkState
MSLink::setTLState

Definition at line 163 of file MSTrafficLightLogic.cpp.

References MSTrafficLightLogic::getCurrentPhaseDef(), MSPhaseDefinition::getState(), and MSTrafficLightLogic::myLinks.

Referenced by MSTLLogicControl::TLSLogicVariants::addLogic(), and TraCIServerAPI_TLS::processSet().

SUMOTime MSOffTrafficLightLogic::trySwitch ( bool  isActive) [inline, virtual]

Switches to the next phase.

Parameters:
[in]isActiveWhether this program is the currently used one
Returns:
The time of the next switch (always 120)
See also:
MSTrafficLightLogic::trySwitch

Implements MSTrafficLightLogic.

Definition at line 95 of file MSOffTrafficLightLogic.h.

References DELTA_T, and UNUSED_PARAMETER.


Field Documentation

A value for enlarge the current duration.

Definition at line 427 of file MSTrafficLightLogic.h.

Referenced by MSTrafficLightLogic::setCurrentDurationIncrement(), and MSSimpleTrafficLightLogic::trySwitch().

std::string MSTrafficLightLogic::myID [protected, inherited]
std::vector<SUMOTime> MSTrafficLightLogic::myOverridingTimes [protected, inherited]

A list of duration overrides.

Definition at line 424 of file MSTrafficLightLogic.h.

Referenced by MSTrafficLightLogic::addOverridingDuration(), and MSSimpleTrafficLightLogic::trySwitch().


The documentation for this class was generated from the following files:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines