Phrontistes Geschrieben 21. September 2023 Geschrieben 21. September 2023 Hallo @Neo, Es wäre schön, wenn das Ereignis „Signalstellung hat sich geändert“ außer dem Signal auch den Gleiskontakt und das Fahrzeug (falls eines auf dem Kontakt steht, sonst eben [Leer]) liefern würde. Anwendungsfall: Das Fahrzeug soll nicht zeitgleich losrasen, sondern noch etwas warten (siehe Beispiel). Das kann man zwar mit zwei Variablen lösen (siehe Beispiel), aber die Information ist ja sowieso vorhanden. Mir ist klar, dass das Ereignis nicht durch den Gleiskontakt oder das Fahrzeug ausgelöst wurde – aber durch das Signal auch nicht, sondern manuell, durch die EV oder eine Fahrstraße. It would be nice if, in addition to the signal, the "signal position has changed" event also provided the track contact and the vehicle (if one is on the contact, otherwise just [Empty]). Use case: The vehicle should not start speeding at the same time, but wait a little longer (see example). This can be solved with two variables (see example), but the information is available anyway. I realize that the event was not triggered by the track contact or the vehicle – but neither by the signal, but manually, by the EM or a route. Beste Grüße / Kind regards Phrontistes Example: Delay after signal change.mbp
streit_ross Geschrieben 21. September 2023 Geschrieben 21. September 2023 Hallo @Phrontistes, Warum reicht es Dir nicht aus, wenn nach dem Schalten des Signals auf "Fahrt" eine Zeitverzögerung über die EV-Zeitsteuerung die Abfahrt des Fahrzeuges nach z.B. 3 Sekunden bewirkt ? Gruß streit_ross
Goetz Geschrieben 22. September 2023 Geschrieben 22. September 2023 (bearbeitet) vor 8 Stunden schrieb Phrontistes: Es wäre schön, wenn das Ereignis „Signalstellung hat sich geändert“ außer dem Signal auch den Gleiskontakt und das Fahrzeug (falls eines auf dem Kontakt steht, sonst eben [Leer]) liefern würde. Beides kannst du schon jetzt haben, Phrontistes. Da du aber in der Vergangenheit alle meine Vorschläge konsequent ignoriert hast, warte ich diesmal ab ob du mich fragst, wie es geht. Viele Grüße Götz Bearbeitet 22. September 2023 von Goetz Schreibfehler korrigiert
Phrontistes Geschrieben 22. September 2023 Autor Geschrieben 22. September 2023 (bearbeitet) Hallo @streit_ross, vor 8 Stunden schrieb streit_ross: Zeitverzögerung über die EV-Zeitsteuerung genau das mache ich ja in meinem Beispiel. vor 8 Stunden schrieb streit_ross: des Fahrzeuges Welches Fahrzeugs? Das ist doch genau das Problem. Auf das Fahrzeug kann ich im Ereignis „Signalstellung hat sich geändert“ ja nicht direkt zugreifen. Im Übrigen habe ich nur einen Teilaspekt beschrieben und im Beispiel gezeigt. Es gibt folgende Situationen wenn das Signal schaltet: Auf dem Gleiskontakt befindet sich das auslösende Fahrzeug (im Beispiel gezeigt). Auf dem Gleiskontakt befindet sich kein Fahrzeug (im Beispiel gezeigt). Auf dem Gleiskontakt befindet sich ein anderes Fahrzeug als das, welches den Gleiskontakt ausgelöst hat, nämlich das andere Ende des Wendezuges (im Beispiel nicht gezeigt). Hier braucht es dann noch mehr, nämliche eine Variable im "vorderen" Fahrzeug, in der das "hintere" steht und entsprechende Prüfungen (im Beispiel nicht gezeigt). Ich verstehe schon, weshalb Neo im Ereignis „Signalstellung hat sich geändert“ bisher kein Fahrzeug liefert. Mit dieser Information muss man dann schon umzugehen wissen. Beste Grüße Phrontistes Bearbeitet 22. September 2023 von Phrontistes Ergänzung nach Missverständnis Cafépause
Cafépause Geschrieben 22. September 2023 Geschrieben 22. September 2023 vor 50 Minuten schrieb Phrontistes: Ich verstehe schon, weshalb Neo bisher keine Fahrzeug liefert. Hmmm?! Dann musst Du @Phrontistes ein anderes MBS haben. Oder eine andere Version. In meiner Version hat @Neo durchaus Fahrzeuge "geliefert". Zwar meist der "einfacheren Art", aber es gibt sie.
Hawkeye Geschrieben 22. September 2023 Geschrieben 22. September 2023 Hallo @Phrontistes, wäre schön, wenn du hierfür doch ein Beispiel angeben würdest. vor einer Stunde schrieb Phrontistes: Auf dem Gleiskontakt befindet sich ein anderes Fahrzeug als das, welches den Gleiskontakt ausgelöst hat, nämlich das andere Ende des Wendezuges (im Beispiel nicht gezeigt). Hier braucht es dann noch mehr, nämliche eine Variable im "vorderen" Fahrzeug, in der das "hintere" steht und entsprechende Prüfungen (im Beispiel nicht gezeigt). Nach meinem Verständnis ist das Fahrzeug, das auf einem Gleiskontakt steht, immer die aktive antreibende Lok, egal an welcher Position im Zug sie steht. Das erste Fahrzeug vor dem Signal ist hierbei nicht relevant. Auch ist Zuweisung des Signals im Gleiskontakt als Variable überflüssig. Du kannst den Signal-GK direkt im Ereignis „Signal schaltet“ ansprechen. VG, Hawkeye
Phrontistes Geschrieben 22. September 2023 Autor Geschrieben 22. September 2023 Hallo @Hawkeye, vor 47 Minuten schrieb Hawkeye: Du kannst den Signal-GK direkt im Ereignis „Signal schaltet“ ansprechen. Wie? Jedenfalls nicht als Trigger: Ich würde beim markierten Zahnrad gerne den Trigger "Track contact" (oder von mit aus auch "Signal") auswählen, wenn er angeboten würde, wird aber aber (bisher) nicht. vor 53 Minuten schrieb Hawkeye: ist das Fahrzeug, das auf einem Gleiskontakt steht, immer die aktive antreibende Lok, egal an welcher Position im Zug sie steht Nicht, wenn Du mit "Vehicle is located on track/track contact" fragst. Die folgende allgemeingültige Routine für verzögerte Abfahrt an Signalen funktionierte ohne die zweite Abfrage auf das "hintere" (jetzt aber am Signal stehende) Fahrzeug nicht. Bei einer Kopfwende am Prellbock mit Lichtwechsel, Wechsel der Zugzielanzeige, Wechsel der Führerstandskamera, und Wechsel des mit einer Außenkamera zu verfolgenden Fahrzeugs hat man das gleiche Problem, weshalb mich das auch nicht überrascht hat Beste Grüße Phrontistes
Goetz Geschrieben 22. September 2023 Geschrieben 22. September 2023 vor 18 Minuten schrieb Phrontistes: Jedenfalls nicht als Trigger: Doch, das geht. Sowohl per Lua, als auch mit der grafischen EV. Aber wer nicht fragt, bleibt ... unwissend.
Hawkeye Geschrieben 22. September 2023 Geschrieben 22. September 2023 vor 20 Minuten schrieb Phrontistes: Wie? Jedenfalls nicht als Trigger: Bei mir geht das. VG, Hawkeye
Goetz Geschrieben 22. September 2023 Geschrieben 22. September 2023 Das ist nicht das, was Phrontistes sucht, @Hawkeye Er möchte gerne generisch das Signal angeben, welches das Ereignis ausgelöst hat.
Hawkeye Geschrieben 22. September 2023 Geschrieben 22. September 2023 (bearbeitet) vor 8 Minuten schrieb Goetz: Er möchte gerne generisch das Signal angeben, welches das Ereignis ausgelöst hat. Ok, das geht auch. @Phrontistes, suchst du das? Geht auch in der grafischen EV. VG, Hawkeye Bearbeitet 22. September 2023 von Hawkeye
Goetz Geschrieben 22. September 2023 Geschrieben 22. September 2023 Damit bekommst du das Gleis und nicht den Kontakt, @Hawkeye
Hawkeye Geschrieben 22. September 2023 Geschrieben 22. September 2023 vor 1 Minute schrieb Goetz: Damit bekommst du das Gleis und nicht den Kontakt Autsch, da war ich etwas zu schnell. So besser?
Phrontistes Geschrieben 22. September 2023 Autor Geschrieben 22. September 2023 (bearbeitet) Hallo @Hawkeye, vor 2 Stunden schrieb Hawkeye: Bei mir geht das. Du benutzt auch nicht den Trigger, sondern hast ein einzelnes Signalobjekt eingetragen. Natürlich geht das, nutzt aber nichts für eine allgemeingültige Routine (schau' in meinem Bild auch mal ganz oben, welches Ereignis ausgewertet wird), die für alle Signale, bei denen die Abfahrt verzögert werden soll nur einmal geschrieben wird. Beste Grüße Phrontistes Bearbeitet 22. September 2023 von Phrontistes Komma hatte gefehlt
Hawkeye Geschrieben 22. September 2023 Geschrieben 22. September 2023 vor 5 Minuten schrieb Phrontistes: die für alle Signale, bei denen die Abfahrt verzögert werden soll nur einmal geschrieben wird. In der grafischen EV über die Eigenschaften des "Signals".
Goetz Geschrieben 22. September 2023 Geschrieben 22. September 2023 vor 4 Minuten schrieb Hawkeye: So besser? Auch nicht. Und ich lag ebenfalls falsch als ich schrieb, dass du so das Gleis bekommen würdest! Denn mit connection ist etwas anderes gemeint. connection würde dir das zugehörige Signal liefern, wenn du im Gleiskontakt eine Verbindung zu einem Signal herstellst. Ihr zwei denkt noch viel zu kompliziert. Das geht alles viel einfacher
Phrontistes Geschrieben 22. September 2023 Autor Geschrieben 22. September 2023 vor 6 Minuten schrieb Hawkeye: So besser? Ja! Code einfügen statt Bild wäre noch nett, dann muss man nicht abtippen . vor 1 Minute schrieb Hawkeye: Eigenschaften Danke für den Hinweis; ich hab' (mal wieder) nicht an die Properties gedacht . Eigentlich weiß ich ja, dass man auch dort fündig werden kann; z.B. starte ich das Fahrzeug ja damit. Beste Grüße Phrontistes
Hawkeye Geschrieben 22. September 2023 Geschrieben 22. September 2023 vor 9 Minuten schrieb Goetz: Auch nicht. Und ich lag ebenfalls falsch als ich schrieb, dass du so das Gleis bekommen würdest! Denn mit connection ist etwas anderes gemeint. So? Was denn? Wenn ich eine print-Anweisung einbaue, dann bekomme ich den GK des Signals.
Goetz Geschrieben 22. September 2023 Geschrieben 22. September 2023 vor 59 Minuten schrieb Hawkeye: Wenn ich eine print-Anweisung einbaue, dann bekomme ich den GK des Signals. ... weil du die Verbindung des Fahrzeugs prüfst. Prüf die Verbindung des Signals und du wirst nicht das bekommen, was du erwartest. Denn darüber findest du ein verbundenes Signal (falls es das gibt). Beispielsweise das Vorsignal zum Signal.
Goetz Geschrieben 22. September 2023 Geschrieben 22. September 2023 (bearbeitet) Drei Lösungsansätze Version 1 (mit Lua) Skriptbedingung: return #layout:getVehiclesOn(signal) > 0 Skriptaktion: local vehicles = layout:getVehiclesOn(signal) for _, vehicle in pairs(vehicles) do if vehicle:hasEngine() then vehicle.engine.active = true vehicle.targetSpeedAbs = 180 end end Über die Variable "signal" erreiche ich in Lua Skripten das auslösende Signal. Und da es mit dem Kontakt eine Einheit bildet, kann ich über diese Variable auch die Fahrzeuge auf dem zugehörigen Kontakt erreichen. Variante 2 (benutzerdefiniertes Ereignis) In benutzerdefinierten Ereignissen stehen die Parameter an jeder Stelle als Auslöser zur Verfügung! Variante 3 (Beschleunigung im Signal aktivieren und deaktivieren) Diese Version würde ich bevorzugen, weil sie garantiert dass der Zug auf dem Kontakt auch dann angesprochen wird, wenn das angetriebene Fahrzeug an anderer Stelle steht. Also beispielsweise ein geschobener Beiwagen auf dem Signalkontakt steht. Und die Prüfung, ob überhaupt ein Zug auf dem Kontakt steht, entfällt hier auch. Wichtig ist bei dieser Methode, dass die Beschleunigung im Signal deaktiviert wird, bevor die Signalstellung auf Halt wechselt! Beispielanlage: delay after signal change three examples.mbp (Variante 3 ist im Beispiel aktiviert) Viele Grüße Götz Bearbeitet 22. September 2023 von Goetz Beispielanlage hinzugefügt
Hawkeye Geschrieben 22. September 2023 Geschrieben 22. September 2023 vor 31 Minuten schrieb Goetz: ... weil du die Verbindung des Fahrzeugs prüfst. Nein. Die wird nicht geprüft. vor 31 Minuten schrieb Goetz: Prüf die Verbindung des Signals und du wirst nicht das bekommen, was du erwartest. Doch. Ich bekomme den GK des Signals. vor 32 Minuten schrieb Goetz: Denn darüber findest du ein verbundenes Signal (falls es das gibt). Beispielsweise das Vorsignal zum Signal. Auch nicht. Siehe Beispiel.
Goetz Geschrieben 22. September 2023 Geschrieben 22. September 2023 (bearbeitet) vor 13 Minuten schrieb Hawkeye: Doch. Ich bekomme den GK des Signals. Okay, dann hatte ich mich bei meinen Versuchen verfummelt. Tut mir leid! Nachtrag: Ich hatte nur signal.connection probiert. Und ich hatte bei meiner Erklärung dazu connection und link verwechselt. Danke für die Berichtigung. Bearbeitet 22. September 2023 von Goetz
Hawkeye Geschrieben 22. September 2023 Geschrieben 22. September 2023 vor 19 Minuten schrieb Goetz: Und ich hatte bei meiner Erklärung dazu connection und link verwechselt. Passiert mir manchmal auch noch.😁
Goetz Geschrieben 22. September 2023 Geschrieben 22. September 2023 und gefallen dir meine drei Lösungsvorschläge, @Hawkeye?
Hawkeye Geschrieben 22. September 2023 Geschrieben 22. September 2023 vor 31 Minuten schrieb Goetz: und gefallen dir meine drei Lösungsvorschläge Äh, da bin ich der falsche Ansprechpartner. Da mußt du @Phrontistes fragen. Ich verwende solche Konstellationen und zusätzlichen Abfragen i.d.R. nicht. Bei mir bekommt das Signal den nächsten Zug rechtzeitig per Variable zugewiesen, wenn er auf das Signal zufährt, und dieser bekommt dann beim Schalten des Signals auf „Fahrt“ direkt die Geschwindigkeit zugewiesen, egal ob er auf dem GK steht oder nicht. VG, Hawkeye
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden