!!! 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.
  • Ein freundliches „Hallo“ in die Runde,


    vielleicht kann mir wieder jemand helfen.

    Gestern habe ich einige Beiträge gelesen, die sich damit befassen, LUA-Scripte farbig zu gestalten. Mitten in dieser „Lesestunde“ brach dann mein toller Internetanschluss zusammen, und nun kann ich diese Beiträge nicht wiederfinden.


    Herausgeschrieben habe ich mir diesen Dreizeiler, Zitat:

    „Die Farben für die EEP-Funktionen kannst du über Einstellungen --> Stile --> Lua

    im Bereich FUNC1/2/3 ändern, ich selbst habe dazu die FUNC2 genutzt,

    dort mußt du die Funktionen namentlich eintragen.“


    Gerne hätte ich einen Hinweis, wo ich suchen könnte, diese farbliche Gestaltung möchte ich auch gerne umsetzen.

    Viele Grüße aus dem Großraum Bremerhaven

    Hans-Jürgen (HJM99)

    PC mit Win 10 x 64 Home, AMD A10-6600K, 4,1 / 4,4 Ghz, 2 Kerne, 4 Prozessoren, Grafik Radeon RX 550 Sapphire Pulse / 4 GB

    512 MB SSD, 1 TB SSD, 8 GB RAM, HD-Monitor 60 cm Diagonale,

    EEP 6.1, EEP X platinum, EEP 11, E EP 13.2x64, EEP 14.1x64, EEP 16.3 Expert (x64), Patch 2, HomeNOS 14.0

    und nur ganz wenig Ahnung von der PC-Technik

  • diese farbliche Gestaltung möchte ich auch gerne umsetzen.

    Der in EEP enthaltene Lua Editor kann das nicht.

    Andere Editoren machen es automatisch.

    Die meisten verwenden den Editor namens Notepad++

    Ein weiterer beliebter Editor ist ZeroBrane Studio

    Beide sind kostenlos.


    In dem von dir zitierten Thread ging es darum, Notepad++ dahingehend zu erweitern, dass es außerdem auch die EEP Befehle farbig hervorhebt. Die sind ja nicht Teil des Lua Befehlssatzes, sondern Funktionen, die in EEP integriert wurden.


    Der Thread ist hier:

    Neue Twitch-Sendung "Rundum-Sorglos-Paket" mit EEP und Lua

  • Hallo Goetz,


    habe ich so gemacht, damit ist meine Frage hilfreich beantwortet.

    Danke dafür,

    Gruß Hans-Jürgen

    PC mit Win 10 x 64 Home, AMD A10-6600K, 4,1 / 4,4 Ghz, 2 Kerne, 4 Prozessoren, Grafik Radeon RX 550 Sapphire Pulse / 4 GB

    512 MB SSD, 1 TB SSD, 8 GB RAM, HD-Monitor 60 cm Diagonale,

    EEP 6.1, EEP X platinum, EEP 11, E EP 13.2x64, EEP 14.1x64, EEP 16.3 Expert (x64), Patch 2, HomeNOS 14.0

    und nur ganz wenig Ahnung von der PC-Technik

  • das Signal (z.B. bei Ausfahrt eines Zuges aus einem Bahnhof) soll erst auf hp1 gestellt werden, wenn der Bahnübergang tatsächlich geschlossen ist.

    Hallo Michl,

    deinen Wunsch habe ich erst jetzt gelesen.


    Wenn du die Anlage Wildungen samt der Wega Erweiterung besitzt, dann findest du dort im Bahnhof Wega genau das: Ausfahrten via BÜ lassen sich nur dann schalten, wenn der BÜ vollständig geschlossen ist.


    Auf Wunsch beantworte ich gerne Fragen zu dem Skript.


    die BÜ Sequenz beginnt in Zeile 624 (Standardversion) bzw. Zeile 617 (Version für HK1 Signale)

    Die Signalsteuerung dazu findest du ab Zeile 400.


    Viele Grüße
    Götz

  • Hallo Götz,


    nein, Wildungen habe ich leider noch nicht, werde ich mir aber demnächst mal zulegen.

    Aber danke für den Hinweis.

    Liebe Grüße aus Nürnberg!:av_1:

    Ich hatte noch nie was mit Drogen zu tun, doch dann bekam ich EEP in die Hände und Trend wurde zu meinem Dealer.....:ae_1:

  • Zurück zur ursprünglichen Frage: Wie kann man in EEP mit Lua Aufgaben zur späteren Ausführung einplanen?


    Eine der wichtigsten Programmierregeln ist, nie und niemals eine wartende Endlosschleife zu programmieren - denn dann kann die Maschine nicht anderes während der Wartezeit tun.


    Das gilt insbesondere, wenn das Programm in einer Umgebung läuft in der viele Ereignisse quasi gleichzeitig laufen sollen: Züge fahren, Weichen schalten, Lua Funktionen starten, usw.


    Bei EEP gibt es praktischerweise bereits eine nicht-wartende Endlosschleife EEPMain, die alle 0,2 Sekunden aufgerufen wird. Man muss also (wie in einem vorherigen Beitrag von JuergenSchm beschrieben) nur dafür sorgen, dass

    • Aufträge für spätere Ausführung mit ihren gewünschten Zeitpunken geeignet gespeichert werden und
    • in EEPMain geprüft wird welche Aufträge zur Ausführung anstehen.
    • Diese werden dann gestartet und danach aus der Liste der Aufträge entfernt.

    In Lua wird alles (was nicht ein einfacher Wert ist) in Tabellen gespeichert, also kann man auch für diese Liste von Aufträgen eine Tabelle anlegen, deren Einträge

    • den gewünschten Zeitpunkt und
    • die auszuführende Funktion enthalten.

    Als Zeitpunkt kann man z.B. folgende Informationen nutzen:

    • Die berühmte Zählvariable I , die im Standard-Skript in EEPMain jeweils um 1 erhöht wird. (Man kann natürlich auch einen anderen Variablennamen wählen). Damit kann man einen zeitliche Auflösung von 0,2 Sekunden erreichen, weil EEPMain ja nach jeweils dieser Zeit wieder aufgerufen wird.
    • Die Variable EEPTime ist noch einfacher zu verwenden, da man dann keine spezielle Zählvariable verwalten muss. Diese Variable bietet jedoch nur eine Auslösung von 1 Sekunde an.
    • Die Lua Funktion os.clock() liefert direkt eine Sekunden-Angabe mit Nachkommastellen. Damit kann dann eine Auflösung von 0,2 Sekunden erreicht werden. Diese Funktion wird im Beispiel unten verwendet.

    Die Funktion kann eine bereits im Skript definierte Funktion sein oder man kann sie dynamisch bei der Speicherung der Aufgabe erzeugen - das ist ein cooler Lua-Trick, der im Beispiel unten verwendet wird.


    Eine Experimentieranlage dazu ist schnell aufgebaut: In eine neue, leere Anlage habe ich dazu ein einzelnes Straßenstück mit einer einzelnen Ampel eingefügt. Diese Ampel wird dann mit folgenden Lua-Skript einmalig zu definierten Zeitpunkten geschaltet. Die einzelnen Aufgaben bestehen in diesem Beispiel also aus den Zeilen mit EEPSetSignal - alles andere dient zur Verwaltung der Zeitsteuerung.


    Eine kleine Übung für die Leser: Wie sieht ein Skript aus, bei dem die Ampel nicht einmalig, sondern durchlaufend geschaltet wird?

    Tipp: Dazu könnte man z.B. statt erledigte Aufgaben zu löschen den Zeitstempel dieser Aufgaben neu setzen. Oder man legt neue Einträge unter Bezug auf die vorhandene Funktionen an. Oder man macht etwas ganz anderes. Bin gespannt wie eure Lösungen und Optimierungen des Programs aussehen.


    Schönen Gruß

    Frank

  • Hier nun eine vereinfachte Version meiner modularisierten Zeitsteuerung.

    • Ein Zeitplan ist eine Kette bzw. ein Netz von Aufgaben (Zuständen)
    • Jede Aufgabe (Zustand) wird durch die eine Funktion repräsentiert
    • In den Funktionen wird die jeweils nächste Aufgabe (bzw. bei einer Verzweigung mehrere Aufgaben) eingeplant
    • Die Funktionen können auch Parameter haben, so dass sie wiederverwendet werden können (im Beispiel also für mehrere Ampeln)
    • Aufgaben, die nicht erledigt sind, werden erneut ausgeführt (das ist nur angedeutet)