LUA-Script in EEP einbinden

!!! 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.
  • Hallo, Alle zusammen!


    So langsam will ich mal tiefer in die Anlagensteuerung einsteigen. D.h., ich ich werde mich mit einer Materie befassen müssen, von der ich bisher noch gar keine Ahnung habe: von Programmierung, speziell mit LUA. Dabei will ich nicht nur auf die vorgefertigten Wizzards beschränkt sein, sondern meine eigenen Vorstellungen umsetzen. Deswegen werde ich mich hier sicher öfters an die Community wenden.


    Meine erste Frage: Wie genau wird das LUA-Script eigentlich in EEP implementiert? Ich meine, gibt es so etwas ähnliches, wie das <html> - Tag für den Browser, oder woran erkennt EEP ein LUA-Script?

    Ich bin auf die Antwort gespannt...


    Beste Grüße

    Kurt


    :aa_1:















    >> Was wäre die Welt ohne Eisenbahn...? Wie einfach wäre die Welt ohne EEP...?<<

    :ma_1::bq_1::az_1:


    EEP 12.2; Computer: ACPI x64-basierter PC; OS: Microsoft Windows 10 Home; Motherboard Chipsatz: Intel Cannon Point HM370, Intel Coffee Lake-H; CPU Typ: HexaCore Intel Core i7-8750H, 4100 MHz (41 x 100); Speicher: DDR4 SDRAM 8 GB; Grafik: GeForce GTX 1050 Ti (4 GB)



  • Hallo Kurt,


    generell hilft hier der Abschnitt 7 im Handbuch weiter.

    Vielleicht kurz gesagt, es gibt die Möglichkeiten Funktionen über Kontaktpunkte aufzurufen. Weiterhin gibt es spezielle Funktionen die durch bestimmte Ereignisse im EEP aufgerufen werden. Am Besten schaust du dir mal ein paar Videos an und machst dich damit vertraut welche Funktionen speziell für lua in EEP eingebaut sind.


    Gruß Michael

    35098-katalog-banner-jpg

    Hardwarekonfiguration:
    Laptop: Lenovo IdeaPad L340 4*2,4 GHz, 16GB RAM, Win10 64 bit, EEP 6.1/EEP 16.2 Expert

  • ich werde mich mit einer Materie befassen müssen, von der ich bisher noch gar keine Ahnung habe: von Programmierung, speziell mit LUA. Dabei will ich nicht nur auf die vorgefertigten Wizzards beschränkt sein, sondern meine eigenen Vorstellungen umsetzen. Deswegen werde ich mich hier sicher öfters an die Community wenden.

    Hallo Kurt :)


    :be_1:

    woran erkennt EEP ein LUA-Script?

    Ergänzend zu Michael89 : es gibt keine Tags wie bei HTML. Ein Lua-Skript ist wie bei den Quellcodes aller (?) Programmiersprachen eine reine Textdatei. Im einfachsten Fall erstellst Du die mit dem internen Editor von EEP. Der ist zwar im Vergleich ziemlich unkomfortabel, reicht für den Anfang aber erst einmal aus. Später wirst Du wahrscheinlich einen externen Editor wie z.B. Notepad++ benutzen und die Skripte (Module) mit require einbinden wollen.

    Ich bin auf die Antwort gespannt...

    Vielleicht hast Du im Forum ja schon den Tipp gelesen, Schritt für Schritt anzufangen. Dabei bieten sich auch die Lua Übungen an. Viel Erfolg.


    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.2 Expert Patch 3, Plugins: 1,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

  • Meine erste Frage: Wie genau wird das LUA-Script eigentlich in EEP implementiert? Ich meine, gibt es so etwas ähnliches, wie das <html> - Tag für den Browser, oder woran erkennt EEP ein LUA-Script?

    Hallo Feldabahner Kurt

    EEP sucht automatisch nach einem passenden Lua-Script, dass wie die Anlagendatei nur mit der Endung ".lua" benannt ist.

    In dieser Datei wird nach einer Funktion "main" gesucht und diese dann ausgeführt (interpretiert).

    Funktionen in Lua erkennt man an einem vorangestellten "function".

    Wenn Du den Lua-Editor von EEP startest wird automatisch eine .lua Datei mit der entsprechenden main-Funktion angelegt.

    Übrigens legen die Lua-Programmierer Wert darauf, dass es "Lua" heißt und nicht "LUA".


    Gruß Holger

    Mein Hauptrechner Marke Eigenbau:

    Hardware: Mainboard ASUS Crosshair Hero VI, CPU-Typ AMD Ryzen 7 1800X Eight-Core Processor, Speicher 64 GB DDR4-RAM, Grafikkarte ASUS AREZ DUAL Radeon RX580 8GB GDDR5-RAM, 4 Festplatten Gesamtkapazität 13 TB

    Betriebssystem: Windows 10 Pro Version 1909

    EEP-Software: EEP 5 bis EEP 16 (aktiv in Nutzung z.Z. EEP 15.1), Modellkatalog, Anlagenverbinder zu EEP 15.1, HOME-Nostruktor 15.0 (noch nicht in Nutzung), Hugo, Höhengenerator

  • In dieser Datei wird nach einer Funktion "main" gesucht und diese dann ausgeführt (interpretiert).

    ... und zwar 5x pro Sekunde.
    "Dazwischen" immer Datenaustausch zwischen EEP-Anlage und Lua-Skript.


    :aq_1:

    eep_gogo ( RG3 )

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

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

  • ... und zwar 5x pro Sekunde.

    Das aber nur, wenn die Funktion mit "return 1" beendet wird, ansonsten wird sie nicht wieder aufgerufen.


    Gruß Holger

    Mein Hauptrechner Marke Eigenbau:

    Hardware: Mainboard ASUS Crosshair Hero VI, CPU-Typ AMD Ryzen 7 1800X Eight-Core Processor, Speicher 64 GB DDR4-RAM, Grafikkarte ASUS AREZ DUAL Radeon RX580 8GB GDDR5-RAM, 4 Festplatten Gesamtkapazität 13 TB

    Betriebssystem: Windows 10 Pro Version 1909

    EEP-Software: EEP 5 bis EEP 16 (aktiv in Nutzung z.Z. EEP 15.1), Modellkatalog, Anlagenverbinder zu EEP 15.1, HOME-Nostruktor 15.0 (noch nicht in Nutzung), Hugo, Höhengenerator

  • Hallo,

    Das aber nur, wenn die Funktion mit "return 1" beendet wird, ansonsten wird sie nicht wieder aufgerufen.

    dieser Hinweis ist insofern sehr wichtig als das seit EEP16 das Standardskript beim Anlegen einer neuen Anlage diese Funktion nach 9 Durchläufen beendet.


    Gruß Michael

    35098-katalog-banner-jpg

    Hardwarekonfiguration:
    Laptop: Lenovo IdeaPad L340 4*2,4 GHz, 16GB RAM, Win10 64 bit, EEP 6.1/EEP 16.2 Expert

  • HStoni54

    Hallo Holger,

    besten Dank für Deine Antwort. Verstehe ich das richtig, dass ich dann lediglich meine "Gehversuche" in den Lua-Ordner packen muss, und dann kann ich mich daran erfreuen, wie alles funktioniert... (oder eben auch nicht...!)

    Richtig?


    Übrigens meinen Dank auch an alle Anderen, die mir mit ihren Tipps weiter geholfen haben!


    :ap_1:

    >> Was wäre die Welt ohne Eisenbahn...? Wie einfach wäre die Welt ohne EEP...?<<

    :ma_1::bq_1::az_1:


    EEP 12.2; Computer: ACPI x64-basierter PC; OS: Microsoft Windows 10 Home; Motherboard Chipsatz: Intel Cannon Point HM370, Intel Coffee Lake-H; CPU Typ: HexaCore Intel Core i7-8750H, 4100 MHz (41 x 100); Speicher: DDR4 SDRAM 8 GB; Grafik: GeForce GTX 1050 Ti (4 GB)



  • Und wenn was nicht funktioniert, dann schreibe eine print Anweisung dazu und schau in die Ereigniss Anzeige was passiert.


    Gruß Reinhard

    Der Oldenburger :bd_1:

    EEP 15 Plugin1/16 Plugin 1und2|Home-Nos 15 / 16 |Moodellkatalog|Bilder Scanner|Modell Explorer

    Desktop:Gigabyte Z270-HD3P|Intel i5-7400|Corsair Venegance 16 GB DDR4|Gigabyte GeForce GTX 1050Ti|1TB SSD + 3x 1TB HD

    Samsung SyncMaster S27D390 + Samsung SyncMaster P2450|Win 10 Pro

    Laptop Acer Aspire E17|17 Zoll FullHD|i5-6200U|12 GB DDR4|GeForce 940mx 2GB DDR5|256GB SSD|1TB HD|Win 10 Home

    von Blender über HomeNos zu EEP -> Mein youtube Kanal

  • ... lediglich meine "Gehversuche" in den Lua-Ordner packen muss,

    ... nein, so nicht


    a) du musst deine Gehversuche direkt in der Anlage mit Aufruf des Lua-Editors. "roter" Button, eintippen
    -- dann den Button Skript neu laden betätigen, so hat deine Anlage das geänderte Skript zur Verfügung


    b) dieses Skript wird automatisch zusammen mit der Anlage im Anlagenverzeichnis gespeichert


    c) der "blaue" Button ist zum Speichern des Skripts im Lua-Verzeichnis, dient zur Sicherung oder anderer Verwendung



    :aq_1:

    eep_gogo ( RG3 )

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

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

  • Verstehe ich das richtig, dass ich dann lediglich meine "Gehversuche" in den Lua-Ordner packen muss, und dann kann ich mich daran erfreuen, wie alles funktioniert... (oder eben auch nicht...!)

    Wie schon eep_gogo anmerkt, nutzt EEP von Haus aus nur das Script, das im selben Ordner wie die Anlage liegt und auch den gleichen Namen wie die Anlage hat, allerdings mit der Dateiendung ".lua". Für viele Anlagen ist das ausreichend.

    Diese Datei darf aber nur über den in EEP eingebauten Editor bearbeitet werden, da beim Speichern mit der Anlage eine Prüfsumme der ".lua"-Datei in der Anlagendatei mit gespeichert wird. Stellt EEP beim Laden der Anlage fest, dass diese Prüfsumme nicht stimmt wird die ".lua"-Datei verworfen und eine neue Datei mit dem Default-Inhalt angelegt.

    Weitere Lua-Scripte können mit dem Lua-Befehl "require" eingebunden werden.


    Gruß Holger

    Mein Hauptrechner Marke Eigenbau:

    Hardware: Mainboard ASUS Crosshair Hero VI, CPU-Typ AMD Ryzen 7 1800X Eight-Core Processor, Speicher 64 GB DDR4-RAM, Grafikkarte ASUS AREZ DUAL Radeon RX580 8GB GDDR5-RAM, 4 Festplatten Gesamtkapazität 13 TB

    Betriebssystem: Windows 10 Pro Version 1909

    EEP-Software: EEP 5 bis EEP 16 (aktiv in Nutzung z.Z. EEP 15.1), Modellkatalog, Anlagenverbinder zu EEP 15.1, HOME-Nostruktor 15.0 (noch nicht in Nutzung), Hugo, Höhengenerator

  • Wie schon eep_gogo anmerkt, nutzt EEP von Haus aus nur das Script, das im selben Ordner wie die Anlage liegt und auch den gleichen Namen wie die Anlage hat, allerdings mit der Dateiendung ".lua".

    ... was ja nicht weiter von Bedeutung ist. Ich kann ja ein extern bearbeitetes Script immer noch in den Lua-Editor kopieren...

    Aber etwas Anderes: Kann man das Ereignisfenster irgendwie stoppen? Oder zumindest die Zeilen ohne Eintrag automatisch verwerfen? - Ich würde das Ding ja gern nutzen, um zu überprüfen, was mein Script nun eigentlich tut (Warum es nicht tut, was ich eigentlich erwarte), aber das klappt ja nicht, wenn die Anzeige ständig wegrennt...


    Beste Grüße

    Kurt

    >> Was wäre die Welt ohne Eisenbahn...? Wie einfach wäre die Welt ohne EEP...?<<

    :ma_1::bq_1::az_1:


    EEP 12.2; Computer: ACPI x64-basierter PC; OS: Microsoft Windows 10 Home; Motherboard Chipsatz: Intel Cannon Point HM370, Intel Coffee Lake-H; CPU Typ: HexaCore Intel Core i7-8750H, 4100 MHz (41 x 100); Speicher: DDR4 SDRAM 8 GB; Grafik: GeForce GTX 1050 Ti (4 GB)



  • Hallo Feldabahner Kurt

    Wenn ich mich recht erinnere hat Benny Benny (BH2) ein Script gebastelt, das die Ausgaben des Ereignisfensters in eine Datei schreibt. Ich bin zur Zeit nur mobil im Forum, also etwas eingeschränkt. Schau doch mal auf die Homepage von Benny.


    Gruß Holger

    Mein Hauptrechner Marke Eigenbau:

    Hardware: Mainboard ASUS Crosshair Hero VI, CPU-Typ AMD Ryzen 7 1800X Eight-Core Processor, Speicher 64 GB DDR4-RAM, Grafikkarte ASUS AREZ DUAL Radeon RX580 8GB GDDR5-RAM, 4 Festplatten Gesamtkapazität 13 TB

    Betriebssystem: Windows 10 Pro Version 1909

    EEP-Software: EEP 5 bis EEP 16 (aktiv in Nutzung z.Z. EEP 15.1), Modellkatalog, Anlagenverbinder zu EEP 15.1, HOME-Nostruktor 15.0 (noch nicht in Nutzung), Hugo, Höhengenerator

  • was ja nicht weiter von Bedeutung ist. Ich kann ja ein extern bearbeitetes Script immer noch in den Lua-Editor kopieren...

    Hallo,

    für erste Gehversuche wirst Du mit dem EEP-Lua-Editor auskommen.

    Bitte beachte, wenn Du Dinge in diesem Script in einem externen Editor ändern möchtest, dann kopiere den gesamten sichtbaren Text aus dem Lua-Editor Fenster in deinen externen Editor und nach der Änderung / Ergänzung auch wieder den kompletten Block zurück.

    Wenn Du hingegen die <Anlage>.lua Datei in einem Editor wie z.B. Notepad++ öffnest und dann wieder speicherst wird EEP die Zusammenarbeit mit Lua verweigern.

    Normalerweise für den User unsichtbar sind nämlich am Ende des <Anlage>.lua Scripts noch die Slotdaten gespeichert.


    Anderes: Kann man das Ereignisfenster irgendwie stoppen?

    In dem Standardscript von EEP steht in der Funktion EEPMain() eine Zeile die mit print beginnt. Dadurch werden die Zeilen im Ereignisfenster ausgegeben. Da dies im Script in der EEPMain steht wird also 5* / Sekunde eine Zeile ausgegeben.

    Um das zu verhindern schreibe einfach vor das print 2 Minuszeichen --print(... nun ist die Zeile "auskommentiert" und wird von EEP nicht mehr beachtet und im Ereignisfenster ist Ruhe.

    Gruß
    Dieter

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

    Sie haben Lua? :ad_1: Ist das ansteckend?

    Schalten und walten ist mein Hobby, aber nur in EEP ;)
    __________________________________________
    EEP alle ab EEP6 mit allen Plugins,
    Homenos5, Homenos8,HomeNos11 DEV...
    Intel I7 4790k 4x 4Ghz,16 GB RAM, NVidia GTX 970 4GB, Direct x V11, Windows 7 64 Bit,
    Laptop Medion Erazer, 16GB RAM, 500GB SSD, 2 TB HDD, GT 850 von Nvidia, Windows 10 Home 64bit

  • hat Benny Benny (BH2) ein Script gebastelt,

    Dieses Too nennt sich PrintToFile. findest Du bei Benny auf der Homepage.

    Gruß
    Dieter

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

    Sie haben Lua? :ad_1: Ist das ansteckend?

    Schalten und walten ist mein Hobby, aber nur in EEP ;)
    __________________________________________
    EEP alle ab EEP6 mit allen Plugins,
    Homenos5, Homenos8,HomeNos11 DEV...
    Intel I7 4790k 4x 4Ghz,16 GB RAM, NVidia GTX 970 4GB, Direct x V11, Windows 7 64 Bit,
    Laptop Medion Erazer, 16GB RAM, 500GB SSD, 2 TB HDD, GT 850 von Nvidia, Windows 10 Home 64bit

  • Um das zu verhindern schreibe einfach vor das print 2 Minuszeichen --print(... nun ist die Zeile "auskommentiert" und wird von EEP nicht mehr beachtet und im Ereignisfenster ist Ruhe.

    Genau das habe ich gesucht! Danke!

    >> Was wäre die Welt ohne Eisenbahn...? Wie einfach wäre die Welt ohne EEP...?<<

    :ma_1::bq_1::az_1:


    EEP 12.2; Computer: ACPI x64-basierter PC; OS: Microsoft Windows 10 Home; Motherboard Chipsatz: Intel Cannon Point HM370, Intel Coffee Lake-H; CPU Typ: HexaCore Intel Core i7-8750H, 4100 MHz (41 x 100); Speicher: DDR4 SDRAM 8 GB; Grafik: GeForce GTX 1050 Ti (4 GB)



  • Post by Feldabahner ().

    This post was deleted by schlingo: doppelt, siehe #18 ().
  • Schiet... falsche Taste...



    Ich habe versucht, mit einer einfachen Gleisbesetztmeldung und dem öffnen von Schuppentoren ganz einfach anzufangen, aber EEP/Lua will nicht, wie ich will. Darum am Beispiel des Schuppens zwei Fragen:

    1. Was genau erwartet Lua in dieser Fehlermeldung?

    Ich würde es eigentlich so lesen, dass ein ( erwartet wird, was aber eigentlich nicht sein kann.

    2. Welche Argumente brauche ich dafür eigentlich und wo muss der Name des Schuppens hin?


    ...

    ...

    ...

    function LOKSCHUPPEN_1

    print ("Tore öffnen") <-- [string "EEP Script"]:44: '(' expected near'print'

    EEPSetSignal(#474_DK1_Lokschuppen2_1Gl, Tor_links, 1)

    end

    >> Was wäre die Welt ohne Eisenbahn...? Wie einfach wäre die Welt ohne EEP...?<<

    :ma_1::bq_1::az_1:


    EEP 12.2; Computer: ACPI x64-basierter PC; OS: Microsoft Windows 10 Home; Motherboard Chipsatz: Intel Cannon Point HM370, Intel Coffee Lake-H; CPU Typ: HexaCore Intel Core i7-8750H, 4100 MHz (41 x 100); Speicher: DDR4 SDRAM 8 GB; Grafik: GeForce GTX 1050 Ti (4 GB)



  • function LOKSCHUPPEN_1()

    Man sollte auch Klammern setzen. Sind eh noch ganz viele Fehler drin.

    MfG. Jörg
    Ausstattung: Notebook: i7-6700K, 4[8]x4.0 GHz, 32GB RAM DDR4, NVIDIA GTX 980M 8GB, Windows 10, 64-Bit
    Installiert: EEP15.1 Patch2 mit Plugin 1; EEP16.2 Patch3 mit Plugin1+2

    Zusatzprogramme: ResourcenSwitcher2