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.
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.
Heute wurden die Prototypen für die Module der Lichtsignale fertig gelötet.
Die Module werden über ein 10-poliges Kabel kaskadiert mit einem
Mikrocontroller verbunden. Darüber laufen Spannungsversorgung und die
Datenleitung. Auf den Modulen sind Schieberegister (74HC595) samt Leistungstreiber
(ULN 2803) für die Lichtsignale vorhanden. Es können bis zu vier Module
kaskadiert werden. Die Controller sind in der Lage, die korrekten
Signalbilder der Deutschen Bahn anzuzeigen. Es wird also nur das Kommando
gegeben, dass z.B. das Signal P3 auf Hp2 geschaltet
werden soll. Es werden Vorsignale, Blocksignale, Einfahrsignale,
Ausfahrsignale und Gleissperrsignale auseinandergehelten. Dabei könnten in
Zukunft noch weitere Signale - wie z.B. die neuen Ks-Signale - der Controller-Firmware
hinzugefügt werden, denn es ist ein In-System-Programming der Firmware über
CAN-Bus möglich.