Eclipse SUMO - Simulation of Urban MObility
MSOffTrafficLightLogic.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3 // Copyright (C) 2001-2024 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials are made available under the
5 // terms of the Eclipse Public License 2.0 which is available at
6 // https://www.eclipse.org/legal/epl-2.0/
7 // This Source Code may also be made available under the following Secondary
8 // Licenses when the conditions for such availability set forth in the Eclipse
9 // Public License 2.0 are satisfied: GNU General Public License, version 2
10 // or later which is available at
11 // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12 // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13 /****************************************************************************/
20 // A traffic lights logic which represents a tls in an off-mode
21 /****************************************************************************/
22 #pragma once
23 #include <config.h>
24 
25 #include <utility>
26 #include <vector>
27 #include <bitset>
28 #include <utils/common/StdDefs.h>
29 #include "MSTLLogicControl.h"
30 #include "MSTrafficLightLogic.h"
31 
32 
33 // ===========================================================================
34 // class definitions
35 // ===========================================================================
41 public:
48  const std::string& id);
49 
50 
55  virtual void init(NLDetectorBuilder& nb);
56 
57 
60 
61 
64 
71 
72 
73 
76 
82  return 120 * DELTA_T;
83  }
84 
86 
87 
90 
95  int getPhaseNumber() const;
96 
97 
102  const Phases& getPhases() const;
103 
104 
110  const MSPhaseDefinition& getPhase(int givenstep) const;
111 
115  const std::string getLogicType() const {
116  return "offTrafficLightLogic";
117  }
119 
120 
121 
124 
129  int getCurrentPhaseIndex() const;
130 
131 
136  const MSPhaseDefinition& getCurrentPhaseDef() const;
138 
139 
140 
143 
148  SUMOTime getPhaseIndexAtTime(SUMOTime simStep) const;
149 
150 
156  SUMOTime getOffsetFromIndex(int index) const;
157 
158 
164  int getIndexFromOffset(SUMOTime offset) const;
166 
167 
168 
171 
179  void changeStepAndDuration(MSTLLogicControl& tlcontrol, SUMOTime simStep, int step, SUMOTime stepDuration) {
180  UNUSED_PARAMETER(tlcontrol);
181  UNUSED_PARAMETER(simStep);
182  UNUSED_PARAMETER(step);
183  UNUSED_PARAMETER(stepDuration);
184  }
186 
187 
188 private:
191  void rebuildPhase();
192 
193 
194 private:
197 
198 
199 };
long long int SUMOTime
Definition: GUI.h:35
SUMOTime DELTA_T
Definition: SUMOTime.cpp:38
#define UNUSED_PARAMETER(x)
Definition: StdDefs.h:30
A traffic lights logic which represents a tls in an off-mode.
const Phases & getPhases() const
Returns the phases of this tls program.
MSOffTrafficLightLogic(MSTLLogicControl &tlcontrol, const std::string &id)
Constructor.
const MSPhaseDefinition & getCurrentPhaseDef() const
Returns the definition of the current phase.
int getPhaseNumber() const
Returns the number of phases.
const std::string getLogicType() const
Returns the type of the logic as a string.
void adaptLinkInformationFrom(const MSTrafficLightLogic &logic)
Applies information about controlled links and lanes from the given logic.
SUMOTime getPhaseIndexAtTime(SUMOTime simStep) const
Returns the index of the logic at the given simulation step.
void changeStepAndDuration(MSTLLogicControl &tlcontrol, SUMOTime simStep, int step, SUMOTime stepDuration)
Changes the current phase and her duration.
int getIndexFromOffset(SUMOTime offset) const
Returns the step (the phasenumber) of a given position of the cycle.
int getCurrentPhaseIndex() const
Returns the current index within the program.
SUMOTime getOffsetFromIndex(int index) const
Returns the position (start of a phase during a cycle) from of a given step.
SUMOTime trySwitch()
Switches to the next phase.
MSTrafficLightLogic::Phases myPhaseDefinition
The phase definition (only one)
const MSPhaseDefinition & getPhase(int givenstep) const
Returns the definition of the phase from the given position within the plan.
void rebuildPhase()
(Re)builds the internal phase definition
virtual void init(NLDetectorBuilder &nb)
Initialises the tls with information about incoming lanes.
The definition of a single phase of a tls logic.
A class that stores and controls tls and switching of their programs.
The parent class for traffic light logics.
std::vector< MSPhaseDefinition * > Phases
Definition of a list of phases, being the junction logic.
Builds detectors for microsim.