Jump to content

Empfohlene Beiträge

Geschrieben

Hallo / hello @hmclay,

definiere im Modellbahn-Studio ein Benutzer-definiertes Ereignis und rufe dieses in einem anderen Ereignis mit der Aktion "Benutzer-definiertes Ereignis auslösen" auf.
Define a user-defined event in the Train Studio and call it up in another event with the "User-defined event" action.

Beachte aber bitte, dass das Verhalten einer Subroutinen mit Rückkehr zum Aufrufer nach Beendigung der Subroutine nur dann funktioniert, wenn die Subroutine (das Benutzer-definierte Ereignis) keine Aktion "Ausführung verzögern" enthält. Betrachte hierzu das beigefügte Anlagen-Beispiel:
Please note, however, that the behavior of a subroutine with return to the caller after completion of the subroutine only works if the subroutine (the user-defined event) does not contain a "Defer execution" action. Please refer to the attached example:

Subroutine Demo.mbp

SubroutineDemo.thumb.jpg.e20e4367d3fff6591453e5f4a9858857.jpg

Schalte bitte das Ereignisprotokoll ein, um den Ablauf beim Drücken des obigen Buttons verfolgen zu können:
Please activate the event trace to be able to follow the process when pressing the above button:

Ereignisprotokoll.jpg.39f303d30a831757c87096d8b9ea388e.jpg

Wird der Button aktiviert, ergibt sich der im obigen Bild links dargestellte Ablauf: Das Hauptereignis ruft das Benutzer-definierte Ereignis "Subroutine 1" auf, das wiederum ein weiteres Ereignis "Subroutine 2" aufruft. Nach Beendigung des jeweiligen Benutzer-definierten Ereignisses kehrt der Ablauf in das aufrufende Ereignis zurück und wird dort fortgesetzt.
If the button is activated, the sequence shown in the above image on the left results: The main event calls the user-defined event "Subroutine 1", which in turn calls another event "Subroutine 2". Once the respective user-defined event has been completed, the sequence returns to the calling event and is continued there.

Wir der Button deaktiviert, durchläuft das Benutzer-definierte Ereignis "Subroutine 1" eine Zeitverzögerung (siehe den Ablauf rechts). Diese bewirkt, dass das Ereignis "Subroutine 1" an dieser Stelle beendet und nach Ablauf der Wartezeit in einem neuen Prozess fortgesetzt wird. Die Beendigung der "Subroutine 1" bewirkt eine sofortige Rückkehr zum aufrufenden Hauptereignis, dessen Ablauf somit ohne Abwarten der Zeitverzögerung fortgesetzt und beendet wird (siehe die Uhrzeit [12:24:38]). Subroutine 1 wird dagegen erst nach Ablauf der Wartezeit 5 Sekunden später ([12:24:43]) fortgesetzt, wo das aufrufende Hauptereignis längst beendet ist.
If the button is deactivated, the user-defined event "Subroutine 1" runs through a time delay (see the process on the right). This has the effect that the "Subroutine 1" event ends at this point and is continued in a new process after the delay time has elapsed. The termination of "Subroutine 1" causes an immediate return to the calling main event, whose process is thus continued and terminated without waiting for the time delay (see the time [12:24:38]). Subroutine 1, on the other hand, is only continued after the delay time has expired 5 seconds later ([12:24:43]), when the calling main event has long since ended.

Die Nachbildung einer synchronen Subroutine mithilfe des Benutzer-definierte Ereignisses funktioniert also nur, wenn in der Subroutine keine Zeitverzögerung eíngebaut ist.
The simulation of a synchronous subroutine using the user-defined event therefore only works if no time delay is built into the subroutine.

Viele Grüße / many greetings
BahnLand

Geschrieben (bearbeitet)

Hello,

... I deleted the text because I misinterpreted something...

... ich habe den Text gelöscht, da ich etwas falsch interpretiert habe...

Gruß / greetings
EASY

Bearbeitet von EASY
Geschrieben

I would like to have subroutine call/return in 3D Train Studio . Guessing it may be quite an involved undertaking. But sure would be a welcomed addition.

Put a request in the supplied forum here ... 

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...