Jump to content

Beschleunigungs-/Bremswert in EV ändern?


EASY

Empfohlene Beiträge

Hallo,

ich habe z.B. das Signal 78722089-1B26-4AC5-AA55-91CB56A599BB ...

1603520602_GleiskontaktSignal01.thumb.jpg.0ce21b66a3031ab85e802af062f6a391.jpg

... und würde gerne für den Signalbegriff "2 - Hp2(Langsamfahrt)" die Werte für "Beschleunigen auf" und "Abbremsen auf" in der EV ändern...

in lua gibt es trackContact.autoAccelerationSpeed womit ich z.B. den Beschleunigungswert ändern kann,
nur wie muß ich dies anwenden, damit es für den Signalbegriff 2 geändert wird?

P.S. ... ich kann zwar nur lua... aber gerne auch eine Lösung in der grafischen EV...

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @EASY,

Anscheinend geht das in der EV nur, wenn der Signalbegriff auch aktuell ist, also z.B. wenn das Signal schaltet. Dann kann man die Werte beeinflussen:

if contact.state == 2 then
  contact.trackContact.autoAcceleration = true
  contact.trackContact.autoDeceleration = true
  contact.trackContact.autoAccelerationSpeed = 20
  contact.trackContact.autoDecelerationSpeed = 20
end

(Ich habe das Ereignis über die grafische Oberfläche erstellt und dann nach Lua "übersetzen" lassen.

Grüße,
 Wolfgang

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

vor 13 Stunden schrieb prinz:

Anscheinend geht das in der EV nur, wenn der Signalbegriff auch aktuell ist.

Hatte ich mir eigentlich auch gedacht, hat nur bei meinem Versuch nicht geklappt...
943312098_Bild01.thumb.jpg.b42a9a949d0fbcfc4c3990d47133985a.jpg

... wenn die Fahrstraße altiviert wird, sollte dem Gleiskontakt für die Signalstellung 1 ein variabler Beschleunigungswert zugewiesen werden...

if route.active and not deferredCall then
defer (0,5,"v1")
elseif deferredCall=="v1" then
  if route.waypoints[1].state==1 then -- = Signal
    route.waypoints[1].trackContact.autoAccelerationSpeed=math.random(50,90)
  end
end

... ich hatte sogar extra eine kleine Verzögerung mit eingebaut.... aber es ging nicht, was mich zu meiner Anfrage geführt hat.

Nur die Verzögerung war zu kurz. Auf den Beschleunigungswert für die Signalstellung 1 kann erst zugegriffen werden, wenn das Signal "sicher" geschalten hat, also wenn die Animation für den Signalzustand abgelaufen ist.

Ich habe das Ereignis "Fahrstraße wird aktiviert..." versuchshalber umgeschrieben...

if route.active and not deferredCall then
  if $("FSA").state==1 then
    print("FS aktiviert",$("FSA").state,$("FSA").trackContact.autoAccelerationSpeed)
  end
defer (0.5,"v1")
elseif deferredCall=="v1" then
  if $("FSA").state==1 then
    print("FS aktiviert 1*0.5 verz.",$("FSA").state,$("FSA").trackContact.autoAccelerationSpeed)
  end
defer (0.5,"v2")
elseif deferredCall=="v2" then
  if $("FSA").state==1 then
    print("FS aktiviert 2*0.5 verz.",$("FSA").state,$("FSA").trackContact.autoAccelerationSpeed)
  end
end

... und noch ein Ereignis "Signal schaltet"...

if signal.state==1 then
print("Signal schaltet.",$("FSA").state,$("FSA").trackContact.autoAccelerationSpeed)
end

Wird nun die Fahrstraße aktiviert ergibt es folgendes Ereignisprotokoll...
1205944275_Bild02.jpg.cf5791c79e3dca20b5773d608652b347.jpg

Es wird zwar in Zeile 3 sofort der Signalzustand 1 ausgegeben, jedoch entspricht der Beschleunigungswert noch dem Wert von Signalstellung 0 (0).
nach der ersten Verzögerung von 0.5 Sekunden ergibt sich in Zeile 5 das gleiche...
Dann schaltet das Signal...
In Zeile 8 wird der Signalzustand 1 ausgegeben und der Beschleunigungswert von Signalstellung 0 (80).
nach der zweiten Verzögerung von weiteren 0.5 Sekunden stimmt nun auch der Wert beim Auslesen über die Fahrstraße in Zeile 10.

Das Signal schaltet also "sicher" zwischen 0.5 und einer Sekunde (Animation ist abgelaufen).

Da die Lok sehr kurz ist, und das Signal nach dem Aktivieren der Fahrstraße wieder auf 0 geschaltet wird, wenn die Mitte der Lok das Signal erreicht hat (ist nach ca. 3 Sekunden der Fall), bleibt mir ein Zeitfenster von zwischen einer und drei Sekunden um den Beschleunigungswert zu ändern.

Natürlich ist der "sichere" Weg über "Signal schaltet"... aber dies ist ein zusätzliches Ereignis und ich wollte es nur über das Fahrstraßenereignis machen, da hier schon der Bezug zum richtigen Signal über die Wegpunkte der Fahrstraße gegeben ist...

Kleines Fazit: ... ausgelesener Signalzustand ist nicht in jedem Fall der tatsächliche Signalzustand...

Gruß
EASY

 

 

Bearbeitet von EASY
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb EASY:

Kleines Fazit: ... ausgelesener Signalzustand

Ich denke, schon. Nach dem relevanten Ereignis „Signal schaltet“ stimmen die Werte. 
Schöner wäre es, wenn sich die Einstellungen für die Signalbegriffe einzeln über die Eigenschaften regeln ließen.

Gruß, Wolfgang

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