Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Alle Sequenzen flach nebeneinander gesetzt, den Datenfluss von links nach rechts verschoben, und alles etwas glatt gezogen. Funktional sollte kein Unterschied sein.
Jetzt kann man (ich) viel besser erkennen, was beim Ablauf eigentlich passiert. Spontan fällt mir auf, dass es relativ viele Schleifen in Schleifen gibt, die auf irgendwas warten. Abbruchkriterium ist jeweils der Stop-Button (bzw. eine lokale Variable davon).
"Kommunikation" zwischen verschiedenen Teilen findet über lokale Variablen statt.
Was ich als nächstes machen würde (...wenn ich Zeit hätte...)
- Variablen wo es geht durch Leitungen ersetzen.
- Alle Rahmen von Sequenzen entfernen wenn die zeitliche Abfolge schon durch Leitungen vorgegeben ist.
Jetzt sollte es nochmal deutlich übersichtlicher sein.
Dann kann man noch alles was parallel ablaufen kann, in seperate Schleifen packen und die Kommunikation zwischen den Schleifen durch Notifier und Queues realisieren.
Jetzt sollte der Ablauf schonmal schneller sein.
Last but not least könnte man den ganzen Ablauf als Statemachine nochmal neu nachprogrammieren. Mit den bis dahin gelernten Sachen sollte der Aufwand überschaubar sein. Vorteil ist eine deutlich bessere Wartbarkeit und Flexibilität.