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-2014 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