Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
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>
29#include "MSTLLogicControl.h"
30#include "MSTrafficLightLogic.h"
31
32
33// ===========================================================================
34// class definitions
35// ===========================================================================
41public:
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
138
139
140
143
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
188private:
191 void rebuildPhase();
192
193
194private:
197
198
199};
long long int SUMOTime
Definition GUI.h:36
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.
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.