Jump to content

Lesen komplexer Ereignisdefinitionen im Lua-Format


BahnLand

Recommended Posts

Hallo,

bis zur Version 4 des Modellbahn-Studios war es möglich, die komplette Ereignissteuerung einer Anlage im HTML- oder XML-Format in eine Datei auszugeben und dann gegebenenfalls weiter zu verarbeiten. Speziell für das XML-Format gab es einen XML-Auswerter, mit dem die gesamte Ereignissteuerung in einem kompakten übersichtlichen Format dargestellt werden konnte.

1919346132_01XML-AuwertungV4.thumb.JPG.83f0ebe319eeefef6153b03118b1f6f9.JPG

Mit der ab V5 eingeführten neuen Ereignisverwaltung, deren Funktionsumfang zwischenzeitlich deutlich erhöht wurde, geht dies nicht mehr. Ein Export der gesamten Ereignissteuerung in eine externe Datei ist seither nicht mehr möglich.

Auch wenn die aktuelle grafische Oberfläche wesentlich intuitiver und leichter zu bedienen ist als die alte Oberfläche, und man nun zudem die Möglichkeit hat, bei Bedarf direkt in das zugehörige Lua-Script zu wechseln und dort weitere Funktionen zu realisieren, welche mit der grafischen Oberfläche bisher nicht realisierbar sind, ist es bei komplexeren Ereignisdefinitionen, die sich möglicherweise über mehrere Bildschirmseiten hinweg erstrecken, schwierig, den Überblick zu behalten.

1830448108_02Grafik-Zeilen16-17von53.thumb.JPG.36aace18c0ba4a8d66d816b6edfd9b9c.JPG

Dies trifft insbesondere auf die grafische Oberfläche zu, von der ich beispielsweise auf meinem Bildschirm maximal 16-17 Anweisungen gleichzeitig anzeigen lassen kann, die bei einer hinreichend großen Länge dann auch noch rechts abgeschnitten werden. Die volle Funktionalität jeder Anweisung erschließt sich hierbei erst durch Anklicken der Anweisung, wodurch in der Spalte rechts eine Detailansicht der Anweisung sichtbar wird. Bei mehrfachen Bedingungen muss sogar erst noch ein zusätzliches Fenster geöffnet werden, um deren Details erkennen zu können.

487344582_03Lua-Zeilen47von319.thumb.JPG.77f60e0ff3b45c1233fd75a8aabcf3c9.JPG

Glücklicherweise lässt sich jede Ereignisdefinition auf das zugehörige Lua-Script umschalten, wo sämtliche Anweisungen der Ereignisdefinition in der Lua-Sprache untereinander vollständig angezeigt werden. Doch auch hier werden zu lange Anweisungen und Kommentare nicht umgebrochen, sondern sie können nur durch horizontales Scrollen sichtbar gemacht werden.

Wenigstens lässt sich dieses Lua-Script einer einzelnen Ereignisdefinition in die Windows-Zwischenablage kopieren und damit in eine externe Textdatei übertragen. Somit kann es anschließend in ein Textprogramm eingelesen werden, welches erlaubt, diesen Text auch Sprach-spezifisch "strukturiert" anzuschauen und damit eventuell einen besseren Überblick zu bekommen.

Ein solches Programm ist "Notepad++", welches kostenlos aus dem Internet heruntergeladen werden kann (beispielsweise bei CHIP oder HEISE - die englische Originalversion gibt es hier).

1756180849_04NotepadZeilenumbruch.thumb.jpg.5922edde3ceefef24d033259123df8a0.jpg

Zunächst kann Notepad++ wie viele andere Editoren auch die Anweisungszeilen umbrechen (im Programm-Menü "Ansicht – automatischer Zeilenumbruch" auswählen), wodurch gegenüber der Darstellung des Lua-Scripts im Modellbahn-Studio das seitliche Scrollen entfällt.

783591968_05NotapadLua-Syntax.thumb.jpg.e821270df1d7f298d5a5927ab6369149.jpg

Notepad++ unterstützt zudem die Syntax-Hervorhebung in mehreren Sprachen – insbesondere für Lua ("Sprachen – L – Lua"), wobei über eine links angeordnete Ein-Ausklapp-Leiste logische Programmabschnitte wie "for"-Schleifen oder "if"-Bedingungen auf- und zugeklappt werden können. So kann man sich den Gesamtverlauf der Ereignisdefinition in einer groben Übersicht (nur globale Hauptschritte als Stichworte) anzeigen lassen und bei Bedarf nur jene Details aufklappen, für die man sich momentan interessiert.

Leider lässt sich bei der Lua-Spracheinstellung von Notepad++ eine "if-then-else"-Bedingung nicht in den if-Abschnitt und den else-Abschnitt aufteilen.

1007839013_06NotapadVilualBasic-Syntax.thumb.jpg.976493a8248e34d8a0038e903692d960.jpg

Deshalb bevorzuge ich hier die "Visual Basic"-Syntax-Einstellung von Notepad++ ("Sprachen – V – Visual Basic"), wo sich der then-Zweig und der else-Zweig einer if-then-else-Bedingung getrennt auf- und zuklappen lassen.

Auch wenn die kompakte Darstellung der kompletten Ereignissteuerung wie in V4 heute nicht mehr möglich ist, kann man hiermit wenigstens für jede einzelne Ereignisdefinition eine halbwegs übersichtliche Darstellung generieren, welche meines Erachtens zumindest bei der Prüfung des Funktionsablaufs der Ereignisdefinition oder bei einer möglichen Diagnose eine bessere Übersicht bietet als die Darstellungen im Modellbahn-Studio.

Viele Grüße
BahnLand

Link to comment
Share on other sites

vor 11 Stunden schrieb BahnLand:

Notepad++ unterstützt zudem die Syntax-Hervorhebung in mehreren Sprachen – insbesondere für Lua ("Sprachen – L – Lua"),

Geiles Tool! (y) Vielen Dank für den Tipp, @BahnLand, das ist etwas, was mir schon immer fehlte.

Vielleicht noch ein Tipp als Ergänzung zu deiner Anleitung: Folgt man den Arbeitsschritten und wandelt die grafische EV in ein Lua-Skript um, dann sollte man - sofern man die grafische EV behalten will - nach dem Kopieren in die Zwischenablage so bald wie möglich wieder zurückgehen in die grafische EV. Speichert man versehentlich (oder absichtlich) in der Ansicht "Lua" ab, dann gibt es keinen Weg mehr zurück und die Anweisungen sind entweder verloren oder man muss im Lua-Modus bleiben. Das Studio ist nicht in der Lage, Lua-Skripte in die grafische EV zu konvertieren. Das sollte man immer im Hinterkopf behalten.

Gruß Timba

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...