Hallo Tom,
Zitat:Ohne Schleife funktioniert der Timer nicht. Also vermute ich mal, dass ich eine Art weitere Abbruchbedingung für die Schleife brauche, um diese vorzeitig zu verlassen.
Doch.
Wenn Timer noch nicht abgelaufen: rufe den State erneut auf.
Wenn Timer abgelaufen: rufe den nächsten State auf...
Zitat:Die lokalen Parameter nutze ich, weil ich nicht weiß, wie ich die Daten von der Event-Schleife auf die Haupt-Schleife übernehmen soll und ich gelesen habe, dass man bei einer QSM in die Queure Leitung am besten gar keine States übernehmen soll und wenn doch, dann nur diese und keine weiteren Daten.
Wie sieht sowas richtig aus?
Was ist eine Kommando-Message?
Eine "Kommando-Message" ist das, was deine Event-Schleife an den Consumer (aka Statemachine-Schleife) schickt. Aktuell besteht dein Kommando nur aus dem Enum.
Wenn du das Kommando als Cluster definierst, z.B. [Enum, DBL-Wert], dann kannst du wie oben geschrieben eben auch "Kommando + Parameter" senden!
(Wenn du zuviele unterschiedliche Parameter-Datentypen unterstützen musst, kann dein Cluster aus Enum+Variant bestehen. Jeder State muss dann das Variant für sich passend zurück umwandeln...)