TS-Fireman - Ist ein TCP Client welcher einen TCP Server benötigt. Zur Auswahl stehen die TS-Bridge in den Versionen für 64bit und 32bit und der TSConductor nur 32bit (Bitte separat downloaden und installieren!).
Deshalb auch meine Namenswahl (Heizer), die Engineers (Lokführer) sind ja wir Vielen Dank an Sillo und Dayjay für die tollen TCP Server.
Es setzt die Bewegungen von maximal sechs Joystickachsen in TCP-Befehle um, welche über den TCP Server an den Train Simulator gesendet werden. Ein Empfang von Daten ist auch möglich. Vorerst nutze ich diesen nur für das Auslesen der Controller der aktiven Lokomotive, um eine neue Lok der Auswahlliste hinzuzufügen oder zu modifizieren. Seit dem Update auf 0.9.9.0 ist auch das parallele Ausführen von mehreren Instanzen des TS-Fireman möglich. Wodurch man mehr als nur einen Joystick (auch Arcaze o.ä.) nutzen kann. Dazu können, vom Programm, zusätzliche Verknüpfungen auf dem Desktop angelegt werden.
Für diejenigen unter Euch, welche gerne eine Anleitung als Video hätten, hat OMSIJakob LP freundlicherweise ein Video-Tutorial erstellt.
Für die Verbindung mit dem TCP Server müssen die Einstellungen bearbeitet werden. Die erreicht ihr, wenn ihr TS-Fireman startet und auf "Open settings folder" klickt. Dort müssen in die settings.ini die Werte für den Server (IP und Port) hinterlegt werden und die Joystickachsen werden den jeweiligen Controllern, wie Fahrtregler und Fahrtrichtungswahlhebel zugewiesen. Die Zuordnung der Achsen zu 0 bis 5 steht in der settings.ini. Welche Achse (X-Y-Z etc.) welcher Hebel ist, könnt ihr mit einem Klick auf "Open Gamecontroller" (ab Version 0.9.9.5) aufrufen. Unter "Eigenschaften" >> "Testen" werden die Bewegungen der jeweiligen Achsen angezeigt.
Für eine invertierte Achse-X muss zum Beispiel ein InvertAx0 = 1 eingetragen werden. Das ist für alle Achsen möglich, bis hoch zu InvertAx5. Ein Eintrag für "normale" Achsen mit dem Wert 0 ist nicht notwendig.
Die DeviceID vom Joystick kann während des Programmablaufs geändert werden (wohl notwendig bei Windows 10). Falls die Joystick DeviceID immer eine bestimmte ist, kann diese mit "Save DeviceID" permanent in der settings.ini gespeichert werden. Für das Anlernen der Joysticktasten wird diese ID auch benötigt. Vielen Dank TheLion092 für diesen Hinweis.
Wenn der TCP Server läuft, also auch gestartet wurde, kann eine Lok ausgewählt werden. Eine kleine Auswahl an Lokomotiven habe ich beigefügt. Anders als beim TrainSimHelper müssen hier keine Dateien vom Train Simulator editiert werden. Der Train Simulator kann je nach belieben gestartet werden. Zwischen den Programmen kann an mit ALT-TAB hin und her springen. Ein wechseln der Lok ist im TS-Fireman einfach möglich. Nur eine andere Lok auswählen "Change locomotive" drücken. Schon kann es mit der anderen Lokomotive im TS weitergehen.
Die Auswertung aller sechs Joystickachsen ist einzeln getestet. Da ich zurzeit an meinem Arcaze-USB-Interface nur drei nutze, kann ich behaupten, dass die X-, Y- und Z-Achse für die drei Hauptcontroller in TS funktionieren. Beim Anlegen neuer Lokomotiven ("Add a new locomotive") muss man aus der empfangenen Liste nur die ID vom jeweiligen Controller suchen. Ab Version 0.9.9.5 ist die Liste der ControllerIDs nach Spalten sortierbar. VirtualThrottle bzw. Regulator, Reverser und VirtualBrake bzw. TrainBrake haben sich bei mir als Controller bewährt. Manchmal muss man ausprobieren, welche ID funktioniert. Bei vR-Loks wählt man am besten die Controller VirtualThrottle und -Brake aus.
Die "Steps" sind die Fahrstufen, bei einer BR101 z.Bsp. 100, weil es ein stufenloser Fahrtregler ist und bei amerikanischen Lokomotiven meist 8. Die "Steps" kann man auch im TS zählen, wenn man mit der Maus oder der Tastatur den jeweiligen Regler bewegt. Des weiteren kann bei allen Controllern ein freier Min- und Max-Wert gewählt werden. Bei Standard Controllern die einen Bereich von 0 bis 1 haben, muss nichts eingetragen werden. Der Standard für den Reverser (Fahrrichtungswahlhebel) ist weiterhin -1 bis 1. Auch dafür muss nichts eingetragen werden. Für einen anderen Bereich trägt man bei Min und Max den entsprechenden Wert ein. Ein negativer Min-Wert ist nun bei allen Controllern möglich. Wählt man in der Liste eine Zeile aus (ab Version 0.9.9.5) und klickt auf die Achse (z.Bsp. "Throttle and Brake"), werden die nötigen Werte übernommen. Die "Steps" müsst ihr eintragen.
Teilweise haben die Lokomotiven eine "Playable Airhorn". Wer also eine Joystickachse frei hat, kann die ControllerID für das "Horn" dem OtherCtrl zuweisen und 10 Steps oder mehr einstellen. Dann kann man das Signalhorn, wie ein Instrument, spielen.
Das Anlernen der 32 möglichen Joysticktasten habe ich möglichst einfach gestaltet. Was recht viel Arbeit gemacht hat. Für das Hinzufügen einer ControllerID zu einer Taste, betätigt ihr nur kurz selbige Taste an eurem Fahrpult und die entsprechende Joysticktaste (eine von 1 bis 32) wird dann hervorgehoben. Dann tragt ihr die dazu passende ID aus der empfangen Liste ein oder klickt für ein Auslesen der gewählten Zeile (ab 0.9.9.5) auf "ID for selected button". Falls gewünscht, ist auch ein Offset möglich, damit z.Bsp. für das Licht der Wert 2 gesendet wird, ist ein Offset 1 notwendig. Zusätzlich kann ein Kommentar darunter angegeben werden, für was die Taste dient. Dieser wird in der settings.ini für zukünftige Lokomotiven gespeichert. Mit "OK" bestätigt ihr die Übernahme der Variablen für diese eine Joysticktaste. Für jede weitere Taste wieder genauso vorgehen. An den TS wird, ohne eingestellten Offset, dann eine 1 für Taste geschlossen und eine 0 für Taste offen übertragen. Ist es am Fahrpult ein Schalter, wird eine Statusänderung erst an TS übertragen, wenn der Schalter in seiner Position verändert wird.
Über "Modify a locomotive" können die Werte einer vorhandenen Lokomotive editiert werden. Dazu wählt man die Lok aus und klickt auf "Modify a locomotive". Bei den Joysticktasten erscheinen nach kurzem Betätigen der gewünschten Taste die hinterlegten Werte. Nur geänderte Tasten müssen dort mit "OK" bestätigt werden. Das Löschen eines beliebigen Wertes ist möglich.
Kommentare in den INI-Dateien können mit einem führenden Semikolon in der Zeile über oder unter der Variablen eingetragen werden. Nicht dahinter!
Es gibt noch so einige kleine Baustellen. Erstens, weil Programmieren mit AutoIt nur ein kleines Hobby von mir ist und zweitens weil sich mit dem wachsenden Umfang des Programms immer wieder neue Fehler einschleichen. Viel Spaß bei den ersten Testfahrten! Ich hoffe, ich habe es recht selbsterklärend programmiert.
For the connection to the TCP server (TS-Bridge) the settings have to be edited. You can achieve this by starting TS-Fireman and clicking on "Open settings folder". There, the values IP and Port for the server must be stored in the settings.ini and the joystick axes are assigned to the respective controllers, such as throttle lever and direction selector lever.
The assignment of the axes to 0 to 5 is explained in the settings.ini. Which axis (X-Y-Z, etc.) which lever is, at Win7 see under "Start" >> "Control Panel" >> "Devices and Printers". There you will come to your joystick/gamepad. Right-click on the device to open the "Game Controller Properties". Under "Properties" >> "Test" the movements of the respective axes are displayed. There is also a button in the actual version to getting there.
For an inverted axis-X, for example, an InvertAx0 = 1 must be entered. This is possible for all axes, up to InvertAx5. An entry for "normal" axes with the value 0 is not necessary.
The DeviceID of the joystick can be changed during program execution (probably necessary for Windows 10). If the joystick DeviceID is always a specific one, it can be saved with "Save DeviceID" in the settings.ini. For assigning the joystick buttons, this ID is also required.
If the TS-Bridge is running and the server has been started, a loco can be selected at TS-Fireman. I have attached a small selection of locomotives. Train Simulator can be started as you like. Between the programs can jump on with ALT-TAB. Changing the locomotive is easily possible in the TS-Fireman. Just select another loco Press "Change locomotive". Already it can go on with the other locomotive in the TS.
When creating new locomotives ("Add a new locomotive") you only have to search for the ID of the respective controller from the received list. This list is sortable and a line can be read out via click on the Axis-Button (actual version feature). VirtualThrottle or Regulator, Reverser and VirtualBrake or TrainBrake have proven themselves with me. Sometimes you have to try out which ID works. For vR (virtual Railroads) locos, it's best to select the controller VirtualThrottle and Brake.
The "Steps" are the throttle steps, with a German BR101 e.g. 100, because it is a stepless throttle controller and in American locomotives usually 8. The "Steps" can also be counted in the TS if you move the respective controller with the mouse or the keyboard. Furthermore, a free minimum and maximum value can be selected for all controllers. The same for the other axes. The Reverser has normally 2 steps.
The assignment of the 32 possible joystick buttons I have made as simple as possible. To add a ControllerID to a button, press its button on your cab controller (joystick). The corresponding joystick button (one from 1 to 32) will be highlighted. Then you enter the matching ID from the received list. Or with teh actual version read out the selected line per click. If desired, an offset is possible, so, for example, at the light function the value 2 is sent, an offset of 1 will be necessary. In addition, a comment can be given below what the button is for. This will be saved in the settings.ini for future locomotives. With "OK" you confirm the acceptance of the variables for this one joystick button. Repeat the same procedure for each additional button. Without an offset, to the TS is then send a 1 for a pushed button and a 0 for an open. If it is a switch (e.g. a toggle) on the cab controller, a status change is not transmitted to TS until the switch is changed in position.
Update auf 0.9.0.0 vom 24.10.2016
Changelog
- alle 6 ControllerIDs und die zugehörigen Steps werden nun bei einer neuen Lokomotive in die locomotives.ini geschrieben
- nach dem Hinzufügen einer neuen Lok ist kein Neustart vom TS-Fireman mehr erforderlich
- die DeviceID vom Joystick kann während des Programmablaufs geändert werden (notwendig bei Windows 10)
- falls immer eine andere DeviceID als die 0 genutzt wird, kann sie in die settings.ini unter "[Joystick-ID] JoyID = " eingetragen werden
- kleinere Fehler behoben
- der Joystick-Button 1 wird nun ausgewertet (als Taster), die zuzuweisende TS ControllerID schreibt man in die locomotives.ini bei der Lok unter "Button1Id = "
- "Modify a Locomotive" kommt erst in einer der folgenden Versionen
Vielen Dank FabiaLP für das Testen und das Feedback zur Joystick DeviceID!
Update auf 0.9.6.0 vom 05.02.2017
Changelog
- alle 6 Achsen können nun in der settings.ini invertiert werden
- für alle 6 Controller kann man jetzt den zu verwendenden Sendebereich einstellen, bei Standard Controllern mit einem Bereich von 0 bis 1 muss nichts eingetragen werden. Der Standard für den Reverser (Fahrrichtungswahlhebel) ist weiterhin -1 bis 1. Für einen anderen Bereich trägt man bei Min und Max den entsprechenden Wert ein. Ein negativer Min-Wert ist nun bei allen Controllern möglich
- Bugfix: bei schnellen Achsbewegungen wurde nicht der maximale TCP-Wert erreicht (bei invertiert der minimale). Danke an BigBenjy für die Meldung.
- Codeoptimierungen, z.Bsp. beim Speichern in die locomotives.ini
- "Modify a Locomotive" wurde hinzugefügt - eine in der ini vorhandene Lok kann ausgewählt und editiert werden. Leere Felder führen nicht zur Löschung des Eintrages in der locomotives.ini
Vielen Dank Taurus0815 und BigBenjy für das Testen Joystick-Invertierung und des erweiterten Sendebereiches!
Update auf 0.9.7.0 vom 12.03.2017
Changelog
- für alle 32 möglichen Joystick-Buttons kann nun der Status 0 (für offen) oder 1 (für geschlossen) an eine einstellbare ControllerID gesendet werden
- dafür wurde recht umfangreich der Bereich für das Hinterlegen der Werte erweitert. Ihr drückt am Fahrpult kurz die gewünschte Taste und sie wird dann hervorgehoben. Dann tragt ihr die dazu passende ID aus der empfangen Liste ein. Zusätzlich kann ein Kommentar darunter angegeben werden, für was die Taste dient. Dieser wird in der settings.ini für zukünftige Lokomotiven gespeichert. Mit "OK" bestätigt ihr die Übernahme der Variablen für diese eine Taste. Für jede weitere Taste wieder genauso vorgehen. Beim Modifizieren drückt ihr kurz die gewünschte Taste und die hinterlegten Werte werden angezeigt. Nur geänderte Tasten müssen dort mit "OK" bestätigt werden.
- Bugfix: empfangene Liste war nicht vollständig - jetzt werden 12.000 Zeichen akzeptiert
Vielen Dank FabiaLP und BigBenjy für das Beta-Testen der Joystick-Buttons-Auswertung und marvinbart429 für die zu kurze ControllerID-Liste!
Update auf 0.9.9.0 vom 31.12.2017
Es gibt diese Version wie gewohnt als Setup. Dieses erkennt, ob schon ini-Dateien vorhanden sind und überschreibt sie nicht.
Changelog
- Wishlist: nach dem Ändern der JoystickID mit "Increase DeviceID" kann diese nun mit "Save DeviceID" in der settings.ini abgespeichert werden
- bei den Joystick-Buttons kann nun ein Offset eingestellt werden (z.Bsp. beim Licht eine Offset 1 für die Ausgabe einer 2)
- das Ausführen des TS-Fireman ist nun parallel möglich und mit verschiedenen Einstellungen. Dem entsprechend ist das Limit an Achsen und Buttons auf das 9-fache angestiegen
- zum Starten der weiteren Instanzen kann das Programm nummerierte Verknüpfungen auf dem Desktop anlegen. Beim Start der zweiten Instanz werden die zweiten Einstellungen anhand der ersten erstellt. Es ist eine Kopie ohne den Bereich [Main], dieser ist nur der settings.ini vorbehalten. Nur die zweite Instanz kann die Verknüpfung für eine dritte anlegen, die dritte für die vierte und so weiter ... Ist die folgende Verknüpfung schon auf dem Desktop vorhanden, kann diese nicht erneut erstellt werden.
- es bleibt bei einer locomotives.ini. Sollen zwei Instanzen an eine Lok senden, so muss man diese Lok nun zweimal mit verschiedenen Namen anlegen und dann entsprechend auswählen
- ein Programm-Icon hinzugefügt und kleinere Änderungen vorgenommen, z-Bsp. wird nach dem Ausgewählten einer Lok die "Select"-Taste zu einer "Change"-Taste
- Bugfix: ein Gebietsschema mit Punkt als Dezimaltrenner wird nun automatisch erkannt und die Ausgabe entsprechend angepasst
Wishlist
- Daten an "Irregular Notched Lever" senden, also mit unregelmäßig verteilten Raststufen
- bei "Modify a Locomotive" das Löschen von Einträgen in der locomotive.ini ermöglichen, beim einfachen Weg würde die modifizierte Lok ans Ende der locomotives.ini rutschen - find ich nicht gut
-
Tacho- und Druckluftanzeige auf zweiten Bildschirm- gestrichen, Sillo hat mit seinem TS-MFD-Modulares-Führerraumdisplay-MFD-inkl-EbuLa-für-Train-Sim gut Fortschritte gemacht
Vielen Dank an BigBenjy, marvinbart429 und Lorhat für das Beta-Testen der neuen Funktionen!
Update auf 0.9.9.1 vom 25.03.2018
Changelog
- Bugfix: die Joystick-Button Auswertung bei "Add/Modify a locomotive" funktioniert nun auch mit Drehschaltern und ein Dauerimpuls von einem Schalter blockiert nun nicht mehr die Eingabe von ID, Beschreibung und Offset
- kleinere Anpassungen vom Layout bei "Add/Modify a locomotive"
Update auf 0.9.9.2 vom 13.05.2018
Changelog
- die Liste der Controller vom TS ist nun formatiert und somit etwas übersichtlicher
- kleinere Anpassungen, falls mal einer von "Modify a locomotive" über das Hauptfenster zu "Add a new locomotive" wechselt
Update auf 0.9.9.5 vom 19.05.2019
Wieder nur die exe-Datei, weil es nur kleinere Veränderungen sind. Wer will kann damit die Version 0.9.9.0 bzw. die vorherige exe-Datei im Programmverzeichnis ersetzen. Ebenfalls kann auch die TS-Fireman.exe an jeden anderen Ort ausgeführt werden. Solange im LocalApp-Verzeichnis die Konfigurationsdateien liegen.
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 (Stand 03.04.2021)
- die Auswertung der Achsen anpassen, damit das "Zittern" der Potentiometer abgefangen wird
- Daten an "Irregular Notched Lever" senden, also mit unregelmäßig verteilten Raststufen, siehe dazu mein Beitrag #148
- Anpassungen des Schaltbereiches zum nächsten bzw. vorherigen Wert bei den Achsen
- ein automatischer Verbindungsaufbau nach dem Start
- automatische Erkennung der Lok im TS und Umschalten zu deren Konfiguration, wenn vorhanden
Vielen Dank an @OMSIJakob LP für das Beta-Testen der neuen Funktionen!