Welchen Zugnamen muss ich bei weiteren Befehlen (z.B Fahrtrichtungsänderung...) verwenden?

!!! 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.
  • Wünsche allen Eisenbahnfans ein gesundes, erfolgreiches und glückliches 2019!

    Damit der Geist nicht völlig einrostet, habe ich mich wieder meiner Anlage gewidmet.

    Doch ich benötige wieder einmal Euren Rat.

    Im Handbuch steht, dass 'namen' automatisch in einen Befehl übernommen werden.

    z.B. bei - SetTrainSpeed(name, Geschw.)

    aber bei anderen Funktionen wie

    EEPSetTrainLooseCoupling("#Name", boolean, Pos.)

    oder bei

    EEPSetTrainCouplingRear("#Name", boolean)

    wird der kompl. Zugname als String gefordert

    z.B. "#DR 78-254_01;001".

    Dieser Name ändert sich dann beim An- oder Abkuupeln

    z.B. in "#DR 78-254_01;002"

    (In den Anlageninformationen habe ich 'Zugnamen beibehalten' aktiviert.

    Meine Fragen

    - Welchen Zugnamen muss ich bei weiteren Befehlrn (z.B Fahrtrichtungsänderung...)

    verwenden. (In Versuchen wurde hin und wieder der 1. oder auch der 2. Name akzeptiert , erkenne dabei aber kein System!)

    - Was geschieht, wenn ich einen zweiten Zug einsetzen möchte, der auch diese Prozeduren durchlaufen müsste (wieder zwei Zugnamen)?

    - Gibt es eine Syntax, die auch hier die Zugnahmen automatisch übernimmt, sowohl beim An- und Abkuppeln, wie dann auch bei den weiteren Befehlen, bis hin zur erneuten Ankupplung?

  • Im Handbuch steht, dass 'namen' automatisch in einen Befehl übernommen werden.

    Da hast du etwas missverstanden.

    Wenn ein Zug mittels Kontaktpunkt eine Funktion aufruft, dann wird dabei der Name dieses Zuges an Lua übergeben. Denn EEP weiß, wie der Zug heißt. Und in Lua möchte man das gerne wissen.


    Wenn du per Lua einen Befehl an einen Zug senden möchtest, dann musst du den Namen dieses Zuges wissen. Anders kannst du EEP nicht sagen, welchen der Züge du beeinflussen möchtest.


    Wenn der Zug per KP eine Funktion aufruft, dann kannst du den Namen dieses Zuges in Lua speichern um ihn im nächsten Schritt (oder auch später) wieder zu verwenden, wenn du diesem Zug etwas befehlen möchtest. Das kann aber nur solange funktionieren, wie sich der Name des Zuges nicht ändert.


    Das ist noch keine Antwort auf deine Frage!

    Aber bevor du dieses grundsätzliche Prinzip nicht durchschaust, ist es praktisch unmöglich dir eine hilfreiche Antwort zu geben. Deshalb muss das zuerst geklärt werden.

    "Wir hören uns aber zunächst mal an, was Katie zu sagen hat.

    Die ist Expertin und die stellt uns hier die Türstopper vor."

    - Andreas Rogotzki -

  • Hallo Dieter,


    zum rangieren verwende ich die Befehle zum abkuppeln:


    LUA Source Code
    1. EEPRollingstockSetCouplingFront(string.sub(zugname_1,2), 2) -- setzt Kupplung vorn auf Abstoßen
    2. EEPRollingstockSetCouplingFront(string.sub(zugname_1,2), 1) -- setzt Kupplung vorn auf Kuppeln
    3. --oder wenn die Lok vorwärts fährt:
    4. EEPRollingstockSetCouplingRear(string.sub(zugname_1,2), 2) -- setzt Kupplung hinten auf Abstoßen
    5. EEPRollingstockSetCouplingRear(string.sub(zugname_1,2), 1) -- setzt Kupplung hinten auf Kuppeln
    6. --string.sub(zugname_1,2) entfernt das "#" vom übermittelten Zugnamen


    daurch bleibt der Name der Lok erhalten. Sehen kannst du das wenn du diese Funktionen in deinem Script hast:

    (übrigens auch bei deiner Methode, die noch von Trend überarbeitet werden muss um so wie im Handbuch beschrieben zu funktionieren.)

    LUA Source Code
    1. function EEPOnTrainCoupling(Zug_A, Zug_B, Zug_neu)
    2. print("Aus ",Zug_A," und ",Zug_B," wird ",Zug_neu)
    3. end
    4. function EEPOnTrainLooseCoupling( Zug_A, Zug_B, Zug_alt )
    5. print(Zug_alt," geteilt in ",Zug_A," und ",Zug_B)
    6. end

    EEP 15.1 EEP 16
    MS Windows 10 Pro 64bit
    Prozessor: AMD FX-8370 Eight-Core Processor 4,0GHz // RAM: 32GB // SSD 256GB // Grafikkarte: GeForce GTX 950

  • Hallo,


    vielleicht wäre es sinnvoll, die letzten Beiträge vom eigentlichen Thema zu trennen?


    Dann wird es für anderen Lua-Interessenten einfacher diese Beiträge zu den anderen Lua-Funktionen wie zum Beispiel EEPOnTrainCoupling später wieder zu finden.


    Vielen Dank! :-)


    M.f.G. Patrick

    AKTUELLES PROJEKT | Fleischmanns H0-wunderland '76


    Desktop | Intel Core i7 | ASUS X99 Mainboard | Zalman CNPS12X | ASUS GeForce GTX 1070 8GB | 32 GB DDR4 RAM

    Software | WIN 7 Ultimate 64Bit | EEP 13 Expert-Plugin 1 & 2| Home-Nostruktor 13.0 | EEP 13.2, Pl. 1-2 | EEP 15.0 (Deutsch) | Blender | GIMP | Inkscape

    Laptop | Asus VivoBook Pro | Intel Core i7 6700 HQ | Nvidia GTX 950M | 32 GB DDR4 RAM

    Software | WIN 10 | EEP 15.0 (English) | Blender | GIMP | Inkscape

  • Könntest Du mir bitte noch kurz darstellen, wie ich einen Zug unter Lua speichern kann?

    Kurzfristig:

    Lege den Namen in einer Variablen ab. Diese behält die gespeicherte Information so lange, bis du sie überschreibst oder das Skript erneut lädst.


    Langfristig:

    Soll der Zugname erhalten bleiben, wenn du das Skript erneut lädst (einschließlich Beenden und erneutem Laden der Anlage) dann kannst du den Namen mit EEPSaveData() in einem Speicherplatz deiner Wahl ablegen. Die verfügbaren Plätze haben die Nummern 1 bis 999. Du benötigst auch dafür eine Variable (als Zwischenträger) wenn du den Namen durch einen Funktionsaufruf bekommst und an die Funktion EEPSaveData() weiterreichen willst.


    Ich fürchte, dass du gerade das Pferd von hinten aufzäumst.

    Vergiss mal einfach das, was du gerade tun willst und fang vorne an, Lua zu lernen. Nicht irgendwo mittendrin.

    "Wir hören uns aber zunächst mal an, was Katie zu sagen hat.

    Die ist Expertin und die stellt uns hier die Türstopper vor."

    - Andreas Rogotzki -

  • Hi Kaffeeschluerfer, würdest Du mir bitte in Deinen Text die vollen erforderlichen Zugnamen eintragen, damit ich nicht wieder tagelang alle Eventualitäten ausprobieren muss?

    Im Prinzip habe ich deine Schritte verstanden.

    Kann auf diese Weise die Lok (vorn) vom Zug abgekuppelt und nach dem Umsetzen (hinten) wieder angekuppelt werden?

  • vielleicht wäre es sinnvoll, die letzten Beiträge vom eigentlichen Thema zu trennen?

    Hallo Patrick :)


    ein sehr berechtigter Hinweis. Leider komme ich in den letzten Tagen mit dem Abtrennen gar nicht hinterher... :(

    Dann wird es für anderen Lua-Interessenten einfacher diese Beiträge zu den anderen Lua-Funktionen wie zum Beispiel EEPOnTrainCoupling später wieder zu finden.

    Dieter Scharff : bitte hänge Dich aus genau diesem Grund mit neuen Fragen nicht einfach an irgendwelche alten Themen, sondern eröffne ein neues. Beachte dazu auch den nicht ganz unauffälligen Hinweis in dem Kasten oben. Eine bebilderte Anleitung findest Du unter Wie eröffne ich ein neues Thema. Vielen Dank für Dein Verständnis.


    Gruß Ingo

    Win 10x64 Professional, Gigabyte B360M AORUS, Intel Core i7-8700K, 32GB RAM, NVIDIA GeForce GTX 1050 Ti 4GB, 1920x1200 auf 26" TFT

    Windows Firewall und Defender
    EEP 15.1 Expert Patch 2, Plugins: 1

    EEP 16 Expert Patch 2


    alt:
    Win 7x64 Professional SP1, Intel Core i5-3570, 16GB RAM, nVIDIA GeForce GT630, 2GB, 1280x1024 auf 19" TFT

    Windows Firewall und Defender (MSE)

    EEP6; EEP8-14; EEP 15.1 Expert Patch 2, Plugins: 1

  • Hi Goetz, sicher hast du nicht unrecht. Ich beschäftige mich seit einiger Zeit mit Lua, habe die Tutorials aufmerksam studiert und was ich für die Realisierung meiner Anlage verwenden konnte bis zum entgültigem Verständnis ergründet, erprobt und letztendlich angewendet. Doch bei diesen Tutorials, die offensichtlich die einzige Möglichkeit sind, Lua zu verstehen, gibt es immer wieder Situationen, die auch mit viel Mühe nur schwer nachvollzogen werden können. Seit ich über das Forum, durch Euch diese Gedankenstützen bekommen, bin ich viel weiter gekommen. Doch an einigen Dingen scheitere ich, trotz mühevoller Erprobungen. Um nicht aufgeben zu müssen frage ich Euch, um ein positives Ergebnis zu bekommen. Für Euch sind das möglicherweise Lullerken, doch mir kosten diese Kleinigkeiten oft sehr, sehr viel Zeit, dennoch versuche ich es zu verstehen und umzusetzen.

    Dieter.

  • Kann auf diese Weise die Lok (vorn) vom Zug abgekuppelt und nach dem Umsetzen (hinten) wieder angekuppelt werden?

    Ja, das ist ja der Sinn der Sache (u.a.)

    Lok ist rückwärts am Zug!

    Mach zum Test auf einem Gleis drei Kontaktpunkte dicht hintereinander: 1. Soundkontakt mit lua-Funktionsaufruf "ZugHalt" - 2. Soundkontakt mit etwa 5 sec Verzögerung und lua-Funktionsaufruf "Abkoppeln" - 3. Soundkontakt mit etwa 10 sec Verzögerung und lua-Funktionsaufruf "LokWeiter"

    In den "Anlageninformationen" kein Haken bei "Namen behalten" !

    Wenn der Zug die Kontaktpunkte erreicht, hält der Zug an, wird die Lok abgekoppelt und fährt dann weiter.

    EEP 15.1 EEP 16
    MS Windows 10 Pro 64bit
    Prozessor: AMD FX-8370 Eight-Core Processor 4,0GHz // RAM: 32GB // SSD 256GB // Grafikkarte: GeForce GTX 950

  • Danke, danke, jetzt werde ich mich solange damit beschäftigen, bis es funktioniert! Nun wird die Lok weiterfahren, bis zum Fahrtrichtungswendepunkt, die Weichen werden gestellt, dann fährt sie zurück bis zu einem weiteren Wendepunkt und kommt von vorne auf das Zugende zu.

    Jetzt müsste die Zugankopplung programmiert werden.

    Das macht ein entsprechender Kontaktpunkt, der allerdings bei Ankunft des Zuges ebenfalls überfahren wird, er muss bei dieser ersten Berührung unaktiv(?) sein?

  • Das macht ein entsprechender Kontaktpunkt, der allerdings bei Ankunft des Zuges ebenfalls überfahren wird

    Zum Ankoppeln braucht es keinen Kontaktpunkt oder Funktion, das macht die Lok alleine. Du mußt nur in der "Anlageninformation" den Haken bei "sanftes Ankoppeln" setzen.

    EEP 15.1 EEP 16
    MS Windows 10 Pro 64bit
    Prozessor: AMD FX-8370 Eight-Core Processor 4,0GHz // RAM: 32GB // SSD 256GB // Grafikkarte: GeForce GTX 950

  • Da die betreffenden KP ja nur vom ganzen Zug oder der Wendelok ausgeführt werden sollen, gebe ich meinem Zugwagen beim abkoppeln die Route "Wendezug". Nach dem ankuppen in die richtige Richtung bekommt er wieder seine ursprüngliche Route zurück.


    Peter

    Betriebsystemname: Microsoft Windows 10 Pro Education

    Prozessor: AMD Ryzen 5 1600 Six-Core Processor, 3200 MHz, 6 Kern(e), 12 logische(r) Prozessor(en)

    PC:RAM 16 GB

    Grafik Karte: Name NVIDIA GeForce GTX 1060 6GB


    EEP6 mit allen Plugins und Patches
    EEP7 bis13 mit allen Patches und Plugins

    EEP 15 und EEP 16
    Modelkonverter
    PlanEx 3.1
    Home-Nostruktor 13.0
    Modellkatalog
    Bodentextur Tool



  • Danke, es functioniert!

    Der KP muss sehr genau possitioniert sein, gibt es eine Möglichkeit, dass, wenn die Ankiupplung erfolgt ist, die Rückfahrt eingeleitet wird? Dann wäre alles perfekt.


    Eine weitere wichtige Frage. In der formalen Logik kann ich die logischen Verknüpfungen dadurch erweitern, in dem ich bei den Argumenten weitere Verknüpfungen einfüge. Was muss ich tun, wenn ich bei einer Funktion z.B. bei if, then, else im Rahmen der Argumente eine weitere Funktion verwenden möchte?

    Z.B if

    (.... == x)

    and

    (.... == y)

    then

    if

    (.... == a)

    and

    (... == b)

    then

    EEP......

    else

    EEP......

    end

    end

    end

  • ein end zuviel:

    Code
    1. if (.... == x) and (.... == y) then
    2. if (.... == a) and (... == b) then
    3. EEP_tuwas()
    4. else
    5. EEP_tuwasanderes()
    6. end
    7. end
    8. -- end

    hier siehst du auch gleich den Vorteil der Formatierung

    :aq_1:

    Intel i3-540 3,2GHz 8GB, RAID10, HD 6570 1GB, W7/64 Prof., EEP 6-6.1, 10-15, HN13+15, TM, "Schiefe Ebene 6 + 8", "Bahn2000", "Faszination der St. Gotthard-Nordrampe"

    MK, ModellKonverter 1.0 wo nicht mehr tut. Ganz schnell ausgeschrieben, wg. Mod-Drohung: Ansonsten ... :am_1:

  • Hallo Dieter,

    du hast ja schon einiges geschafft, :aa_1:


    Für die Weiterfahrt nach dem Ankoppeln lege ich die Kontakte vor die letzte Weiche (die wieder aufs Zufahrtsgleis führt) mit entspr. Zeitverzögerung.

    Dadurch habe ich keine Probleme mit dem zweimaligen Überfahren. Sieht etwa so aus:


    1. Fahrzeugkontakt - Verzögerung 25 sec / Tempo 0 zum Anhalten nach der Weiche

    2. Kontakt mit 30 sec Verzögerung für Rückfahrt zum Ankoppeln

    3. Kontakt mit 70 sec Verzögerung für Abfahrt des ganzen Zuges


    4, ist ein Weichenkontakt um Weiche auf Abzweig zu schalten.



    EEP 15.1 EEP 16
    MS Windows 10 Pro 64bit
    Prozessor: AMD FX-8370 Eight-Core Processor 4,0GHz // RAM: 32GB // SSD 256GB // Grafikkarte: GeForce GTX 950