51 const std::string&
id,
const std::string& subid,
const Phases& phases,
53 const std::map<std::string, std::string>& parameters) :
57 for (
int i = 0; i < (int)
myPhases.size(); i++) {
120 assert((
int)
myPhases.size() > givenStep);
143 for (
int i = 0; i <
myStep; i++) {
156 assert(index < (
int)
myPhases.size());
161 for (
int i = 0; i < index; i++) {
175 for (
int i = 0; i < (int)
myPhases.size(); i++) {
177 if (testPos > offset) {
180 if (testPos == offset) {
181 assert((
int)
myPhases.size() > (i + 1));
207 assert(step < (
int)phases.size());
216 for (
int i = 0; i < (int)
myPhases.size(); i++) {
SUMOTime myCurrentDurationIncrement
A value for enlarge the current duration.
MSSimpleTrafficLightLogic(MSTLLogicControl &tlcontrol, const std::string &id, const std::string &subid, const Phases &phases, int step, SUMOTime delay, const std::map< std::string, std::string > ¶meters)
Constructor.
void executeOnSwitchActions() const
std::vector< SUMOTime > myOverridingTimes
A list of duration overrides.
void setPhases(const Phases &phases, int index)
Replaces the phases and set the phase index.
void changeStepAndDuration(MSTLLogicControl &tlcontrol, SUMOTime simStep, int step, SUMOTime stepDuration)
Changes the current phase and her duration.
Phases myPhases
The list of phases this logic uses.
int myStep
The current step.
int getIndexFromOffset(SUMOTime offset) const
Returns the step (the phasenumber) of a given position of the cycle.
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
SUMOTime getOffsetFromIndex(int index) const
Returns the position (start of a phase during a cycle) from of a given step.
SUMOTime getPhaseIndexAtTime(SUMOTime simStep) const
Returns the index of the logic at the given simulation step.
const std::string & getID() const
Returns the id.
bool setTrafficLightSignals(SUMOTime t) const
Applies the current signal states to controlled links.
const MSPhaseDefinition & getCurrentPhaseDef() const
Returns the definition of the current phase.
A class that stores and controls tls and switching of their programs.
SUMOTime duration
The duration of the phase.
void deschedule(MSTrafficLightLogic *tlLogic)
Marks this swicth as invalid (if the phase duration has changed, f.e.)
Class realising the switch between the traffic light phases.
SUMOTime myDefaultCycleTime
The cycle time (without changes)
SUMOTime myLastSwitch
Stores the timestep of the last on-switched of the phase.
int getCurrentPhaseIndex() const
Returns the current index within the program.
MSEventControl * getBeginOfTimestepEvents()
Returns the event control for events executed at the begin of a time step.
virtual void addEvent(Command *operation, SUMOTime execTimeStep=-1)
Adds an Event.
virtual SUMOTime trySwitch()
Switches to the next phase.
SUMOTime getCurrentTimeStep() const
Returns the current simulation step.
void deletePhases()
frees memory responsibilities
~MSSimpleTrafficLightLogic()
Destructor.
std::vector< MSPhaseDefinition * > Phases
Definition of a list of phases, being the junction logic.
int getPhaseNumber() const
Returns the number of phases.
SwitchCommand * mySwitchCommand
The current switch command.
The parent class for traffic light logics.
TLSLogicVariants & get(const std::string &id) const
Returns the variants of a named tls.
const Phases & getPhases() const
Returns the phases of this tls program.
The definition of a single phase of a tls logic.
const MSPhaseDefinition & getPhase(int givenstep) const
Returns the definition of the phase from the given position within the plan.