Einen bestimmten Zug per Signal 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!
  • An Michael

    Wie ich Schlingo schon schrieb, kenne ich mich mit LUA nicht soweit aus um solche Codes aus dem Aermel zu schuetteln.

    Um so mehr muss ich mich bei dir bedanken das du mir so viel hilfst!!!

    Ich habe den neuen Script eingesetzt und es funktioniert!!!

    Alles weitere (2. Depot an dem anderen Ende der Strecke) werde ich schon hinbekommen!!!

    Nochmal viiiiielen Dank fuer deine Hilfe!!! :be_1:


    Schoene Gruesse nach Germany

    und immer schoen aufpassen!!!

    Wolfgang

    EEP 13.2 Expert Patch 1

    EEP 14.1 Expert Patch 2

    EEP 15.1 Expert Patch 2

    Windows 10, INTEL i7-7700 CPU 3,6 GHz,

    16GB RAM, Geforce 1080

  • Hallo Michael,


    vielen Dank für das Bereitstellen von Lua Skript Bestimmten.......Zug....holen.


    Bei mir werden die Tipptexte über den Signalen nicht angezeigt. Habe bei der Zuordnung der Signale im Skript bestimmt etwas verkehrt gemacht.



    vielen Dank für die Hilfe


    Lothar (DB54)

    EEP6, EEP14, EEP15.Patch3, EEP16.Patch3 - PC: Win 10 Pro 64 bit , SSD 2,5 SA3 Samsung 850 EVO, MB Asus Z390-F Gaming , CPU Intel Core i9- 9900k Coffee Lake, ASP 64 GB RAM , GK GeForce RTX 2080Ti Gaming Pro

  • DB54

    Du hast zweimal das for k = 1,#Signale do durch for k = 44,109 do ersetzt. Das ist der (oder zumindest ein) Fehler.

    Die richtige Variante geht bereits die gesamte Tabelle durch (erster bis letzter (=#Signale) Tabellenplatz). Da es die Tabellenplätze 44 aufwärts nicht gibt, funktioniert dein Code so nicht.


    Viele Grüße

    Benny

  • Hallo Lothar,

    in Deiner for k = 44,109 do Schleife wird von 44 in einer Schritten bis 109 gezählt. Das ist aber nicht der Sinn.

    Es soll nur die Anzahl der eingetragenen Signale (Stückzahl, nicht ID-Nummern) gezählt werden.

    Muß also heissen for k = 1,#Signale do

    bedeutet für die Variable k nimm den ersten Eintrag aus der Tabelle #Signale

    arbeite die Schleife durch bis zum letzten Eintrag in der Tabelle #Signale.


    Da beim ersten Durchlauf k = 1 ist ergibt sich im folgenden dann bei

    Signale[k][1] bedeutet In der Tabelle Signale vom ersten Eintrag der erste Wert. Und das ist in Deiner Tabelle das Signal 109.

    beim nächsten Durchlauf der Schleife ist k dann ja zwei und das bedeutet aus Deiner Tabelle Signal 108.


    Auch in der function Depot auslesen muss es heissen

    for k = 1,#Signale do dann sollte es eigentlich funktionieren.


    Gruß

    Michael

    EEP 6.1

    EEP 15.1 Expert(x64), EEP 16.4 Expert(x64) Patch 2
    PC: AMD Phenom(tm) II X4 955 Processor 3.20 GHz 16,00 GB 64-Bit WIN10 Pro,20H2.19042.746, Grafikkarte: AMD Radeon HD 6700
    Laptop: Intel(R) Core(TM) i7-6700HQ CPU 2.6GHz 2.59GHz 16,00 GB 64-Bit WIN10 Pro,1903.18363.1316, Grafikkarte: Intel(R) HD Graphics 530, NVIDIA GeForce GTX 960M

  • Hallo,


    erst einmal vielen Dank euch beiden.


    Leider Ich kapiere die Eintragungen für Signale[k][1] immer noch nicht bzw was da eingetragen wird.



    da es immer noch nicht funktioniert habe bestimmt wieder alles falsch gemacht.

    EEP6, EEP14, EEP15.Patch3, EEP16.Patch3 - PC: Win 10 Pro 64 bit , SSD 2,5 SA3 Samsung 850 EVO, MB Asus Z390-F Gaming , CPU Intel Core i9- 9900k Coffee Lake, ASP 64 GB RAM , GK GeForce RTX 2080Ti Gaming Pro

  • Hallo Lothar,

    Du brauchst nur die beiden Zeilen for k = 44,109 do

    ändern in for k = 1,#Signale dowie es auch im Original-Script war.


    Am einfachsten ist Du nimmst das Original Script und trägst da in die Tabelle Signale deine Signal IDs ein.


    Am restlichen Script brauchst Du nichts zu ändern.


    Gruß

    Michael

    EEP 6.1

    EEP 15.1 Expert(x64), EEP 16.4 Expert(x64) Patch 2
    PC: AMD Phenom(tm) II X4 955 Processor 3.20 GHz 16,00 GB 64-Bit WIN10 Pro,20H2.19042.746, Grafikkarte: AMD Radeon HD 6700
    Laptop: Intel(R) Core(TM) i7-6700HQ CPU 2.6GHz 2.59GHz 16,00 GB 64-Bit WIN10 Pro,1903.18363.1316, Grafikkarte: Intel(R) HD Graphics 530, NVIDIA GeForce GTX 960M

  • Hallo Michael,


    vielen Dank, ich glaube am Anfang hatte ich es schon so gehabt mit dem original Skript von Dir. Es hatte da nicht funktioniert. Ich werde es jetzt noch einmal mit dem original Skript versuchen.


    Melde mich gleich wieder.


    VG

    Lothar

    EEP6, EEP14, EEP15.Patch3, EEP16.Patch3 - PC: Win 10 Pro 64 bit , SSD 2,5 SA3 Samsung 850 EVO, MB Asus Z390-F Gaming , CPU Intel Core i9- 9900k Coffee Lake, ASP 64 GB RAM , GK GeForce RTX 2080Ti Gaming Pro

  • Hallo Michael,


    ich habe jetzt wieder Dein original Skript genommen, meine Signale zugewiesen, aber die Signale zeigen bei Einfahrt eines Zuges in das Depot keinen Text. Im Signal ist Tipp Text anzeigen aktiviert.


    VG

    Lothar

    EEP6, EEP14, EEP15.Patch3, EEP16.Patch3 - PC: Win 10 Pro 64 bit , SSD 2,5 SA3 Samsung 850 EVO, MB Asus Z390-F Gaming , CPU Intel Core i9- 9900k Coffee Lake, ASP 64 GB RAM , GK GeForce RTX 2080Ti Gaming Pro

  • Hallo Lothar,

    wenn ich das auf dem Foto richtig sehe



    hat Dein Depot die Nr 6.

    In meinem Script wird aber das Depot 1 abgefragt.


    Das muss im Script auch angepasst werden. Hab das hier mal mit Deinen Signalen für Depot 6 vorbereitet.


    Gruß

    Michael

    EEP 6.1

    EEP 15.1 Expert(x64), EEP 16.4 Expert(x64) Patch 2
    PC: AMD Phenom(tm) II X4 955 Processor 3.20 GHz 16,00 GB 64-Bit WIN10 Pro,20H2.19042.746, Grafikkarte: AMD Radeon HD 6700
    Laptop: Intel(R) Core(TM) i7-6700HQ CPU 2.6GHz 2.59GHz 16,00 GB 64-Bit WIN10 Pro,1903.18363.1316, Grafikkarte: Intel(R) HD Graphics 530, NVIDIA GeForce GTX 960M

  • Hallo Michael,


    super jetzt werden die Züge im Depot 6 angezeigt. Muss mal schauen wo Du das mein Depot Nr6 im Skript angepasst hast. Ich habe auf der Anlage 2 Depots ( 2 Gleisige Strecke) für Züge, das Depot 6 und das Depot 5. so müsste ich noch das Depot 5 im Skript eintragen.


    VG

    Lothar

    EEP6, EEP14, EEP15.Patch3, EEP16.Patch3 - PC: Win 10 Pro 64 bit , SSD 2,5 SA3 Samsung 850 EVO, MB Asus Z390-F Gaming , CPU Intel Core i9- 9900k Coffee Lake, ASP 64 GB RAM , GK GeForce RTX 2080Ti Gaming Pro

  • Hallo Michael,


    erst einmal vielen Dank für deine Mühen.


    Wenn ich Dich ganz nett darum bitten würde, könntest Du das Skript noch mit dem Depot 5 anzupassen. Das wäre wirklich phänomenal.


    Ich sage schon einmal vielen Dank für deine Hilfe.


    Die erste Zeile der Signale im Skript sind dem Depot 6 zugeordnet, die zweite Zeile der Signal wären für das Depot 5


    Viele Grüße

    Lothar

    EEP6, EEP14, EEP15.Patch3, EEP16.Patch3 - PC: Win 10 Pro 64 bit , SSD 2,5 SA3 Samsung 850 EVO, MB Asus Z390-F Gaming , CPU Intel Core i9- 9900k Coffee Lake, ASP 64 GB RAM , GK GeForce RTX 2080Ti Gaming Pro

  • Hallo Michael,


    hier noch einmal die Fehlermeldung beim Laden vom Skript.



    Viele Grüße

    Lothar

    EEP6, EEP14, EEP15.Patch3, EEP16.Patch3 - PC: Win 10 Pro 64 bit , SSD 2,5 SA3 Samsung 850 EVO, MB Asus Z390-F Gaming , CPU Intel Core i9- 9900k Coffee Lake, ASP 64 GB RAM , GK GeForce RTX 2080Ti Gaming Pro

  • hier noch einmal die Fehlermeldung beim Laden vom Skript.

    Hallo Lothar :)


    wenn das das Originalskript aus Beitrag #14 ist, ist die Ursache relativ eindeutig. In Zeile 10 wird über mehrere Zeilen die Tabelle Signale definiert, die mit einer schweifenden Klammer { beginnt. Das Pendant (die schließende Klammer }) befindet sich im Originalskript in Zeile 12. Dir fehlt entweder diese schließende Klammer oder eine in Zeile 11. Stell doch bitte Dein Skript hier ein, aber bitte so wie EmKo als Code, dann können wir uns das mal ansehen.


    Gruß Ingo

    Threema - Sicherer und privater Messenger

    Meine Threema-ID

    Warum Threema?


    Win 10x64 Professional, Gigabyte B360M AORUS, Intel Core i7-8700K, 32GB RAM, NVIDIA GeForce GTX 1050 Ti 4GB, Philips 273V7QDAB Full HD

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

    EEP 16.4 Expert, Plugins: 1,2,3,4

    EEP 17.0


  • Hallo Ingo,


    Michael hatte mir ein neueb Skript für zwei Depots geschrieben. Das ist das Skript


    clearlog()


    print("Bestimmten_Zug_aus_Depot_holen")


    function EEPMain()

    return 1

    end

    -----------------------------------------------------------------------------------------------------

    -- Tabelle der Signale für die einzelnen Züge. erster Wert = Signal ID, zweiter Wert = Zugname --

    Depot = { --

    {

    {102,""},{101,""},{100,""},{99,""},{98,""},{97,""},{96,""},{69,""},{68,""},{44,""}, -- Depot 5

    }

    {

    {109,""},{108,""},{107,""},{106,""},{105,""},{104,""},{103,""},{45,""},{70,""},{71,""}, -- Depot 6

    }

    }

    ------------------------------------------------------------------------------------------------------

    for i = 1,#Depot do -- Schleife bis Ende Anzahl Depot

    for k = 1,#Depot[i] do -- Schleife bis Ende Anzahl der Signale in einem Depot

    EEPRegisterSignal(Depot[i][k][1]) -- Signal das den Zug auslösen soll registrieren

    _ENV["EEPOnSignal_"..Depot[i][k][1]] = function (Status) -- Wenn das Signal k in der Tabelle Depot i schaltet und

    if Status ~= 0 then -- es nicht auf Halt steht dann

    Anzahl = EEPGetTrainyardItemsCount(i+4) -- Wieviele Züge sind im Depot i

    for n = 1,Anzahl do -- Schleife bis Anzahl Züge im Depot

    Name = EEPGetTrainyardItemName(i+4, n) -- Name von Zug auf Platz n

    if string.sub(Name,1,9) == string.sub(Depot[i][k][2],1,9) then -- wenn die ersten neun Zeichen mit dem gesuchten übereinstimmen

    EEPGetTrainFromTrainyard(i+4, "", n, 0) -- holt den Zug auf Platz n heraus (0 an vierter Stelle = in Fahrtrichtung wie gespeichert, 1 = vorwärts, 2 = rückwärts 3 = entgegen der gespeicherten)

    EEPShowInfoSignal(Depot[i][k][1], false) -- TippText von Signal k ausschalten

    end

    end

    end

    end

    end

    end


    function Depot_auslesen (Zugname) -- ein Zug fährt ins Depot und übergibt seinen Namen und die Depotnummer

    for i = 1,#Depot do -- Schleife bis Ende Anzahl Depot

    for k = 1,#Depot[i] do -- Schleife bis Ende Anzahl der Signale in Depot i

    EEPChangeInfoSignal(Depot[i][k][1], "") -- und TippTexteintrag löschen und

    EEPShowInfoSignal(Depot[i][k][1], false) -- TippText von Signal k ausschalten

    end

    for n = 1,#Depot[i] do -- Schleife bis Ende Anzahl der Signale in Depot i

    if EEPGetTrainyardItemStatus(i, Depot[i][n][2], 0) ~= 0 then -- wenn der Zug im Depot ist dann

    Anzahl = EEPGetTrainyardItemsCount(i+4) -- Wieviele Züge sind im Depot i

    for k = 1,Anzahl do -- Schleife bis Anzahl Züge im Depot

    Name = EEPGetTrainyardItemName(i+4, k) -- Name von Zug auf Platz k

    if string.sub(Name,1,9) == string.sub(Depot[i][n][2],1,9) then -- wenn die ersten neun Zeichen mit dem gesuchten übereinstimmen

    EEPChangeInfoSignal(Depot[i][n][1], Depot[i][n][2]) -- ändere den TippTexteintrag am Signal

    EEPShowInfoSignal(Depot[i][n][1], true) -- TippText von Signal k einschalten

    end

    end

    end

    end

    end

    end


    -- Beim Neustart von Lua oder Programmstart werden die Depots ausgelesen und die Tabelle Depot gefüllt.

    for i = 1,#Depot do -- Schleife bis Ende Anzahl Depot

    Depot_auslesen(Zugname)

    end


    Sorry, da kann man nichts erkennen. Wie stellt man den ein Skript hier korrekt ein


    VG

    Lothar

    EEP6, EEP14, EEP15.Patch3, EEP16.Patch3 - PC: Win 10 Pro 64 bit , SSD 2,5 SA3 Samsung 850 EVO, MB Asus Z390-F Gaming , CPU Intel Core i9- 9900k Coffee Lake, ASP 64 GB RAM , GK GeForce RTX 2080Ti Gaming Pro

  • Hallo Lothar,

    Sorry konnte das Script nicht testen. Da habe ich eine geschweifte Klammer vergessen.


    Und auch noch andere Kleinigkeiten passten nicht.

    Passiert halt wenn man es nur so aus dem Kopf versucht.

    Sorry.



    Gruß

    Michael

    EEP 6.1

    EEP 15.1 Expert(x64), EEP 16.4 Expert(x64) Patch 2
    PC: AMD Phenom(tm) II X4 955 Processor 3.20 GHz 16,00 GB 64-Bit WIN10 Pro,20H2.19042.746, Grafikkarte: AMD Radeon HD 6700
    Laptop: Intel(R) Core(TM) i7-6700HQ CPU 2.6GHz 2.59GHz 16,00 GB 64-Bit WIN10 Pro,1903.18363.1316, Grafikkarte: Intel(R) HD Graphics 530, NVIDIA GeForce GTX 960M

  • Guten Morgen Michael,


    Juchhu:ap_1:, jetzt passt alles. Ich bewundere Leute (wie Dich) die so etwas (Lua) hinbekommen. Um Gottes willen, Du brauchst Dich doch nicht entschuldigen, Ich muss mich bei Dir entschuldigen, das ich Dich mit meinen Anliegen derart in Beschlag genommen habe. Noch einmal vielen Dank hierfür und für das Skript.


    Viele Grüße

    Lothar (DB54)

    EEP6, EEP14, EEP15.Patch3, EEP16.Patch3 - PC: Win 10 Pro 64 bit , SSD 2,5 SA3 Samsung 850 EVO, MB Asus Z390-F Gaming , CPU Intel Core i9- 9900k Coffee Lake, ASP 64 GB RAM , GK GeForce RTX 2080Ti Gaming Pro

  • da kann man nichts erkennen

    Hallo Lothar :)


    richtig. Deshalb hatte ich Dich ja gebeten, das Skript als Code einzustellen.

    Wie stellt man den ein Skript hier korrekt ein

    Füge es in einen Codeblock ein...

    ...und definiere den Code als Lua.


    Gruß Ingo

    Threema - Sicherer und privater Messenger

    Meine Threema-ID

    Warum Threema?


    Win 10x64 Professional, Gigabyte B360M AORUS, Intel Core i7-8700K, 32GB RAM, NVIDIA GeForce GTX 1050 Ti 4GB, Philips 273V7QDAB Full HD

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

    EEP 16.4 Expert, Plugins: 1,2,3,4

    EEP 17.0


  • Hallo Ingo,


    vielen Dank für die Info zum Einstellen von einem Skript.


    Michael hat das Skript angepasst, nun passt alles.


    Viele Grüße

    Lothar

    EEP6, EEP14, EEP15.Patch3, EEP16.Patch3 - PC: Win 10 Pro 64 bit , SSD 2,5 SA3 Samsung 850 EVO, MB Asus Z390-F Gaming , CPU Intel Core i9- 9900k Coffee Lake, ASP 64 GB RAM , GK GeForce RTX 2080Ti Gaming Pro

  • Hallo zusammen,

    ich bin auch gerade an einen ähnlichen Skript zugange, bei dem ich bisher nicht erfolgreich bin.


    Über eine Aufgleisung soll der Einfahrtskontaktpunkt (EKP) die Züge im Depot 1 und in Lua registriert werden. Die Züge sollen so lange im Depot warten, bis das Anlagenstartsignal 1 auf Fahrt gestellt wird.

    Wenn die Anlage nun startet, sollen alle Züge der Reihe nach (sortiert nach Listenplatz, nach Reihenfolge der Aufgleisung) im 2-Minutentakt ausgefahren werden.

    An den Streckenenden sind weitere EKPs ausgelegt, bei denen die Züge NICHT in die Startausfahrt eingereiht werden, sondern ins Depot einfahren, 1,5 Minuten (also 90 Sekunden) warten und dann mit Vorrang zur Startausfahrt (falls sie noch läuft), ausfahren. Wichtig ist mir hierbei, dass die Züge wirklich unabhängig voneinander ihre Aufenthaltszeiten abwarten.
    Beide Arten der Depotausfahrt sollen, für den Fall, dass doch mal zwei Züge zeitlich dicht zusammen oder sogar gleichzeitig ausfahren sollten, durch das Signal 2 abgesichert werden. Wenn Signal 2 besetzt ist, stellen sich die anderen Züge, in der Reihenfolge, in der sie sonst auch ausfahren würden, an. Wenn der Zug den Block dann passiert hat, fährt der nächste Zug aus dem Depot und wartet wieder vorm Signal - und so weiter, bis kein Verspäteter (innerhalb des Depots) mehr vorhanden ist.


    Ich hoffe, dass das Konzept verständlich ist. Vielleicht könntet ihr mir ein paar Tipps geben, wie ich das Skript von oben richtig anpasse, oder noch besser gleich die angepasste Version hier hochladen?


    Gruß,

    Frieder


    EEP-Version: 15.1

  • ich bin auch gerade an einen ähnlichen Skript zugange

    Hallo Frieder :)


    bitte hänge auch Du nicht nicht an alte, längst gelöste Themen, die mit Deinem Problem nichts zu tun haben, sondern erstelle für jede Frage ein eigenes Thema. Vielen Dank für die Unterstützung, das Forum übersichtlich zu halten.


    Gruß Ingo

    Threema - Sicherer und privater Messenger

    Meine Threema-ID

    Warum Threema?


    Win 10x64 Professional, Gigabyte B360M AORUS, Intel Core i7-8700K, 32GB RAM, NVIDIA GeForce GTX 1050 Ti 4GB, Philips 273V7QDAB Full HD

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

    EEP 16.4 Expert, Plugins: 1,2,3,4

    EEP 17.0