SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MSTLLogicControl::WAUTSwitchProcedure_Stretch Class Reference

This class switches using the Stretch algorithm. More...

#include <MSTLLogicControl.h>

Inheritance diagram for MSTLLogicControl::WAUTSwitchProcedure_Stretch:
MSTLLogicControl::WAUTSwitchProcedure

Data Structures

struct  StretchBereichDef
 A definition of a stretch - Bereich. More...

Public Member Functions

bool trySwitch (SUMOTime step)
 Determines whether a switch is possible.
 WAUTSwitchProcedure_Stretch (MSTLLogicControl &control, WAUT &waut, MSTrafficLightLogic *from, MSTrafficLightLogic *to, bool synchron)
 Constructor.
 ~WAUTSwitchProcedure_Stretch ()
 Destructor.

Protected Member Functions

void adaptLogic (SUMOTime step)
 Determines the destination program's changes and applies them.
void cutLogic (SUMOTime step, SUMOTime startPos, SUMOTime allCutTime)
 Cuts the logic to synchronize.
SUMOTime getDiffToStartOfPhase (MSTrafficLightLogic &logic, SUMOTime toTime)
 Returns the difference between a given time and the start of the phase.
unsigned int getGSPValue (const MSTrafficLightLogic &logic) const
 Returns the GSP-value.
int getStretchAreaNo (MSTrafficLightLogic *from) const
 Returns the number of given Stretch-areas for the given program.
StretchBereichDef getStretchBereichDef (MSTrafficLightLogic *from, int index) const
 Returns the numbered Stretch-area for the given program.
bool isPosAtGSP (SUMOTime currentTime, const MSTrafficLightLogic &logic)
 Checks, whether the position of a signal programm is at the GSP ("GuenstigerUmschaltPunkt")
void stretchLogic (SUMOTime step, SUMOTime startPos, SUMOTime allStretchTime)
 Stretches the logic to synchronize.
void switchToPos (SUMOTime simStep, MSTrafficLightLogic &logic, SUMOTime toTime)
 switches the given logic directly to the given position

Protected Attributes

MSTLLogicControlmyControl
 The control the logic belongs to.
MSTrafficLightLogicmyFrom
 The current program of the tls to switch.
bool mySwitchSynchron
 Information whether to switch synchron (?)
MSTrafficLightLogicmyTo
 The program to switch the tls to.
WAUTmyWAUT
 The WAUT responsible for switching.

Private Member Functions

WAUTSwitchProcedure_Stretchoperator= (const WAUTSwitchProcedure_Stretch &)
 Invalidated assignment operator.
 WAUTSwitchProcedure_Stretch (const WAUTSwitchProcedure_Stretch &)
 Invalidated copy constructor.

Detailed Description

This class switches using the Stretch algorithm.

Definition at line 685 of file MSTLLogicControl.h.

Constructor & Destructor Documentation

MSTLLogicControl::WAUTSwitchProcedure_Stretch::WAUTSwitchProcedure_Stretch ( MSTLLogicControl control,
WAUT waut,
MSTrafficLightLogic from,
MSTrafficLightLogic to,
bool  synchron 
)

Constructor.

Parameters
[in]controlThe responsible tls control
[in]wautThe WAUT to switch
[in]fromThe original tls program
[in]toThe destination tls program
[in]synchronWhether the switch shall be done in synchronuous mode

Definition at line 337 of file MSTLLogicControl.cpp.

MSTLLogicControl::WAUTSwitchProcedure_Stretch::~WAUTSwitchProcedure_Stretch ( )

Destructor.

Definition at line 343 of file MSTLLogicControl.cpp.

MSTLLogicControl::WAUTSwitchProcedure_Stretch::WAUTSwitchProcedure_Stretch ( const WAUTSwitchProcedure_Stretch )
private

Invalidated copy constructor.

Member Function Documentation

