Example #1
0
void VerkeersRegelaar::doeWachtrij() {

	while(wachtrijbeheerder->geefEersteInWachtrij() != 0) {  //Wanneer er iets in de wachtrij staat wordt de loop doorlopen
		Scenario* scenario = wachtrijbeheerder->geefEersteInWachtrij(); //Het eerste scenario uit de wachtrij wordt gegeven
		scenario->zetAllesNaarGroen(); 	//In het scenario alles naar groen zetten

		for (int n = 0; n < variabelebeheerder->krijgVariabele('g'); n++)
			_delay_ms(1000);				//Een bepaalde tijd wachten

		scenario->zetAllesNaarRood();	//En alles weer naar rood laten gaan
		wachtrijbeheerder->haalEersteUitWachtrij(); //Het eerste scenario uit de wachtrij halen
		
		for (int n = 0; n < variabelebeheerder->krijgVariabele('r'); n++)
			_delay_ms(1000);			//En 5 sec wachten voordat het volgende scenario op groen gaat
		
		if(variabelebeheerder->krijgNacht() == true) //Checken of het onderhand nacht is, zo ja dan moet er uit de functie worden gesprongen
			return;
	}

}
Example #2
0
void VerkeersRegelaar::doeStandaardSequentie() { //Deze functie voert de standaard sequentie uit
	
	for (int i = 1; scenariolijst->geefPositie(i) != 0; i++) { //Doorloop alle scenario's omstebeurt
		Scenario* scenario = scenariolijst->geefPositie(i);
		scenario->zetAllesNaarGroen(); 	//In het scenario alles naar groen zetten
		for (int n = 0; n < variabelebeheerder->krijgVariabele('g'); n++)
			_delay_ms(1000);				//Een bepaalde tijd wachten
		scenario->zetAllesNaarRood();	//En alles weer naar rood laten gaan
		
		for (int n = 0; n < variabelebeheerder->krijgVariabele('r'); n++)
			_delay_ms(1000);			//En 5 sec wachten voordat het volgende scenario op groen gaat

		int j = i + 1;	
		if(scenariolijst->geefPositie(j) == 0)	//Checken of de volgende positie in scenariolijst een scenario bevat
			i = 0;								//Zo niet, dan begint de lijst weer van voor af aan
												//i wordt op 0 gezet ipv op 1 omdat aan het eind van de loop er eentje wordt opgeteld
		
		//Wanneer er iets in de wachtrij staat of wanneer het nacht is moet er uit deze functie gesprongen worden
		if((wachtrijbeheerder->geefEersteInWachtrij() != 0) || variabelebeheerder->krijgNacht())
			return;
	}											
}
Example #3
0
void VerkeersRegelaar::komtUitNachtStand() { 	//Deze functie wordt aangeroepen bij de overgang van nacht naar dag
												//Alle scenario's worden eenmalig langsgelopen in hun vaste patroon
	
	//Eerst wordt van alle scenario's alle verkeerslichten op rood gezet
	for (int i = 1; scenariolijst->geefPositie(i) != 0; i++) { 
		Scenario* scenario = scenariolijst->geefPositie(i);
		scenario->allesDirectRood();
	}
	
	for (int n = 0; n < variabelebeheerder->krijgVariabele('r'); n++)
		_delay_ms(1000);		//Vijf seconden wachten 

	for (int i = 1; scenariolijst->geefPositie(i) != 0; i++) { //Doorloop alle scenario's omstebeurt
		Scenario* scenario = scenariolijst->geefPositie(i);
		scenario->zetAllesNaarGroen(); 	//In het scenario alles naar groen zetten
		for (int n = 0; n < variabelebeheerder->krijgVariabele('g'); n++)
			_delay_ms(1000);				//Een bepaalde tijd wachten
		scenario->zetAllesNaarRood();	//En alles weer naar rood laten gaan
		wachtrijbeheerder->haalUitWachtrij(scenario);

		for (int n = 0; n < variabelebeheerder->krijgVariabele('r'); n++)
			_delay_ms(1000);			//En 5 sec wachten voordat het volgende scenario op groen gaat
	}											
}