Oppgave 9: Fiks at det er 'delay' etter fotgjengerlys før trafikklys starter
This commit is contained in:
parent
ed88a808e3
commit
fc7a93c4e7
@ -145,6 +145,19 @@ bool pedLightOn = false;
|
||||
*/
|
||||
const int pedActivateAfter = 5000;
|
||||
|
||||
/**
|
||||
* Hvor mange millisekunder programmet skal vente
|
||||
* før den restarter trafikklyset, etter at fotgjengerlyset er ferdig.
|
||||
*/
|
||||
const int restartTrafficAfter = 500;
|
||||
|
||||
/**
|
||||
* Denne brukes for å sjekke om trafikklys kan starte.
|
||||
* I hovedsak brukes denne ETTER at fotgjengerlys er ferdig,
|
||||
* siden det skal være et 500 ms delay etter fotgjengerlyset er ferdig.
|
||||
*/
|
||||
unsigned long trafficCanStart = 0;
|
||||
|
||||
/**
|
||||
* Holder verdien om "fotgjengermodus" skal aktiveres
|
||||
* etter neste trafikklyssyklus.
|
||||
@ -238,6 +251,18 @@ void loop() {
|
||||
pedActive = false;
|
||||
pedLightOn = false;
|
||||
pedBlinkCount = 0;
|
||||
|
||||
/**
|
||||
* Basert på `restartTrafficAfter` (500 ms) oppdaterer denne `trafficCanStart`.
|
||||
* På grunn av `trafficCanStart`, vil trafikklys restarte sine "sjekker" 500 ms
|
||||
* etter at denne loopen er ferdig.
|
||||
*
|
||||
* Som en liten "dirty fix", legger jeg også til lengden på hvor lenge det røde
|
||||
* trafikklyset vanligvis lyser (`redLength`).
|
||||
* Uten denne hadde trafikklyset gått fra rødt til gult rett etter 500 ms,
|
||||
* noe som jeg tyder som feil i følge oppgaven.
|
||||
*/
|
||||
trafficCanStart = currentTime + restartTrafficAfter + redLength;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -273,7 +298,7 @@ void loop() {
|
||||
* Dette sjekker om `trafficState` skal inkrementes, altså at et viss antall millisekunder har gått
|
||||
* siden trafikklys endret fra f.eks. gult til grønt, eller rødt til gult.
|
||||
*/
|
||||
bool incrementTrafficState = (!pedActive && currentTime - lastStateChange >= lightLength);
|
||||
bool incrementTrafficState = (!pedActive && currentTime - lastStateChange >= lightLength && currentTime > trafficCanStart);
|
||||
if (incrementTrafficState)
|
||||
{
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user