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