Fixed bug, started implementing direction stuff

This commit is contained in:
Julian Appel 2025-02-02 16:47:56 +01:00
parent f0679635da
commit 7187c2aa53

View File

@ -46,16 +46,87 @@ enum
} anlagenzustand;
// Fahrtrichtungen
enum
enum Fahrtrichtung
{
STOP,
VORWÄRTS,
RÜCKWÄRTS,
HALT,
NOTHALT,
WARTE_START,
VORWAERTS_QUITTIEREN,
VORWAERTS,
RUECKWAERTS_QUITTIEREN,
RUECKWAERTS,
} fahrtrichtung;
Fahrtrichtung vorherigerichtung = HALT;
void quittierenButtonAbfragen()
{
// Button Code [...]
if(fahrtrichtung == NOTHALT || fahrtrichtung == HALT)
{
fahrtrichtung = WARTE_START;
}
else if(fahrtrichtung == VORWAERTS_QUITTIEREN)
{
fahrtrichtung = WARTE_START;
}
else if(fahrtrichtung == RUECKWAERTS_QUITTIEREN)
{
fahrtrichtung = WARTE_START;
}
// Button Code [...]
}
void startButtonAbfragen()
{
// Button Code [...]
if(vorherigerichtung == VORWAERTS)
{
fahrtrichtung = RUECKWAERTS;
}
else if(vorherigerichtung == RUECKWAERTS)
{
fahrtrichtung = VORWAERTS;
}
else
{
fahrtrichtung = VORWAERTS;
}
// Button Code [...]
}
void haltButtonAbfragen()
{
// Button Code [...]
fahrtrichtung = HALT;
// Button Code [...]
}
void nothaltButtonAbfragen()
{
// Button Code [...]
fahrtrichtung = NOTHALT;
// Button Code [...]
}
void vorwaertsButtonAbfragen()
{
// Button Code [...]
fahrtrichtung = VORWAERTS_QUITTIEREN;
// Button Code [...]
}
void rueckwaertsButtonAbfragen()
{
// Button Code [...]
fahrtrichtung = RUECKWAERTS_QUITTIEREN;
// Button Code [...]
}
void setup() {
anlagenzustand = AUS;
fahrtrichtung = HALT;
Serial.begin(9600);
// Pindefinitonen
@ -187,21 +258,50 @@ void loop() {
switch(fahrtrichtung)
{
// Anlage steht
case STOP:
case HALT:
{
quittierenButtonAbfragen();
vorwaertsButtonAbfragen();
rueckwaertsButtonAbfragen();
break;
}
// Anlage steht
case NOTHALT:
{
quittierenButtonAbfragen();
vorwaertsButtonAbfragen();
rueckwaertsButtonAbfragen();
break;
}
// Anlage steht
case WARTE_START:
{
startButtonAbfragen();
break;
}
// Anlage fährt vorwärts
case VORWÄRTS:
case VORWAERTS_QUITTIEREN:
{
break;
}
// Anlage fährt vorwärts
case VORWAERTS:
{
haltButtonAbfragen();
nothaltButtonAbfragen();
break;
}
// Anlage fährt rückwärts
case RÜCKWÄRTS:
case RUECKWAERTS_QUITTIEREN:
{
break;
}
// Anlage fährt rückwärts
case RUECKWAERTS:
{
haltButtonAbfragen();
nothaltButtonAbfragen();
break;
}
default:
@ -243,8 +343,8 @@ void loop() {
// Prüfen ob immernoch gedrückt
if (currentButtonStateFahrgastbetrieb == LOW)
{
// Anlage in den Zustand "FAHRGAST_QUITTIEREN" versetzen
anlagenzustand = FAHRGAST_QUITTIEREN;
// Anlage in den Zustand "SERVICE_QUITTIEREN" versetzen
anlagenzustand = SERVICE_QUITTIEREN;
// Speichern des ButtonStates als Vergleichswert für den nächsten Durchlauf
buttonStateFahrgastbetrieb = currentButtonStateFahrgastbetrieb;
}
@ -342,6 +442,9 @@ void loop() {
}
}
// ========== Vorwärts Button abfragen
vorwaertsButtonAbfragen();
// ========== Ein/Aus Button abfragen
// Taster abfragen und aktuellen Zustand zwischenspeichern
currentButtonStateAnlageEinAus = digitalRead(KNOPF_ANLAGE_EIN_AUS) == LOW;