Jump to content

Was ist hier falsch?


Tesla

Empfohlene Beiträge

Hallo in die Runde...

Hab' da so ein kleines Problem mit der EV-Funktion "Timer".

Das Szenario, das ich erreichen möchte, sieht so aus:

Eine Dampflok fährt in den Bahnhof ein, bremst schön langsam ab und bleibt schließlich stehe. In Natura dampft sie noch einen Augenblick nach. Das erreiche ich, indem ich sie nicht auf 0 km/h abbremse, sondern auf 0,001 km/h. Die Verzögerung habe ich ausgerechnet, und die Lok dampft noch 2 Sekunden nach. Dann stoppt der Dampfausstoß. Nun habe ich früher beobachtet, daß die Lok danach noch einen kurzen Dampfstoß ablässt. 

Und genau hier liegt mein Problem. Ich habe mal den entsprechenden Abschnitt der EV angefügt.

572011336_Wasisthierfalsch.JPG.2266936ca840bf855cbf18ef13f496e4.JPG

 

Und es funktioniert nicht, sie fängt an zu dampfen, aber hört nicht auf. Was habe ich da falsch gemacht?

 

Gruß,

Michael

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Minuten schrieb Tesla:

Was habe ich da falsch gemacht?

Die Bedingung "Timer läuft nicht" wird nicht ausgewertet, weil die Bedingung "Timer läuft" erfüllt ist.
Das Ereignis wird insgesamt nur einmal ausgeführt, wenn der Kontakt betreten wird. Und bei diesem ersten Mal ist die Bedingung erfüllt.

Schmeiß den Timer raus. Der ist die falsche Wahl. Nutz stattdessen mehrere Verzögerungen.

Bearbeitet von Goetz
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Minuten schrieb martin51:

nacher wird nicht mehr geprüft , also keine Geschwindigkeit 0

Hmm, das ist aber eigentlich unlogisch bis buggy (vom MBS her).

Ich kann mit einer Bedingung prüfen, ob der Timer läuft und nur die Bedingung unter "läuft" wird ausgeführt und die andere nicht. Ist ehrlich gesagt DOOF.

 

Gruß,

Michael

 

@Goetz

Danke für Deine EV!

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 6 Minuten schrieb Tesla:

das ist aber eigentlich unlogisch

Nein, das ist nicht unlogisch. Jede Bedingung wird nur einmal geprüft.

Bedingungen sind kein "Dauerbrenner", der bei jeder Änderung erneut reagiert.

Du musst lernen, Bedingungen und Ereignisse zu unterscheiden.

Bearbeitet von Goetz
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 22 Minuten schrieb Tesla:

wird die Bedingung nicht bei jedem Durchlauf der EV geprüft?

Es gibt ein Ereignis, dass jedesmal, wenn es eintritt, deine Aktionsliste einmal triggert.

In dem Augenblick, wenn ein Zug deinen Kontakt betritt, wird die zugeordnete Aktionsliste genau einmal abgearbeitet. Bedingungen in dieser Liste sind dann jeweils "entweder/oder" Entscheidungen. Aber der Ablauf nimmt nur einen Weg. Entweder diesen oder jenen.

Wird der Kontakt erneut betreten, dann wird die Aktionsliste ein weiteres Mal abgespult.

Das Bedingungen ein entweder/oder bedeuten ist keine Besonderheit der EV. Das findest du genau so in jeder Programmiersprache.

Bearbeitet von Goetz
Schreibfehler korrigiert
Link zu diesem Kommentar
Auf anderen Seiten teilen

Da ich das Bild gerade fertig habe (und es vielleicht anderen hilft, Bedingungen besser zu verstehen) ...:

565833976_AuslserundBedingung.jpg.d006ecfc9aaa36fa225f51a791e80415.jpg

 

Ich wüsste übrigens kein Ereignis, in dem deine Vorgehensweise funktionieren würde.

Das Einzige, was eine wiederholte Prüfung der Bedingung zur Folge hätte, wäre das Ereignis "Timer ist abgelaufen".
Und in solch einem Ereignis wäre deine Bedingung nie erfüllt.

Bearbeitet von Goetz
Link zu diesem Kommentar
Auf anderen Seiten teilen

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...