![]() |
SUMO - Simulation of Urban MObility
|
This class switches using the GSP algorithm. More...
#include <MSTLLogicControl.h>
Public Member Functions | |
bool | trySwitch (SUMOTime step) |
Determines whether a switch is possible. More... | |
WAUTSwitchProcedure_GSP (MSTLLogicControl &control, WAUT &waut, MSTrafficLightLogic *from, MSTrafficLightLogic *to, bool synchron) | |
Constructor. More... | |
~WAUTSwitchProcedure_GSP () | |
Destructor. More... | |
Protected Member Functions | |
void | adaptLogic (SUMOTime step) |
Stretches the destination program's phase to which the tls was switched. More... | |
SUMOTime | getDiffToStartOfPhase (MSTrafficLightLogic &logic, SUMOTime toTime) |
Returns the difference between a given time and the start of the phase. More... | |
int | getGSPValue (const MSTrafficLightLogic &logic) const |
Returns the GSP-value. More... | |
bool | isPosAtGSP (SUMOTime currentTime, const MSTrafficLightLogic &logic) |
Checks, whether the position of a signal programm is at the GSP ("GuenstigerUmschaltPunkt") More... | |
void | switchToPos (SUMOTime simStep, MSTrafficLightLogic &logic, SUMOTime toTime) |
switches the given logic directly to the given position More... | |
Protected Attributes | |
MSTLLogicControl & | myControl |
The control the logic belongs to. More... | |
MSTrafficLightLogic * | myFrom |
The current program of the tls to switch. More... | |
bool | mySwitchSynchron |
Information whether to switch synchron (?) More... | |
MSTrafficLightLogic * | myTo |
The program to switch the tls to. More... | |
WAUT & | myWAUT |
The WAUT responsible for switching. More... | |
Private Member Functions | |
WAUTSwitchProcedure_GSP & | operator= (const WAUTSwitchProcedure_GSP &) |
Invalidated assignment operator. More... | |
WAUTSwitchProcedure_GSP (const WAUTSwitchProcedure_GSP &) | |
Invalidated copy constructor. More... | |
This class switches using the GSP algorithm.
Definition at line 659 of file MSTLLogicControl.h.
MSTLLogicControl::WAUTSwitchProcedure_GSP::WAUTSwitchProcedure_GSP | ( | MSTLLogicControl & | control, |
WAUT & | waut, | ||
MSTrafficLightLogic * | from, | ||
MSTrafficLightLogic * | to, | ||
bool | synchron | ||
) |
Constructor.
[in] | control | The responsible tls control |
[in] | waut | The WAUT to switch |
[in] | from | The original tls program |
[in] | to | The destination tls program |
[in] | synchron | Whether the switch shall be done in synchronuous mode |
Definition at line 300 of file MSTLLogicControl.cpp.
MSTLLogicControl::WAUTSwitchProcedure_GSP::~WAUTSwitchProcedure_GSP | ( | ) |
Destructor.
Definition at line 306 of file MSTLLogicControl.cpp.
|
private |
Invalidated copy constructor.
|
protected |
Stretches the destination program's phase to which the tls was switched.
Definition at line 328 of file MSTLLogicControl.cpp.
References MSTrafficLightLogic::changeStepAndDuration(), MSPhaseDefinition::duration, MSTrafficLightLogic::getCurrentPhaseDef(), MSTrafficLightLogic::getCurrentPhaseIndex(), MSTrafficLightLogic::getDefaultCycleTime(), MSTLLogicControl::WAUTSwitchProcedure::getDiffToStartOfPhase(), MSTLLogicControl::WAUTSwitchProcedure::getGSPValue(), MSTrafficLightLogic::getIndexFromOffset(), MSTrafficLightLogic::getNextSwitchTime(), MSTrafficLightLogic::getOffsetFromIndex(), MSTrafficLightLogic::getPhase(), MSTLLogicControl::WAUTSwitchProcedure::myControl, MSTLLogicControl::WAUTSwitchProcedure::myTo, and TIME2STEPS.
Referenced by trySwitch().
|
protectedinherited |
Returns the difference between a given time and the start of the phase.
[in] | logic | The logic to consider |
[in] | toTime | The time to ask for |
Definition at line 259 of file MSTLLogicControl.cpp.
References MSTrafficLightLogic::getIndexFromOffset(), and MSTrafficLightLogic::getOffsetFromIndex().
Referenced by adaptLogic(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::cutLogic(), and MSTLLogicControl::WAUTSwitchProcedure_Stretch::stretchLogic().
|
protectedinherited |
Returns the GSP-value.
The GSP must be given as a logic's parameter ("GSP").
[in] | logic | The logic to retrieve the GSP from |
Definition at line 240 of file MSTLLogicControl.cpp.
References TplConvert::_2int(), and Parameterised::getParameter().
Referenced by adaptLogic(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::adaptLogic(), trySwitch(), and MSTLLogicControl::WAUTSwitchProcedure_Stretch::trySwitch().
|
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.
[in] | currentTime | The current time step |
[in] | logic | The logic for which this should be examined |
Definition at line 250 of file MSTLLogicControl.cpp.
References MSPhaseDefinition::duration, MSTrafficLightLogic::getCurrentPhaseDef(), MSTrafficLightLogic::getCurrentPhaseIndex(), MSTrafficLightLogic::getDefaultCycleTime(), MSTrafficLightLogic::getNextSwitchTime(), MSTrafficLightLogic::getOffsetFromIndex(), and TIME2STEPS.
Referenced by trySwitch(), and MSTLLogicControl::WAUTSwitchProcedure_Stretch::trySwitch().
|
private |
Invalidated assignment operator.
|
protectedinherited |
switches the given logic directly to the given position
[in] | simStep | The current simulation time |
[in] | logic | The logic to switch |
[in] | toTime | The time offset within the logic's phases to switch to |
Definition at line 268 of file MSTLLogicControl.cpp.
References MSTrafficLightLogic::changeStepAndDuration(), MSPhaseDefinition::duration, MSTrafficLightLogic::getIndexFromOffset(), and MSTrafficLightLogic::getPhase().
Referenced by trySwitch(), and MSTLLogicControl::WAUTSwitchProcedure_Stretch::trySwitch().
|
virtual |
Determines whether a switch is possible.
[in] | step | The current simulation step |
Implements MSTLLogicControl::WAUTSwitchProcedure.
Definition at line 310 of file MSTLLogicControl.cpp.
References adaptLogic(), MSTLLogicControl::WAUTSwitchProcedure::getGSPValue(), MSTLLogicControl::WAUTSwitchProcedure::isPosAtGSP(), MSTLLogicControl::WAUTSwitchProcedure::myFrom, MSTLLogicControl::WAUTSwitchProcedure::mySwitchSynchron, MSTLLogicControl::WAUTSwitchProcedure::myTo, MSTLLogicControl::WAUTSwitchProcedure::switchToPos(), and TIME2STEPS.
|
protectedinherited |
The control the logic belongs to.
Definition at line 602 of file MSTLLogicControl.h.
Referenced by adaptLogic(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::cutLogic(), and MSTLLogicControl::WAUTSwitchProcedure_Stretch::stretchLogic().
|
protectedinherited |
The current program of the tls to switch.
Definition at line 590 of file MSTLLogicControl.h.
Referenced by trySwitch(), and MSTLLogicControl::WAUTSwitchProcedure_Stretch::trySwitch().
|
protectedinherited |
Information whether to switch synchron (?)
Definition at line 596 of file MSTLLogicControl.h.
Referenced by trySwitch(), and MSTLLogicControl::WAUTSwitchProcedure_Stretch::trySwitch().
|
protectedinherited |
The program to switch the tls to.
Definition at line 593 of file MSTLLogicControl.h.
Referenced by adaptLogic(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::adaptLogic(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::cutLogic(), MSTLLogicControl::WAUTSwitchProcedure_Stretch::stretchLogic(), trySwitch(), and MSTLLogicControl::WAUTSwitchProcedure_Stretch::trySwitch().
|
protectedinherited |
The WAUT responsible for switching.
Definition at line 599 of file MSTLLogicControl.h.
Referenced by MSTLLogicControl::WAUTSwitchProcedure_Stretch::stretchLogic().