-
-
Re Multitasking
Hallo,
auch mit den vorgeschlagenen Events ist das nicht so einfach.
Aber nehmen wir mal an alle Aktionen (Motor An/Aus, An mit Zeit) sind mit Events und nich blokierend programmiert. Das heisst ich sage Motor An for 2 sec. Die Funktion kehrt sofort zurück und das Ende wird über einen Event signalisiert. Da habe ich dann eine Event Loop und muss mühselig mit eine State Maschine meine Aktionen codieren.
z.B. Motor1An(1sec), warte auf fertig event1, Motor2An(1sec), warte fertig event2, ...
Sieht nicht so einfach aus ...
Fancan
-
Erfahrener Benutzer
Roboter-Spezialist
Das ist der eben der Preis dafür. Hört sich aber viel schwieriger an, als es ist.
Das Wichtigste ist, dass das Programm(teil) sich den letzten Zustand (oder Zustände) merkt und an Hand des Events (können/sollen ja verschiedene sein) die neue Aktion ermittelt. Und dann ausführt (und den neuen Zustand speichert, den nächsten Event "in Auftrag" gibt und darauf wartet).
Da ja nicht in jedem Zustand jeder Event sinnvoll ist, hat man so die Möglichkeit, gezielt auf Fehler/Fehlverhalten zu reagieren.
Wenn Du es einmal erfolgreich so umgesetzt hast, wirst Du es nicht mehr anders machen wollen.
Blackbird
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen