Mit Lua Züge automatisch nacheinander aus dem Depot holen

!!! 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!
  • Bisher benutze ich fast immer ein Signal als Auslöser für ein Depot.

    Nun gibt es ja den Lua Befehl "EEPGetTrainFromTrainyard. Daher kam die Überlegung warum nicht ein Soundkontakt mit einer Funktion "Hole_Zug"

    Da ich keine bzw bescheidene Lua Erfahrung habe, hier mal ein paar Fragen an die Experten.

    Beim überfahren des Kontakts soll jedes mal der nächste Zug aus dem Depot geholt werden.

    Ich habe mir daher mal ein kleines Skript gebastelt:

    clearlog()

    require("BetterContacts_BH2")

    function EEPMain()
    return 1
    end

    function Zug_holen()
    print("Hole Zug aus Depot")
    EEPGetTrainFromTrainyard(1,"Zugname",1)
    end

    Die function Zug_holen steht in einem Soundkontakt.


    Es funktioniert auch einmal (mit dem Zug Nr 1) und dann kommt keiner weiterer Zug aus dem Depot.

    Wenn ich die Beschreibung im Lua Handbuch lese, dann bedeutet die hintere 1 die Nr im Depot. Frage ist, muss ich ihm nicht irgendwie sagen, hole den nächsten Zug der nach dem aktuell fahrenden kommt?

    Die zweite Frage wäre noch beim Neustart, wie kann man die Funktion ohne Zug starten kann, den sonst passiert ja nichts, solange der Kontaktpunkt nicht überfahren wird.

    Vielen Dank

    EEP 17.1 Patch 3

    Asus Prime X570-P

    AMD Ryzen 5 2600 (6x 3,4GHz)

    Geforce 1060 6GB

    64 GB Speicher DDR4

    Samsung M2 SSD 256GB und Samsung SSD mit 512GB

    Windows 10

  • HalloThorsten DakikaBahn ,

    zunächst ein paar Worte zu deinem Skript:
    BetterContacts benötigst du nicht, es sei denn für weiteres nicht gepostetem im Skript. Hierfür auf jeden Fall nicht.
    Der print-Befehl ist so unnötig wie ein Kropf. Print sind frame-lastig.
    Heißt dein Zug wirklich Zugname? Oder möchtest du den automatisch von EEP als 1. Parameter übertragenen Zugnamen verwenden?
    Bei letzterem muss du "" weglassen UND zwischen die runden Klammern einen Variablennamen für den Zugnamen eintragen. Bei Verwendung von BetterContacts heißt der per Default Zugname aber eben ohne "". Wenn du den Zugnamen eingibst, benötigst du den 3. Parameter nicht. Wenn du aber keinen speziellen Zug ausfahren lassen möchtest, musst du als 2. Parameter 2 Gänsefüßchen "" (also eine leere Zeichenkette) eingeben. Dann zählt der 3. Parameter. Steht aber auch alles im Lua-Hanbuch (PDF oder online).

    Beim Aufruf über den Zugnamen muss man aber aufpassen. Wie gesagt, wird der an den KP übertragen. Zu dem Zeitpunkt ist der Zug aber noch nicht im Depot. Um immer den einfahrenden Zug wird ausfahren zu lassen, müsste man eine Zeitverzögerung in den KP eingeben. Macht aber in meinen Augen keinen Sinn.
    Aber auch der Aufruf über den Listenplatz muss nicht immer erfolgreich sein, weil der Zug auf dem Platz gar nicht "wartet" sondern "in Fahrt" ist.

    Wie macht man es richtig?
    Du ermittelst zuerst die Anzahl gemeldeter Züge im Depot EEPGetTrainyardItemsCount. Über diese Anzahl lässt du eine for-Schleife laufen.
    Darin ermittelst du, mit EEPGetTrainyardItemStatus, ob der Zug im Depot "wartet", dann hätte er den Status 1.
    Wenn er wartet, lässt du den Zug über die bekannte Funktion ausfahren und brichst die Schleife mit break ab, denn es soll ja nur einer ausfahren.

    In den KP stellst du die "Zeit" mit 999999 ein. So lange lässt du EEP nicht an einem Stück laufen und damit erfolgt die Ausfahrt nur über diesen KP.

    Zur deiner letzten Frage. Vor die Zeile function EEPMain() schreibst du eine Zug_holen().

    Ich hoffe, ich habe jetzt keinen Fehler reingebracht, denn hier ist es immer noch heeeeiiiiiiß. Falls doch bitte meckern!

    Fried-liche Grüße:aq_1:

    Wen es interessiert ...

    PC: AMD Ryzen 5 5600X 6x3,7GHz; 32GB RAM; GeForce RTX3060XC 12GB; 2x 1TB SSD; Windows10Pro 64bit;

    Monitore: 2560x1440 (ASUS) + 1920x1080 (alt)

    Laptop: i7-4710HQ 2,5GHz; 8GB RAM; NVIDIA GeForce GTX860M; 125GB SSD + 1TB HDD; W10Pro64bit

    EEP: Aktuell 15.1.2 Plug-in 1, 17.3.0 Plug-ins 1 - 3 User + DEV; HN17; AnlVerb->17.3; MK; ME; ZE; TM; ...

  • Hallo Freid

    hier am See ist es auch sehr heiss und wer mal eben so einen Code schreibt, braucht sich nicht entschuldige:)

    Ich habe den Code so wie er ist eingebunden und er funktioniert auch. Es geht wirklich nur darum, einen Zug nach dem anderen aus dem Depot zu holen ohne einen speziellen Zug(namen).

    Einzig das mit der Zeit habe ich nocht gefunden. Im KP wie auch im Depot kann ich nur Uhrzeiten eintragen, oder nicht


    Noch ein Hinweis

    Ich habe die Anlage gespeichert und wieder aufgerufen. Vorher habe ich einen Zug bewusst auf der Strecke gelassen und dann hatte ich 2 Loks auf der Strecke. Nachvollziehbar, da ja sofort ein Zug aus dem Depot geholt wird. Nur nicht erwünscht, da ja noch ein Zug unterwegs ist.

    Sprich, könnte man folgendes prüfen

    Prüfe zuerst ob ein Zug im Depot fahrend ist, wenn ja mache nichts, wenn nein dann lasse Zug ausfahren.

    Ansonsten, danke für erste schnelle Hilfe und jetzt erstamal abkühlen!

    EEP 17.1 Patch 3

    Asus Prime X570-P

    AMD Ryzen 5 2600 (6x 3,4GHz)

    Geforce 1060 6GB

    64 GB Speicher DDR4

    Samsung M2 SSD 256GB und Samsung SSD mit 512GB

    Windows 10

  • Hallo Thorsten,

    du wirst lachen, genau die Situation hatte inzwischen ein anderer EEPler per privatem Kontakt angesprochen. Da ich weder deine Anlage noch deine Absichten kannte, hatte ich dir oben praktisch "nur" auf deinen Lua-Entwurf geantwortet.

    könnte man folgendes prüfen

    Klar und zwar sehr ähnlich, nur anders herum durch eine Prüfung, ob der in der Schleife aufgerufene Zug "in Fahrt" ist. Anstatt den Zug dann aus dem Depot zu holen, ändert man einen vorher gesetzten Flag und bricht die Schleife ab. Wird die Schleife komplett durchlaufen, ohne dass der Flag verändert wurde, dann und nur dann holt man den Zug aus dem Depot.

    Nun zur Zeit:
    Im Ausfahr-KP des Depots klickst du rechts oben unter Auto-Auslass auf Auto-Zeit und trägst dann in das Eingabefeld 999999 ein. Du kannst ja mal ausrechnen, wie viel Tage, Stunden, Minuten und Restsekunden 999999 Sekunden sind. Ich glaube nicht, dass du deine Anlage solange in einem Stück laufen lässt. Denn erst nach der Zeit, würde ein Zug "automatisch" ausfahren.

    Übrigens, es gibt auch noch weitere Situationen, in denen es haken könnte. Aber dazu müsste man mehr über die Anlage wissen.
    Also falls es also hakt: einfach melden.

    Fried-liche Grüße:aq_1:

    Wen es interessiert ...

    PC: AMD Ryzen 5 5600X 6x3,7GHz; 32GB RAM; GeForce RTX3060XC 12GB; 2x 1TB SSD; Windows10Pro 64bit;

    Monitore: 2560x1440 (ASUS) + 1920x1080 (alt)

    Laptop: i7-4710HQ 2,5GHz; 8GB RAM; NVIDIA GeForce GTX860M; 125GB SSD + 1TB HDD; W10Pro64bit

    EEP: Aktuell 15.1.2 Plug-in 1, 17.3.0 Plug-ins 1 - 3 User + DEV; HN17; AnlVerb->17.3; MK; ME; ZE; TM; ...

  • Vielen vielen Dank, das werde ich später mal probieren. Eine kkleine Testanlage kann ich gerne mal senden.

    Die Absicht; Keine Signale mehr zu benutzen sondern nur einen KP. Vereinfacht für mich den Aufbau und Betrieb von Depots. Signale gehen natürlich auch, diese müssen aber clever gesetzt werden und vor allem auch die Kontaktpunkte.


    Danke nochmal.

    EEP 17.1 Patch 3

    Asus Prime X570-P

    AMD Ryzen 5 2600 (6x 3,4GHz)

    Geforce 1060 6GB

    64 GB Speicher DDR4

    Samsung M2 SSD 256GB und Samsung SSD mit 512GB

    Windows 10

  • Eine kkleine Testanlage kann ich gerne mal senden.

    Du hast ja meine Email-Adresse.

    Fried-liche Grüße:aq_1:

    Wen es interessiert ...

    PC: AMD Ryzen 5 5600X 6x3,7GHz; 32GB RAM; GeForce RTX3060XC 12GB; 2x 1TB SSD; Windows10Pro 64bit;

    Monitore: 2560x1440 (ASUS) + 1920x1080 (alt)

    Laptop: i7-4710HQ 2,5GHz; 8GB RAM; NVIDIA GeForce GTX860M; 125GB SSD + 1TB HDD; W10Pro64bit

    EEP: Aktuell 15.1.2 Plug-in 1, 17.3.0 Plug-ins 1 - 3 User + DEV; HN17; AnlVerb->17.3; MK; ME; ZE; TM; ...

  • Guten Morgen

    das Skript auf der Testanlage funktioniert ohne Fehler und ich habe jetzt mal 3 Depots 2 Stunden gleichzeitig getestet, sprich das Skript jeweils kopiert und mit entsprechenden anderen ID geändert.

    Ich habe übrigens auch einen anderen Vorschlag von dir gefunden.

    Fried
    July 2, 2023 at 10:36 PM

    EEP 17.1 Patch 3

    Asus Prime X570-P

    AMD Ryzen 5 2600 (6x 3,4GHz)

    Geforce 1060 6GB

    64 GB Speicher DDR4

    Samsung M2 SSD 256GB und Samsung SSD mit 512GB

    Windows 10

  • Beim überfahren des Kontakts...

    Ich rege höflichst dazu an, die Position dieser Kontaktpunkte irgendwo (Anlageninfo etc.) zu notieren.


    Grund:

    Wenn Du zu einem späteren Zeitpunkt Fahrpläne installierst bzw. die Befehlsmethode änderst (via Signal etc.), kann ein Solcher "Kettenraktions-KP" für graue Haare sorgen, weil er womöglich vergessen wird (keine pauschale Unterstellung!!)


    Hatte vor ein paar Jahren ein Projekt, wo die HG-Züge je nach ihrer Position den Takt vorgaben (quasi flexibler, verschiebbarer Fahrplantakt).


    Bei einem später implementierten Fahrplan kam es dann zu "scheinbaren Fehlfunktionen", weil diese auslösenden KP's schlicht und ergreifend vergessen wurden.


    Ist nur eine Anregung, damit anderen Mitglieder nicht Dasselbe passiert.:saint: - insb. wenn man einen eher untypischen Sound-KP verwendet - im Fall einer "Fehlersuche" schaut man zuerst ja primär die roten KP durch.

    EEP17 Patch 3 , PlugIn 3

    (EEP 11,12,13, 16,17, Konverter, EEP Classic, Zugziel Edit, HN13)

    Genuine Intel(R) 0000 (6 x 2,90GHz) - RTX 3060 (12GB) - 32GB RAM - Win 10 22H2
    40 Zoll 4K Monitor

    Publizierte Projekte:

    "Four Lines" (August 2023 - Dezember 2023)


    Laufende Projekte:

    "noch namenlos" (Mai 2024 bis voraussichtlich Dezember 2024)

    20x4 km - kreisförmige Hochgeschwindigkeitstrasse + Nebenbahnen

  • Alex_Cargobike

    Ich rege höflichst dazu an, die Position dieser Kontaktpunkte irgendwo (Anlageninfo etc.) zu notieren.

    Dafür eignen sich die Tipp- Texte welche in den Kontaktpunkten eingetragen werden können. Da kann man alle nötigen Informationen eintragen.

    Diese kann man dann ein- und aus- blenden.

    Viele Grüße

    Karl Heinz

    Benutzte Programme und Hardware

    Programme:

    EEP 17.3 Expert [x64], PlugIn 1, 2, 3

    HomeNos 17.0

    Tauschmanager, Model Multiplier, Textur Multiplier, Modell Explorer


    Hardware:

    Acer Nitro 5 AN517-41

    AMD Ryzen 7 5800H with Radeon Graphics

    64 GB RAM, nVidia Geforce RTX3080, Laptop GPU7552

    Windows 11 Home, Version 23H2, Betriebssystembuild 22631.3810

    Windows Defender

  • Ordnung ist das halbe Leben oder so ähnlich. Ich habe beim Bau gewisse Prinzipien, dir mir auch später helfen. Zusätzlich mache ich mir tatsächlich Notizen, wo notwendig.

    Die Soundkontakte haben den Charme, das sie gelb sind und hervorragend zu finden sind und zusätzlich LUA anzeigen.

    Der Kontaktfinder ist eine feine Sache wie auch die Tipp Texte

    EEP 17.1 Patch 3

    Asus Prime X570-P

    AMD Ryzen 5 2600 (6x 3,4GHz)

    Geforce 1060 6GB

    64 GB Speicher DDR4

    Samsung M2 SSD 256GB und Samsung SSD mit 512GB

    Windows 10