void MSTLLogicControl::WAUTSwitchProcedure_Stretch::adaptLogic ( SUMOTime  step)
protected

Determines the destination program's changes and applies them.

Parameters
[in]stepThe current simulation step
See Also
cutLogic
stretchLogic

Definition at line 365 of file MSTLLogicControl.cpp.

References MSTLLogicControl::WAUTSwitchProcedure_Stretch::StretchBereichDef::begin, MSTLLogicControl::WAUTSwitchProcedure_Stretch::StretchBereichDef::end, and TIME2STEPS.

void MSTLLogicControl::WAUTSwitchProcedure_Stretch::cutLogic ( SUMOTime  step,
SUMOTime  startPos,
SUMOTime  allCutTime 
)
protected

Cuts the logic to synchronize.

Parameters
[in]stepThe current simulation step
[in]startPosThe position in the destination program to switch to
[in]allCutTimeThe amount by which the logic shall be cut

Definition at line 397 of file MSTLLogicControl.cpp.

References MSTLLogicControl::WAUTSwitchProcedure_Stretch::StretchBereichDef::begin, MSTLLogicControl::WAUTSwitchProcedure_Stretch::StretchBereichDef::end, MIN2(), and TIME2STEPS.

SUMOTime MSTLLogicControl::WAUTSwitchProcedure::getDiffToStartOfPhase ( MSTrafficLightLogic logic,
SUMOTime  toTime 
)
protectedinherited

Returns the difference between a given time and the start of the phase.

Parameters
[in]logicThe logic to consider
[in]toTimeThe time to ask for
Returns
How much time elapsed between the last pahse start and the given time

Definition at line 241 of file MSTLLogicControl.cpp.

References MSTrafficLightLogic::getIndexFromOffset(), and MSTrafficLightLogic::getOffsetFromIndex().

unsigned int MSTLLogicControl::WAUTSwitchProcedure::getGSPValue ( const MSTrafficLightLogic logic) const
protectedinherited

Returns the GSP-value.

The GSP must be given as a logic's parameter ("GSP").

Parameters
[in]logicThe logic to retrieve the GSP from
Returns
The GSP value; 0 if not given.
See Also
MSTrafficLightLogic::getParameterValue

Definition at line 222 of file MSTLLogicControl.cpp.

References MSTrafficLightLogic::getParameterValue().

int MSTLLogicControl::WAUTSwitchProcedure_Stretch::getStretchAreaNo ( MSTrafficLightLogic from) const
protected

Returns the number of given Stretch-areas for the given program.

Parameters
[in]fromThe tls program to get the number of stretch areas from
Returns
The number of stretch areas

Definition at line 502 of file MSTLLogicControl.cpp.

References MSTrafficLightLogic::getParameterValue(), and toString().

MSTLLogicControl::WAUTSwitchProcedure_Stretch::StretchBereichDef MSTLLogicControl::WAUTSwitchProcedure_Stretch::getStretchBereichDef ( MSTrafficLightLogic from,
int  index 
) const
protected

Returns the numbered Stretch-area for the given program.

The first area has normally the number "1", not "0"!

Parameters
[in]fromThe tls program to get the named stretch area from
[in]indexThe index (identifier) for the area
Returns
The definition of the stretch area

Definition at line 512 of file MSTLLogicControl.cpp.

References MSTLLogicControl::WAUTSwitchProcedure_Stretch::StretchBereichDef::begin, MSTLLogicControl::WAUTSwitchProcedure_Stretch::StretchBereichDef::end, MSTLLogicControl::WAUTSwitchProcedure_Stretch::StretchBereichDef::fac, MSTrafficLightLogic::getParameterValue(), and toString().

bool MSTLLogicControl::WAUTSwitchProcedure::isPosAtGSP ( SUMOTime  currentTime,
const MSTrafficLightLogic logic 
)
protectedinherited

