Lua Gleisbesetzmeldung von Weichen und EKW sowie DKW

!!! Please ensure, that your contribution or question is placed into the relevant section !!!
Questions about rolling stock, for example, do not belong in "Questions about the Forum". Following is perhaps the right area where your question will be better looked after:
General questions to EEP , Splines, rolling stock, Structures in EEP, landscape elements, Signalling system and controlling, designers, Europe-wide EEP meetings , Gossip
Your cooperation to keep the forum clear is appreciated.
  • Moin zusammen


    ich arbeite mich gerade durch die ersten Lua Beispiele, speziell Tutorial 55 mit der Gleisbesetzmeldung. Soweit habe ich es auch auch verstanden, nun aber mal die Frage wie man Weichen und DKWs erfassen kann?


    Wie kann man Weichen und DKWs registrieren und dann abfragen?


    Hiintergrund ist eine große Weichenstrasse mit vielen Weichen und DKW's. Der Zug soll auch erfasst werden, wenn er sich auf den Weichen und DKWS befindet? Da ich auch animierte habe, die gleiche Frage, wobei die GK3 DKWs ja scheinbar speziell sind und ein Skipt mitbringen.



    Es sind die beiden Abfragen, um die es geht. Hier mal für ein Gleis


    Gleis2Reg = EEPRegisterRailTrack(2)

    hResult2,Besetzt2 = EEPIsRailTrackReserved(2)


    Danke und ich bin Lua Anfänger

    EEP 14 und EEP15

    AMP FX 8320

    Geforce 1060

    16 GB Speicher

    SSD 256GB und SSD mit 512GB

  • Wenn du es alleine über die "GleisBesetzt"-Funktion regeln willst, dann musst du alle relevanten Gleis-IDs aus deiner Anlage raussuchen und zum Beispiel in Tabellen schreiben.


    Dann registrierst du alle diese Gleise einmal. Damit EEP für diese Gleise ständig die Information bereithält, ob sie gerade besetzt sind oder nicht.


    Und wenn du dann die Information benötigst, ob ein Streckenabschnitt besetzt ist, dann musst du alle Gleise dieses Abschnitts auf Besetzt prüfen.


    Das wird ein wahnsinniger Aufwand. Deshalb ist es viel klüger, die ganze Besetzt-Abfrage mithilfe der Fahrstraßen zu erledigen. Dann musst du nur noch eine kleine Lua Funktion schreiben, welche die Fahrstraße schaltet, die du gerade benötigst.


    Die GleisBesetzt-Funktionen sind eigentlich für einen anderen Zweck gedacht. Zum Beispiel dafür, dass du prüfen kannst ob an einem Güterschuppen aktuell ein Waggon steht (und welcher das ist).

  • Danke Göetz und schon mal vielen Dank für die Information. Fahrstrassen benutze ich schon und dann werde ich das mal versuchen mit Lua abzufragen. Trotzdem die Frage wie man eine Weiche oder DKW abfragen würde?


    Gruss Thorsten

    EEP 14 und EEP15

    AMP FX 8320

    Geforce 1060

    16 GB Speicher

    SSD 256GB und SSD mit 512GB

  • Trotzdem die Frage wie man eine Weiche oder DKW abfragen würde?

    So, wie jedes andere Gleis auch.

    Denn EEPIsRailTrackReserved() kann nur feststellen, ob ein Gleis besetzt ist.


    Du benötigst also die IDs aller Gleise dieser Weiche. Das sind mindestens 3 Stück: Antrieb, linker und rechter Schenkel.

    Im GK3 Gleisobjekt stecken mehr Gleise. Und in einer DKW noch mehr.


    Alle Gleisnummern in eine Tabelle:

    Weiche1 = {17,18,19}


    Alle Gleise registrieren:

    LUA Source Code
    1. for i = 1, #Weiche1 do -- nimm alle Zahlen von 1 bis 3
    2. -- (#Tabelle = Anzahl der Elemente in der Tabelle)
    3. EEPRegisterRailTrack(Weiche1[i]) -- hol dir damit ein Geis aus der Tabelle
    4. -- und registriere das Gleis
    5. end -- mach das noch einmal,
    6. -- bis du es für alle Nummern getan hast


    Genauso fragst du reihum ab, ob die Gleise besetzt sind:

    LUA Source Code
    1. function Weiche1_frei()
    2. for i = 1, #Weiche1 do
    3. ok, Besetzt = EEPIsRailTrackReserved(Weiche1[i])
    4. if not ok or Besetzt then
    5. return false
    6. end
    7. end
    8. return true
    9. end

    Jetzt kannst du die Funktion Weiche1_frei() dann aufrufen, wenn du wissen musst, ob die Weiche frei ist.

    Du bekommst ein true zurück, wenn sie frei ist.

    Du bekommst ein false zurück, wenn sie besetzt ist oder ein Gleis nicht erkannt wurde.


    Das ist nur ein Beispiel für eine einzelne Weiche.

    Richtiger wäre es, alle Weichen in einer Tabelle unterzubringen und die Weichennummer beim Funktionsaufruf als Argument zu übergeben.

    Aber du kennst meine Devise? Immer einen Schritt nach dem anderen vorgehen.

    I may make you feel, but I can't make you think

    - Ian Anderson -

    The post was edited 1 time, last by Goetz ().