TSConductor -TCP Interface für den Train Simulator (V 1.3.0.0 - 27.01.17)

  • TSConductor - Train Simulator TCP Interface


    Aktuelle Version: 1.3.0.0 - 27.01.2017


    Wichtige Links:


    Download


    Beispiel für die BR101 (Mü-Au) in C#



    FAQ:


    Q: Wirst du auch selber Anwendungen dafür programmieren?
    A: Ja, wenn ich Zeit und Ideen habe.


    Q: Ich habe eine Idee, Frage, Kritik, Feedback, ...!
    A: Dann einfach hier posten. :)


    Im Anhang nochmal die Api Doku für die raildriver.dll von Matt Peddlesden.

  • Hier mal ein kleines Video zum Beweis. ;)


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Bin leider etwas leise, keine Ahnung warum. Am besten in HD anschauen, sonst sieht man nicht viel.


    Ich bin übrigens überrascht wie viel man doch machen kann. Da wundert es mich wirklich das da mal nicht jemand eher geschaut hat was möglich ist. Ich habe da schon einige gute Ideen. :)

  • Kleines Update:


    Die Programmierung ist zu 99% abgeschlossen, es gibt nur ein paar Kleinigkeiten die ich hier und da noch ändern muss oder will. Die Doku ist auch schon zu 50% fertig (Deutsch und Englisch).
    Danach muss ich selber noch ein wenig testen.


    Es wäre schön wenn sich vielleicht zwei oder drei Leute melden würden denen ich eine Vorabversion schicken könnte. Ich würde diese dann voraussichtlich Ende nächster Woche verschicken.
    Wichtig ist nur das diejenigen die sich melden wissen was sie damit machen sollen und natürlich Fehler oder Verbesserungsvorschläge mir dann mitteilen. Ich erwarte jetzt aber nicht das sich jeder gleich eine komplette Anwendung baut. Einfach ein wenig rumspielen.


    Am besten via Mail (sollte über das Forum hier gehen) oder PM melden.


    Ich habe außerdem noch ein Anliegen:


    Ich bräuchte eine Datei aus dem Steam Ordner von jemanden der den Train Simulator NICHT in den Standard Steam Pfad installiert hat. Also bewusst den TS z.B. auf eine andere Festplatte als Steam installiert hat.
    Es handelt sich um die Datei: appmanifest_24010.acf im /steamapps Ordner im Steam Pfad. Da drin steht unter anderem wo das Spiel installiert ist, welche DLCs ihr habt usw... Also nichts kritisches, könnt ihr vorher ja auch selber schnell anschauen. ;)

  • Hallo,


    ihr müsst einem alten Mann jetzt mal ein bisschen auf die Sprünge helfen.


    Wo liegt jetzt der Unterschied zwischen dem hier vorgestellten TCP Server und einem Interface wie dem Arcaze von Simple Solutions , welches ich benutze ?
    Wenn ich das richtig verstanden habe, funktioniert hier ein Datenaustausch nicht nur in eine Richtung.
    Sodass Daten die der PC sendet (z.B. Blinken einer Lampe) ausgelesen werden können und bei entsprechender Weiterleitung eine
    "echte" Lampe zum Leuchten bringt.


    Mein Problem ist, dass ich kein PC" Könner" bin, soll heißen, Programmieren wie z.B. für den Arduino, ist nicht so mein Ding.
    Daher arbeitete ich bisher mit dem Arcaze USB Interface von Simple Solutions, da es hier ein recht einfaches Konfigurations-Tool gibt.


    Gibt es dann zum TSConductor auch so ein Tool oder muß man da mehr machen ?


    Ich habe meine Fahrschalter mit Encodern umgesetzt. Die Encoder werden aber nicht so gut ausgelesen, daher würde ich lieber auf Potentiometer wechseln, was wiederum mit dem Arcaze USB nicht so einfach geht.


    Ich hoffe mit dem TSConductor dann diese Probleme beheben zu können. Bin gespannt.


    Gruß Frank

  • Ich hoffe ich verstehe dich richtig. Du "emulierst" mit dem Arcaze im Prinzip einfach eine Tastatur? Höre davon gerade zum ersten mal.



    Zitat

    Wenn ich das richtig verstanden habe, funktioniert hier ein Datenaustausch nicht nur in eine Richtung.

    Im Prinzip, ja. Du kannst Daten senden (SifaTaster gedrückt, Hebel gedrückt, ...) und empfangen (aktuelle Geschwindigkeit, PZB, GPS-Daten, ...). Welche Daten genau hängt von der Lok ab.


    Der TSConductor selbst macht erstmal nichts anderes als die "API" (raildriver.dll) des TS zu TCP zu "übersetzen".

  • So ist es.
    Ich nutze das Arcaze um Tastaturdrücke zu "simulieren".


    Damit der TSConductor funktioniert muss dann also die Railworks API zum steuern mit Joystick installiert sein ?
    Ich meine mal gelesen zu haben, dass der TS 2016 mit der API nicht läuft. Statt dessen soll ein Programm namens "TrainSim Helper" benutzt werden.

  • Dank erstmal für die Erklärungen.
    Eine Sache verstehe ich aber immer noch nicht.


    Beim Arcaze passiert ja einfach nur folgendes:
    Ich bewege eine Hebel oder Schalter/Taster. Das Arcaze setzt das so um, als würde ich eine Taste der Tastatur drücken.


    Wenn ich jetzt einen Poti benutzen will, benötige ich ja eine Achse (z.B. x oder y).
    Das müsste ja in der raildriver.dll hinterlegt sein, da ja der Raildriver Hebel hat, die nach diesem System funktionieren.


    Wenn ich also meinen Fahrhebel bewege muß ich ja dem PC quasi mitteilen, bitte drücke jetzt Taste A oder beim Zurückdrehen des Hebels Taste D.
    Im Arcaze gibt es dafür das Config Tool.
    Hier kann ich sagen: Drehen nach rechts= D Tastendruck, drehen nach links A-Tastendruck.
    Leider geht das nur mit Encodern, da ja ein Poti besagte Achsen benötigt. Im Arcaze Config Tool kann ich eine Achse keiner Taste zuordnen.


    Dir Gretchenfrage: Wie weise ich die Funktion einer Achse, die ja im TS vorhanden sein muß, nun dem entsprechenden Tastendruck zu ?


    Ich hoffe Du verstehst was ich meine, es ist sehr schwierig, das in Worte zu fassen, zumal mir die "Expertensprache" nicht so
    geläufig ist.
    Daher hoffe ich darauf mit Deinem Tool dieses Problem zu lösen.


    Schönes Wochenende noch.


    Gruß Frank

  • Dir Gretchenfrage: Wie weise ich die Funktion einer Achse, die ja im TS vorhanden sein muß, nun dem entsprechenden Tastendruck zu ?

    Dafür bräuchtest du immer noch ein Programm was zwischen deiner Hardware und dem TSConductor hängt. Aber dieses simuliert dann nicht einen Tastendruck sondern setzt explizit einen Wert (Controller) im Train Simulator. Es gibt Sachen wo immer noch Tastendrücke gesendet werden müssten, aber darum geht es erstmal nicht.


    Mal angenommen wir haben einen Fahrhebel mit 10 Stufen. Im TS ist der Fahrhebel ein Controller mit einem Wert von 0.0 bis 1.0. Du drückst jetzt den Hebel und anstatt z.B. "W" zu senden, sendest du jetzt "Setze den Controller für den Fahrhebel XYZ auf 0.1."


    Andersherum kannst du auch die aktuelle Position des Fahrhebels im TS abfragen. "Aktuller Wert für Controller Fahrhebel XYZ?" und als Antwort bekommst du dann "0.3" z.B.


    Ich hoffe wir reden nicht aneinander vorbei. :P


    Edit: Ich habe gerade mal kurz gegoogelt. Prinzipiell wirst du wohl ohne weitere Programmierung (mittels der Arcaze-DLL) nicht mit dem TSConductor kommunizieren können. Ob das Konfigurations-Tool das kann weiß ich nicht, ich hab nur ein paar Screenshots gesehen. Ich kann mich aber auch gerade irren, es ist schon spät. ;)

  • Okay, habe ich soweit verstanden.


    das Beste wird sein, ich warte erstmal Dein Tool ab.
    Wenn es dann installiert ist, werde ich ja sehen, ob und wie es meinen Vorstellungen entspricht.


    Danke Dir für die Erklärungen und Deine Geduld.


    Schönen Sonntag noch.


    Gruß Frank

  • Hallo,


    die erste Version ist endlich fertig! Alle wichtigen Links sind im ersten Post.


    Hier das komplette Changelog von der Beta:



    Code
    UI:
    - [FIX] - Übersetzungsfehler behoben
    - [ENH] - Reset Funktion entfernt auch Kopie der Server Anwendung im Railworks Plugin Ordner
    - [ADD] - Übersicht verbundene Clients (5 Sek Aktualisierungsintervall)
    Server:
    - [FIX] - diverse Abstürze bei aktiviertem Logging
    - [ENH] - TCPConnectionHolder komplett neu geschrieben
    - [ADD] - Neue Funktionen für das Polling: StopPolling,MutePolling,UnmutePolling,PausePolling,UnpausePolling
    - [ADD] - Funktionen: SetClientName,GetClientName,GetClientID
    - [ADD] - Check ob Client noch erreichbar (jede Minute)

    Alle Beta Tester müssen wahrscheinlich die TSConductor.exe noch aus dem Railworks Plugin Ordner manuell entfernen. Oder die Reset Funktion verwenden, dann sind aber alle Einstellungen weg.