4 Weichen-Funktionen

!!! 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.
In the case of pictures that are attached to the article, the source must also be stated. This also applies to your own pictures, which were taken by you. Pictures without source information will be deleted!
  • EEPSetSwitch()


    Parameter zwei oder drei Rückgabewerte einer Voraussetzung EEP 10.2 Plug-in 2; EEP 14.1 Plug-in 1


    Lua
    -- stell Weiche 0067 auf 1 (Fahrt)
    Ergebnis = EEPSetSwitch(67, 1)
    
    -- stell Weiche 0089 auf 2 (Abzweig) und ruf EEPOnSwitch_89() auf
    Ergebnis = EEPSetSwitch(89, 2, 1)

    Schaltet eine Weiche.


    Bemerkungen

    • Der 1. Parameter ist die Weichen-ID.
    • Der 2. Parameter ist die gewünschte Weichenstellung. Werte ab 1 aufwärts schalten direkt die korrespondierende Weichenstellung. Der Wert 0 bewirkt, dass um eine Stellung weiter geschaltet wird. Mit dem Wert -1 schaltet man eine Stellung zurück.
    • Ab EEP 14.1 Plug-in 1: Eine 1 als 3. (optionaler) Parameter bewirkt, dass die für diese Weiche definierte Funktion EEPOnSwitch_x() aufgerufen wird. Die Weiche muss für EEPOnSwitch_x() registriert und die Funktion definiert sein. Bitte mit Bedacht einsetzen! Es besteht die Gefahr, dass man sich bei unbedachtem Einsatz Programmschleifen einhandelt, die EEP und Lua lahm legen.
    • Der Rückgabewert ist 1, wenn die Weiche und die gewünschte Weichenstellung existieren, oder 0, wenn eins von beidem nicht existiert.





    EEPGetSwitch()


    Parameter einer Rückgabewerte einer Voraussetzung EEP 10.2 Plug-in 2


    Lua
    Stellung = EEPGetSwitch(1)
    
    if Stellung == 0 then
      print("Weiche 1 existiert nicht")
    elseif Stellung == 1 then
      print("Weiche 1 steht auf Fahrt")
    elseif Stellung == 2 then
      print("Weiche 1 steht auf Abzweig)
    end

    Ermittelt die Stellung einer Weiche.


    Bemerkungen

    • Der Parameter ist die ID der Weiche, deren Stellung man ermitteln möchte.
    • Der Rückgabewert ist die Weichenstellung. Die Nummer entspricht der Position dieser Weichenstellung in der Auswahlliste unter den Weicheneigenschaften. Wenn die abgefragte Weiche nicht existiert, ist der Rückgabewert 0.
    • Achtung: Nach EEPSetSwitch() liefert EEPGetSwitch() frühestens im nächsten Zyklus der EEPMain() die neue Weichenstellung.





    EEPRegisterSwitch()


    Parameter einer Rückgabewerte einer Voraussetzung EEP 10.2 Plug-in 2


    Lua
    Ergebnis = EEPRegisterSwitch(3)
    
    function EEPOnSwitch_3(Stellung)
        print("Weiche 3 auf "..Stellung.."gestellt")
    end

    Registriert eine Weiche für die Rückruf(Callback)-Funktion EEPOnSwitch_x(). Diese notwendige Registrierung soll verhindern, dass Weichen die Rückruf-Funktion aufrufen, für die keine entsprechende Funktion im Skript definiert wurde.


    Bemerkungen

    • Die Registrierung einer Weiche ist zwingend erforderlich, wenn sie bei Schaltvorgängen selbständig die Funktion EEPOnSwitch_x() aufrufen soll.
    • Der Parameter ist die Weichen-ID.
    • Der Rückgabewert ist 1, wenn die zu registrierende Weiche existiert, oder 0, wenn sie nicht existiert.





    EEPOnSwitch_x()


    Parameter einer Rückgabewerte keiner Voraussetzung EEP 10.2 Plug-in 2


    Lua
    function EEPOnSwitch_34(Stellung)
        print("Weiche 34 auf "..Stellung.."gestellt")
    end
    EEPRegisterSwitch(34)  -- zwingend erforderlich!


    Registrierte Weichen rufen selbständig diese Funktion auf, wenn sich ihre Stellung durch einen Kontakt oder durch manuelle Bedienung (direkt oder in einer Verknüpfung) ändert. Im Skript definiert man die zugehörige Funktion und legt so fest, was bei Änderung der Weichenstellung zu tun ist. Wichtig: Wird die Stellung dieser oder einer verknüpften Weiche durch die Funktion EEPSetSwitch() geändert, so wird EEPOnSwitch_x() nur dann aufgerufen, wenn der 3. Parameter "Rueckruf" der Funktion EEPSetSwitch() auf 1 gesetzt ist.


    Bemerkungen

    • Der Name der Funktion darf nicht mit _x enden, wie oben geschrieben, sondern muss mit der Weichen-ID enden. Für Weiche 0034 muss die Funktion also EEPOnSwitch_34() heißen! Bitte beachten: Die führenden Nullen dürfen nicht im Funktionsnamen stehen!
    • Der Parameter ist die neue Weichenstellung als Zahl, entsprechend der Position dieser Weichenstellung in der Auswahlliste der Weichen-Eigenschaften. Eine selbst definierte Variable in den Funktionsklammern nimmt diesen Wert für die weitere Verwendung auf.
    • EEP erwartet bei Aufruf dieser Funktion keinen Rückgabewert.

    Fried-liche Grüße:aq_1:


    Ab einem gewissen Alter kann man sich so ziemlich alles erlauben. Niemand schimpft einen mehr aus, mit Ausnahme der Ärzte und der eigenen Kinder.

    Edited 12 times, last by Fried ().