Vor etwa zwei Jahren habe ich das Eisenbahn Simulations-Programm EEP 7 als
Demo entdeckt.
Kurz danach war es geschehen, ich habe mir das Vollprogramm gekauft
und fing auch gleich damit an zu bauen.
Seit diesem Tage ließ mir dieses Hobby jede freie Minute nutzen um zu bauen.
Anfangs war es schwer, ohne jede Hilfe, aber in den einschlägigen Foren wurde
stehts geholfen.
Heute benutze ich das Progamm EEP 8.2 und bin damit sehr zufrieden.
In der Zwischenzeit habe ich die Version 9 Expert, für Window 7, 64 bit..
Diese Version bietet noch mehr Möglichkeiten als die Vorversion.
Die Zeit bleibt nicht stehen, mittlerweile ist die Version EEP 13 aktuell, mit noch mehr Funktionen.
Ab Version 11 besteht die Möglichkeit mit einer
Script-Sprache Lua, zu programmieren.
Im Download-Bereich habe ich eine Vielzahl von Bildern meiner Anlagen eingesetzt
und auch verschiedene Anlagen, mit und ohne Luasteuerung.
Ganz besonders arbeiteten wir gemeinsam, Wolfgang o und ich, an einer einfachen und sicheren Luasteuerung für Bahnübergänge, bei der die Daten in einen EEP-Slot gespeichert
werden.
Zunächst war geplant eine Steuerung in Richtung Objektprogrammierung zu entwickeln,
das scheiterte aber daran, dass in den Kontaktpunkten keine Funktionen aufgerufen werden
können, die gemäß der Schreibweise "Vererbung einer Klasse", Punkte enthalten, .
Das war, wie es sich herausstellte, mit Benny´s Codeschnipsel inkompatibel, weil sein Modul alle Punkte global in Kommata verwandelt.
Die einfachste und beste Lösung war dann, dass wir uns entschieden, eine sogenannte Container-Funktion für jeden Bahnübergang im Anlagenscript zu schreiben, die den Funktionsaufruf im Kontaktpunkt aufnimmt und somit die Inkompatibelität beseitigen konnte .
Jeweils mit einem Parameter (1 ) für up und (2) für down.
Dadurch konnten wir den universellen, sehr vereinfachten Programmcodes im Bu-Modul beibehalten.
Es ließ mir keine Ruhe, dass der Umweg über die Container-Funktion im Script notwendig
war.
Ich habe daraufhin den Code für das Schranken Modul ganz neu programmiert, mit dem Ergebnis, dass nun nicht mehr eine Container-Funktion notwendig ist.
Im EEP Script werden in einer Tabelle alle für die Schranken notwendigen Einträge gemacht.
Das sieht dann etwa so aus:
neuBU({ 171,172, name = "BÜ Teich", auf = 1, zu = 2, slot = 601, func = "BU1"})
neuBU({ 181,182, name = "BÜ NB West", auf = 1, zu = 2, slot = 602, func = "BU2"})
neuBU({ 161,162, name = "BÜ Kurve", auf = 1, zu = 2, slot = 603, func = "BU3"})
usw., für jeden Bahnübergang einen neuen Tabelleneintrag.
In den Kontaktpunkten für den Bahnübergang 1, sind zum Schließen nur noch "BU1zu" einzutragen und zum Öffnen nur "BU1auf". Für alle weiteren dann BU2.. BU3.. usw.
Eine Demo-Anlage, Demo_ SchrankenModul, mit dem Schranken Lua-Modul habe ich hier im Download-Bereich zur Verfügung gestellt.