Jump to content

Empfohlene Beiträge

Geschrieben

@Goetz,

vielleicht kannst du dir bitte diese eine beschriebene Stelle ansehen. Die entspricht doch genau dem, was du geschrieben hast.

Danke, Jürgen

Geschrieben
vor 8 Minuten schrieb jloos:

vielleicht kannst du dir bitte diese eine beschriebene Stelle ansehen.

Denkst du nicht, dass ich das dann schon getan hätte?
Ich habe doch deinen Text und deine Beschreibung gelesen und nicht nur das Bild angeschaut.

Aber mit dieser einen Stelle ist es eben nicht getan, Jürgen.

  • 4 Wochen später...
Geschrieben

Hallo,
ich versuche noch immer eine Lösung für zu lange wartende Zügen bei blockierter FS zu finden.
Ich habe es jetzt hiermit probiert:

if not deferredCall then
  defer(30, "Verzögerung")
elseif deferredCall == "Verzögerung" then

  if route.state == 1 or route.state == 2 then

    local Signal = route.waypoints[1]

    Signal.variables["Zug"].variables["nächste FS"].active = false
    route.variables["Alternative FS"].autoActivate = true
    route.variables["Alternative FS"].active = true

  end
end

Als Ereignis kann ich aber nun nicht "Fahrstraße aktiviert" verwenden, denn sie steht ja noch auf 
route.state == 1 or route.state == 2. 

Wie kann ich das lösen?

Gruß Jürgen

Geschrieben (bearbeitet)

Hallo,

vor 4 Stunden schrieb jloos:

Wie kann ich das lösen?

Irgendwo mußt Du die Fahrstraße ja als Aktion aktivieren.
Wenn Du nun aus Deinem Skript ein benutzerdefiniertes Ereignis "FS aktivieren" mit dem Parameter "Fahrstraße" machst und um folgendes ergänzt...

if not deferredCall then
  Fahrstraße.active = true -- Ergänzung
  defer(30, "Verzögerung")
elseif deferredCall == "Verzögerung" then

  if route.state == 1 or route.state == 2 then

    local Signal = route.waypoints[1]

    Signal.variables["Zug"].variables["nächste FS"].active = false
    route.variables["Alternative FS"].autoActivate = true
    route.variables["Alternative FS"].active = true

  end
end

...und dort wo du die Fahrstraße aktivierst...

$("Deine Fahrstraße").active = true

...statt dessen das benutzerdefinierte Ereignis aufrufst...

$FS aktivieren:invoke($"Deine Fahrstraße")

... dann wird 30 Sekunden später geprüft, ob die Fahrstraße zwischenzeitlich aktiviert werden konnte... was Du mit Deinem Skript wolltest.

Gruß
EASY

 

Bearbeitet von EASY
Geschrieben (bearbeitet)

Hallo @EASY,

Dein Vorschlag gefällt mir - aber wenn Du dem benutzerdefiniertes Ereignis den Parameter "Fahrstraße" übergibst, müsste man in Jürges' Skript überall "route" durch  "Fahrstraße" ersetzen. Oder man übergibt als Parameter gleich "route" und ändert Deine Ergänzungszeile entsprechend, dann ist auch gut.

statt

vor 12 Stunden schrieb EASY:
Fahrstraße.active = true -- Ergänzung

also

route.active = true -- Ergänzung

Falls der alternativen Fahrstraße auch nicht zu trauen ist und diese womöglich wiederum eine alternativen Fahrstraße hat, müsstest Du, @jloos, konsequenterweise

Zitat
route.variables["Alternative FS"].active = true

noch ersetzen durch

$FS aktivieren:invoke($route.variables["Alternative FS"])

 

Bearbeitet von Phrontistes
typo
Geschrieben

Halo @jloos,

wenn ich Deine übergreifende FS-Logik richtig verstehe, kann man den Ausdruck

local Signal = route.waypoints[1]
Signal.variables["Zug"].variables["nächste FS"].active = false

vereinfachen in

route.active = false

denn es ist doch eben jene "nächste FS", die Du zuerst versuchst, oder?

Geschrieben

Hallo,

vor 27 Minuten schrieb Phrontistes:

... aber wenn Du dem benutzerdefiniertes Ereignis den Parameter "Fahrstraße" übergibst, müsste man in Jürges' Skript überall "route" durch  "Fahrstraße" ersetzen. Oder man übergibt als Parameter gleich "route" und ändert Deine Ergänzungszeile entsprechend, dann ist auch gut.

... das simmt natürlich:$... es war schon spät am abend:/

Gruß
EASY

Geschrieben
vor 13 Minuten schrieb Phrontistes:

denn es ist doch eben jene "nächste FS", die Du zuerst versuchst, oder?

Du hast Recht, die Fahrstraße, die immer noch auf Status 1 oder 2 steht, kenne ich ja bereits. Es ist die in der Lok unter "nächste FS" gespeicherte FS.
Der Schritt ist überflüssig

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