Möglichkeiten mit LUA beim Straßenverkehr

!!! 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.
  • Derzeit spiele ich mit dem Gedanken einfach eine Zufallszahl beim Laden des Lua Skriptes der Anlage zu vergeben. EEP-Web liest dann diese Zahl ein und schreibt seine Befehle in eine Datei mit dieser Zufallszahl (z.B. EEP-commands-573836.txt). Da die Anlage dann diese Datei kennt, kann sie die Befehle aus der richtigen Quelle entgegennehmen.

    Hey die Idee ist genial, darauf bin ich bisher nicht gekommen! Ich überlege mir ob ich das für meine zukünfigen Anlagen so übernehme.


    Vorteil:

    • Der Name(Zufallscode) wird einmal erstellt und in EEP-Slots dauerhaft gespeichert, es muss nicht mehr von Hand der Parameter/Variable "Anlagenname" angegeben werden

    Nachteil:

    • Das auffinden der Log-Dateien wird im Windows-Explorer erschwert da ab jetzt nicht mehr mit Anlagenname sondern Zufallscode gespeichert wird.


    Sollte sich jedoch mal die Möglichkeit ergeben Änderungen an EEP-Web vornehmen zu können und die Log-Ausgabe zu integrieren, ist der Zufallscode nur noch für interne Zwecke. Der Anlangenname ließe sich zwar in EEP-Web ohne Handeintragung nicht ausgeben, aber in der Regel weiß man ja am nebenstehenden Bildschirm welche Anlage gerade offen ist.

    Viele Grüße,
    Damian Rutkowski


    Acer Aspire 5750G, Intel® Core™ i5-2430M 2.4GHz with Turbo Boost up to 3.0GHz, NVIDIA® GeForce® GT 540M, Up to 4095 MB TurboCache™, 8 GB DDR3 Memory, 8 GB DDR3 Memory
    EEP 6, EEP 11.3 mit Plug-In: 2, 3, EEP 13.2 mit Plug-In 2, EEP-Modellkonverter 1.3.7

  • Hallo Damian,


    Für die Ausgabe ist der Ansatz mit einem festen Namen pro Anlage besser geeignet. - Das würde ich auch in EEP-Web so machen.

    Die Datei mit dem Zufallscode würde ich nur für die Übergabe von außen an EEP verwenden (also für die "Eingabe"). Lua muss dann "nur" noch wissen, welche Befehle es schon verarbeitet hatte und die anderen ignorieren oder löschen.


    Viele Grüße,

    Andreas_Kreuz.

    EEP: Version 14 - PC: Intel Core i7-4790, 16 GB RAM, NVidia Geforce GTX 1080 Ti, Windows 10 - Notebook: MacBook Pro 2015, mit ATI Radeon R9 M370X, Windows 10


    Webseite: Lua-Bibliothek für EEP (mit Tutorials)

  • Jetzt muss ich mich erstmal 2 Wochen noch auf das mögliche Release gedulden, alles weitere folgt danach! :aa_1::be_1:

    Viele Grüße,
    Damian Rutkowski


    Acer Aspire 5750G, Intel® Core™ i5-2430M 2.4GHz with Turbo Boost up to 3.0GHz, NVIDIA® GeForce® GT 540M, Up to 4095 MB TurboCache™, 8 GB DDR3 Memory, 8 GB DDR3 Memory
    EEP 6, EEP 11.3 mit Plug-In: 2, 3, EEP 13.2 mit Plug-In 2, EEP-Modellkonverter 1.3.7

  • Hallo,


    für die Neugierigen von Euch fasse ich mal den aktuellen Zwischenstand von heute zusammen:


    Die Software ist auf GitHub, aber noch nicht in einem Zustand, in dem ich sie anbieten kann. In GitHub habe ich habe mal versucht die Schritte bis zur Veröffentlichung einer Testversion festzulegen:

    Über die Struktur der zu übertragenen Daten muss ich mir noch klar werden. Derzeit wird alles in eine große JSON-Datei gesteckt.


    Viele Grüße,

    Andreas Kreuz.

    EEP: Version 14 - PC: Intel Core i7-4790, 16 GB RAM, NVidia Geforce GTX 1080 Ti, Windows 10 - Notebook: MacBook Pro 2015, mit ATI Radeon R9 M370X, Windows 10


    Webseite: Lua-Bibliothek für EEP (mit Tutorials)

  • Hallo,


    hier ein aktueller Zwischenstand.

    Es gibt technische Schwierigkeiten.


    Nachdem ich nun EEP 15 verwende und die Dateigröße der JSON-Datei auf über 400 KB angestiegen ist, verschluckt sich der "json-server". Er korrigiert zwar den Lesefehler, aber die Korrektur führt nun dazu, dass EEP-Web die Daten nicht erhalten kann. Nun bin ich erstmal auf der Suche nach einer Lösung für dieses Problem.


    Ich hoffe, dass ich nicht einen ganzen Server selbst schreiben muss.


    Viele Grüße,

    Andreas_Kreuz


    Code
    1. Unexpected end of input at 1:332732
    2. 8","light":false,"pos_z":67.091598510742,"pos_x":75.602142333984,"pos
    3. ^
    4. Error reading C:\Spiele\Andreas_Kreuz\out\ak_out_eep-web-server.json
    5. Read error has been fixed :)
    6. ../out/ak_out_eep-web-server.json has changed, reloading...
    7. Loading ../out/ak_out_eep-web-server.json
    8. Done

    EEP: Version 14 - PC: Intel Core i7-4790, 16 GB RAM, NVidia Geforce GTX 1080 Ti, Windows 10 - Notebook: MacBook Pro 2015, mit ATI Radeon R9 M370X, Windows 10


    Webseite: Lua-Bibliothek für EEP (mit Tutorials)

  • Ich verfolge aktiv dein Script'en und muss sagen, ich bin beeindruckend, was du da alles drum herum gecodet hast, da frage ich mich, ob das gerechtfertigt ist kostenlos die ganzen Arbeitsstunden so zu verschwenden...


    Ich bin gespannt wie der weitere Verlauf ist, ich hoffe das lässt sich relativ einfach lösen.

    Viele Grüße,
    Damian Rutkowski


    Acer Aspire 5750G, Intel® Core™ i5-2430M 2.4GHz with Turbo Boost up to 3.0GHz, NVIDIA® GeForce® GT 540M, Up to 4095 MB TurboCache™, 8 GB DDR3 Memory, 8 GB DDR3 Memory
    EEP 6, EEP 11.3 mit Plug-In: 2, 3, EEP 13.2 mit Plug-In 2, EEP-Modellkonverter 1.3.7

  • Hallo zusammen,


    hier noch ein kleiner Vorgeschmack.







    Jetzt muss ich jedoch erstmal das Problem mit dem Schreiben der JSON-Datei lösen.

    Als Workaround habe ich versucht, eine temporäre Datei zu schreiben und diese mit Aufruf des Windows "copy"-Befehls zu kopieren (via lua popen() .



    Das funktioniert zwar, aber jedesmal erscheint das externe Programm in der Taskleiste und EEP zeigt eine Sanduhr.


    Weiß zufällig jemand von Euch, wie man in Lua sicherstellen kann, dass eine Datei während des Schreibens gesperrt wird io.write(...)?


    Viele Grüße,

    Andreas Kreuz.


    P.S. Danke an Benny der mich auf die Idee mit den Speicherplätzen gebracht hat.

    EEP: Version 14 - PC: Intel Core i7-4790, 16 GB RAM, NVidia Geforce GTX 1080 Ti, Windows 10 - Notebook: MacBook Pro 2015, mit ATI Radeon R9 M370X, Windows 10


    Webseite: Lua-Bibliothek für EEP (mit Tutorials)

  • Hallo,


    an alle Interessierten hier der Zwischenstand von heute.


    Der Server funktioniert jetzt. Da ich eine serverseitige Abstimmung mit Lua benötigt hatte, habe ich ihn in mit Hilfe von Javalin.io selbst geschrieben. (Der Server wird dann also Java benötigen).

    Der Code für den Server ist auch auf GitHub verfügbar: https://github.com/Andreas-Kreuz/ak-eep-web-server


    Dann wurde noch dafür gesorgt, dass Lua den Server nicht beim Lesen stört und der Server Lua nicht beim Schreiben der Daten.


    Ab Montag geht es an die Vorbereitungen zum Erstellen der Dateien und die passende Anleitung.

    • Die Lua-Bibliothek wurde angepasst um die notwendigen Daten an EEP-Web liefern zu können. Sie wurde bisher mit einem Installer geliefert. Das würde ich auch weiterhin so handhaben.
    • Der Server und EEP-App werden als ein JAVA-Paket installiert werden. Hier überlege ich noch, ob es möglich ist, alles in einer fertigen ZIP-Datei zu liefern.
    • Die Lua-Bibliothek und EEP-Web unterhalten sich über ein gemeinsames Verzeichnis. Dies würde ich im EEP-Ordner sehen. Beim Server muss das Verzeichnis dann beim Starten angegeben werden. Dazu muss man dann wohl die Kommandozeile nutzen.

    Ich freue mich auf Eure Rückmeldungen.


    Viele Grüße

    Andreas Kreuz.

    EEP: Version 14 - PC: Intel Core i7-4790, 16 GB RAM, NVidia Geforce GTX 1080 Ti, Windows 10 - Notebook: MacBook Pro 2015, mit ATI Radeon R9 M370X, Windows 10


    Webseite: Lua-Bibliothek für EEP (mit Tutorials)