QP state machine

Gast #4046698
Lesenswert?

Hallo Forum,
hat hier schon jemand mit QP gearbeitet?

Ich benutze es grade und ich brauche eine Funktion die angibt aus 
welcher der letzte State war(vor dem Aktuellen State).
Mit der Info will ich unter anderem entscheiden in welchen State ich 
springen muss.

Kennt jemand die entsprechende Funktion bzw. gibts es sowas QP?

Bsp.

Last_Steate = get_last_state();

if( Last_Steate == B){
wechsle zu state G
}
else{
wechsle zu state Z
}
Gast #4046714
Lesenswert?

Was bedeutet die Abkürzung "QP" hier?

Möglicherweise handelt es sich hier um ein spezielles Problem im 
Zusammenhang mit "QP", aber im allgemeinen, wird ist der Folgezustand 
einer Zustandsmaschine nur vom gegenwärtigen Zustand und den 
Eingangssignalen abhängig. Magst Du einmal erklären, warum Du annimmst, 
dass das in Deinem Fall nicht so sein sollte.?
Gast #4046754
Lesenswert?

Das ist QP

http://www.state-machine.com/

Weils einem das Leben erleichtert und im meinem Fall Code Spart.

Bei mir unterscheiden sich check1 & check 2 nur in dem sinne dass sie in 
verschiedene Stati springen.
Wenn ich wüste aus welchen Status die state maschiene kommt bräuchte ich 
nur ein check mit einer if else Anweisung.
Angehängte Dateien:
Gast #4046778
Lesenswert?

Hm. Tja. Du könntest natürlich in Init und makeA eine Variable jeweils 
so setzen, das klar ist, welcher der beiden Zustände aktiv war. Die 
kannst Du dann mit einer Bedingung abfragen.


ABER: Das ist nicht fachgerecht! Ich rate Dir ernsthaft davon ab.

An sich gibt es in einer "fachgerechten" State-Machine auch keinen Grund 
den vorherigen Zustand zu speichern, so daß es sehr wahrscheinlich auch 
garkeine Funktion geben wird, um ihn festzustellen. (Das mag hier anders 
sein, die Funktion sollte dann aber in der Referenz zu QP irgendwie zu 
finden sein. Da kann ich leider keinen Rat geben. Tut mir leid).

Die Codegröße wird sich in beiden Fällen (dem fachgerechten und dem 
"Würgaround" :-) sehr wahrscheinlich nicht wesentlich unterscheiden.

Ein "Erleichterung" ist es meiner Ansicht nach in keinem Fall, weil es 
denn Code schwerer verstehen lässt zumal es von der formal korrekten 
Methode eine solche State-Machine zu implementieren abweicht.

Ist nur meine Meinung. Mache es wie Du denkst.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren