FSST - Hardwarenahe Programmierung

Zustände und Zustandsübergänge

Table of Contents

  1. Zustand

Ein Zustandsdiagramm (auch State Machine Diagram, Zustandsautomat, Zustandsmaschine genannt) ist ein Graph mit Zuständen als Knoten und Zustandsübergängen als Kanten. In der Objektorientierung handelt es sich normalerweise um die Zustände eines Objekts einer gewissen Klasse.

Zustand

Zustände werden als Rechteck mit abgerundeten Ecken dargestellt und enthalten den Namen des Zustandes (z.B.: ST_IDLE). Es können aber auch die inneren Aktivitäten eingetragen werden. Dann ist das Rechteck zweigeteilt:

  • oben steht der Name des Zustandes und
  • unten die Aktivitäten (auszuführende Anweisungen).


Bei den Aktivitäten gibt es drei vordefinierte Events:

  • entry: Sobald ich in den Zustand eintrete wird die Aktivität ausgeführt
  • do: Die angegebene Aktivität wird kontinuierlich während des Zustands ausgeführt, könnte aber auch von der Dauer beschränkt sein
  • exit: Tritt ein Event ein, das zu einem Zustandsübergang führt, so wird vor Verlassen des Zustands diese Aktivität ausgeführt.


In der folgenden Abbildung ist ist die Funktion Idle() für den Zustand ST_IDLE mit entry, do und exit mit den entsprechenden Codeteilen dargestellt:

/media/uploads/fpucher/stm_state.jpg


Es können aber auch vereinfachte Darstellungen verwendet werden, wie z.B.:

  • entry bzw. exit kann weg gelassen werden
  • do muss nicht geschrieben werden
  • nur der Name des Events: btnPressed, mouseClick, ledOn, temperatur, ldr, ...
  • Bilder in den Zuständen

/media/uploads/fpucher/states_mF8Gm7T.jpg


All wikipages