Hintergrund Task anhalten und neu starten

  • Gibt es eine Möglichkeit einen Hintergrundtask von der EA Ebene aus in Automatik anzuhalten und neu zu starten.

    PPtoMain gibt es zumindest mit Task Angabe, dazu muss der Task aber stehen.

    Für die Stopp Befehle gibt es das aber nicht.


    Kurz zum Hintergrund des ganzen.

    In einen 2. Task wird eine socket Kommunikation zu einer Kamera aufgebaut. und eben bei dieses kann es auch zum Warten innerhalb des Tasks führen.

  • AD
  • Geht das nicht wenn du den Hintergrundtask auf "semistatisch" stellst?

    Der wird doch bei PPtoMain auch zurückgesetzt.

    Im Hauptask dann den Hintergrundtask wieder gezielt starten.

    Gruß Roland


    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

  • Hatte einen ähnlichen Fall (allerdings mit weit mehr Tasks)


    Ich habe keine statischen Tasks und ebenfalls auf NoSafety. Passend dazu habe ich dann eine Trap in jedem zu stoppenden Task erstellt (Inhalt Stop;) und die Traps dann alle an das selbe Signal geknüpft.


    So hat man bei dem Signal (man könnte ja auch Variablen (bool) nutzen) mit dem man beliebig viele (und/oder ausgewählte) Tasks anhalten kann.


    Dann über ein Systemsignal PP auf main und fertig ist die Suppe

  • Hallo,

    wenn Du die Task nur neustarten willst, könntest Du in dieser Task einen Interrupt mit dem Eingang zum neustarten verbinden und in der TRAP Routine entweder die Instruktion ExitCycle ausführen oder in die Fehlerbehandlung der Routine "main" springen um dann mit einem RETURN oder TRYNEXT fortzusetzen.


    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

  • Hallo,

    im Handbuch "Rapid Kernel" findest Du im Kaptel "Error recovery with long jumps" die entsprechende Beschreibung.


    Der Long-Jump ist hier erforderlich, da in der TRAP-Routine eine Fehlerbehandlung aufgerufen wird, die normalerweise in einer Fehlermeldung aber nicht in der Routine "main" endet.


    ERROR (ERR_RESTART) in der Routine "main" gibt das Sprungziel im "CallStack" an, zu der der Programmzeiger springt, wenn ein Fehler mit RAISE ERR_RESTART ausgelöst wird.


    Siehe auch folgende Posts:

    Re: Rücksprung nach Interrupt

    Re: interrupt verlassen

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now