SUMO - Simulation of Urban MObility
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.dlr.de/
14 // Copyright (C) 2001-2015 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>
40 #include "MSTrafficLightLogic.h"
41 
42 
43 // ===========================================================================
44 // class declarations
45 // ===========================================================================
46 class MSNet;
47 
48 
49 // ===========================================================================
50 // class definitions
51 // ===========================================================================
63 public:
73  const std::string& id, const std::string& subid,
74  const Phases& phases, unsigned int step, SUMOTime delay,
75  const std::map<std::string, std::string>& parameters);
76 
77 
80 
81 
82 
85 
92 
93 
94 
97 
102  unsigned int getPhaseNumber() const;
103 
104 
109  const Phases& getPhases() const;
110 
111 
116  Phases& getPhases();
117 
118 
124  const MSPhaseDefinition& getPhase(unsigned int givenstep) const;
125 
129  const std::string getLogicType() const {
130  return "simpleTrafficLightLogic";
131  }
133 
134 
135 
138 
143  unsigned int getCurrentPhaseIndex() const;
144 
145 
150  const MSPhaseDefinition& getCurrentPhaseDef() const;
152 
153 
154 
157 
162  SUMOTime getPhaseIndexAtTime(SUMOTime simStep) const;
163 
164 
170  SUMOTime getOffsetFromIndex(unsigned int index) const;
171 
172 
178  unsigned int getIndexFromOffset(SUMOTime offset) const;
180 
181 
182 
185 
193  void changeStepAndDuration(MSTLLogicControl& tlcontrol, SUMOTime simStep,
194  unsigned int step, SUMOTime stepDuration);
195 
198  void setPhases(const Phases& phases, unsigned int index);
200 
201 
202 protected:
205 
207  unsigned int myStep;
208 
209 
210 private:
212  void deletePhases();
213 
214 };
215 
216 
217 #endif
218 
219 /****************************************************************************/
220 
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.
long long int SUMOTime
Definition: SUMOTime.h:43
unsigned int myStep
The current step.
const Phases & getPhases() const
Returns the phases of this tls program.
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.
The simulated network and simulation perfomer.
Definition: MSNet.h:94
A fixed traffic light logic.
A class that stores and controls tls and switching of their programs.
SUMOTime trySwitch()
Switches to the next phase.
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.
const std::string getLogicType() const
Returns the type of the logic as a string.