NAV
xml json flat raw

TSConductor

Einführung

TSConductor ist eine einfache TCP Schnittstelle für den Train Simulator von Dovetail Games.

Der TSConductor erlaubt es die Features der von Train Simulator mitgelieferten raildriver.dll mit jeder Hardware oder Software zu nutzen. Verbinde Train Simulator mit deinem Ardurino, Raspberry, PC, Smartphone, … oder baue deinen eigenen Führerstand daheim, zeige deine Position in Google Maps und vieles mehr.

Download

Aktuelle Version:

Archivierte Versionen:

Changelog

Systemvoraussetzungen

Installation

Um den TSConductor zu installieren, führe einfach das Setup aus oder extrahiere das Archiv in einen beliebigen Ordner. Wenn du dich nicht dagegegen entscheidest wird das Setup alle Verknüpfungen selber erstellen. Wenn du den TSConductor mittels Archiv installierst, achte bitte darauf die TSConductorUI.exe vor der TSConductor.exe zu starten.

Update

Um den TSConductor zu akualisieren, lasse das Setup einfach die alten Dateien überschreiben. Wenn du den TSConductor mit einem Archiv aktualisierst, überschreibe ebenfalls einfach die Dateien.

Support

Hast du einen Fehler gefunden, hast du Ideen oder willst du mich einfach kontaktieren? Dann nutze eine dieser Möglichkeiten:

Software

Programme die den TSConductor verwenden findest du hier:

Wenn du eine Anwendung erstellt hast die den TSConductor benutzt und diese auch veröffentlicht hast, kontaktiere micht bitte damit ich diese hier verlinken und anschauen kann.

Benutzeroberfläche

Die Benutzeroberfläche des TSConductor (TSConductorUI.exe) erlaubt es dir den Server zu konfigurieren, zu starten und zu stoppen. Es gibt keine Notwendigkeit mit config Dateien oder Konsolenfenstern zu arbeiten.

Oberfläche

TSConductorUI TSConductorUI

Die Oberfläche ist übersichtlich und schnell erklärt:

  1. Start Button: Startet den TSConductor Server.
  2. Stop Button: Stoppt den TSConductor Server.
  3. Server Status: Zeigt an ob der TSConductor Server gerade läuft.
  4. Über Button: Öffnet den Browser mit dieser Webseite.
  5. Zurücksetzen Button: Setzt alle Einstellungen des TSConductor zurück.
  6. Beenden Button: Beendet die Anwendung und auch den Server, falls er läuft.
  7. Einstellungen Button: Sperrt und Entsperrt die Einstellungen. Siehe hier für mehr Informationen.

Einstellungen

TSConductorUI

Normalerweise muss keine Option manuell eingestellt werden denn der TSConductor ermittelt alles was er braucht automatisch. Editiere die Einstellungen also nur wenn du wirklich musst.

  1. Einstellungen Button: Sperrt und Entsperrt die Einstellungen. Du kannst die Einstellungen nicht editieren solange du diese nicht entsperrt hast und die kannst den Server nicht starten solange du die Einstellungen nicht gesperrt hast. Nur das sperren der Einstellungen aktualisiert die settings Datei die der Server braucht. Du kannst hier mehr über die settings.ini Konfigurationsdatei lesen.
  2. Log Checkbox: Wenn aktiviert wird der Server seine Aktivität in eine Datei schreiben. Dies hat großen Einfluss auf die Perfomance des Servers. Aktiviere das Logging also nur wenn du deine Anwendung oder Lok debuggst. Die Logdateien können im Installationsverzeichnis gefunden werden.
  3. IP: Hier kann die IP Adresse beziehungsweise der Netzwerkadapter geändert werden.
  4. Port: Hier kannst du deinen gewünschten TCP Port einstellen. Standard Port ist 47811, der erlaubte Bereich liegt zwischen 1024 und 65535.
  5. Dll Pfad: Der Pfad zur raildriver.dll welche sich in deinem Train Simulator Plugin Verzeichnis befindet.

Server

Der TCP Server selbst ist ein asynchroner Server programmiert in C#. Er unterstützt mehrere Verbindungen auf einmal und kann auch mehrmals parallel laufen, auch wenn letzteres nicht empfohlen wird. Der Server stellt einfache Funktionen bereit welche im Prinzip die Daten zwischen dem Train Simulator und deiner Anwendung nur durchreichen, aber auch erweiterte Funktionen die das Programmieren einfacher machen sollen. Außerdem kann der Server mittels Polling Daten automatisch an deine Anwendung pushen.

Einstellungen

Die Servereinstellungen können in der settings.ini Datei gefunden werden. Es wird nicht empfohlen diese Datei manuell zu editieren. Du findest die Datei im %localappdata%\TSConductor Pfad.

Settings.ini Beispiel:

[TSConductor]
Port=47811
Path=C:\Program Files\Steam\steamapps\common\railworks\plugins\RailDriver.dll
Log=0
Base=C:\Program Files\TSConductor\
IP=127.0.0.1
  1. Port: Der TCP Port des Server. Standard Port ist 47811.
  2. Path: Der Pfad zur raildriver.dll welche sich in deinem Train Simulator Plugin Verzeichnis befindet.
  3. Log: Zeigt an ob das Logging aktiviert ist. 0 = Deaktiviert, 1 = Aktiviert
  4. Base: Pfad der TSConductor Installation
  5. IP: IP Adresse die der Server zur Kommunikation nutzt. Optional. Wenn nicht angegeben wird automatisch eine IP ermittelt.

Beim Start des Servers wird der Pfad zur settings.ini via Parameter übergeben.

Parameter

Du kannst und solltest den Pfad zur settings.ini als Parameter übergeben, wenn du den Server manuell startest. Wird kein Parameter übergeben verwendet der Server die Standardwerte.

ts.conductor.exe "C:\Pfad\zu\Einstellungen"

Meldungen

Wenn du eine Funktion aufrufst kommt es eventuell zu Fehlern. Das ist eine Liste von Info- and Fehlermeldungen:

Infomeldungen

Infomeldungen

1;Loco changed, stopping Polling;<MSG>
2;Polling stop request, stopping Polling;<MSG>

Infomeldungen werden immer mit dem “<MSG>” Tag beendet. Das Format ist Meldungsnummer;Meldungsinfo;<MSG>.

  1. Im Train Simulator wurde die Lok gewechselt. Das automatische Polling wurde gestoppt.
  2. Das Polling wird gestoppt.

Fehlermeldungen

Fehlermeldungen

1;Unknown function;<ERR>
2;No parameter brackets;<ERR>
3;Wrong count of parameters;<ERR>
4;Invalid Clientname;<ERR>

Fehlermeldungen werden immer mit dem “<ERR>” Tag beendet. Das Format ist Fehlernummer;Fehlerinfo;<ERR>.

  1. Unbekannte Funktion
  2. Keine Klammern “()” nach Funktionsnamen.
  3. Falsche Anzahl an Parametern.
  4. Clientname ist nicht Alphanumerisch.

Funktionen

Wenn du Daten und Befehle an den Server schickst, beende diese immer mit dem “<END>” Tag. Zum Beispiel, “GetLocoName()<END>”.

Funktionsliste:

GetLocoName

Call

GetLocoName()

Beispiel Antwort

