SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MSUnboundActuatedTrafficLightLogic.h
Go to the documentation of this file.
1 /****************************************************************************/
7 // The basic traffic light logic
8 /****************************************************************************/
9 // SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/
10 // Copyright (C) 2001-2012 DLR (http://www.dlr.de/) and contributors
11 /****************************************************************************/
12 //
13 // This file is part of SUMO.
14 // SUMO is free software: you can redistribute it and/or modify
15 // it under the terms of the GNU General Public License as published by
16 // the Free Software Foundation, either version 3 of the License, or
17 // (at your option) any later version.
18 //
19 /****************************************************************************/
20 #ifndef MSUnboundActuatedTrafficLightLogic_h
21 #define MSUnboundActuatedTrafficLightLogic_h
22 
23 
24 // ===========================================================================
25 // included modules
26 // ===========================================================================
27 #ifdef _MSC_VER
28 #include <windows_config.h>
29 #else
30 #include <config.h>
31 #endif
32 
33 #include <utility>
34 #include <vector>
35 #include <bitset>
36 #include <map>
39 #include "MSActuatedPhaseDefinition.h"
42 #include <microsim/MSLaneState.h>
43 
44 
45 // ===========================================================================
46 // class declarations
47 // ===========================================================================
48 class NLDetectorBuilder;
49 
50 
51 // ===========================================================================
52 // class definitions
53 // ===========================================================================
64 public:
66  typedef std::map<MSLane*, MSInductLoop*> InductLoopMap;
67 
69  typedef std::map<MSLane*, MSLaneState*> LaneStateMap;
70 
71 public:
73  MSUnboundActuatedTrafficLightLogic(const std::string& id,
75  size_t step, size_t delay,
76  SUMOReal maxGap, SUMOReal passingTime, SUMOReal detectorGap);
77 
79  void init(NLDetectorBuilder& nb,
80  const std::vector<MSLane*>& lanes,
81  std::map<std::string, std::vector<std::string> >& edgeContinuations,
82  SUMOReal det_offset);
83 
86 
89  SUMOTime trySwitch(bool isActive);
90 
92  SUMOTime duration() const;
93 
95  bool gapControl();
96 
97  // Checkes wheter the tested phase is a neither a yellow nor a allred phase
98  bool isGreenPhase() const;
99 
100 protected:
102  MSActuatedPhaseDefinition* currentPhaseDef() const;
103 
104 protected:
107 
110 
113 
116 
119 
122 
123 };
124 
125 
126 #endif
127 
128 /****************************************************************************/
129