Alpha- und Betatester gesucht für ein Lua-Verzögerungsmodul

!!! 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.
  • Willst du bei der Entwicklung eines Lua-Verzögerungsmoduls mitwirken? 33

    1. Ja, ich melde mich als Alphatester, um bei der Konzeption mitzuhelfen (10) 30%
    2. Ja, ich melde mich als Betatester, um Fehler und Unverständlichkeiten zu finden (18) 55%
    3. Nein, aber ich will trotzdem abstimmen (5) 15%

    Im Forum taucht regelmäßig die Frage auf, wie man in Lua eine Pause oder Verzögerung einbauen kann. Die Antwort ist meistens irgendwas mit EEPMain, Zählvariablen und manuellen Abfragen, ob der gewünschte Zeitpunkt erreicht ist.

    Für eine "wasserdichte" Lösung gibt es dabei viele Dinge zu berücksichtigen, wie z.B. die Persistenz (wenn die Anlage zwischnzeitlich gespeichert und neugeladen wird), der Zeitrafferfaktor (den es in EEP sogar an zwei verschiedenen Stellen gibt, mit ganz unterschiedlichen Auswirkungen), oder auch so ganz banale Dinge wie "Mitternacht" (86399+1 = 0‽).


    Ich will ein Lua-Modul bauen (das mit require eingebunden wird), mit dem sich Verzögerungen auf einfache Weise realisieren lassen, ohne dass jedesmal das Rad neu erfunden werden muss. Mit anderen Worten: Ich will mich um die ganzen oben genannten Dinge (und noch mehr) kümmern, damit ihr es nicht mehr müsst (und ich in Zukunft auch nicht).


    Ich habe schon einige Ideen und auch einen funktionierenden Prototypen, würde aber gerne noch auf die Schwarmintelligenz hier im Forum zurückgreifen. Ich suche sowohl "Lua-Profis" als auch "Lua-Nicht-Profis" für zwei verschiedene Phasen:

    • In der Konzeptionsphase (das nenne ich hier Alphatest) geht es darum, was wie funktionieren soll, und auch wie die API (also die Funktionen, die ihr später in eurem Skript aufruft) aussehen wird. Ich habe zwar schon einige eigene Ideen, aber mehr Ideen sind immer besser. Außerdem braucht das Modul noch einen griffigen (und zutreffenden) Namen.
    • In der zweiten Phase (das nenne ich hier Betatest) geht es dann darum, das fertige Modul vor dem endgültigen Release (= "Loslassen auf die Öffentlichkeit") nochmal zu testen. Hierfür suche ich ebenfalls ein paar Tester, denn viele Augen sehen bekanntlich mehr. Auch "Lua-Nicht-Profis" sind in dieser Phase explizit erwünscht, um z.B. Unverständlichkeiten in der Dokumentation aufzuzeigen.

    Falls ihr Interesse daran habt, in einer der beiden beschriebenen Phasen bei der Entwicklung von so einem Verzögerungsmodul mitzuwirken, meldet euch hier, bzw. stimmt einfach bei der Umfrage ab. Ich kann ja sehen, wer wie abgestimmt hat, und werde mich dann in den nächsten Tagen bei euch melden.

    Likes werte ich als Interessensbekundung an so einem Verzögerungsmodul, aber nicht als Meldung zu einer der beiden Testphasen.


    Viele Grüße

    Benny

  • Hallo Benny,

    ich habe bereits mehrfach mit Wartezeiten experimentiert.

    In der Lua-Ausstattung der Ausbauanlage 2 von Makinista habe ich an mehreren Stellen über Lua gesteuerte Wartezeiten eingefügt. Eine besondere Herausforderung war dabei immer der Wechsel von 23:59 auf 0:00.

    Die Anlage steht hier im Forum zum Download bereit:


    Vielleicht kann man meine damaligen Codeschnipsel als Anregung verwenden.


    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, 1 SSD, 4 Festplatten Gesamtkapazität 15 TB

    Betriebssystem: Windows 10 Pro Version 20H2

    EEP-Software: EEP 5 bis EEP 16, Modellkatalog, Hugo, Höhengenerator

  • Hallo Benny (BH2) ,

    genau das ist einer der wichtigsten fehlenden Funktionen in EEP-Lua!

    Das ist der einzige Grund, warum ich seit Jahren Lua mit KP in Verbindung bringe um bei Verzögerungen, die Funktion einfach zu gewährleisten.

    Ich bin der Meinung, das EEP diese "Funktion" bereits in den KP's programmiert hat und Diese als "Zeit-KP!?" einfacher anbieten könnte!? Aber EEP, hat wie so oft eigene Ideen, die manchmal nicht deckungsgleich mit den EEPlern ist, warum auch immer.


    Ich bin froh, das es Typen wie Dich gibt, der in Sachen Lua - echt gute Scripte - geschaffen hat.

    die Persistenz (wenn die Anlage zwischnzeitlich gespeichert und neugeladen wird), der Zeitrafferfaktor

    .... mit diesem Problem kämpfe ich seit Jahren......


    Ich hoffe Du findest eine gute Lösung und viel Erfolg bei Deinem Projekt!


    VG, DerAlte

  • Hallo Benny


    Da bin ich ja mal gespannt, wie Du das machen willst.
    Du müßtest Dir eigentlich für alle Funktionen an allen Stellen Sprungmarken (ProgrammCounter) merken, die Du erst anfährst, wenn die zugehörige Wartezeit erreicht ist. Ansonsten die Funktion am Anfang gleich wieder verlassen.
    Vielleicht kann man sich in Lua in die Funktionen einklinken und einen Stack aufbauen, der dann abgefragt wird.
    Nur müßte man dann die einzelnen WAITS innerhalb einer Funktion irgendwie unterscheiden können zumindest intern.


    Viel Erfolg
    Thomas

    EEP16.1 Patch 2, HomeNos15, Modellkatalog, Blender 2.8, Tauschmanager? , Hugo :aq_1:

  • Danke für das Interesse!

    Bei den "Alphatestern" habe ich mich bereits gemeldet, die "Betatester" müssen sich noch ein paar Tage (oder Wochen?) gedulden.


    Ich bin der Meinung, das EEP diese "Funktion" bereits in den KP's programmiert hat und Diese als "Zeit-KP!?" einfacher anbieten könnte!?

    Ja, klar, EEP hat schon eine Verzögerungsfunktion. Aber auf die hat Lua halt keinen Zugriff (und ich vermute, so ein Zugriff wäre auch gar nicht so einfach zu programmieren).


    Ich hoffe Du findest eine gute Lösung

    Eine gute(?) und sogar "neue" Lösung für das Kernproblem habe ich schon, aber die muss noch so verpackt werden, dass auch Otto-Normalanwenderdamit etwas anfangen kann.


    HaNNoveraNer Deine Euphorie muss ich leider ein bisschen bremsen. So ein mitten-in-Funktionen-reinspringen klappt nicht (oder wenn doch, vermutlich nur mit so vielen Umwegen, dass das ganze sehr instabil würde).

    Das "einzige", was ich bieten kann ist, eine neue Funktion (mit Parametern) zeitverzögert aufzurufen. Aber auch damit kann man alles erreichen :aa_1:


    Viele Grüße

    Benny