RSC.:.MunichAugsburg.:.MA DB Baureihe 101 Engine

Gibt den aktuellen Provider, Product und die aktuelle Engine zurück.

Format ist “PROVIDER.:.PRODUCT.:.ENGINENAME”.

GetControllerList

Call

GetControllerList()

Beispiel Antwort

TractiveEffort::RawSpeedTarget::RawTargetDistance::TargetDistanceBar::TargetDistanceDigits100::TargetDistanceDigits1000::VSoll::TargetSpeed100::TargetSpeed10::TargetSpeed1::Current::CompressorState::MainReservoirPressureBAR::BrakePipePressureBAR::LocoBrakeCylinderPressureBAR::LocoBrakeCylinderPressureBAR::Ammeter::CabAmmeter::SpeedometerKPH::Accelerometer::VirtualThrottle::Regulator::AFB::Reverser::SimpleChangeDirection::SimpleThrottle::VirtualBrake::TrainBrakeControl::PantographControl::FrontPantographControl::RearPantographControl::Horn::Startup::Sander::HandBrake::Headlights::VirtualDynamicBrake::DynamicBrake::Wipers::EmergencyBrake::DoorsOpenClose::EngineBrakeControl::AWSReset::Cmd_Free::Cmd_40::VigilEnable::VigilReset::VigilLight::VigilAlarm::LZBActive::LZBEnding::LZBEnable::LZB_G::LZB_End::PZB_85::PZB_70::PZB_55::PZB_1000::PZB_500::PZB_40::ServiceBrake::PZBEnable::PZB_1000hz_Control::PZB_500hz_Control::PZB_2000hz_Control::PZB_Distant_Passed::Dummy::cablight::LZB_Buzzer

Gibt eine Liste aller Controller der aktuellen Lok zurück, separiert mit “::”. Der erste Controller ist “controller 0”, der zweite ist “controller 1” usw.

GetControllerValue

GetControllerValue(int controllerId, int getType)

Beispiel Call

/* Speedometer */
GetControllerValue(18;0)
/* ################## */
GetControllerValue(18;1)
/* ################## */
GetControllerValue(18;2)

Beispiel Antwort

/* Speedometer */
47,30878
/* ################## */
0
/* ################## */
250

Diese Funktion gibt den aktuellen, minumum oder maximal Wert eines Controller zurück. getType spezifizert welcher Wert zurückgegeben wird.

SetControllerValue

SetControllerValue(int controllerId, float value)

Beispiel Call

/* Throttle */
SetControllerValue(20;0,5)

Setzt den aktuellen Wert des Controllers auf den angegeben Wert.

GetControllerValueWithControllerID

GetControllerValueWithControllerID(int controllerId, int getType)

Beispiel Call

/* Speedometer */
GetControllerValueWithControllerID(18;0)
/* ################## */
GetControllerValueWithControllerID(18;1)
/* ################## */
GetControllerValueWithControllerID(18;2)

Beispiel Antwort

18::28,27284
/* ################## */
18::0
/* ################## */
18::250

Diese Funktion gibt den aktuellen, minumum oder maximal Wert eines Controller zurück und die ControllerID. getType spezifizert welcher Wert zurückgegeben wird.

GetControllerValueExtended

GetControllerValueExtended(int controllerId)

Beispiel Call

/* Speedometer */
GetControllerValueExtended(18)

Beispiel Antwort

28,29384::0::250

Diese Funktion gibt den aktuellen, minimum and maximum Wert eines Controller zurück.

GetControllerValueExtendedWithControllerID

GetControllerValueExtendedWithControllerID(int controllerId)

Beispiel Call

/* Speedometer */
GetControllerValueExtendedWithControllerID(18)

Beispiel Antwort

18::26,80761::0::250

Diese Funktion gibt den aktuellen, minimum und maximum Wert eines Controller zurück und die ControllerID.

GetControllerListExtended

GetControllerListExtended(string format)

Beispiel Call

/* XML */
GetControllerListExtended(XML)
/* JSON */
GetControllerListExtended(JSON)
/* FLAT */
GetControllerListExtended(FLAT)
/* RAW */
GetControllerListExtended(RAW)

Beispiel Antwort

<?xml version="1.0" encoding="UTF-8"?>
  <List>
    <Controller>
      <ID>0</ID>
      <Name>TractiveEffort</Name>
      <Min>-1000</Min>
      <Max>10000</Max>
    </Controller>
    <Controller>
      <ID>1</ID>
      <Name>RawSpeedTarget</Name>
      <Min>0</Min>
      <Max>300</Max>
    </Controller>
    <Controller>
      <ID>2</ID>
      <Name>RawTargetDistance</Name>
      <Min>0</Min>
      <Max>9999</Max>
    </Controller>
    <Controller>
      <ID>3</ID>
      <Name>TargetDistanceBar</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>4</ID>
      <Name>TargetDistanceDigits100</Name>
      <Min>-1</Min>
      <Max>9</Max>
    </Controller>
    <Controller>
      <ID>5</ID>
      <Name>TargetDistanceDigits1000</Name>
      <Min>-1</Min>
      <Max>9</Max>
    </Controller>
    <Controller>
      <ID>6</ID>
      <Name>VSoll</Name>
      <Min>0</Min>
      <Max>250</Max>
    </Controller>
    <Controller>
      <ID>7</ID>
      <Name>TargetSpeed100</Name>
      <Min>-1</Min>
      <Max>9</Max>
    </Controller>
    <Controller>
      <ID>8</ID>
      <Name>TargetSpeed10</Name>
      <Min>-1</Min>
      <Max>9</Max>
    </Controller>
    <Controller>
      <ID>9</ID>
      <Name>TargetSpeed1</Name>
      <Min>-1</Min>
      <Max>9</Max>
    </Controller>
    <Controller>
      <ID>10</ID>
      <Name>Current</Name>
      <Min>0</Min>
      <Max>100000</Max>
    </Controller>
    <Controller>
      <ID>11</ID>
      <Name>CompressorState</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>12</ID>
      <Name>MainReservoirPressureBAR</Name>
      <Min>0</Min>
      <Max>12</Max>
    </Controller>
    <Controller>
      <ID>13</ID>
      <Name>BrakePipePressureBAR</Name>
      <Min>0</Min>
      <Max>12</Max>
    </Controller>
    <Controller>
      <ID>14</ID>
      <Name>LocoBrakeCylinderPressureBAR</Name>
      <Min>0</Min>
      <Max>10</Max>
    </Controller>
    <Controller>
      <ID>15</ID>
      <Name>LocoBrakeCylinderPressureBAR</Name>
      <Min>0</Min>
      <Max>10</Max>
    </Controller>
    <Controller>
      <ID>16</ID>
      <Name>Ammeter</Name>
      <Min>-600</Min>
      <Max>600</Max>
    </Controller>
    <Controller>
      <ID>17</ID>
      <Name>CabAmmeter</Name>
      <Min>0</Min>
      <Max>600</Max>
    </Controller>
    <Controller>
      <ID>18</ID>
      <Name>SpeedometerKPH</Name>
      <Min>0</Min>
      <Max>250</Max>
    </Controller>
    <Controller>
      <ID>19</ID>
      <Name>Accelerometer</Name>
      <Min>-320</Min>
      <Max>320</Max>
    </Controller>
    <Controller>
      <ID>20</ID>
      <Name>VirtualThrottle</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>21</ID>
      <Name>Regulator</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>22</ID>
      <Name>AFB</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>23</ID>
      <Name>Reverser</Name>
      <Min>-1</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>24</ID>
      <Name>SimpleChangeDirection</Name>
      <Min>-1</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>25</ID>
      <Name>SimpleThrottle</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>26</ID>
      <Name>VirtualBrake</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>27</ID>
      <Name>TrainBrakeControl</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>28</ID>
      <Name>PantographControl</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>29</ID>
      <Name>FrontPantographControl</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>30</ID>
      <Name>RearPantographControl</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>31</ID>
      <Name>Horn</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>32</ID>
      <Name>Startup</Name>
      <Min>-1</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>33</ID>
      <Name>Sander</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>34</ID>
      <Name>HandBrake</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>35</ID>
      <Name>Headlights</Name>
      <Min>0</Min>
      <Max>2</Max>
    </Controller>
    <Controller>
      <ID>36</ID>
      <Name>VirtualDynamicBrake</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>37</ID>
      <Name>DynamicBrake</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>38</ID>
      <Name>Wipers</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>39</ID>
      <Name>EmergencyBrake</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>40</ID>
      <Name>DoorsOpenClose</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>41</ID>
      <Name>EngineBrakeControl</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>42</ID>
      <Name>AWSReset</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>43</ID>
      <Name>Cmd_Free</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>44</ID>
      <Name>Cmd_40</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>45</ID>
      <Name>VigilEnable</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>46</ID>
      <Name>VigilReset</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>47</ID>
      <Name>VigilLight</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>48</ID>
      <Name>VigilAlarm</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>49</ID>
      <Name>LZBActive</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>50</ID>
      <Name>LZBEnding</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>51</ID>
      <Name>LZBEnable</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>52</ID>
      <Name>LZB_G</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>53</ID>
      <Name>LZB_End</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>54</ID>
      <Name>PZB_85</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>55</ID>
      <Name>PZB_70</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>56</ID>
      <Name>PZB_55</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>57</ID>
      <Name>PZB_1000</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>58</ID>
      <Name>PZB_500</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>59</ID>
      <Name>PZB_40</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>60</ID>
      <Name>ServiceBrake</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>61</ID>
      <Name>PZBEnable</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>62</ID>
      <Name>PZB_1000hz_Control</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>63</ID>
      <Name>PZB_500hz_Control</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>64</ID>
      <Name>PZB_2000hz_Control</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>65</ID>
      <Name>PZB_Distant_Passed</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>66</ID>
      <Name>Dummy</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>67</ID>
      <Name>cablight</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
    <Controller>
      <ID>68</ID>
      <Name>LZB_Buzzer</Name>
      <Min>0</Min>
      <Max>1</Max>
    </Controller>
  </List>
{
   "controller":[
      {
         "ID":"0",
         "Name":"TractiveEffort",
         "Min":"-1000",
         "Max":"10000"
      },
      {
         "ID":"1",
         "Name":"RawSpeedTarget",
         "Min":"0",
         "Max":"300"
      },
      {
         "ID":"2",
         "Name":"RawTargetDistance",
         "Min":"0",
         "Max":"9999"
      },
      {
         "ID":"3",
         "Name":"TargetDistanceBar",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"4",
         "Name":"TargetDistanceDigits100",
         "Min":"-1",
         "Max":"9"
      },
      {
         "ID":"5",
         "Name":"TargetDistanceDigits1000",
         "Min":"-1",
         "Max":"9"
      },
      {
         "ID":"6",
         "Name":"VSoll",
         "Min":"0",
         "Max":"250"
      },
      {
         "ID":"7",
         "Name":"TargetSpeed100",
         "Min":"-1",
         "Max":"9"
      },
      {
         "ID":"8",
         "Name":"TargetSpeed10",
         "Min":"-1",
         "Max":"9"
      },
      {
         "ID":"9",
         "Name":"TargetSpeed1",
         "Min":"-1",
         "Max":"9"
      },
      {
         "ID":"10",
         "Name":"Current",
         "Min":"0",
         "Max":"100000"
      },
      {
         "ID":"11",
         "Name":"CompressorState",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"12",
         "Name":"MainReservoirPressureBAR",
         "Min":"0",
         "Max":"12"
      },
      {
         "ID":"13",
         "Name":"BrakePipePressureBAR",
         "Min":"0",
         "Max":"12"
      },
      {
         "ID":"14",
         "Name":"LocoBrakeCylinderPressureBAR",
         "Min":"0",
         "Max":"10"
      },
      {
         "ID":"15",
         "Name":"LocoBrakeCylinderPressureBAR",
         "Min":"0",
         "Max":"10"
      },
      {
         "ID":"16",
         "Name":"Ammeter",
         "Min":"-600",
         "Max":"600"
      },
      {
         "ID":"17",
         "Name":"CabAmmeter",
         "Min":"0",
         "Max":"600"
      },
      {
         "ID":"18",
         "Name":"SpeedometerKPH",
         "Min":"0",
         "Max":"250"
      },
      {
         "ID":"19",
         "Name":"Accelerometer",
         "Min":"-320",
         "Max":"320"
      },
      {
         "ID":"20",
         "Name":"VirtualThrottle",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"21",
         "Name":"Regulator",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"22",
         "Name":"AFB",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"23",
         "Name":"Reverser",
         "Min":"-1",
         "Max":"1"
      },
      {
         "ID":"24",
         "Name":"SimpleChangeDirection",
         "Min":"-1",
         "Max":"1"
      },
      {
         "ID":"25",
         "Name":"SimpleThrottle",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"26",
         "Name":"VirtualBrake",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"27",
         "Name":"TrainBrakeControl",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"28",
         "Name":"PantographControl",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"29",
         "Name":"FrontPantographControl",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"30",
         "Name":"RearPantographControl",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"31",
         "Name":"Horn",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"32",
         "Name":"Startup",
         "Min":"-1",
         "Max":"1"
      },
      {
         "ID":"33",
         "Name":"Sander",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"34",
         "Name":"HandBrake",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"35",
         "Name":"Headlights",
         "Min":"0",
         "Max":"2"
      },
      {
         "ID":"36",
         "Name":"VirtualDynamicBrake",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"37",
         "Name":"DynamicBrake",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"38",
         "Name":"Wipers",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"39",
         "Name":"EmergencyBrake",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"40",
         "Name":"DoorsOpenClose",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"41",
         "Name":"EngineBrakeControl",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"42",
         "Name":"AWSReset",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"43",
         "Name":"Cmd_Free",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"44",
         "Name":"Cmd_40",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"45",
         "Name":"VigilEnable",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"46",
         "Name":"VigilReset",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"47",
         "Name":"VigilLight",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"48",
         "Name":"VigilAlarm",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"49",
         "Name":"LZBActive",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"50",
         "Name":"LZBEnding",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"51",
         "Name":"LZBEnable",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"52",
         "Name":"LZB_G",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"53",
         "Name":"LZB_End",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"54",
         "Name":"PZB_85",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"55",
         "Name":"PZB_70",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"56",
         "Name":"PZB_55",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"57",
         "Name":"PZB_1000",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"58",
         "Name":"PZB_500",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"59",
         "Name":"PZB_40",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"60",
         "Name":"ServiceBrake",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"61",
         "Name":"PZBEnable",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"62",
         "Name":"PZB_1000hz_Control",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"63",
         "Name":"PZB_500hz_Control",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"64",
         "Name":"PZB_2000hz_Control",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"65",
         "Name":"PZB_Distant_Passed",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"66",
         "Name":"Dummy",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"67",
         "Name":"cablight",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"68",
         "Name":"LZB_Buzzer",
         "Min":"0",
         "Max":"1"
      }
   ]
}
0;TractiveEffort;-1000;10000;1;RawSpeedTarget;0;300;2;RawTargetDistance;0;9999;3;TargetDistanceBar;0;1;4;TargetDistanceDigits100;-1;9;5;TargetDistanceDigits1000;-1;9;6;VSoll;0;250;7;TargetSpeed100;-1;9;8;TargetSpeed10;-1;9;9;TargetSpeed1;-1;9;10;Current;0;100000;11;CompressorState;0;1;12;MainReservoirPressureBAR;0;12;13;BrakePipePressureBAR;0;12;14;LocoBrakeCylinderPressureBAR;0;10;15;LocoBrakeCylinderPressureBAR;0;10;16;Ammeter;-600;600;17;CabAmmeter;0;600;18;SpeedometerKPH;0;250;19;Accelerometer;-320;320;20;VirtualThrottle;0;1;21;Regulator;0;1;22;AFB;0;1;23;Reverser;-1;1;24;SimpleChangeDirection;-1;1;25;SimpleThrottle;0;1;26;VirtualBrake;0;1;27;TrainBrakeControl;0;1;28;PantographControl;0;1;29;FrontPantographControl;0;1;30;RearPantographControl;0;1;31;Horn;0;1;32;Startup;-1;1;33;Sander;0;1;34;HandBrake;0;1;35;Headlights;0;2;36;VirtualDynamicBrake;0;1;37;DynamicBrake;0;1;38;Wipers;0;1;39;EmergencyBrake;0;1;40;DoorsOpenClose;0;1;41;EngineBrakeControl;0;1;42;AWSReset;0;1;43;Cmd_Free;0;1;44;Cmd_40;0;1;45;VigilEnable;0;1;46;VigilReset;0;1;47;VigilLight;0;1;48;VigilAlarm;0;1;49;LZBActive;0;1;50;LZBEnding;0;1;51;LZBEnable;0;1;52;LZB_G;0;1;53;LZB_End;0;1;54;PZB_85;0;1;55;PZB_70;0;1;56;PZB_55;0;1;57;PZB_1000;0;1;58;PZB_500;0;1;59;PZB_40;0;1;60;ServiceBrake;0;1;61;PZBEnable;0;1;62;PZB_1000hz_Control;0;1;63;PZB_500hz_Control;0;1;64;PZB_2000hz_Control;0;1;65;PZB_Distant_Passed;0;1;66;Dummy;0;1;67;cablight;0;1;68;LZB_Buzzer;0;1;
0::TractiveEffort::-1000::10000::1::RawSpeedTarget::0::300::2::RawTargetDistance::0::9999::3::TargetDistanceBar::0::1::4::TargetDistanceDigits100::-1::9::5::TargetDistanceDigits1000::-1::9::6::VSoll::0::250::7::TargetSpeed100::-1::9::8::TargetSpeed10::-1::9::9::TargetSpeed1::-1::9::10::Current::0::100000::11::CompressorState::0::1::12::MainReservoirPressureBAR::0::12::13::BrakePipePressureBAR::0::12::14::LocoBrakeCylinderPressureBAR::0::10::15::LocoBrakeCylinderPressureBAR::0::10::16::Ammeter::-600::600::17::CabAmmeter::0::600::18::SpeedometerKPH::0::250::19::Accelerometer::-320::320::20::VirtualThrottle::0::1::21::Regulator::0::1::22::AFB::0::1::23::Reverser::-1::1::24::SimpleChangeDirection::-1::1::25::SimpleThrottle::0::1::26::VirtualBrake::0::1::27::TrainBrakeControl::0::1::28::PantographControl::0::1::29::FrontPantographControl::0::1::30::RearPantographControl::0::1::31::Horn::0::1::32::Startup::-1::1::33::Sander::0::1::34::HandBrake::0::1::35::Headlights::0::2::36::VirtualDynamicBrake::0::1::37::DynamicBrake::0::1::38::Wipers::0::1::39::EmergencyBrake::0::1::40::DoorsOpenClose::0::1::41::EngineBrakeControl::0::1::42::AWSReset::0::1::43::Cmd_Free::0::1::44::Cmd_40::0::1::45::VigilEnable::0::1::46::VigilReset::0::1::47::VigilLight::0::1::48::VigilAlarm::0::1::49::LZBActive::0::1::50::LZBEnding::0::1::51::LZBEnable::0::1::52::LZB_G::0::1::53::LZB_End::0::1::54::PZB_85::0::1::55::PZB_70::0::1::56::PZB_55::0::1::57::PZB_1000::0::1::58::PZB_500::0::1::59::PZB_40::0::1::60::ServiceBrake::0::1::61::PZBEnable::0::1::62::PZB_1000hz_Control::0::1::63::PZB_500hz_Control::0::1::64::PZB_2000hz_Control::0::1::65::PZB_Distant_Passed::0::1::66::Dummy::0::1::67::cablight::0::1::68::LZB_Buzzer::0::1::