Checks, whether the position of a signal programm is at the GSP ("GuenstigerUmschaltPunkt")

The GSP must be given as a logic's parameter ("GSP"). Not the simulation second, but the phase the GSP lies within is used. If the phase the GSP lies within is the same as the logic's current phase, the result is true.

Parameters
[in]currentTimeThe current time step
[in]logicThe logic for which this should be examined
Returns
Whether the current step is the GSP
See Also
getGSPValue

Definition at line 232 of file MSTLLogicControl.cpp.

References MSPhaseDefinition::duration, MSTrafficLightLogic::getCurrentPhaseDef(), MSTrafficLightLogic::getCurrentPhaseIndex(), MSTrafficLightLogic::getDefaultCycleTime(), MSTrafficLightLogic::getNextSwitchTime(), MSTrafficLightLogic::getOffsetFromIndex(), and TIME2STEPS.

WAUTSwitchProcedure_Stretch& MSTLLogicControl::WAUTSwitchProcedure_Stretch::operator= ( const WAUTSwitchProcedure_Stretch )
private

Invalidated assignment operator.

void MSTLLogicControl::WAUTSwitchProcedure_Stretch::stretchLogic ( SUMOTime  step,
SUMOTime  startPos,
SUMOTime  allStretchTime 
)
protected

Stretches the logic to synchronize.

Parameters
[in]stepThe current simulation step
[in]startPosThe position in the destination program to switch to
[in]allStretchTimeThe amount by which the logic shall be streched

Definition at line 445 of file MSTLLogicControl.cpp.

References MSTLLogicControl::WAUTSwitchProcedure_Stretch::StretchBereichDef::end, MSTLLogicControl::WAUTSwitchProcedure_Stretch::StretchBereichDef::fac, STEPS2TIME, SUMOReal, and TIME2STEPS.

void MSTLLogicControl::WAUTSwitchProcedure::switchToPos ( SUMOTime  simStep,
MSTrafficLightLogic logic,
SUMOTime  toTime 
)
protectedinherited

switches the given logic directly to the given position

Parameters
[in]simStepThe current simulation time
[in]logicThe logic to switch
[in]toTimeThe time offset within the logic's phases to switch to

Definition at line 250 of file MSTLLogicControl.cpp.

References MSTrafficLightLogic::changeStepAndDuration(), MSPhaseDefinition::duration, MSTrafficLightLogic::getIndexFromOffset(), and MSTrafficLightLogic::getPhase().

bool MSTLLogicControl::WAUTSwitchProcedure_Stretch::trySwitch ( SUMOTime  step)
virtual

Determines whether a switch is possible.

Parameters
[in]stepThe current simulation step
Returns
If a switch shall be done, this method should return true.

Implements MSTLLogicControl::WAUTSwitchProcedure.

Definition at line 347 of file MSTLLogicControl.cpp.

References TIME2STEPS.

Field Documentation

MSTLLogicControl& MSTLLogicControl::WAUTSwitchProcedure::myControl
protectedinherited

The control the logic belongs to.

Definition at line 584 of file MSTLLogicControl.h.

MSTrafficLightLogic* MSTLLogicControl::WAUTSwitchProcedure::myFrom
protectedinherited

The current program of the tls to switch.

Definition at line 572 of file MSTLLogicControl.h.

bool MSTLLogicControl::WAUTSwitchProcedure::mySwitchSynchron
protectedinherited

Information whether to switch synchron (?)

Definition at line 578 of file MSTLLogicControl.h.

MSTrafficLightLogic* MSTLLogicControl::WAUTSwitchProcedure::myTo
protectedinherited

The program to switch the tls to.

Definition at line 575 of file MSTLLogicControl.h.

WAUT& MSTLLogicControl::WAUTSwitchProcedure::myWAUT
protectedinherited

The WAUT responsible for switching.

Definition at line 581 of file MSTLLogicControl.h.


The documentation for this class was generated from the following files: