TS-Fireman -TCP Client für den TS (0.9.9.5 - 19.05.2019)

  • Mag das Thema mit dem Saitek Throttle Quadrant nochmal aufwärmen. Es hat sich noch keine Lösung ergeben bei mir.

    ____________________________________________________________________________________________________________
    Gruß Martin

    Einmal editiert, zuletzt von Martin Z ()

  • Selbst Joystick-Test-Programme zeigen das komische Verhalten auf dem GamingPC. In den Geräteeinstellungen vom Controller ist alles okay. Auch ein anderer USB-Port brachte keine Abhilfe.


    Martin hat den Saitek Throttle Quadrant an einem weiteren PC überprüft, dort funktioniert er mit TS-Fireman ohne Probleme. Wie es eben auch dort die Geräteeinstellungen vom Controller anzeigen.



    Ich hatte nun die winmm.dll von Windows in verdacht, da ich über diese sie Joystickdaten beziehe. Leider fand eine Systemdatei-Überprüfung (sfc /scannow) keine Fehler. Die winmm.dll läßt sich auch nicht ohne Änderung der Besitzrechte ersetzen.



    Hat noch jemand einen Tipp für uns?

  • I can try to establish a direct connection to the RailDriver64.dll. But a DLL communication is completely new to me. This would be a bigger project. This will take some time. If I understand it at all, how it has to work.


    Ich kann versuchen, eine direkte Verbindung zur RailDriver64.dll einzubauen. Aber eine DLL-Kommunikation ist für mich völlig neu. Das wäre ein größeres Projekt. Dies wird einige Zeit in Anspruch nehmen. Wenn ich es überhaupt verstehe, wie es funktionieren muss.

  • Um noch ein Ergebnis für mein -Problem zu liefern:


    Habe den PC komplett neu aufgesetzt und TrainSim und alle Addons neu installiert.
    Tja......was soll man sagen....
    Jetzt funktioniert er einwandfrei mit dem TS Fireman und TS Conductor.
    Also hatte sich wohl eine Datei verabschiedet.


    Ich danke MacG noch einmal herzlich für seine Anstrengungen.
    Vielen Dank!!!

    ____________________________________________________________________________________________________________
    Gruß Martin

  • Im Hintergrund wurde an einem 64-Bit Update gearbeitet. Da ich keine Zeit habe, hat @Sillo seine TS-Bridge modifiziert. Vielen Dank! :D Damit diese mit dem TS-Fireman kommunizieren kann. Ein Weg den @gazz letztes Jahr vorgeschlagen hat.


    Hier gibt es die BETA: https://www.ts-mfd.de/index.ph…shot/4-ts-bridge-x64-beta (für die 32-Bit Version vom TS gibt es eine eigene TS-Bridge x86)


    Wie beim TSConductor einfach die IP auswählen, den Port einstellen. Das kann beides vom TSConductor übernommen werden. Nur sollten dann nicht beide Programme (TSConductor und TS-Bridge) gleichzeitig laufen. Die Railworks.exe im Steam-Verzeichnis auswählen und nach dem Start des Servers kann sich TS-Fireman mit der TS-Bridge verbinden. Oder eben die neuen Parameter für IP und Port in den Settings vom TS-Fireman eintragen.


    Die 32-Bit Version habe ich getestet und sie funktioniert ohne Probleme. Für 64-Bit fehlt mir noch das Update auf TS2019.


    Es wäre schön, wenn wir von Euch zur TS-Bridge 64-Bit BETA ein Feedback bekommen könnten. Danke! :)

  • Hier mal eine Frage an Euch. Weil ich mich mit einem kleinen Update vom TS-Fireman beschäftige, wollte ich noch den lang bestehenden Wunsch nach unregelmäßig verteilten Raststufen umsetzen. Also das Senden von Daten an einen "Irregular Notched Lever". Ich gehe dabei hauptsächlich von einem Kombi-Fahrhebel aus und würde es wie folgt lösen. Man muss einen Min- und Max-Wert angeben und zusätzlich einen Zwischenwert. Wobei dieser die Mitte sein kann, aber nicht muss. Für den Bereich vor und nach dem Mittelwert werden jeweils die Steps (Schaltstufen) angegeben.


    Am Beispiel eines amerikanischen Kombi-Fahrhebels sehe dies dann so aus:


    Min: -1 | Zwischenwert: 0 | Max: 1 | Steps von -1 bis 0 (dyn. Bremse): 16 | Steps von 0 bis 1 (Fahrhebel): 8
    |||||||||||||||||||||||||

    Noch ein weiteres Beispiel für einen dyn. Bremshebel mit Startbereich (Set Up):


    Min: 0 | Zwischenwert: 0.1 | Max: 1 | Steps von 0 bis 0.1 (Set Up): 1 | Steps von 0.1 bis 1 (Bremsbereich): 30
    ||||||||||||||||||||||||||||||||

    Entspricht dies Euren Vorstellungen?

  • Im ersten Posting gibt es ein kleines Update. Vorerst wieder nur die exe-Datei, weil es nur kleinere Veränderungen sind. Wer will kann damit die Version 0.9.9.0 bzw. die bisherige EXE im Programmverzeichnis ersetzen.


    Changelog

    • Unterstützung für TS 64bit, mit der TS-Bridge x64 von @Sillo <== Dafür vielen Dank!
    • direktes Öffnen der Windows-Einstellungen Gamecontroller
    • die Liste der ControllerIDs vom TS bei "Add a new locomotive" oder "Modify a locomotive" kann nach Spalten sortiert werden
    • wählt man eine Zeile in der Liste aus, werden mit Klick auf die Achse (z.Bsp. "Throttle and Brake") die nötigen Werte übernommen
    • Felder mit Standardwerten bleiben leer, diese sind im TS-Fireman verankert
    • bei "Modify a locomotive" werden nun Standardwerte aus der locomotives.ini entfernt und die Einträge sortiert
    • kleinere Anpassungen

    Wishlist

    • die Auswertung der Achsen anpassen, damit das "Zittern" der Potentiometer abgefangen wird. Dies wird aber bei stufenlosen Fahrhebeln (100 Steps) kaum eine Verbesserung bewirken.
    • Daten an "Irregular Notched Lever" senden, also mit unregelmäßig verteilten Raststufen
    • eine Schnittstelle für Arduino, um Kontrollleuchten am Fahrpult aufleuchten zu lassen bzw. die ControllerIDs an den Arduino zu übermitteln <== in ein weiteres Projekt ausgelagert
    • ein automatischer Verbindungsaufbau nach dem Start

    Grüße Mirko


    TS-Fireman - mit 6 Joystickachsen und 32 -tasten, oder mehr, die TS-Lok steuern
    TS-Verbindung zu Arduino - Ausgabe von Daten mit LED und Rundinstrumenten

    2 Mal editiert, zuletzt von MacG () aus folgendem Grund: Ergänzung bei Wishlist

  • Hallo


    Also erst mal , Kompliment und Dank für diese tollen Tools. Ich bin echt begeistert, dass ich mein Saitek- und CH-Throttles, link und recht verteilt gebrauchen kann.


    Eine Frage habe ich bezüglich Zuordnung eines Kombihebles. Die Lok ist eine RE420. Ich habe 5 Stufen hoch und 3 runter. Angegeben habe ich 8 Stufen, Min -3 / Max 5
    Der Hebel geht im TS aber dann nur 3 Stufen hoch und runter...

  • Es freut mich, dass es Dir gefällt.


    Meine Vermutung wäre, dass Deine Min-Max Werte nicht zu dem passen, was die TS-Lok erwartet. Die RE 420 habe ich leider nicht in meinem Besitz. Könntest Du bitte die Daten der verwendeten ControllerID hier posten. Also also das, was der TS bei der ID liefert (im Unterfenster Add/Modifiy a Locomitive vom TS-Fireman). Ich vermute mal, es wird der Virtual Throttle bzw. Throttle and Brake sein.

  • Ich hab tatsächlich noch eine kleine Idee, nur ist dies eher interessant für die ausgabe von Daten für Fahrpulte.
    Integration von Zusi Display 3. Gibt bereits Projekte für das Protokoll wie z.B. https://github.com/AndreasKarg/ZusiTCP.NET oder alternativ auf reinem Cpp basierende lib: https://github.com/jonathanp0/zusi3tcp

    #include <KlassischerGruß>
    Cirno, Techteam der Railomanie, Fachtrainer Tf bei DB Fernverkehr und selbstständig als Technical Designer bei DTG

    Einmal editiert, zuletzt von Cirno ()

  • @Cirno Das übersteigt etwas meine Fähigkeiten. Da ist vielleicht @Sillo der bessere Ansprechpartner. Aber ob sich ein Übersetzer von TS-TCP zu Zusi-TCP wirklich lohnt, wage ich zu bezweifeln. Mit TS-MFD kann man jetzt schon die Daten vom TS für Displays am Fahrpult nutzen.

  • Ich meld mich später noch betreffend der Re420. Was mir noch nicht klar ist; wenn ich mittels Joysticktaste z.Bsp. das Fernlicht zuweise, dann leuchtet das Licht nur so lange, wie ich die Taste gedrückt halte. Es sollte aber dauerhaft leuchten, bis ich durch drücken des Knopfes das Licht wieder ausschalten will.

  • Beim Schreiben des Programms stand die direkte Verwendung von gekauften Joysticks nicht im Vordergrund. Ich bin davon ausgegangen, dass man vielleicht einen Joystick schlachtet, um sein Fahrpult an den PC anzuschließen. Bezüglich einer möglichen Lösung zitiere ich mich mal selbst:

    Ja die Buttons funktionieren nur als Toggle (Taster). Die meisten haben einen Schalter dort am Pult, wo er auch benötigt wird. Deshalb habe ich es so programmiert. Ansonsten könnte man da auch weiterhin mit der Tastatur schalten.


    Du kannst JoyToKey oder das JoystickCursorTool nutzen, um beim Druck eines Joystick-Buttons einen Tastaturbefehl an den TS zu senden.

    Bezüglich der Programmierung, dass ein Taster einen Schalter simuliert, muss ich mir mal Gedanken machen. Wenn der Aufwand nicht allzu groß ist, könnte ich es noch mit einbauen.

  • Es freut mich, dass es Dir gefällt.


    Meine Vermutung wäre, dass Deine Min-Max Werte nicht zu dem passen, was die TS-Lok erwartet. Die RE 420 habe ich leider nicht in meinem Besitz. Könntest Du bitte die Daten der verwendeten ControllerID hier posten. Also also das, was der TS bei der ID liefert (im Unterfenster Add/Modifiy a Locomitive vom TS-Fireman). Ich vermute mal, es wird der Virtual Throttle bzw. Throttle and Brake sein.

    Also, die Daten sind wie folgt:


    ID 21 VirtualThrottle Min -3 Max 5
    Ich habe dann 8 Stufen eingegeben. Aber er macht dann vier hoch und drei runter.

  • Es müsste eigentlich funktionieren. Ich habe mir gerade die Programmzeilen mit der Berechnung der Ausgabe angeschaut und komme mit dem Taschenrechner genau auf die 5, wenn die 8.Stufe gewünscht ist. An meinem Gaming-PC muss ich die Ausgabe mal mit dem TS-Fireman nachstellen.


    Was wird denn im Hauptfenster vom TS-Fireman bei der gewählten Achse unter TCP als maximaler Wert angezeigt? Da sollte nämlich die 5 erscheinen.

  • Als Max Wert erscheint interessanterweise eine 3 und geht dann runter auf ein Minimum -5 Leider scheint aber auch ein Invert-Eintrag bei der Achse keine Änderung zu bewirken..