Hi,
ich glaube (und hoffe), dass es zu den Zustandsautomaten einige Fragen im Sinne von "Wie löse ich folgendes Problem" geben wird. Und da ich mich schon länger mit den Dingern beschäftige und immer mehr über Zustandsautomaten löse, wollte ich damit anfangen, einige Ideen und eher allgemeine "Patterns" zu teilen.
Ich fange mit was simplen an: Sperre
Um einen Zustandsautomaten zu sperren, macht man einfach einen ersten (obersten) Zustand mit dem Namen "Sperre". Der fragt dann einfach ein Item "Sperre" ab (das wiederum z.B. durch eine GA gesetzt werden kann) auf true ab. Der Zustand hat keine Actions und tut somit nichts.
Sperre.PNG
Erklärung:
Immer wenn der Automat ausgewertet (getriggert) wird, durchläuft er zuerst die Bedingungen für den Zustand "Sperre". Wenn das Sperritem nun gesetzt ist, bleibt der Zustandsautomat in diesem Zustand und tut somit gar nichts.
Erst wenn das Sperritem auf false steht, kann der Zustandsautomat überhaupt weitere Zustände auswerten.
Warum gibt es keine Eigenschaft "Sperren" direkt an dem Zustandsautomaten?
Weil das über einen Zustand flexibler zu gestalten ist! Man kann so etwas ausdrücken wie: die Rollos/Jalousien sind gesperrt, aber bei Rauchalarm gehen die trotzdem hoch (indem man den Zustand "Rauchalarm" vor dem Zustand "Sperre" definiert wird). Das ginge mit einer globalen Sperre am Zustandsautomaten nicht.
Weitere (erstmal einfache) Sachen werden nach und nach folgen.
Gruß, Waldemar
ich glaube (und hoffe), dass es zu den Zustandsautomaten einige Fragen im Sinne von "Wie löse ich folgendes Problem" geben wird. Und da ich mich schon länger mit den Dingern beschäftige und immer mehr über Zustandsautomaten löse, wollte ich damit anfangen, einige Ideen und eher allgemeine "Patterns" zu teilen.
Ich fange mit was simplen an: Sperre
Um einen Zustandsautomaten zu sperren, macht man einfach einen ersten (obersten) Zustand mit dem Namen "Sperre". Der fragt dann einfach ein Item "Sperre" ab (das wiederum z.B. durch eine GA gesetzt werden kann) auf true ab. Der Zustand hat keine Actions und tut somit nichts.
Sperre.PNG
Erklärung:
Immer wenn der Automat ausgewertet (getriggert) wird, durchläuft er zuerst die Bedingungen für den Zustand "Sperre". Wenn das Sperritem nun gesetzt ist, bleibt der Zustandsautomat in diesem Zustand und tut somit gar nichts.
Erst wenn das Sperritem auf false steht, kann der Zustandsautomat überhaupt weitere Zustände auswerten.
Warum gibt es keine Eigenschaft "Sperren" direkt an dem Zustandsautomaten?
Weil das über einen Zustand flexibler zu gestalten ist! Man kann so etwas ausdrücken wie: die Rollos/Jalousien sind gesperrt, aber bei Rauchalarm gehen die trotzdem hoch (indem man den Zustand "Rauchalarm" vor dem Zustand "Sperre" definiert wird). Das ginge mit einer globalen Sperre am Zustandsautomaten nicht.
Weitere (erstmal einfache) Sachen werden nach und nach folgen.
Gruß, Waldemar
Kommentar