Diese Funktion gibt die id, den Name, den minimum und den maximum Wert aller Controller zurück. Mögliche Formate: XML, JSON, FLAT, RAW

SendKeys

Beispiel Call

SendKeys(w) /* W */
SendKeys({DEL}) /* ENTF Taste */
SendKeys(^+b) /* STRG + Shift + B */

Diese Funktion sendet Tastendrücke an den Train Simulator. Der Train Simulator muss das aktuelle aktive Fenster sein.

Für genauere Details bitte die Microsoft Dokumentation lesen: MSDN: SendKeys.Send (Englisch)

SetClientName

SetClientName(string name)

Beispiel Call

SetClientName(MyApp)

Diese Funktion setzt den Namen des Clients. Der Name muss alphanumerisch sein, darf aber Leerzeichen enthalten.

GetClientName

Beispiel Call

GetClientName()

Beispiel Antwort

MyApp

Diese Funktion ruft den aktuellen Namen des Clients ab.

GetClientID

Beispiel Call

GetClientID()

Beispiel Antwort

AF2E45CD

Diese Funktion ruft die interne ID des Clients ab.

EnableMessageLengthHeader

Beispiel Call

EnableMessageLengthHeader()

Beispiel

#12345;<?xml version="1.0" [...]

Aktiviert einen Header der die Länge der Antwort in Bytes voranstellt.

Die Zeichenfolge #12345; zeigt an das die Antwort (ohne Header) 12345 Bytes lang ist.

DisableMessageLengthHeader

Beispiel Call

DisableMessageLengthHeader()

Deaktiviert den Header für die Länge der Antwort.

Virtuelle Controller

Zusätzlich zu den Controllern der jeweiligen Lok gibt es folgende Controller:

