19 #ifndef NLJunctionControlBuilder_h 20 #define NLJunctionControlBuilder_h 100 void openJunction(
const std::string&
id,
const std::string& key,
104 const std::vector<MSLane*>& incomingLanes,
105 const std::vector<MSLane*>& internalLanes);
150 void addLogicItem(
int request,
const std::string& response,
151 const std::string& foes,
bool cont);
176 void addPhase(
SUMOTime duration,
const std::string& state,
const std::vector<int>& nextPhases,
245 void addParam(
const std::string& key,
const std::string& value);
void postLoadInitialization()
initialize junctions after all connections have been loaded
std::map< std::string, std::string > StringParameterMap
Definition of a parameter map (key->value)
void initTrafficLightLogic(const std::string &id, const std::string &programID, TrafficLightType type, SUMOTime offset)
Begins the reading of a traffic lights logic.
Builds detectors for microsim.
virtual ~NLJunctionControlBuilder()
Destructor.
NLDetectorBuilder & myDetectorBuilder
The detector builder to use.
std::bitset< SUMO_MAX_CONNECTIONS > myActiveConts
The description about which lanes have an internal follower.
Storage for all programs of a single tls.
LaneVector myActiveInternalLanes
The list of the internal lanes of the currently chosen junction.
void openJunction(const std::string &id, const std::string &key, const SumoXMLNodeType type, const Position pos, const PositionVector &shape, const std::vector< MSLane *> &incomingLanes, const std::vector< MSLane *> &internalLanes)
Begins the processing of the named junction.
std::string myActiveKey
The key of the currently chosen junction.
The base class for an intersection.
MSNet & myNet
The net to use.
static const int NO_REQUEST_SIZE
MSBitsetLogic::Logic myActiveLogic
The right-of-way-logic of the currently chosen bitset-logic.
void closeJunctionLogic()
Ends the building of a junction logic (row-logic)
std::string myActiveProgram
virtual MSJunction * buildInternalJunction()
Builds an internal junction.
SUMOTime myAbsDuration
The absolute duration of a tls-control loop.
const std::string & getActiveSubKey() const
Returns the active sub key.
Position myPosition
The position of the junction.
PositionVector myShape
The shape of the current junction.
The simulated network and simulation perfomer.
int getNumberOfLoadedPhases() const
return the number of phases loaded so far (for error reporting)
Container for junctions; performs operations on all stored junctions.
SUMOTime myOffset
The switch offset within the tls.
void closeJunction(const std::string &basePath)
Closes (ends) the processing of the current junction.
MSTLLogicControl::TLSLogicVariants & getTLLogic(const std::string &id) const
Returns a previously build tls logic.
A class that stores and controls tls and switching of their programs.
MSSimpleTrafficLightLogic::Phases myActivePhases
The current phase definitions for a simple traffic light.
TrafficLightType myLogicType
The current logic type.
std::string myActiveID
The id of the currently chosen junction.
MSJunctionControl * myJunctions
The junctions controls.
Builder of microsim-junctions and tls.
A point in 2D or 3D with translation and scaling methods.
virtual MSJunction * buildLogicJunction()
Builds a junction with a logic.
virtual void closeTrafficLightLogic(const std::string &basePath)
Ends the building of a traffic lights logic.
std::map< std::string, MSJunctionLogic * > myLogics
Map of loaded junction logics.
int myRequestSize
The size of the request.
std::vector< std::bitset< N > > Foes
Container holding the information which internal lanes prohibt which links Build the same way as Logi...
bool myNetIsLoaded
whether the network has been loaded
MSJunction * retrieve(const std::string id)
try to retrieve junction by id
NLJunctionControlBuilder & operator=(const NLJunctionControlBuilder &s)
invalidated assignment operator
NLJunctionControlBuilder(MSNet &net, NLDetectorBuilder &db)
Constructor.
void addParam(const std::string &key, const std::string &value)
Adds a parameter.
int myRequestItemNumber
Counter for the inserted items.
bool myCurrentHasError
Information whether the current logic had an error.
MSBitsetLogic::Foes myActiveFoes
The description about which lanes disallow other passing the junction simultaneously.
MSTLLogicControl & getTLLogicControlToUse() const
Returns the used tls control.
std::vector< MSPhaseDefinition * > Phases
Definition of a list of phases, being the junction logic.
virtual MSJunction * buildNoLogicJunction()
Builds a junction that does not use a logic.
StringParameterMap myAdditionalParameter
Parameter map (key->value)
std::vector< std::string > LaneIdVector
SumoXMLNodeType myType
The type of the currently chosen junction.
void addPhase(SUMOTime duration, const std::string &state, const std::vector< int > &nextPhases, SUMOTime min, SUMOTime max, const std::string &name)
Adds a phase to the currently built traffic lights logic.
SumoXMLNodeType
Numbers representing special SUMO-XML-attribute values for representing node- (junction-) types used ...
void initJunctionLogic(const std::string &id)
Initialises a junction logic.
LaneVector myActiveIncomingLanes
The list of the incoming lanes of the currently chosen junction.
std::vector< std::bitset< N > > Logic
Container that holds the right of way bitsets. Each link has it's own bitset. The bits in the bitsets...
std::vector< MSTrafficLightLogic * > myLogics2PostLoadInit
The container for information which junctions shall be initialised using which values.
A storage for options typed value containers)
MSTLLogicControl * myLogicControl
The tls control to use (0 if net's tls control shall be used)
MSJunctionLogic * getJunctionLogicSecure()
Returns the current junction logic.
MSJunctionControl * build() const
Builds the MSJunctionControl which holds all of the simulations junctions.
MSTLLogicControl * buildTLLogics()
Returns the built tls-logic control.
const std::string & getActiveKey() const
Returns the active key.
std::vector< MSLane * > LaneVector
Definition of a lane vector.
void addLogicItem(int request, const std::string &response, const std::string &foes, bool cont)
Adds a logic item.