Inhaltsverzeichnis

Plugin-Schnittstelle

Zugriff

Die Plugin-Schnittstelle wird per TCP auf den Port 3691 erreicht. Die Kommunikation erfolgt über XML. Nach dem Verbindung muss sich der Client registrieren. Erst danach sind andere Befehle möglich. Eine Verbindung wird einfach per TCP-Close beendet.

Mit telnet localhost 3691 oder putty (dort auf Typ „raw“ und unter „Terminal“ den Schalter „Implicit CR in every LF“ aktivieren) lässt sich das Protokoll testen.

Für Java gibt es eine fertige Bibliothek, die die Nutzung der Schnittstelle enorm vereinfacht. Für andere Sprachen gibt es die Schnittstellenspezifikation.

Java-Bibliothek

Die Bibliothek besteht aus einer JAR-Datei, die alle nötigen Klassen enthält. Für den Plugin-Entwickler ist das primär die Klasse js.java.stspluginlib.PluginClient. Von dieser muss er sein Plugin ableiten und die nötigen Methoden implementieren.

Diese Methoden entsprechen den XML-Antworten, jedoch fertig aufbereitet. Es existieren bereits fertige Methoden, um die entsprechenden XML-Anfragen an den Sim zu schicken. Nutzt man diese Klasse, kommt man mit XML und der Netzwerkverbindung so gut wie gar nicht in Kontakt.

Die Nutzung der Klasse wird anhand des Beispielplugins „MonitorWand“ erklärt. Sie besteht aus 3 Klassen:

Download der Bibliothek: stspluginslib.jar.zip - die ZIP-Datei ist danach zu entpacken.

Download des Demo-Plugins: monitorWandDemo.zip - die ZIP-Datei ist danach zu entpacken und MonitorWand.jar zu starten.

Download Javadoc der Bibliothek: pluginsdoc.zip

Die hier gezeigten Quellcodes entsprechen nicht immer zu 100% dem aktuellen Stand. Deshalb hier der Download Sourcen MonitorWand Demo: pluginssrc.zip

Tester

Unter http://www.stellwerksim.de/PluginTester.jar gibt es den PluginTester. Mit ihm kann jeder Plugin-Entwickler seine Plugins erstmal ohne Simulator testen. Der Tester zeigt die übertragenen und empfangenen Daten und erlaubt die Spezifikation von Testzugdaten.

Das Jar-File ist dazu einfach zu starten. Es darf natürlich zeitgleich kein Simulator laufen, da sie beide den gleichen Port teilen müssten. Danach kann ein Plugin ganz normal gestartet werden, der Tester verhält sich exakt wie ein laufender Sim.