Controller ID Zweck
400 Aktueller Breitengrad des Zuges
401 Aktueller Längengrad des Zuges
402 Treibstoff
403 Ist im Tunnel
404 Steigung
405 Heading
406 Aktuelle Stunde (Uhrzeit)
407 Aktuelle Minute (Uhrzeit)
408 Aktuelle Sekunde (Uhrzeit)

Diese Controller sind immer verfügbar.

Polling

Der TSConductor ist in der Lage Clients ständig mit neuen Informationen zu versorgen. Dabei werden alle Controller mit veränderten Werten seit dem letzten Update an den Client gesendet. Dazu muss einfach der StartPolling Befehl, das gewünschte Aktualisierungsintervall und das gewünschte Format an den Server gesendet werden. Es wird trotzdem empfohlen Controller wie SiFa, PZB, LZB oder AWS selbstständig abzufragen.

StartPolling

StartPolling(int interval; string format)

Beispiel Call

/* XML */
StartPolling(5000;XML)
/* JSON */
StartPolling(5000;JSON)
/* FLAT */
StartPolling(5000;FLAT)
/* RAW */
StartPolling(5000;RAW)

Erste Antwort

<?xml version="1.0" encoding="UTF-8"?>
<List>
   <Controller>
      <ID>0</ID>
      <Name>TractiveEffort</Name>
      <Min>-1000</Min>
      <Max>10000</Max>
   </Controller>
   <Controller>
      <ID>1</ID>
      <Name>RawSpeedTarget</Name>
      <Min>0</Min>
      <Max>300</Max>
   </Controller>
   <Controller>
      <ID>2</ID>
      <Name>RawTargetDistance</Name>
      <Min>0</Min>
      <Max>9999</Max>
   </Controller>
   <Controller>
      <ID>3</ID>
      <Name>TargetDistanceBar</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>4</ID>
      <Name>TargetDistanceDigits100</Name>
      <Min>-1</Min>
      <Max>9</Max>
   </Controller>
   <Controller>
      <ID>5</ID>
      <Name>TargetDistanceDigits1000</Name>
      <Min>-1</Min>
      <Max>9</Max>
   </Controller>
   <Controller>
      <ID>6</ID>
      <Name>VSoll</Name>
      <Min>0</Min>
      <Max>250</Max>
   </Controller>
   <Controller>
      <ID>7</ID>
      <Name>TargetSpeed100</Name>
      <Min>-1</Min>
      <Max>9</Max>
   </Controller>
   <Controller>
      <ID>8</ID>
      <Name>TargetSpeed10</Name>
      <Min>-1</Min>
      <Max>9</Max>
   </Controller>
   <Controller>
      <ID>9</ID>
      <Name>TargetSpeed1</Name>
      <Min>-1</Min>
      <Max>9</Max>
   </Controller>
   <Controller>
      <ID>10</ID>
      <Name>Current</Name>
      <Min>0</Min>
      <Max>100000</Max>
   </Controller>
   <Controller>
      <ID>11</ID>
      <Name>CompressorState</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>12</ID>
      <Name>MainReservoirPressureBAR</Name>
      <Min>0</Min>
      <Max>12</Max>
   </Controller>
   <Controller>
      <ID>13</ID>
      <Name>BrakePipePressureBAR</Name>
      <Min>0</Min>
      <Max>12</Max>
   </Controller>
   <Controller>
      <ID>14</ID>
      <Name>LocoBrakeCylinderPressureBAR</Name>
      <Min>0</Min>
      <Max>10</Max>
   </Controller>
   <Controller>
      <ID>15</ID>
      <Name>LocoBrakeCylinderPressureBAR</Name>
      <Min>0</Min>
      <Max>10</Max>
   </Controller>
   <Controller>
      <ID>16</ID>
      <Name>Ammeter</Name>
      <Min>-600</Min>
      <Max>600</Max>
   </Controller>
   <Controller>
      <ID>17</ID>
      <Name>CabAmmeter</Name>
      <Min>0</Min>
      <Max>600</Max>
   </Controller>
   <Controller>
      <ID>18</ID>
      <Name>SpeedometerKPH</Name>
      <Min>0</Min>
      <Max>250</Max>
   </Controller>
   <Controller>
      <ID>19</ID>
      <Name>Accelerometer</Name>
      <Min>-320</Min>
      <Max>320</Max>
   </Controller>
   <Controller>
      <ID>20</ID>
      <Name>VirtualThrottle</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>21</ID>
      <Name>Regulator</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>22</ID>
      <Name>AFB</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>23</ID>
      <Name>Reverser</Name>
      <Min>-1</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>24</ID>
      <Name>SimpleChangeDirection</Name>
      <Min>-1</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>25</ID>
      <Name>SimpleThrottle</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>26</ID>
      <Name>VirtualBrake</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>27</ID>
      <Name>TrainBrakeControl</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>28</ID>
      <Name>PantographControl</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>29</ID>
      <Name>FrontPantographControl</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>30</ID>
      <Name>RearPantographControl</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>31</ID>
      <Name>Horn</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>32</ID>
      <Name>Startup</Name>
      <Min>-1</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>33</ID>
      <Name>Sander</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>34</ID>
      <Name>HandBrake</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>35</ID>
      <Name>Headlights</Name>
      <Min>0</Min>
      <Max>2</Max>
   </Controller>
   <Controller>
      <ID>36</ID>
      <Name>VirtualDynamicBrake</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>37</ID>
      <Name>DynamicBrake</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>38</ID>
      <Name>Wipers</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>39</ID>
      <Name>EmergencyBrake</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>40</ID>
      <Name>DoorsOpenClose</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>41</ID>
      <Name>EngineBrakeControl</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>42</ID>
      <Name>AWSReset</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>43</ID>
      <Name>Cmd_Free</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>44</ID>
      <Name>Cmd_40</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>45</ID>
      <Name>VigilEnable</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>46</ID>
      <Name>VigilReset</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>47</ID>
      <Name>VigilLight</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>48</ID>
      <Name>VigilAlarm</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>49</ID>
      <Name>LZBActive</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>50</ID>
      <Name>LZBEnding</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>51</ID>
      <Name>LZBEnable</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>52</ID>
      <Name>LZB_G</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>53</ID>
      <Name>LZB_End</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>54</ID>
      <Name>PZB_85</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>55</ID>
      <Name>PZB_70</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>56</ID>
      <Name>PZB_55</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>57</ID>
      <Name>PZB_1000</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>58</ID>
      <Name>PZB_500</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>59</ID>
      <Name>PZB_40</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>60</ID>
      <Name>ServiceBrake</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>61</ID>
      <Name>PZBEnable</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>62</ID>
      <Name>PZB_1000hz_Control</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>63</ID>
      <Name>PZB_500hz_Control</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>64</ID>
      <Name>PZB_2000hz_Control</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>65</ID>
      <Name>PZB_Distant_Passed</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>66</ID>
      <Name>Dummy</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>67</ID>
      <Name>cablight</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
   <Controller>
      <ID>68</ID>
      <Name>LZB_Buzzer</Name>
      <Min>0</Min>
      <Max>1</Max>
   </Controller>
