Lua Automatische Zugsteuerung für jedes Layout: Version 2

!!! 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!
  • Hallo Frank ( frank.buchholz ) und Rudy ( RudyB ),


    Ich habe eine Frage zu dem Umkehrmechanismus in eurer Lösung.


    Muss der Umkehrmechanismus nur auf einem Sackgassengleis angewendet werden oder ist es möglich, diesen Mechanismus auch auf einem Gegenverkehrsblock anzuwenden?

    In meiner aktuellen Anlage habe ich es möglich gemacht, dass z.B. auf Gleis 3 ein Zug normal weiterfährt, aber ein anderer Zug in die Richtung zurückkehrt, aus der er gekommen ist.


    Wenn dies möglich ist, wie würde es im Layout aussehen?


    Ich wäre für eine Rückantwort dankbar.

    Für nicht-HolländischeTexte verwende ich ein Online-Übersetzungstool. Entschuldigung, wenn die Sätze grammatikalisch falsch sind.

    For the non-Dutch Text I use an online translation tool (DeepL) Sorry for some grammer errors.



    Grüße aus Holland.


    Warner


    Laptop: Dell G15 - AMD Ryzen 7 5800H - RTX 3060 6GB - 16Gb - Windows 11 / EEP 15.1 Patch 2 - Plugin 1 / EEP 17 Patch 3

  • Automatische Zugsteuerung auf jeder EEP-Anlage mit Lua - v2 - 04B


    Im vorherigen Video auf der Demo 4 Anlage haben wir jeden Zug auf jedem Block zugelassen. Dies hatte den Effekt, dass Personenzüge rückwärts fuhren, wenn sie aus den Sackgassenblöcken herausfuhren, was unrealistisch ist. Durch einfaches Ändern der zulässigen Blocktabellen fahren der orangefarbene Personenzug im Uhrzeigersinn, der Dampfzug gegen den Uhrzeigersinn und der Güterzug ist der einzige, der in die Sackgassen hineinfährt. Alle drei Züge können den mittleren Block des Bahnhofs Süd benutzen, der ein Zweiwege-Block ist, durch den sie fahren, wenn sie können.


    Link to the video.


    Zum Herunterladen der ZIP-Datei mit den Demo-Layouts und dem Benutzerhandbuch: siehe den ersten Beitrag in diesem Thema.



  • Automatische Zugsteuerung auf jeder EEP-Anlage mit Lua - v2 - 5


    Demo 5 ist eine etwas größere Modellbahnanlage mit 27 Blöcken und 7 Zügen. Zwei Züge fahren vom/zum Bahnhof gegen den Uhrzeigersinn, 2 Züge fahren im Uhrzeigersinn und 3 Güterzüge pendeln zwischen den 4 Gruppen von Sackgassengleisen, die Industriegebieten ähneln.


    Über die Tabellen "Erlaubte Blöcke" legen wir fest, welche Züge wo fahren dürfen.


    Die Zugtabelle enthält die Zugnamen, ihre Start-/Stoppschalter und die Tabelle der erlaubten Blöcke.


    Die Streckentabelle spezifiziert jede mögliche Route von Block A nach Block B und welche Weichen zu stellen sind, um dorthin zu gelangen.


    Wir werfen auch einen Blick auf den Abschnitt, in dem die Parameter eingestellt werden können, um die Anzahl der Meldungen auf dem Lua-Bildschirm zu ändern, ob die Tooltips angezeigt werden oder nicht, ob der Hauptschalter ein- oder ausgeschaltet ist und ob alle Zugschalter beim Starten ein- oder ausgeschaltet sind.


    Link zum video.


    Zum Herunterladen der ZIP-Datei mit den Demo-Layouts und dem Benutzerhandbuch: siehe den ersten Beitrag in diesem Thema.


  • Hallo Frank und Rudi,

    Wo kann ich die Version 2.1 bekommen. Steht diese schon zum Download bereit ?


    Gruß Eberhard

    Win 10 Pro 64 bit

    AMD FX-6300 Six Core

    16 GB RAM

    SSD 250 GB Samsung 750 EVO

    NVIDIA GTX 1050 2 GB

    alle Versionen einschließlich EEP 16.4

  • Hallo Frank und Rudi,

    Wo kann ich die Version 2.1 bekommen. Steht diese schon zum Download bereit ?


    Gruß Eberhard

    Der Link im ersten Beitrag zeigt immer auf die aktuell veröffentlichte Version. Zur Zeit ist das v2.1.0 vom 06.05.2022:


    - New sub version because of new demo layout showing double slip turnouts

    - Use third parameter of functions EEPSetSignal and EEPSetSwitch always to allow users to work with EEPOn functions.

    - Try to catch stopped trains in blocks even if no enter block event was triggered

    - Improved error messages in case of incomplete data (function assert is not used anymore)

    - Show run time statistics in function printStatus


    v2.2.0 mit einer Möglichkeit, der Richtungsumkehr ist dagegen noch im beta-Test.

  • Hallo Frank,


    danke für die schnelle Info.


    Gruß Eberhard


    P.S.: ich versuche das ganze mal

    Win 10 Pro 64 bit

    AMD FX-6300 Six Core

    16 GB RAM

    SSD 250 GB Samsung 750 EVO

    NVIDIA GTX 1050 2 GB

    alle Versionen einschließlich EEP 16.4

  • Hallo Frank ( @frank.buchholz ) und Rudy ( @RudyB ),


    Ich habe von LUA null Ahnung und wollte mich doch mal damit Beschäftigen und dazu kam mir Eure LUA-Doku für jede Anlage v.2 gerade recht.


    Ich habe mir die Demo's herunter geladen und vorschriftsmäßig installiert.

    Demo 1: Zug fährt auch bis zum ersten Signal und dann kommt im EEP-Ereignisfenster folgende Meldung:

    " Error running function 'blockControl.enterBlock_8': attempt to call a nil value "

    Auch zeigt das GBS ein anderes Bild, nämlich das der Anlage "Wildungen" (meine einzige Anlage mit GBS).


    Habe versucht, die Anlage nachzubauen, beim Einrichten der Kontakte kommt Meldung: Kann die Funktion "blockControl" nicht finden !


    Was mache ich falsch bzw. ist falsch installiert ?? :aw_1:


    Viele Grüße vom (LUA-ratlosen) Klaus :aq_1:

    Ich habe EEP-Fieber !:an_1: (und das Schöne daran ist, es gibt kein Gegenmittel :an_1::bd_1:)


    "Den Tele-Tipp, der helfen soll, gibt Ihnen der Minol-Pirol" oder

    „Stets dienstbereit zu Ihrem Wohl, ist immer der Minol-Pirol." (DDR-Werbefernsehen)


    Windows 11 Home,

    Medion PC (DESKTOP-APSO513), Intel® Core™ i5-9400 CPU @ 2,90GHz / 16GB RAM , 500 GB SSD + 1 TB HDD

    eep 16.4 Expert (x64), Patch 4 , eep-Modellbaukatalog , eep-Modell-Explorer , eep-Tauschmanager

  • Hallo Klaus,


    bitte schaue nach, ob die Datei blockControl.lua tatsächlich in /LUA Ordner deiner EEP-Installation vorhanden ist.


    Alle anderen Dateien können dagegen in irgendeinem Ordner liegen.


    Damit sollten die Demo-Anlagen direkt funktionieren.



    Wenn du eine Anlage nachbauen willst, dann ist eine bestimmte Reihenfolge der Arbeitsschritte erforderlich (Übersetzung mit deepl.com aus dem englischsprachigen Beitrag):


    1. Erstellen eines Layouts in EEP

    2. Platzieren von Blocksignalen

    (Beginnen Sie einfach und versuchen Sie, anfangs nur wenige Zwei-Wege-Blöcke zu verwenden, um potenzielle Deadlock-Situationen zu vermeiden).

    3. Erstellen Sie den Lua-Code (entweder manuell oder mit Hilfe des generierten Vorschlags, siehe unten)

    4. Führen Sie das Layout einmal in EEP aus, um EEP über die definierten enterBlock-Funktionen zu informieren

    5. Kontakte platzieren und die Lua-Funktionen blockControl.enterBlock_NN eingeben

    6. Viel Spaß


    Für Schritt 3 können Sie die Links für den Gleisplan und blockControl im Browser verwenden (kein Download erforderlich).

    Mit dem Gleisplan-Link sehen Sie sich Ihr Layout an und prüfen, ob die Signale richtig definiert sind.

    Mit dem blockControl-Link generieren Sie einen Vorschlag für den benötigten Lua-Code. Diesen Code können Sie per Copy&Paste in EEP einfügen.


    Tipp: Versuchen Sie, den Gleisplan- und blockControl-Link im Browser für die Demo-Layouts zu verwenden und vergleichen Sie den generierten Lua-Code mit dem Lua-Code, den Sie in EEP für dasselbe Layout sehen.

  • Hallo Frank,


    die Datei blockControl.lua steht im richtigen Ordner.

    Zug fährt auch gleich los, im Ereignis Fenster zählt der Counter bis 9, Counter bleibt bei 9 stehen , bis das Zugende den Kontakt auslöst und wieder die Fehlermeldung kommt:

    " Error running function 'blockControl.enterBlock_8': attempt to call a nil value ".

    Dann passiert nichts mehr ...

    ? ?


    Klaus :aq_1:

    Ich habe EEP-Fieber !:an_1: (und das Schöne daran ist, es gibt kein Gegenmittel :an_1::bd_1:)


    "Den Tele-Tipp, der helfen soll, gibt Ihnen der Minol-Pirol" oder

    „Stets dienstbereit zu Ihrem Wohl, ist immer der Minol-Pirol." (DDR-Werbefernsehen)


    Windows 11 Home,

    Medion PC (DESKTOP-APSO513), Intel® Core™ i5-9400 CPU @ 2,90GHz / 16GB RAM , 500 GB SSD + 1 TB HDD

    eep 16.4 Expert (x64), Patch 4 , eep-Modellbaukatalog , eep-Modell-Explorer , eep-Tauschmanager

  • Dieses Problem hatte ich auch, EEP 16 hat mir aus irgendeinem Grund das Standardscript zu der Anlage ausgeführt. Im Lua-Editor war das Standardscript drin, die *.lua-Datei war aber ordnungsgemäß dazugepackt. Ich habe das so gelöst, das ich mit dem Windows-Texteditor die Inhalte der Lua-Datei kopiert und in EEP als Anlagenscript eingetragen hab. Danach Lua Script neu geladen und es ging. Dateimäßig sah dann alles wie vorher aus, nur hat es dann funktioniert.


    Da es offenbar auch noch einen anderen User betrifft, hab ich mir meine Zip-Datei nochmal herausgesucht und einen Dateiabgleich gemacht. Dabei hab ich gesehen, das die Lua-Dateien in der ATC-Zipdatei Linux-Zeilenenden haben (bytes 0Ah), während alle Anlagenscripte Windows-Zeilenenden haben (bytes 0Ah und 0Dh). Kann es sein, das da eine unbeabsichtige Konvertierung stattgefunden hat, und das EEP das Lua-Script nicht mehr lädt, weil dessen Prüfsumme aufgrund der Zeilenenden nicht mehr stimmt?

    EEP 16.2, AMD FX(tm)-4300 Quad-Core Processor 3.80 GHz, 8 GB RAM

  • Oh, das ist schlecht - und ich kann es bei einem Test auf meinem Rechner nachvollziehen: Der Inhalt der zip-Datei ist defekt und ich muss das reparieren. (Nur weiß ich noch nicht woring das eigentliche Problem besteht...)


    Was passiert:

    Der Lua-Code der Anlage, also das was in EEP im Skript-Fenster zu sehen ist, wird beim Start aus der Datei <Anlage>.lua gelesen. Aus einem mir unbekannten Grund akzeptiert EEP dieses Lua-Skript jedoch nicht (vermutlich weil EEP annimmt, die Datei sei außerhalb von EEP verändert worden) , wirft es weg und startet stattdessen mit dem EEP-Standard-Skript, das dass diesen Counter zeigt.


    --


    Wenn du es selber ausprobieren willst wie es richtig wäre:

    1. Starte eine der Demo-Anlagen und drücke sofort "p" (für Pause) und öffne das Skript-Fenster.
    2. Du siehst das Standard-Skript von EEP
    3. Lösche alles.
    4. Öffne die Datei <Anlage>.lua in irgendeinem Text-Editor, also notepad oder Notepad++
      (Wenn du die Anlage bereits einmal gespeichert haben solltest musst du vorher die Datein frisch aus dem zip-Archiv holen):
    5. Kopiere den kompletten Inhalt und füge ihn in da Skript-Fenster von EEP ein.
    6. Schließe das Skript-Fenster und speichere die Anlage.

    Jetzt sollte diese Anlage wieder funktionieren.

  • Da es offenbar auch noch einen anderen User betrifft, hab ich mir meine Zip-Datei nochmal herausgesucht und einen Dateiabgleich gemacht. Dabei hab ich gesehen, das die Lua-Dateien in der ATC-Zipdatei Linux-Zeilenenden haben (bytes 0Ah), während alle Anlagenscripte Windows-Zeilenenden haben (bytes 0Ah und 0Dh). Kann es sein, das da eine unbeabsichtige Konvertierung stattgefunden hat, und das EEP das Lua-Script nicht mehr lädt, weil dessen Prüfsumme aufgrund der Zeilenenden nicht mehr stimmt?

    Ja, das dürfte es sein: Ursprünglich hatte ich die zip-Datei manuell auf meinem Rechner erzeugt. Da war alles in Ordnung. Damit ich das nicht vergessen kann, hatte ich das dann später auf dem GitHub-Server (Linux) automatisch machen lassen. Danke für den Tipp!

  • Das Problem der unbeabsichtigt konvertierten Lua-Dateien konnte ich mit externer Hilfe eines git-Experten lösen: Bitte das zip-Archiv erneut herunterladen und die Demo-Anlagen frisch auspacken.


    (Technischer Hintergrund: Das ZIP-Archiv wird auf dem Server automatisch von GitHub zusammengestellt. Dies läuft auf Ubunte-Linux. Auf diesem Betriebssystem wandelt das Programm git die Windows-Zeilenenden (CRLF) in Linux-Zeilenenden (CR) um wenn Dateien ausgecheckt werden. Mit einer Konfigurationsdatei .gitattributes mit dem Inhalt *.lua text eol=crlf wird nun diese Konvertierung für Lua-Dateien vor dem Aufruf des zip-Befehls verhindert.)

  • Hallo Frank,


    genau, das war der Fehler, jetzt funktioniert es :ap_1:

    Nun kann ich mich Stück für Stück in LUA vorwärts tasten !

    Danke:aa_1:


    Gruß Klaus :aq_1:

    Ich habe EEP-Fieber !:an_1: (und das Schöne daran ist, es gibt kein Gegenmittel :an_1::bd_1:)


    "Den Tele-Tipp, der helfen soll, gibt Ihnen der Minol-Pirol" oder

    „Stets dienstbereit zu Ihrem Wohl, ist immer der Minol-Pirol." (DDR-Werbefernsehen)


    Windows 11 Home,

    Medion PC (DESKTOP-APSO513), Intel® Core™ i5-9400 CPU @ 2,90GHz / 16GB RAM , 500 GB SSD + 1 TB HDD

    eep 16.4 Expert (x64), Patch 4 , eep-Modellbaukatalog , eep-Modell-Explorer , eep-Tauschmanager

  • Nun kann ich mich Stück für Stück in LUA vorwärts tasten !

    Hallo Klaus :)


    dazu auch an Dich noch eine Bitte.


    Gruß Ingo

    Threema - Sicherer und privater Messenger

    Meine Threema-ID

    Warum Threema?


    Win 11x64 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 Expert Patch 3


  • Hallo Klaus :)


    dazu auch an Dich noch eine Bitte.


    Gruß Ingo

    Hallo Ingo,


    okay , ist angekommen, in Zukunft "Lua" :bn_1:

    Hab mich wahrscheinlich leiten lassen vom Verzeichnis im Trend-Ordner.


    Gruß Klaus :aq_1:

    Ich habe EEP-Fieber !:an_1: (und das Schöne daran ist, es gibt kein Gegenmittel :an_1::bd_1:)


    "Den Tele-Tipp, der helfen soll, gibt Ihnen der Minol-Pirol" oder

    „Stets dienstbereit zu Ihrem Wohl, ist immer der Minol-Pirol." (DDR-Werbefernsehen)


    Windows 11 Home,

    Medion PC (DESKTOP-APSO513), Intel® Core™ i5-9400 CPU @ 2,90GHz / 16GB RAM , 500 GB SSD + 1 TB HDD

    eep 16.4 Expert (x64), Patch 4 , eep-Modellbaukatalog , eep-Modell-Explorer , eep-Tauschmanager

  • Hallo Frank,


    was habe ich da für einen Fehler:


    Error running function 'blockControl.enterBlock(Zugname,3)': C:\Trend\EEP17\Lua\blockControl.lua:1517:attempt to index a nil value (field'?')


    Ich habe versucht, die Musteranlage 1 mal selbst zu bauen. Die beiden Dateien

    BetterContacts_BH".lua

    blockControl.lua

    sind im Verzeichnis Lua.

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

    clearlog()

    require("BetterContacts_BH2")

    blockControl = require("blockControl")


    function EEPMain()

    return 1

    end


    local trains = {

    { name = "#ATLD_145-099_SK2", signal = 4, allowed = {[3]=10,[4]=10,[5]=10,}},

    }


    local routes = {

    {3,5, turn={2,2} },

    {4,5, turn={2,1} },

    {5,3, turn={1,2} },

    {5,4, turn={1,1} },

    }


    Wer kann helfen ?


    Gruß Eberhard

    Win 10 Pro 64 bit

    AMD FX-6300 Six Core

    16 GB RAM

    SSD 250 GB Samsung 750 EVO

    NVIDIA GTX 1050 2 GB

    alle Versionen einschließlich EEP 16.4