SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MSSimpleTrafficLightLogic.h
Go to the documentation of this file.
1 /****************************************************************************/
11 // A fixed traffic light logic
12 /****************************************************************************/
13 // SUMO, Simulation of Urban MObility; see http://sumo-sim.org/
14 // Copyright (C) 2001-2013 DLR (http://www.dlr.de/) and contributors
15 /****************************************************************************/
16 //
17 // This file is part of SUMO.
18 // SUMO is free software: you can redistribute it and/or modify
19 // it under the terms of the GNU General Public License as published by
20 // the Free Software Foundation, either version 3 of the License, or
21 // (at your option) any later version.
22 //
23 /****************************************************************************/
24 #ifndef MSSimpleTrafficLightLogic_h
25 #define MSSimpleTrafficLightLogic_h
26 
27 
28 // ===========================================================================
29 // included modules
30 // ===========================================================================
31 #ifdef _MSC_VER
32 #include <windows_config.h>
33 #else
34 #include <config.h>
35 #endif
36 
37 #include <utility>
38 #include <vector>
39 #include <bitset>
41 #include <microsim/MSNet.h>
42 #include "MSTrafficLightLogic.h"
43 #include "MSPhaseDefinition.h"
44 
45 
46 // ===========================================================================
47 // class definitions
48 // ===========================================================================
60 public:
70  const std::string& id, const std::string& subid,
71  const Phases& phases, unsigned int step, SUMOTime delay,
72  const std::map<std::string, std::string>& parameters);
73 
74 
77 
78 
79 
82 
88  SUMOTime trySwitch(bool isActive);
90 
91 
92 
95 
100  unsigned int getPhaseNumber() const;
101 
102 
107  const Phases& getPhases() const;
108 
109 
114  Phases& getPhases();
115 
116 
122  const MSPhaseDefinition& getPhase(unsigned int givenstep) const;
124 
125 
126 
129 
134  unsigned int getCurrentPhaseIndex() const;
135 
136 
141  const MSPhaseDefinition& getCurrentPhaseDef() const;
143 
144 
145 
148 
153  SUMOTime getPhaseIndexAtTime(SUMOTime simStep) const;
154 
155 
161  SUMOTime getOffsetFromIndex(unsigned int index) const;
162 
163 
169  unsigned int getIndexFromOffset(SUMOTime offset) const;
171 
172 
173 
176 
184  void changeStepAndDuration(MSTLLogicControl& tlcontrol, SUMOTime simStep,
185  unsigned int step, SUMOTime stepDuration);
186 
189  void setPhases(const Phases& phases, unsigned int index);
191 
192 
193 protected:
196 
198  unsigned int myStep;
199 
200 
201 private:
203  void deletePhases();
204 
205 };
206 
207 
208 #endif
209 
210 /****************************************************************************/
211 
void changeStepAndDuration(MSTLLogicControl &tlcontrol, SUMOTime simStep, unsigned int step, SUMOTime stepDuration)
Changes the current phase and her duration.
unsigned int getPhaseNumber() const
Returns the number of phases.
unsigned int getIndexFromOffset(SUMOTime offset) const
Returns the step (the phasenumber) of a given position of the cycle.
unsigned int myStep
The current step.
const Phases & getPhases() const
Returns the phases of this tls program.
SUMOTime trySwitch(bool isActive)
Switches to the next phase.
Phases myPhases
The list of phases this logic uses.
SUMOTime getPhaseIndexAtTime(SUMOTime simStep) const
Returns the index of the logic at the given simulation step.
A fixed traffic light logic.
A class that stores and controls tls and switching of their programs.
const MSPhaseDefinition & getCurrentPhaseDef() const
Returns the definition of the current phase.
const MSPhaseDefinition & getPhase(unsigned int givenstep) const
Returns the definition of the phase from the given position within the plan.
void deletePhases()
frees memory responsibilities
MSSimpleTrafficLightLogic(MSTLLogicControl &tlcontrol, const std::string &id, const std::string &subid, const Phases &phases, unsigned int step, SUMOTime delay, const std::map< std::string, std::string > &parameters)
Constructor.
std::vector< MSPhaseDefinition * > Phases
Definition of a list of phases, being the junction logic.
unsigned int getCurrentPhaseIndex() const
Returns the current index within the program.
The parent class for traffic light logics.
void setPhases(const Phases &phases, unsigned int index)
Replaces the phases and set the phase index.
SUMOTime getOffsetFromIndex(unsigned int index) const
Returns the position (start of a phase during a cycle) from of a given step.
The definition of a single phase of a tls logic.