</List>
{
   "controller":[
      {
         "ID":"0",
         "Name":"TractiveEffort",
         "Min":"-1000",
         "Max":"10000"
      },
      {
         "ID":"1",
         "Name":"RawSpeedTarget",
         "Min":"0",
         "Max":"300"
      },
      {
         "ID":"2",
         "Name":"RawTargetDistance",
         "Min":"0",
         "Max":"9999"
      },
      {
         "ID":"3",
         "Name":"TargetDistanceBar",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"4",
         "Name":"TargetDistanceDigits100",
         "Min":"-1",
         "Max":"9"
      },
      {
         "ID":"5",
         "Name":"TargetDistanceDigits1000",
         "Min":"-1",
         "Max":"9"
      },
      {
         "ID":"6",
         "Name":"VSoll",
         "Min":"0",
         "Max":"250"
      },
      {
         "ID":"7",
         "Name":"TargetSpeed100",
         "Min":"-1",
         "Max":"9"
      },
      {
         "ID":"8",
         "Name":"TargetSpeed10",
         "Min":"-1",
         "Max":"9"
      },
      {
         "ID":"9",
         "Name":"TargetSpeed1",
         "Min":"-1",
         "Max":"9"
      },
      {
         "ID":"10",
         "Name":"Current",
         "Min":"0",
         "Max":"100000"
      },
      {
         "ID":"11",
         "Name":"CompressorState",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"12",
         "Name":"MainReservoirPressureBAR",
         "Min":"0",
         "Max":"12"
      },
      {
         "ID":"13",
         "Name":"BrakePipePressureBAR",
         "Min":"0",
         "Max":"12"
      },
      {
         "ID":"14",
         "Name":"LocoBrakeCylinderPressureBAR",
         "Min":"0",
         "Max":"10"
      },
      {
         "ID":"15",
         "Name":"LocoBrakeCylinderPressureBAR",
         "Min":"0",
         "Max":"10"
      },
      {
         "ID":"16",
         "Name":"Ammeter",
         "Min":"-600",
         "Max":"600"
      },
      {
         "ID":"17",
         "Name":"CabAmmeter",
         "Min":"0",
         "Max":"600"
      },
      {
         "ID":"18",
         "Name":"SpeedometerKPH",
         "Min":"0",
         "Max":"250"
      },
      {
         "ID":"19",
         "Name":"Accelerometer",
         "Min":"-320",
         "Max":"320"
      },
      {
         "ID":"20",
         "Name":"VirtualThrottle",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"21",
         "Name":"Regulator",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"22",
         "Name":"AFB",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"23",
         "Name":"Reverser",
         "Min":"-1",
         "Max":"1"
      },
      {
         "ID":"24",
         "Name":"SimpleChangeDirection",
         "Min":"-1",
         "Max":"1"
      },
      {
         "ID":"25",
         "Name":"SimpleThrottle",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"26",
         "Name":"VirtualBrake",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"27",
         "Name":"TrainBrakeControl",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"28",
         "Name":"PantographControl",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"29",
         "Name":"FrontPantographControl",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"30",
         "Name":"RearPantographControl",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"31",
         "Name":"Horn",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"32",
         "Name":"Startup",
         "Min":"-1",
         "Max":"1"
      },
      {
         "ID":"33",
         "Name":"Sander",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"34",
         "Name":"HandBrake",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"35",
         "Name":"Headlights",
         "Min":"0",
         "Max":"2"
      },
      {
         "ID":"36",
         "Name":"VirtualDynamicBrake",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"37",
         "Name":"DynamicBrake",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"38",
         "Name":"Wipers",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"39",
         "Name":"EmergencyBrake",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"40",
         "Name":"DoorsOpenClose",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"41",
         "Name":"EngineBrakeControl",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"42",
         "Name":"AWSReset",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"43",
         "Name":"Cmd_Free",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"44",
         "Name":"Cmd_40",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"45",
         "Name":"VigilEnable",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"46",
         "Name":"VigilReset",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"47",
         "Name":"VigilLight",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"48",
         "Name":"VigilAlarm",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"49",
         "Name":"LZBActive",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"50",
         "Name":"LZBEnding",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"51",
         "Name":"LZBEnable",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"52",
         "Name":"LZB_G",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"53",
         "Name":"LZB_End",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"54",
         "Name":"PZB_85",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"55",
         "Name":"PZB_70",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"56",
         "Name":"PZB_55",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"57",
         "Name":"PZB_1000",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"58",
         "Name":"PZB_500",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"59",
         "Name":"PZB_40",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"60",
         "Name":"ServiceBrake",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"61",
         "Name":"PZBEnable",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"62",
         "Name":"PZB_1000hz_Control",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"63",
         "Name":"PZB_500hz_Control",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"64",
         "Name":"PZB_2000hz_Control",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"65",
         "Name":"PZB_Distant_Passed",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"66",
         "Name":"Dummy",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"67",
         "Name":"cablight",
         "Min":"0",
         "Max":"1"
      },
      {
         "ID":"68",
         "Name":"LZB_Buzzer",
         "Min":"0",
         "Max":"1"
      }
   ]
}
0;TractiveEffort;-1000;10000;1;RawSpeedTarget;0;300;2;RawTargetDistance;0;9999;3;TargetDistanceBar;0;1;4;TargetDistanceDigits100;-1;9;5;TargetDistanceDigits1000;-1;9;6;VSoll;0;250;7;TargetSpeed100;-1;9;8;TargetSpeed10;-1;9;9;TargetSpeed1;-1;9;10;Current;0;100000;11;CompressorState;0;1;12;MainReservoirPressureBAR;0;12;13;BrakePipePressureBAR;0;12;14;LocoBrakeCylinderPressureBAR;0;10;15;LocoBrakeCylinderPressureBAR;0;10;16;Ammeter;-600;600;17;CabAmmeter;0;600;18;SpeedometerKPH;0;250;19;Accelerometer;-320;320;20;VirtualThrottle;0;1;21;Regulator;0;1;22;AFB;0;1;23;Reverser;-1;1;24;SimpleChangeDirection;-1;1;25;SimpleThrottle;0;1;26;VirtualBrake;0;1;27;TrainBrakeControl;0;1;28;PantographControl;0;1;29;FrontPantographControl;0;1;30;RearPantographControl;0;1;31;Horn;0;1;32;Startup;-1;1;33;Sander;0;1;34;HandBrake;0;1;35;Headlights;0;2;36;VirtualDynamicBrake;0;1;37;DynamicBrake;0;1;38;Wipers;0;1;39;EmergencyBrake;0;1;40;DoorsOpenClose;0;1;41;EngineBrakeControl;0;1;42;AWSReset;0;1;43;Cmd_Free;0;1;44;Cmd_40;0;1;45;VigilEnable;0;1;46;VigilReset;0;1;47;VigilLight;0;1;48;VigilAlarm;0;1;49;LZBActive;0;1;50;LZBEnding;0;1;51;LZBEnable;0;1;52;LZB_G;0;1;53;LZB_End;0;1;54;PZB_85;0;1;55;PZB_70;0;1;56;PZB_55;0;1;57;PZB_1000;0;1;58;PZB_500;0;1;59;PZB_40;0;1;60;ServiceBrake;0;1;61;PZBEnable;0;1;62;PZB_1000hz_Control;0;1;63;PZB_500hz_Control;0;1;64;PZB_2000hz_Control;0;1;65;PZB_Distant_Passed;0;1;66;Dummy;0;1;67;cablight;0;1;68;LZB_Buzzer;0;1;
0::TractiveEffort::-1000::10000::1::RawSpeedTarget::0::300::2::RawTargetDistance::0::9999::3::TargetDistanceBar::0::1::4::TargetDistanceDigits100::-1::9::5::TargetDistanceDigits1000::-1::9::6::VSoll::0::250::7::TargetSpeed100::-1::9::8::TargetSpeed10::-1::9::9::TargetSpeed1::-1::9::10::Current::0::100000::11::CompressorState::0::1::12::MainReservoirPressureBAR::0::12::13::BrakePipePressureBAR::0::12::14::LocoBrakeCylinderPressureBAR::0::10::15::LocoBrakeCylinderPressureBAR::0::10::16::Ammeter::-600::600::17::CabAmmeter::0::600::18::SpeedometerKPH::0::250::19::Accelerometer::-320::320::20::VirtualThrottle::0::1::21::Regulator::0::1::22::AFB::0::1::23::Reverser::-1::1::24::SimpleChangeDirection::-1::1::25::SimpleThrottle::0::1::26::VirtualBrake::0::1::27::TrainBrakeControl::0::1::28::PantographControl::0::1::29::FrontPantographControl::0::1::30::RearPantographControl::0::1::31::Horn::0::1::32::Startup::-1::1::33::Sander::0::1::34::HandBrake::0::1::35::Headlights::0::2::36::VirtualDynamicBrake::0::1::37::DynamicBrake::0::1::38::Wipers::0::1::39::EmergencyBrake::0::1::40::DoorsOpenClose::0::1::41::EngineBrakeControl::0::1::42::AWSReset::0::1::43::Cmd_Free::0::1::44::Cmd_40::0::1::45::VigilEnable::0::1::46::VigilReset::0::1::47::VigilLight::0::1::48::VigilAlarm::0::1::49::LZBActive::0::1::50::LZBEnding::0::1::51::LZBEnable::0::1::52::LZB_G::0::1::53::LZB_End::0::1::54::PZB_85::0::1::55::PZB_70::0::1::56::PZB_55::0::1::57::PZB_1000::0::1::58::PZB_500::0::1::59::PZB_40::0::1::60::ServiceBrake::0::1::61::PZBEnable::0::1::62::PZB_1000hz_Control::0::1::63::PZB_500hz_Control::0::1::64::PZB_2000hz_Control::0::1::65::PZB_Distant_Passed::0::1::66::Dummy::0::1::67::cablight::0::1::68::LZB_Buzzer::0::1::

