Handbuch

STS Handbuch

Stellwerksim Handbuch

Webseiten-Werkzeuge


Navigation



JavaScript ist deaktiviert!

stellwerksim:plugins:spezifikation

Spezifikation der Pluginschnittstelle

Status

Nach dem Connect meldet sich der Sim mit dem Status-XML:

<status code='300' >STS Plugin Interface, bitte anmelden.</status>

Der Status-XML kann unterschiedliche Codes liefern, ein beschreibender Text steht im PCDATA.

Status-Codes

  • 2xx: alles ok
  • 300: Registrierung nötig
  • 400: Fehler bei den Daten
  • 401: ZID fehlerhaft
  • 402: ZID unbekannt
  • 403: Ereignisart fehlerhaft
  • 450: XML-Fehler
  • 500: nicht behebbarer Fehler

Befehle

Parameter sind immer erforderlich, außer es steht (optional) dahinter. Die Ausgabe ist teilweise eingerückt, damit sie besser lesbar ist.

<register>

Registriert einen Client.

Parameter:

  • name: Name des Clients
  • autor: Autor des Clients
  • version: Version des Clients
  • protokoll: Protokollversion, z.Z. 1
  • text: Eine kurze (!) Beschreibung des Clients

Beispiel:

<register name='Supersuper' autor='der Held' version='0.1alpha-nix' protokoll='1' text='Tut nix!' />

Antwort:

<status code='220' >Ok.</status>

Nach erfolgreicher Registrierung kommt eine Status-XML mit 220 zurück, bei einem Fehler 300, 40x oder 500.

<simzeit>

Erfragt die Sim-Zeit. Als 'sender' schickt man beim Absenden die aktuelle Zeit auf dem Client. Bekommt man dann die Antwort kann man aus der aktuellen Zeit und der Zeit vom Versand die Übertragungsdauer ermitteln. Grob aber ausreichend genau ist dann die Hälfte der Differenz zur übertragenen Sim-Zeit zu addieren um eine hinreichend genaue Zeit zu haben. Es ist zweckmäßig die Zeit dann selbst zu speichern und weiterzuzählen.

Parameter:

  • sender: Wird wieder zurückgesendet

Antwort:

  • sender: Wert aus der Anfrage
  • zeit: Simzeit in Millisekunden seit 0:00 Uhr

Beispiel:

<simzeit sender='28908598' />

Antwort:

<simzeit sender='28908598' zeit='28908601' />

<anlageninfo>

Liefert Name ('name') des Stellwerks, AID ('aid') und Build des Sims ('simbuild'). Außerdem, ob ein Online-Spiel läuft oder in der Sandbox gestartet wurde.

Parameter: Keine

Beispiel:

<anlageninfo />

Antwort:

<anlageninfo simbuild='1' name='Plugin Test Anlage' aid='86' online='True'/>

<bahnsteigliste>

Liefert eine Liste alle Bahnsteige und deren Nachbarbahnsteige.

Parameter: Keine

Beispiel:

<bahnsteigliste />

Antwort:

<bahnsteigliste >
  <bahnsteig name='1' >
    <n name='2' />
    <n name='3' />
  </bahnsteig>
  <bahnsteig name='2' >
    <n name='1' />
  </bahnsteig>
  <bahnsteig name='3' >
    <n name='1' />
  </bahnsteig>
</bahnsteigliste>

<zugliste>

Liefert eine Liste alle Züge im Fahrplan.

Parameter: Keine

Beispiel:

<zugliste />

Antwort:

<zugliste>
  <zug zid='1' name='RE 10' />
  <zug zid='2' name='IC 3' />
</zugliste>

<zugdetails>

Liefert Details zum Zug. Die Antwort liefert das nächste anzufahrende Gleis, sowie die Namen der Ein- und Ausfahrt. Die Sichtbarkeit gibt an, ob der Zug im Gleisbild unterwegs ist oder noch nicht. Der Unterschied zwischen 'gleis' und 'plangleis' ist bei Gleisänderungen relevant: 'plangleis' ist immer das Gleis, zu dem der Zug laut Fahrplan soll, 'gleis' ist das Gleis nach einen Gleisänderung oder bei einem Zughalt der Gleis, an dem der Zug tatsächlich steht. 'amgleis' ist true, wenn der Zug genau zum Zeitpunkt der Abfrage am Bahnsteig steht.

Wurde der letzte Fahrplanhalt passiert und es somit keine anzufahrenden Gleise mehr gibt, werden die Attribute 'gleis' und 'plangleis' nicht mehr mitgeschickt. So lässt sich erkennen, ob ein Zug den letzten Fahrplanhalt passiert hat. Umgeleitete Züge haben ebenfalls kein 'gleis' und 'plangleis', da sie keinen Fahrplan haben.

Parameter:

  • zid: ZID aus der Zugliste

Beispiel:

<zugdetails zid='1' />

Antwort:

<zugdetails zid='1' name='RE 10' verspaetung='+2' gleis='1' plangleis='1' von='A-Stadt' nach='B-Hausen' sichtbar='true' amgleis='true' />

<zugfahrplan>

Liefert den restlichen Fahrplan zum Zug. Es wird das nächste anzufahrende und alle folgenden Gleise geliefert, mit Fahrplanzeiten und Flags. Umgeleitete Züge haben keinen Fahrplan, es wird eine leere Liste gesendet.

Parameter:

  • zid: ZID aus der Zugliste

Beispiel:

<zugfahrplan zid='1' />

Antwort:

<zugfahrplan zid='1'>
  <gleis plan='1' name='1' an='08:10' ab='08:10' flags='D' />
</zugfahrplan>

<ereignis>

ZID und Art des gewünschten Ereignisses als Parameter, liefert für diesen Zug diese Ereignisse, wenn sie auftreten. Dabei kann die Art eins dieser Werte sein:

  • einfahrt
  • ankunft
  • abfahrt
  • ausfahrt

Möchte man alle haben, müssen entsprechend viele Registrierungen abgeschickt werden. Man muss sich für jeden Zug neu registrieren, mehrmaliges Registrieren für den selben Zug ist nicht zulässig! Die Meldung eines Ereignisses enthält die ZID, die Art sowie alle Daten, die auch per <zugdetails> geliefert werden. Im Falle eines D-Flags wird nur die Ankunft gemeldet, jedoch keine Abfahrt.

Beispiel:

<ereignis zid='1' art='einfahrt' />

Antwort:

<ereignis zid='1' art='einfahrt' name='RE 10' verspaetung='+2' gleis='1' plangleis='1' von='A-Stadt' nach='B-Hausen' sichtbar='true' amgleis='true' />

<wege>

Liefert eine Liste aller Knoten und Verbindungen des Gleisbild. Daraus sind die Fahrwege von Einfahrten zu Bahnsteigen zu Bahnsteigen zu Ausfahrten ermittelbar.

Knoten sind dabei Gleiselemente wie Signale, Einfahrten, Ausfahrten und Bahnsteige. Diese haben entweder eine ENR oder einen Namen (Bahnsteige haben nur Namen). Die Verbindungen haben entweder 2 ENRs, ENR und Name oder 2 Namen. Das sind dann die Verbindungen zwischen 2 Knoten. Bahnsteige haben nur Namen, alle anderen haben ENRs.

Beispiel:

<wege />

Antwort:

<wege>
  <shape type='6' name="Ein1" enr="1" />
  <shape type='7' name="Aus1" enr="2" />
  <connection enr1="1" enr2="2" />
</wege>
stellwerksim/plugins/spezifikation.txt · Zuletzt geändert: 2021/01/08 19:14 von js