Fragen zur State Machine
Verfasst: So Mai 03, 2020 11:22 am
Hallo zusammen!
Da einige auf die State Machine schwören und damit auch schöne Dinge zaubern (zB Bewässerung von @MiniMaxV2), bin ich grad dabei, mir das Thema auch anzusehen.
Ich habe eine Logik am Laufen, die den Status des Automowers auf Basis eines Reed-Kontaktes an der Ladestation überwacht. Reicht für Berechnung der täglichen Mähdauer und Fehleranzeige aus.
Da ich in den verschachtelten Und/Oder + Timer etc. noch einen kleinen, hartnäckigen Bug habe, überlege ich dieses Thema mittels State Machine umzusetzen.
Gehe ich richtig in der Annahme, dass man als Übergangsbedingungen keine Und/Oder einbauen sollte und stattdessen einen weiteren State?
Beispiel: Die Logik meldet Fehler, wenn:
- 90min Mähzeit überschritten wird ODER
- die Spannungsversorgung ausgeschaltet wird und der Mäher nicht in der Ladestation ist
Ich könnte also jetzt ein AND/ODER verwenden um in den State "Fehler" zu wechseln oder eben 2 States anlegen:
- Fehler1 (Mähzeit überschritten)
- Fehler2 (SV aus und Mäher nicht in der Ladestation)
Mein Gefühl sagt mir, dass mehrere Zustände und als Übergangsbedingung nur 1 Bedingung der richtige Weg ist.
Wie seht ihr das?
Danke und lg
Robert
Da einige auf die State Machine schwören und damit auch schöne Dinge zaubern (zB Bewässerung von @MiniMaxV2), bin ich grad dabei, mir das Thema auch anzusehen.
Ich habe eine Logik am Laufen, die den Status des Automowers auf Basis eines Reed-Kontaktes an der Ladestation überwacht. Reicht für Berechnung der täglichen Mähdauer und Fehleranzeige aus.
Da ich in den verschachtelten Und/Oder + Timer etc. noch einen kleinen, hartnäckigen Bug habe, überlege ich dieses Thema mittels State Machine umzusetzen.
Gehe ich richtig in der Annahme, dass man als Übergangsbedingungen keine Und/Oder einbauen sollte und stattdessen einen weiteren State?
Beispiel: Die Logik meldet Fehler, wenn:
- 90min Mähzeit überschritten wird ODER
- die Spannungsversorgung ausgeschaltet wird und der Mäher nicht in der Ladestation ist
Ich könnte also jetzt ein AND/ODER verwenden um in den State "Fehler" zu wechseln oder eben 2 States anlegen:
- Fehler1 (Mähzeit überschritten)
- Fehler2 (SV aus und Mäher nicht in der Ladestation)
Mein Gefühl sagt mir, dass mehrere Zustände und als Übergangsbedingung nur 1 Bedingung der richtige Weg ist.
Wie seht ihr das?
Danke und lg
Robert