Seit geraumer Zeit wird die Steuerungs-Software der Modelleisenbahn neu implementiert. Die Anmutung ist am originalen ESTW orientiert. Statt Eclipse/Java wird C++/Qt verwendet. Sogar der Biermodus ist inzwischen implementiert und funktioniert einwandfrei. Ein weiterer Vorteil ist die direkte Ansteuerung des CAN-Bus über USB-Adapter. Dadurch entfällt die Tunnelung durch die serielle Schnittstelle. Das Modell wird direkt geladen, sodass kein Plugin mehr generiert und kompiliert werden muss. Ein Edit-Modus ermöglicht die Anpassung des Gleisbild-Layouts.
Die neue Steuerung ist auf Anwendungsebene komplett neu in C++17 entwickelt worden. Die Hardware wird durch Qt abstrahiert. Software-technisch werden konsequent Statecharts unter Benutzung der Yakindu Statechart Tools benutzt. Es werden Unit Tests, SCT-Units sowie Code Coverage genutzt, um die Software-Qualität auf höchstem Niveau zu halten.
Die Software auf den ATmega32 Mikrocontrollern bleibt unangetastet.
Das Projekt ist auf github unter der MIT-Lizenz gehostet. Die Software ist fertig paketiert über ein APT-Repository für Ubuntu oder Debian verfügbar. Die unterstützte Architektur ist x86_64 und arm64. Eine Anleitung zur Einrichtung der Installation findet sich auf den github Projektseiten.
Häufig habe ich beim aktivierten Biermodus ein leckeres Bergmann Bier getrunken. Höchste Zeit also, ein paar Werbeplakate im Maßstab 1:87 auf der Anlage aufzubauen. Glück auf!
Bisher konnte man nur mehrere Lokomotiven gleichzeitig fahren lassen. Der Versuch, mehrere komplette Züge automatisch fahren zu lassen hat meist nach wenigen Minuten mit einem Unfall geendet. Der Grund war, dass die Waggons nicht zu einer Gleisbesetztmeldung geführt hat. Das wiederum bedeutet aus Sicht der Steuerung, dass scheinbar freie Gleisteile wieder für neue Fahrstraßen verwendet werden können. Das führt früher oder später dazu, dass Weichen unter dem fahrenden Zug verstellt wurden und den Zug so zum Entgleisen gebracht hat.
Die Lösung sieht so aus, dass die Gleisabschnitte nur blockweise, d.h. von Hauptsignal zu Hauptsignal freigegeben werden. Da viele Weichen durch Hauptsignale abgesichert sind, kann ein Verstellen damit nicht mehr eintreten.
Ein kleiner YouTube-Film veranschaulicht diese Funktionsweise:
Ein weiterer Film zeigt die Funktionsweise des unverändert gebliebenen Biermodus:
Da die Steuerung auf elektrischer Ebene funktioniert, muss die Steuer-Software ausgiebig getestet werden. Dabei hat sich gezeigt, dass der Einsatz von Multi-Threading sich komplizierter darstellt, als erst vermutet. Grund sind die relativ hohen Echtzeit-Anforderungen, denn auf eingehende Meldungen muss schnell reagiert werden, ohne dass andere Teile der Software blockiert werden.
Nachdem die Fahrstraßen-Steuerung einwandfrei funktioniert, kann der sog. Biermodus entwickelt werden. Hierbei werden Züge aus dem Schattenbahnhof automatisch und zufällig ausgewählt, die durch ebenfalls zufällige Gleise im Hauptbahnhof fahren sollen. Das soll der Entspannung bei einem leckeren Glas Bier dienen. Der Biermodus funktioniert schon ganz gut, allerdings muss die Software noch ein wenig getestet werden.