Zweite Antwort

<?xml version="1.0" encoding="UTF-8"?>
<List>
   <Controller>
      <ID>0</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>1</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>2</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>3</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>4</ID>
      <Current>-1</Current>
   </Controller>
   <Controller>
      <ID>5</ID>
      <Current>-1</Current>
   </Controller>
   <Controller>
      <ID>6</ID>
      <Current>19,99999</Current>
   </Controller>
   <Controller>
      <ID>7</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>8</ID>
      <Current>2</Current>
   </Controller>
   <Controller>
      <ID>9</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>10</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>11</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>12</ID>
      <Current>9,987423</Current>
   </Controller>
   <Controller>
      <ID>13</ID>
      <Current>4,998699</Current>
   </Controller>
   <Controller>
      <ID>14</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>15</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>16</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>17</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>18</ID>
      <Current>17,74816</Current>
   </Controller>
   <Controller>
      <ID>19</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>20</ID>
      <Current>1</Current>
   </Controller>
   <Controller>
      <ID>21</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>22</ID>
      <Current>0,08</Current>
   </Controller>
   <Controller>
      <ID>23</ID>
      <Current>1</Current>
   </Controller>
   <Controller>
      <ID>24</ID>
      <Current>1</Current>
   </Controller>
   <Controller>
      <ID>25</ID>
      <Current>0,5</Current>
   </Controller>
   <Controller>
      <ID>26</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>27</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>28</ID>
      <Current>1</Current>
   </Controller>
   <Controller>
      <ID>29</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>30</ID>
      <Current>1</Current>
   </Controller>
   <Controller>
      <ID>31</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>32</ID>
      <Current>1</Current>
   </Controller>
   <Controller>
      <ID>33</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>34</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>35</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>36</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>37</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>38</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>39</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>40</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>41</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>42</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>43</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>44</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>45</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>46</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>47</ID>
      <Current>1</Current>
   </Controller>
   <Controller>
      <ID>48</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>49</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>50</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>51</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>52</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>53</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>54</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>55</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>56</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>57</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>58</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>59</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>60</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>61</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>62</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>63</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>64</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>65</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>66</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>67</ID>
      <Current>0</Current>
   </Controller>
   <Controller>
      <ID>68</ID>
      <Current>0</Current>
   </Controller>
