Ich habe schon lange damit geliebäugelt den TrainSimulator direkt anzusteuern bzw. mir Anzeigen außerhalb des Bildschirms signalisieren zu lassen. Es gab schon einige Versuche - viele sind davon aber nicht mehr erreichbar und auch nicht erweiterbar.
Daher habe ich ein Projekt TrainSimulator-Controller erstellt mit dem ich die API der Railworks.dll über eine Java-API oder als REST-Service zur Verfügung stelle. Darauf aufbauend gibt es zwei Beispielprojekte für die Anbindnung eines RaspberryPi via REST-Service und einen FT232h-Controller habe ich direkt per USB angeschlossen. Das Beispiel beschränkt sich auf Ausgaben (also Anzeigen insb. Sifa/PZB). Die Ansteuerung von Eingaben erfolgt aber analog. Beide Projekte sind produktiv im Einsatz.
Für die Unterstützung von verschiedenen Lokomotiven (die andere IDs zur Ansteuerung benutzen) gibt es einen Erweiterungsmechanismus per Konfiguration. Alle Standard-Lokomotiven sollten funktionieren. Falls nicht, einfach melden.
Das größte Manko für mich war bei den bisherigen Tools die fehlende Erweiterbar- und Nachvollziehbarkeit. Daher steht mein Tool als OpenSource unter Github zur Verfügung.