</List>  
{
   "controller":[
      {
         "ID":"0",
         "Current":"0"
      },
      {
         "ID":"1",
         "Current":"0"
      },
      {
         "ID":"2",
         "Current":"0"
      },
      {
         "ID":"3",
         "Current":"0"
      },
      {
         "ID":"4",
         "Current":"-1"
      },
      {
         "ID":"5",
         "Current":"-1"
      },
      {
         "ID":"6",
         "Current":"19,99999"
      },
      {
         "ID":"7",
         "Current":"0"
      },
      {
         "ID":"8",
         "Current":"2"
      },
      {
         "ID":"9",
         "Current":"0"
      },
      {
         "ID":"10",
         "Current":"0"
      },
      {
         "ID":"11",
         "Current":"0"
      },
      {
         "ID":"12",
         "Current":"9,987423"
      },
      {
         "ID":"13",
         "Current":"4,998699"
      },
      {
         "ID":"14",
         "Current":"0"
      },
      {
         "ID":"15",
         "Current":"0"
      },
      {
         "ID":"16",
         "Current":"0"
      },
      {
         "ID":"17",
         "Current":"0"
      },
      {
         "ID":"18",
         "Current":"17,83203"
      },
      {
         "ID":"19",
         "Current":"0"
      },
      {
         "ID":"20",
         "Current":"1"
      },
      {
         "ID":"21",
         "Current":"0"
      },
      {
         "ID":"22",
         "Current":"0,08"
      },
      {
         "ID":"23",
         "Current":"1"
      },
      {
         "ID":"24",
         "Current":"1"
      },
      {
         "ID":"25",
         "Current":"0,5"
      },
      {
         "ID":"26",
         "Current":"0"
      },
      {
         "ID":"27",
         "Current":"0"
      },
      {
         "ID":"28",
         "Current":"1"
      },
      {
         "ID":"29",
         "Current":"0"
      },
      {
         "ID":"30",
         "Current":"1"
      },
      {
         "ID":"31",
         "Current":"0"
      },
      {
         "ID":"32",
         "Current":"1"
      },
      {
         "ID":"33",
         "Current":"0"
      },
      {
         "ID":"34",
         "Current":"0"
      },
      {
         "ID":"35",
         "Current":"0"
      },
      {
         "ID":"36",
         "Current":"0"
      },
      {
         "ID":"37",
         "Current":"0"
      },
      {
         "ID":"38",
         "Current":"0"
      },
      {
         "ID":"39",
         "Current":"0"
      },
      {
         "ID":"40",
         "Current":"0"
      },
      {
         "ID":"41",
         "Current":"0"
      },
      {
         "ID":"42",
         "Current":"0"
      },
      {
         "ID":"43",
         "Current":"0"
      },
      {
         "ID":"44",
         "Current":"0"
      },
      {
         "ID":"45",
         "Current":"0"
      },
      {
         "ID":"46",
         "Current":"0"
      },
      {
         "ID":"47",
         "Current":"1"
      },
      {
         "ID":"48",
         "Current":"0"
      },
      {
         "ID":"49",
         "Current":"0"
      },
      {
         "ID":"50",
         "Current":"0"
      },
      {
         "ID":"51",
         "Current":"0"
      },
      {
         "ID":"52",
         "Current":"0"
      },
      {
         "ID":"53",
         "Current":"0"
      },
      {
         "ID":"54",
         "Current":"0"
      },
      {
         "ID":"55",
         "Current":"0"
      },
      {
         "ID":"56",
         "Current":"0"
      },
      {
         "ID":"57",
         "Current":"0"
      },
      {
         "ID":"58",
         "Current":"0"
      },
      {
         "ID":"59",
         "Current":"0"
      },
      {
         "ID":"60",
         "Current":"0"
      },
      {
         "ID":"61",
         "Current":"0"
      },
      {
         "ID":"62",
         "Current":"0"
      },
      {
         "ID":"63",
         "Current":"0"
      },
      {
         "ID":"64",
         "Current":"0"
      },
      {
         "ID":"65",
         "Current":"0"
      },
      {
         "ID":"66",
         "Current":"0"
      },
      {
         "ID":"67",
         "Current":"0"
      },
      {
         "ID":"68",
         "Current":"0"
      }
   ]
}
0;0;1;0;2;0;3;0;4;-1;5;-1;6;19,99999;7;0;8;2;9;0;10;0;11;0;12;9,948832;13;4,921205;14;0,1838395;15;0,1838395;16;0;17;0;18;18,52498;19;-1,004025;20;1;21;0;22;0,08;23;1;24;1;25;0,4490465;26;0;27;0,103347;28;1;29;0;30;1;31;0;32;1;33;0;34;0;35;0;36;0;37;0;38;0;39;0;40;0;41;0;42;0;43;0;44;0;45;0;46;0;47;1;48;0;49;0;50;0;51;0;52;0;53;0;54;0;55;0;56;0;57;0;58;0;59;0;60;0;61;0;62;0;63;0;64;0;65;0;66;0;67;0;68;0;
0::0::1::0::2::0::3::0::4::-1::5::-1::6::19,99999::7::0::8::2::9::0::10::0::11::0::12::9,917391::13::4,653961::14::1,034214::15::1,034214::16::0::17::0::18::18,51546::19::-5,648276::20::1::21::0::22::0,08::23::1::24::1::25::0,4488116::26::0::27::0,101728::28::1::29::0::30::1::31::0::32::1::33::0::34::0::35::0::36::0::37::0::38::0::39::0::40::0::41::0::42::0::43::0::44::0::45::0::46::0::47::1::48::0::49::0::50::0::51::0::52::0::53::0::54::0::55::0::56::0::57::0::58::0::59::0::60::0::61::0::62::0::63::0::64::0::65::0::66::0::67::0::68::0::

Beispiel Update

<?xml version="1.0" encoding="UTF-8"?>
<List>
   <Controller>
      <ID>18</ID>
      <Current>17,60397</Current>
   </Controller>
</List>
{
   "controller":[
      {
         "ID":"12",
         "Current":"9,981444"
      },
      {
         "ID":"13",
         "Current":"4,863352"
      },
      {
         "ID":"14",
         "Current":"0,4149021"
      },
      {
         "ID":"15",
         "Current":"0,4149021"
      },
      {
         "ID":"18",
         "Current":"18,06917"
      },
      {
         "ID":"19",
         "Current":"-2,265955"
      },
      {
         "ID":"25",
         "Current":"0,4588348"
      },
      {
         "ID":"27",
         "Current":"0,08203382"
      }
   ]
}
12;9,944581;13;4,803483;14;0,5940052;15;0,5940052;18;18,32397;19;-3,244113;25;0,4587107;27;0,08221048;
12::9,908202::13::4,709668::14::0,8758038::15::0,8758038::18::18,37809::19::-4,783134::25::0,4589608::27::0,08240156::

Startet das Polling.

StopPolling

StopPolling()

Stoppt das Polling.

MutePolling

MutePolling()

Schaltet das Polling stumm. Es läuft immer noch weiter, sendet aber keine neuen Updates.

UnmutePolling

UnmutePolling()

Lässt das Polling wieder Updates senden.

PausePolling

PausePolling()

Pausiert das Polling.

UnpausePolling

UnpausePolling()

Setzt das Polling fort.

EnableExtendedPolling

EnableExtendedPolling()

Aktiviert das Polling der virtuellen Controller.

DisableExtendedPolling

DisableExtendedPolling()

Deaktiviert das Polling der virtuellen Controller.

Anhang

Spenden

Wenn du den TSConductor gut findest, denke bitte darüber nach zu spenden oder schreibe mir. <3

PayPal

Danksagungen

Vielen Dank an:

Lizenz

Copyright © Daniel Jackob - Alle Rechte vorbehalten

Wenn du die Dateien selber hosten willst, kontaktiere mich zuerst.

Changelog

[ADD] - Bessere Unterstützung für localhost Adresse

[ADD] - Warnung wenn die zuletzt verwendete IP Adresse nicht mehr verfügbar ist

[FIX] - Bug der dazu führte das die settings.ini nicht korrekt geladen wurde wenn der “Local Application Data” Pfad ein oder mehrere Leerzeichen enthielt

[FIX] - Behandlung einer Fehlermeldung wenn die Server Anwendung abstürzt

[FIX] - Kleiner Fehler in der englischen Übersetzung behoben

[FIX] - XML Deklaration: Encoding Bug behoben

[ADD] - Netzwerkcontroller kann jetzt ausgewählt werden

[ADD] - optionaler IP Wert in der Config

[ADD] - EnableMessageLengthHeader und DisableMessageLengthHeader Funktionen: Erlaubt das voranstellen der Größe der Antwort als Header

[FIX] - Automatische Pfaderkennung wenn Train Simulator nicht im Standard Steamverzeichnis installiert wurde

[FIX] - Automatische Generierung der settings.ini. Ort der settings.ini wurde zu %localappdata%\TSConductor geändert

[ADD] - ExtendedPolling - Erlaubt das Polling der virtuellen Controller (Funktionen EnableExtendedPolling und DisableExtendedPolling)

[Erste Veröffentlichung]

Dokument Versionen

[ADD] - Anpassung auf Version 1.3.0.0

[ADD] - TSInspector Link

[ADD] - Anpassung auf Version 1.2.1.0

[ADD] - Modulares Führerraumdisplay Link

[ADD] - Anpassung auf Version 1.2.0.0

[ADD] - TSFireman Beschreibung und Link

[ADD] - Anpassung auf Version 1.1.0.0

[ADD] - Virtuelle Controller

[ADD] - Erste Veröffentlichung

Impressum

Daniel Jackob

Ernst Thälmann Straße 16

98617 Untermaßfeld

dayjay@dayjay.de